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