meta-st-stm32mp/recipes-bsp/trusted-firmware-a/tf-a-stm32mp-ssp-archiver.inc

113 lines
4.0 KiB
PHP

#
# Archiver Configuration
#
SRC_URI_append = " file://README.HOW_TO.txt "
inherit archiver
ARCHIVER_MODE[src] = "original"
COPYLEFT_LICENSE_INCLUDE_append = " BSD-3* "
inherit archiver_stm32mp_clean
archiver_create_makefile_for_sdk() {
. ${T}/tfaconfig_env
# Init internal var for tfa_config_oemake: should be 'config,extraoemake'
for config in ${TF_A_CONFIG}; do
tf_a_config_oemake="${tf_a_config_oemake} ${config},\"$(eval echo \$TF_A_CONFIG_${config})\""
done
mkdir -p ${ARCHIVER_OUTDIR}
cat << EOF > ${ARCHIVER_OUTDIR}/Makefile.sdk
#remove default variable
LDFLAGS=
CFLAGS=
CPPFLAGS=
CC=
CPP=
AS=
AR=
LD=
NM=
LOCAL_PATH=\$(PWD)
EXTRA_OEMAKE=${EXTRA_OEMAKE}
# Set default config
ELF_DEBUG_ENABLE ?= ${ELF_DEBUG_ENABLE}
TF_A_CONFIG ?= ${TF_A_CONFIG}
# Set specific OEMAKE config
TF_A_CONFIG_OEMAKE = ${tf_a_config_oemake}
# Set default TFA_DEVICETREE
TFA_DEVICETREE ?= ${TF_A_DEVICETREE}
#Set default TF_A_ENABLE_DEBUG_WRAPPER
TF_A_ENABLE_DEBUG_WRAPPER ?= ${TF_A_ENABLE_DEBUG_WRAPPER}
help:
@echo
@echo "Available targets:"
@echo " all : build TF-A binaries for defined config(s)"
@echo " clean : clean build directories from generated files"
@echo
@echo "TF-A configuration:"
@echo " TF_A_CONFIG = \$(TF_A_CONFIG)"
@echo " TFA_DEVICETREE = \$(TFA_DEVICETREE)"
@echo " ELF_DEBUG_ENABLE = '\$(ELF_DEBUG_ENABLE)' ('1' to export elf files)"
@echo " TF_A_ENABLE_DEBUG_WRAPPER = '\$(TF_A_ENABLE_DEBUG_WRAPPER)' ('1' to generate tf-a for debugging)"
@echo
all: tf
host_tools:
@\$(MAKE) --no-print-directory -C \$(LOCAL_PATH)/tools/stm32image
tf: host_tools
for config in \$(TF_A_CONFIG) ; do \\
# Init any extraoemake \\
add_extraoemake= ; \\
for fullconfig in \$(TF_A_CONFIG_OEMAKE) ; do \\
extraconfig=\$\$(echo \$\$fullconfig | cut -d',' -f1) ; \\
if [ "\$\$extraconfig" = "\$\$config" ]; then \\
add_extraoemake=\$\$(echo \$\$fullconfig | cut -d',' -f2) ; \\
fi ; \\
done ; \\
mkdir -p \$(LOCAL_PATH)/../build/\$\$config ; \\
if test -n "\$(TFA_DEVICETREE)" ; then \\
for dt in \$(TFA_DEVICETREE) ; do \\
\$(MAKE) \$(EXTRA_OEMAKE) -C \$(LOCAL_PATH) DTB_FILE_NAME=\$\$dt.dtb BUILD_PLAT=\$(LOCAL_PATH)/../build/\$\$config \$\$add_extraoemake ; \\
# Copy binary file with explicit name \\
cp -f \$(LOCAL_PATH)/../build/\$\$config/${TF_A_BASENAME}-\$\$dt.${TF_A_SUFFIX} \$(LOCAL_PATH)/../build/\$\$config/${TF_A_BASENAME}-\$\$dt-\$\$config.${TF_A_SUFFIX} ; \\
if [ "\$(TF_A_ENABLE_DEBUG_WRAPPER)" = "1" ]; then \\
# Generate wrapper for debugging \\
stm32wrapper4dbg -s \$(LOCAL_PATH)/../build/\$\$config/${TF_A_BASENAME}-\$\$dt.${TF_A_SUFFIX} -d \$(LOCAL_PATH)/../build/\$\$config/debug-${TF_A_BASENAME}-\$\$dt-\$\$config.${TF_A_SUFFIX} ; \\
fi \\
done ; \\
else \\
\$(MAKE) \$(EXTRA_OEMAKE) -C \$(LOCAL_PATH) BUILD_PLAT=\$(LOCAL_PATH)/../build/\$\$config \$\$add_extraoemake; \\
tf_version=\$\$(find \$(LOCAL_PATH)/../build/\$\$config -name ${TF_A_BASENAME}*.${TF_A_SUFFIX} -exec basename {} \; | sed "s/\.${TF_A_SUFFIX}//") ; \\
# Copy binary file with explicit name \\
cp -f \$(LOCAL_PATH)/../build/\$\$config/\$\$tf_version.${TF_A_SUFFIX} \$(LOCAL_PATH)/../build/\$\$config/\$\$tf_version-\$\$config.${TF_A_SUFFIX} ; \\
if [ "\$(TF_A_ENABLE_DEBUG_WRAPPER)" = "1" ]; then \\
# Generate wrapper for debugging \\
stm32wrapper4dbg -s \$(LOCAL_PATH)/../build/\$\$config/\$\$tf_version.${TF_A_SUFFIX} \$(LOCAL_PATH)/../build/\$\$config/debug-\$\$tf_version-\$\$config.${TF_A_SUFFIX} ; \\
fi \\
fi ; \\
# Copy elf files with explicit name \\
if [ "\$(ELF_DEBUG_ENABLE)" = "1" ] ; then \\
if [ -f \$(LOCAL_PATH)/../build/\$\$config/${BL2_ELF} ] ; then \\
cp -f \$(LOCAL_PATH)/../build/\$\$config/${BL2_ELF} \$(LOCAL_PATH)/../build/\$\$config/${TF_A_BASENAME}-${BL2_BASENAME}-\$\$config.${TF_A_ELF_SUFFIX} ; \\
fi ; \\
fi ; \\
done
clean:
@for config in \$(TF_A_CONFIG) ; do \\
rm -rf \$(LOCAL_PATH)/../build/\$\$config ; \\
done
EOF
}
do_ar_original[prefuncs] += "tfaconfig_env archiver_create_makefile_for_sdk"