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