init: compatible with amlogic driver module in or extra kernel tree build [2/2]
PD#SWPL-64232
Problem:
compatible with amlogic driver module in or extra kernel tree build
Solution:
if build with parameter AMLOGIC_NONGKI, then amlogic driver module in
kernel tree build, otherwise extra kernel tree build
in kernel tree build
BUILD_CONFIG=common_drivers/build.config.amlogic KERNEL_DIR=common AMLOGIC_NONGKI=1 build/build.sh
extra kernel tree build
BUILD_CONFIG=common_drivers/build.config.amlogic KERNEL_DIR=common build/build.sh
Verify:
Build pass
Change-Id: I8a80d6d9e37285a19f1fb8afe55856e79a657878
Signed-off-by: wanwei.jiang <wanwei.jiang@amlogic.com>
diff --git a/amlogic_utils.sh b/amlogic_utils.sh
new file mode 100644
index 0000000..a2ba689
--- /dev/null
+++ b/amlogic_utils.sh
@@ -0,0 +1,59 @@
+#!/bin/bash
+
+function pre_defconfig_cmds() {
+ if [[ -n ${AMLOGIC_NONGKI} ]]; then
+ echo "CONFIG_AMLOGIC_NONGKI=y" >> ${ROOT_DIR}/${FRAGMENT_CONFIG}
+ SKIP_EXT_MODULES=1
+ export SKIP_EXT_MODULES
+ EXT_MODULES=
+ export EXT_MODULES
+ fi
+ KCONFIG_CONFIG=${ROOT_DIR}/${KERNEL_DIR}/arch/arm64/configs/${DEFCONFIG} ${ROOT_DIR}/${KERNEL_DIR}/scripts/kconfig/merge_config.sh -m -r ${ROOT_DIR}/${KERNEL_DIR}/arch/arm64/configs/gki_defconfig ${ROOT_DIR}/${FRAGMENT_CONFIG}
+}
+export -f pre_defconfig_cmds
+
+function post_defconfig_cmds() {
+ check_defconfig
+ rm ${ROOT_DIR}/${KERNEL_DIR}/arch/arm64/configs/${DEFCONFIG}
+ pushd ${ROOT_DIR}/common_drivers
+ git checkout ${ROOT_DIR}/${FRAGMENT_CONFIG}
+ popd
+}
+export -f post_defconfig_cmds
+
+function read_ext_module_config() {
+ ALL_LINE=""
+ while read LINE
+ do
+ if [[ $LINE != \#* && $LINE != "" ]]; then
+ ALL_LINE="$ALL_LINE"" ""$LINE"
+ fi
+ done < $1
+ export GKI_EXT_MODULE_CONFIG=$ALL_LINE
+ echo "GKI_EXT_MODULE_CONFIG=${GKI_EXT_MODULE_CONFIG}"
+}
+
+function read_ext_module_predefine() {
+ PRE_DEFINE=""
+
+ for y_config in `cat $1 | grep "^CONFIG_.*=y" | sed 's/=y//'`;
+ do
+ PRE_DEFINE="$PRE_DEFINE"" -D"${y_config}
+ done
+
+ for m_config in `cat $1 | grep "^CONFIG_.*=m" | sed 's/=m//'`;
+ do
+ PRE_DEFINE="$PRE_DEFINE"" -D"${m_config}_MODULE
+ done
+
+ export GKI_EXT_MODULE_PREDEFINE=$PRE_DEFINE
+ echo "GKI_EXT_MODULE_PREDEFINE=${GKI_EXT_MODULE_PREDEFINE}"
+}
+
+function prepare_module_build() {
+ if [[ -z ${AMLOGIC_NONGKI} ]]; then
+ read_ext_module_config $FRAGMENT_CONFIG && read_ext_module_predefine $FRAGMENT_CONFIG
+ fi
+}
+
+export -f prepare_module_build