scripts: separate the code for building android 32bit from 64bit  [1/1]

PD#SWPL-134884

Problem:
the script is not clear

Solution:
separate the code for building android 32bit from 64bit.

Verify:
local

Change-Id: I116fd122061abf059f0134c94c09198f822b5c0a
Signed-off-by: Dezhen Wang <dezhen.wang@amlogic.com>
diff --git a/amlogic_utils.sh b/amlogic_utils.sh
index a35e059..bdb3a5f 100644
--- a/amlogic_utils.sh
+++ b/amlogic_utils.sh
@@ -1549,178 +1549,6 @@
 }
 export -f auto_patch_to_common_dir
 
-function handle_input_parameters_for_smarthome () {
-	VA=
-	ARGS=()
-	for i in "$@"
-	do
-		case $i in
-		--savedefconfig)
-			SAVEDEFCONFIG=1
-			shift
-			;;
-		--menuconfig)
-			MENUCONFIG=1
-			shift
-			;;
-		--dtb)
-			DTB=1
-			shift
-			;;
-		--manual_insmod_module)
-			MANUAL_INSMOD_MODULE=1
-			shift
-			;;
-		--patch)
-			ONLY_PATCH=1
-			shift
-			;;
-		-h|--help)
-			show_help
-			exit 0
-			;;
-		*)
-			if [[ -n $1 ]];
-			then
-				if [[ -z ${VA} ]];
-				then
-					ARGS+=("$1")
-				fi
-			fi
-			VA=
-			shift
-			;;
-		esac
-	done
-}
-
-export -f handle_input_parameters_for_smarthome
-
-function set_default_parameters_for_smarthome () {
-	version_message=$(grep -rn BRANCH= ${KERNEL_DIR}/build.config.constants)
-	version_message="common${version_message##*android}"
-	if [[ -n ${FULL_KERNEL_VERSION} ]]; then
-		if [[ "${FULL_KERNEL_VERSION}" != "${version_message}" ]]; then
-			echo "kernel version is not match!!"
-			exit
-		fi
-	else
-		FULL_KERNEL_VERSION=${version_message}
-	fi
-
-	tool_args=()
-	prebuilts_paths=(
-		CLANG_PREBUILT_BIN
-		#BUILDTOOLS_PREBUILT_BIN
-	)
-	echo CC_CLANG=$CC_CLANG
-	if [[ $CC_CLANG -eq "1" ]]; then
-		source ${ROOT_DIR}/${KERNEL_DIR}/build.config.common
-		if [[ -n "${LLVM}" ]]; then
-			tool_args+=("LLVM=1")
-		fi
-		#if [ -n "${DTC}" ]; then
-		#	tool_args+=("DTC=${DTC}")
-		#fi
-		for prebuilt_bin in "${prebuilts_paths[@]}"; do
-			prebuilt_bin=\${${prebuilt_bin}}
-			eval prebuilt_bin="${prebuilt_bin}"
-			if [ -n "${prebuilt_bin}" ]; then
-				PATH=${PATH//"${ROOT_DIR}\/${prebuilt_bin}:"}
-				PATH=${ROOT_DIR}/${prebuilt_bin}:${PATH} # add the clang tool to env PATH
-			fi
-		done
-		export PATH
-	elif [[ -n $CROSS_COMPILE_TOOL ]]; then
-		export CROSS_COMPILE=${CROSS_COMPILE_TOOL}
-	fi
-
-	if [[ $ARCH == arm64 ]]; then
-		OUTDIR=${ROOT_DIR}/out/kernel-5.15-64
-	elif [[ $ARCH == arm ]]; then
-		OUTDIR=${ROOT_DIR}/out/kernel-5.15-32
-		tool_args+=("LOADADDR=0x108000")
-	elif [[ $ARCH == riscv ]]; then
-		OUTDIR=${ROOT_DIR}/out/riscv-kernel-5.15-64
-	fi
-	TOOL_ARGS="${tool_args[@]}"
-
-	OUT_DIR=${OUTDIR}/common
-	mkdir -p ${OUT_DIR}
-	if [ "${SKIP_RM_OUTDIR}" != "1" ] ; then
-		rm -rf ${OUTDIR}
-	fi
-
-	echo "========================================================"
-	echo ""
-	export DIST_DIR=$(readlink -m ${OUTDIR}/dist)
-	export MODULES_STAGING_DIR=$(readlink -m ${OUTDIR}/staging)
-	export OUT_AMLOGIC_DIR=$(readlink -m ${OUTDIR}/amlogic)
-	echo OUTDIR=$OUTDIR DIST_DIR=$DIST_DIR MODULES_STAGING_DIR=$MODULES_STAGING_DIR KERNEL_DIR=$KERNEL_DIR
-
-
-	source ${ROOT_DIR}/build/kernel/build_utils.sh
-
-	DTS_EXT_DIR=${KERNEL_DIR}/${COMMON_DRIVERS_DIR}/arch/${ARCH}/boot/dts/amlogic
-	DTS_EXT_DIR=$(real_path ${ROOT_DIR}/${DTS_EXT_DIR} ${KERNEL_DIR})
-	export dtstree=${DTS_EXT_DIR}
-	export DTC_INCLUDE=${ROOT_DIR}/${KERNEL_DIR}/${COMMON_DRIVERS_DIR}/include
-
-	EXT_MODULES="
-		${EXT_MODULES}
-	"
-
-	EXT_MODULES_CONFIG="
-		${KERNEL_DIR}/${COMMON_DRIVERS_DIR}/scripts/amlogic/ext_modules_config
-	"
-
-	EXT_MODULES_PATH="
-		${KERNEL_DIR}/${COMMON_DRIVERS_DIR}/scripts/amlogic/ext_modules_path
-	"
-
-	POST_KERNEL_BUILD_CMDS="prepare_module_build"
-	EXTRA_CMDS="extra_cmds"
-
-	IN_KERNEL_MODULES=1
-}
-
-export -f set_default_parameters_for_smarthome
-
-function savedefconfig_cmd_for_smarthome () {
-	if [[ -n ${SAVEDEFCONFIG} ]]; then
-		set -x
-		make ARCH=${ARCH} -C ${ROOT_DIR}/${KERNEL_DIR} O=${OUT_DIR} ${DEFCONFIG}
-		make ARCH=${ARCH} -C ${ROOT_DIR}/${KERNEL_DIR} O=${OUT_DIR} savedefconfig
-		rm ${KERNEL_DIR}/${COMMON_DRIVERS_DIR}/arch/${ARCH}/configs/${DEFCONFIG}
-		cp -f ${OUT_DIR}/defconfig  ${KERNEL_DIR}/${COMMON_DRIVERS_DIR}/arch/${ARCH}/configs/${DEFCONFIG}
-		set +x
-		exit
-	fi
-}
-export -f savedefconfig_cmd_for_smarthome
-
-function only_build_dtb_for_smarthome () {
-	if [[ -n ${DTB} ]]; then
-		set -x
-		make ARCH=${ARCH} -C ${ROOT_DIR}/${KERNEL_DIR} O=${OUT_DIR} ${TOOL_ARGS} ${DEFCONFIG}
-		make ARCH=${ARCH} -C ${ROOT_DIR}/${KERNEL_DIR} O=${OUT_DIR} ${TOOL_ARGS} dtbs || exit
-		set +x
-		exit
-	fi
-}
-export -f only_build_dtb_for_smarthome
-
-function make_menuconfig_cmd_for_smarthome () {
-	if [[ -n ${MENUCONFIG} ]]; then
-		set -x
-		make ARCH=${ARCH} -C ${ROOT_DIR}/${KERNEL_DIR} O=${OUT_DIR} ${DEFCONFIG}
-		make ARCH=${ARCH} -C ${ROOT_DIR}/${KERNEL_DIR} O=${OUT_DIR} menuconfig
-		set +x
-		exit
-	fi
-}
-export -f make_menuconfig_cmd_for_smarthome
-
 function build_kernel_for_different_cpu_architecture () {
 	set -x
 	if [[ $ARCH == arm64 ]]; then
@@ -1772,21 +1600,6 @@
 }
 export -f build_ext_modules
 
-function copy_modules_and_rebuild_rootfs_for_smarthome () {
-
-	copy_modules_files_to_dist_dir
-
-	if [ -f ${ROOT_DIR}/${KERNEL_DIR}/${COMMON_DRIVERS_DIR}/rootfs_base.cpio.gz.uboot ]; then
-		echo "========================================================"
-		echo "Rebuild rootfs in order to install modules!"
-		rebuild_rootfs ${ARCH}
-		echo "Build success!"
-	else
-		echo "There's no file ${ROOT_DIR}/${KERNEL_DIR}/${COMMON_DRIVERS_DIR}/rootfs_base.cpio.gz.uboot, so don't rebuild rootfs!"
-	fi
-}
-export -f copy_modules_and_rebuild_rootfs_for_smarthome
-
 function copy_modules_files_to_dist_dir () {
 	MODULES=$(find ${MODULES_STAGING_DIR} -type f -name "*.ko")
 	if [ -n "${MODULES}" ]; then
@@ -2087,3 +1900,48 @@
 	set +x
 }
 export -f modules_install_for_32bit
+
+function build_android_32bit () {
+
+	source ${KERNEL_DIR}/${COMMON_DRIVERS_DIR}/build.config.amlogic32
+
+	pre_defconfig_cmds
+
+	CC_CLANG=1
+
+	set_default_parameters_for_32bit
+
+	export USERCFLAGS USERLDFLAGS BRANCH KMI_GENERATION
+	export HOSTCC HOSTCXX CC LD AR NM OBJCOPY OBJDUMP OBJSIZE READELF STRIP PATH KCONFIG_CONFIG
+	export KERNEL_DIR ROOT_DIR OUT_DIR TOOL_ARGS MODULE_STRIP_FLAG DEPMOD INSTALL_MOD_DIR COMMON_OUT_DIR
+
+	setting_up_for_build
+
+	mkdir -p ${DIST_DIR} ${MODULES_STAGING_DIR}
+
+	build_kernel_for_32bit
+
+	post_defconfig_cmds
+
+	eval ${POST_KERNEL_BUILD_CMDS}
+
+	modules_install_for_32bit
+
+	build_ext_modules
+
+	set -x
+	eval ${EXTRA_CMDS}
+	set +x
+
+	copy_files_to_dist_dir
+
+	installing_UAPI_kernel_headers
+
+	copy_kernel_headers_to_compress
+
+	copy_modules_files_to_dist_dir
+
+	make_dtbo
+
+}
+export -f build_android_32bit