1
0
mirror of https://git.yoctoproject.org/meta-arm synced 2026-01-12 03:10:15 +00:00

optee-{os,examples,client,test}: Build out of tree

Modifies the optee recipes to all build out of tree. This is cleaner and
helps prevent build error from stale builds when dependencies change.
Also allows the elimination of the OPTEEOUTPUTMACHINE variable in
optee-os.

Signed-off-by: Joshua Watt <JPEWhacker@gmail.com>
Reviewed-by: Diego Sueiro <diego.sueiro@arm.com>
Reviewed-by: Denys Dmytriyenko <denys@ti.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
This commit is contained in:
Joshua Watt
2020-05-21 09:22:57 -05:00
committed by Jon Mason
parent 0418996eba
commit 12604dc9d3
4 changed files with 31 additions and 11 deletions

View File

@@ -18,20 +18,30 @@ SRC_URI = " \
"
S = "${WORKDIR}/git"
B = "${WORKDIR}/build"
SYSTEMD_SERVICE_${PN} = "tee-supplicant.service"
EXTRA_OEMAKE = "O=${B}"
do_compile() {
cd ${S}
oe_runmake
}
do_compile[cleandirs] = "${B}"
do_install() {
cd ${S}
oe_runmake install
install -D -p -m0755 ${S}/out/export/usr/sbin/tee-supplicant ${D}${sbindir}/tee-supplicant
install -D -p -m0755 ${B}/export/usr/sbin/tee-supplicant ${D}${sbindir}/tee-supplicant
install -D -p -m0644 ${S}/out/export/usr/lib/libteec.so.1.0 ${D}${libdir}/libteec.so.1.0
install -D -p -m0644 ${B}/export/usr/lib/libteec.so.1.0 ${D}${libdir}/libteec.so.1.0
ln -sf libteec.so.1.0 ${D}${libdir}/libteec.so
ln -sf libteec.so.1.0 ${D}${libdir}/libteec.so.1
install -d ${D}${includedir}
install -p -m0644 ${S}/out/export/usr/include/*.h ${D}${includedir}
install -p -m0644 ${B}/export/usr/include/*.h ${D}${includedir}
sed -i -e s:/etc:${sysconfdir}:g \
-e s:/usr/bin:${bindir}:g \

View File

@@ -17,6 +17,7 @@ SRC_URI = "git://github.com/linaro-swg/optee_examples.git"
SRCREV = "559b2141c16bf0f57ccd72f60e4deb84fc2a05b0"
S = "${WORKDIR}/git"
B = "${WORKDIR}/build"
OPTEE_CLIENT_EXPORT = "${STAGING_DIR_HOST}${prefix}"
TEEC_EXPORT = "${STAGING_DIR_HOST}${prefix}"
@@ -28,17 +29,20 @@ EXTRA_OEMAKE = " TA_DEV_KIT_DIR=${TA_DEV_KIT_DIR} \
HOST_CROSS_COMPILE=${TARGET_PREFIX} \
TA_CROSS_COMPILE=${TARGET_PREFIX} \
V=1 \
OUTPUT_DIR=${B} \
"
do_compile() {
cd ${S}
oe_runmake
}
do_compile[cleandirs] = "${B}"
do_install () {
mkdir -p ${D}${nonarch_base_libdir}/optee_armtz
mkdir -p ${D}${bindir}
install -D -p -m0755 ${S}/out/ca/* ${D}${bindir}
install -D -p -m0444 ${S}/out/ta/* ${D}${nonarch_base_libdir}/optee_armtz
install -D -p -m0755 ${B}/ca/* ${D}${bindir}
install -D -p -m0444 ${B}/ta/* ${D}${nonarch_base_libdir}/optee_armtz
}
FILES_${PN} += "${nonarch_base_libdir}/optee_armtz/"

View File

@@ -20,10 +20,9 @@ SRC_URI = " \
"
S = "${WORKDIR}/git"
B = "${WORKDIR}/build"
OPTEEMACHINE ?= "${MACHINE}"
OPTEEOUTPUTMACHINE ?= "${MACHINE}"
OPTEE_ARCH = "null"
OPTEE_ARCH_armv7a = "arm32"
OPTEE_ARCH_aarch64 = "arm64"
@@ -38,6 +37,7 @@ EXTRA_OEMAKE = " \
V=1 \
ta-targets=ta_${OPTEE_ARCH} \
LIBGCC_LOCATE_CFLAGS=--sysroot=${STAGING_DIR_HOST} \
O=${B} \
"
CFLAGS[unexport] = "1"
@@ -49,17 +49,19 @@ LD[unexport] = "1"
do_configure[noexec] = "1"
do_compile() {
cd ${S}
oe_runmake all CFG_TEE_TA_LOG_LEVEL=0
}
do_compile[cleandirs] = "${B}"
do_install() {
#install core in firmware
install -d ${D}${nonarch_base_libdir}/firmware/
install -m 644 ${B}/out/arm-plat-${OPTEEOUTPUTMACHINE}/core/*.bin ${D}${nonarch_base_libdir}/firmware/
install -m 644 ${B}/core/*.bin ${D}${nonarch_base_libdir}/firmware/
#install TA devkit
install -d ${D}${includedir}/optee/export-user_ta/
for f in ${B}/out/arm-plat-${OPTEEOUTPUTMACHINE}/export-ta_${OPTEE_ARCH}/* ; do
for f in ${B}/export-ta_${OPTEE_ARCH}/* ; do
cp -aR $f ${D}${includedir}/optee/export-user_ta/
done
}

View File

@@ -16,6 +16,7 @@ SRCREV = "30481e381cb4285706e7516853495a7699c93b2c"
SRC_URI = "git://github.com/OP-TEE/optee_test.git"
S = "${WORKDIR}/git"
B = "${WORKDIR}/build"
OPTEE_CLIENT_EXPORT = "${STAGING_DIR_HOST}${prefix}"
TEEC_EXPORT = "${STAGING_DIR_HOST}${prefix}"
@@ -27,21 +28,24 @@ EXTRA_OEMAKE = " TA_DEV_KIT_DIR=${TA_DEV_KIT_DIR} \
CROSS_COMPILE_HOST=${TARGET_PREFIX} \
CROSS_COMPILE_TA=${TARGET_PREFIX} \
V=1 \
O=${B} \
"
do_compile() {
cd ${S}
# Top level makefile doesn't seem to handle parallel make gracefully
oe_runmake xtest
oe_runmake ta
}
do_compile[cleandirs] = "${B}"
do_install () {
install -D -p -m0755 ${S}/out/xtest/xtest ${D}${bindir}/xtest
install -D -p -m0755 ${B}/xtest/xtest ${D}${bindir}/xtest
# install path should match the value set in optee-client/tee-supplicant
# default TEEC_LOAD_PATH is /lib
mkdir -p ${D}${nonarch_base_libdir}/optee_armtz/
install -D -p -m0444 ${S}/out/ta/*/*.ta ${D}${nonarch_base_libdir}/optee_armtz/
install -D -p -m0444 ${B}/ta/*/*.ta ${D}${nonarch_base_libdir}/optee_armtz/
}
FILES_${PN} += "${nonarch_base_libdir}/optee_armtz/"