1
0
mirror of https://git.yoctoproject.org/meta-arm synced 2026-05-05 16:30:27 +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" S = "${WORKDIR}/git"
B = "${WORKDIR}/build"
SYSTEMD_SERVICE_${PN} = "tee-supplicant.service" SYSTEMD_SERVICE_${PN} = "tee-supplicant.service"
EXTRA_OEMAKE = "O=${B}"
do_compile() {
cd ${S}
oe_runmake
}
do_compile[cleandirs] = "${B}"
do_install() { do_install() {
cd ${S}
oe_runmake install 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
ln -sf libteec.so.1.0 ${D}${libdir}/libteec.so.1 ln -sf libteec.so.1.0 ${D}${libdir}/libteec.so.1
install -d ${D}${includedir} 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 \ sed -i -e s:/etc:${sysconfdir}:g \
-e s:/usr/bin:${bindir}: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" SRCREV = "559b2141c16bf0f57ccd72f60e4deb84fc2a05b0"
S = "${WORKDIR}/git" S = "${WORKDIR}/git"
B = "${WORKDIR}/build"
OPTEE_CLIENT_EXPORT = "${STAGING_DIR_HOST}${prefix}" OPTEE_CLIENT_EXPORT = "${STAGING_DIR_HOST}${prefix}"
TEEC_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} \ HOST_CROSS_COMPILE=${TARGET_PREFIX} \
TA_CROSS_COMPILE=${TARGET_PREFIX} \ TA_CROSS_COMPILE=${TARGET_PREFIX} \
V=1 \ V=1 \
OUTPUT_DIR=${B} \
" "
do_compile() { do_compile() {
cd ${S}
oe_runmake oe_runmake
} }
do_compile[cleandirs] = "${B}"
do_install () { do_install () {
mkdir -p ${D}${nonarch_base_libdir}/optee_armtz mkdir -p ${D}${nonarch_base_libdir}/optee_armtz
mkdir -p ${D}${bindir} mkdir -p ${D}${bindir}
install -D -p -m0755 ${S}/out/ca/* ${D}${bindir} install -D -p -m0755 ${B}/ca/* ${D}${bindir}
install -D -p -m0444 ${S}/out/ta/* ${D}${nonarch_base_libdir}/optee_armtz install -D -p -m0444 ${B}/ta/* ${D}${nonarch_base_libdir}/optee_armtz
} }
FILES_${PN} += "${nonarch_base_libdir}/optee_armtz/" FILES_${PN} += "${nonarch_base_libdir}/optee_armtz/"

View File

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

View File

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