build: optimize android build time [1/1]

PD#SWPL-172042

Problem:
optimize android build time

Solution:
1. further optimization based on mk.sh fast build mode
2. enable build system_dlkm image

Verify:
local

Change-Id: I121bac2d05d5929147fde9c2c86024af2db2b13b
Signed-off-by: Wanwei Jiang <wanwei.jiang@amlogic.com>
diff --git a/amlogic_utils.bzl b/amlogic_utils.bzl
index 1007143..609ad4d 100644
--- a/amlogic_utils.bzl
+++ b/amlogic_utils.bzl
@@ -129,7 +129,7 @@
         name = name + "_images",
         build_dtbo = True,
         dtbo_srcs = [":" + name + "/" + e for e in dtbo_srcs],
-        build_initramfs = True,
+        build_initramfs = False if FAST_BUILD else True,
         kernel_build = name,
         kernel_modules_install = name + "_modules_install",
     )
@@ -144,7 +144,7 @@
         name + "_merged_kernel_uapi_headers",
     ]
 
-    fast_build_dist_targets = [
+    fast_fatload_build_dist_targets = [
         name,
         # name + "_images",
         name + "_modules_install",
@@ -154,9 +154,25 @@
         # name + "_merged_kernel_uapi_headers",
     ]
 
+    fast_android_build_dist_targets = [
+        name,
+        name + "_images",
+        name + "_modules_install",
+        # Mixed build: Additional GKI artifacts.
+        # ":kernel_aarch64_download_or_build",
+        ":kernel_aarch64_additional_artifacts",
+        # name + "_merged_kernel_uapi_headers",
+    ]
+
+    targets = dist_targets
+    if FAST_BUILD == "fatload":
+        targets = fast_fatload_build_dist_targets
+    if FAST_BUILD == "android":
+        targets = fast_android_build_dist_targets
+
     copy_to_dist_dir(
         name = name + "_dist",
-        data = fast_build_dist_targets if FAST_BUILD else dist_targets,
+        data = targets,
         dist_dir = dist_dir,
         flat = True,
         log = "info",
diff --git a/amlogic_utils.sh b/amlogic_utils.sh
index a057ffc..d9f698d 100644
--- a/amlogic_utils.sh
+++ b/amlogic_utils.sh
@@ -335,7 +335,7 @@
 function bazel_extra_cmds() {
 	modules_install
 
-	if [[ -n ${FAST_BUILD} ]]; then
+	if [[ -z ${ANDROID_PROJECT} && -n ${FAST_BUILD} ]]; then
 		return
 	fi
 
@@ -559,7 +559,7 @@
 	if [[ "${FULL_KERNEL_VERSION}" != "common13-5.15" && "${ARCH}" == "arm64" ]]; then
 		gki_modules_temp_file=`mktemp /tmp/config.XXXXXXXXXXXX`
 		if [[ ${BAZEL} == "1" ]]; then
-			if [[ -n ${FAST_BUILD} ]]; then
+			if [[ -z ${ANDROID_PROJECT} && -n ${FAST_BUILD} ]]; then
 				cp ${BAZEL_OUT}/kernel_aarch64_all_module_names/kernel_aarch64_modules ${gki_modules_temp_file}
 			else
 				cp ${DIST_DIR}/system_dlkm.modules.load ${gki_modules_temp_file}
@@ -789,13 +789,18 @@
 		BAZEL_OUT=${ROOT_DIR}/bazel-out/k8-fastbuild/bin/common
 		if [[ -n ${FAST_BUILD} ]]; then
 			kernel_release=`cat ${BAZEL_OUT}/kernel_aarch64/include/config/kernel.release`
-			mkdir -p ${OUT_AMLOGIC_DIR}/fast_build/amlogic
-			tar -zxf ${BAZEL_OUT}/amlogic/modules_staging_dir_self.tar.gz -C ${OUT_AMLOGIC_DIR}/fast_build/amlogic
-			cp ${BAZEL_OUT}/amlogic_kbuild_mixed_tree/System.map ${OUT_AMLOGIC_DIR}/fast_build/amlogic
-			pushd ${OUT_AMLOGIC_DIR}/fast_build/amlogic
-			depmod -e -F System.map -b . ${kernel_release}
-			cp ${OUT_AMLOGIC_DIR}/fast_build/amlogic/lib/modules/${kernel_release}/modules.order ${DIST_DIR}/modules.load
-			popd
+			if [[ -z ${ANDROID_PROJECT} ]]; then
+				mkdir -p ${OUT_AMLOGIC_DIR}/fast_build/amlogic
+				tar -zxf ${BAZEL_OUT}/amlogic/modules_staging_dir_self.tar.gz -C ${OUT_AMLOGIC_DIR}/fast_build/amlogic
+				cp ${BAZEL_OUT}/amlogic_kbuild_mixed_tree/System.map ${OUT_AMLOGIC_DIR}/fast_build/amlogic
+				pushd ${OUT_AMLOGIC_DIR}/fast_build/amlogic
+				depmod -e -F System.map -b . ${kernel_release}
+				cp ${OUT_AMLOGIC_DIR}/fast_build/amlogic/lib/modules/${kernel_release}/modules.order ${DIST_DIR}/modules.load
+				popd
+			else
+				cp ${BAZEL_OUT}/amlogic_modules_install/staging/lib/modules/${kernel_release}/modules.dep ${DIST_DIR}/modules.load
+				sed -i "s/:.*//g" ${DIST_DIR}/modules.load
+			fi
 		fi
 		while read module
 		do
@@ -804,7 +809,7 @@
 				if [[ -f ${DIST_DIR}/${module_name} ]]; then
 					cp ${DIST_DIR}/${module_name} ${OUT_AMLOGIC_DIR}/modules
 				else
-					if [[ -n ${FAST_BUILD} ]]; then
+					if [[ -z ${ANDROID_PROJECT} && -n ${FAST_BUILD} ]]; then
 						module_f=
 						for module_l in `find ${BAZEL_OUT}/kernel_aarch64 -name ${module_name}`; do
 							if [[ ${module_l} =~ ${module#*/} ]]; then
@@ -840,7 +845,7 @@
 			fi
 		done < ${DIST_DIR}/modules.load
 
-		if [[ -n ${FAST_BUILD} ]]; then
+		if [[ -z ${ANDROID_PROJECT} && -n ${FAST_BUILD} ]]; then
 			dep_file=${OUT_AMLOGIC_DIR}/fast_build/amlogic/lib/modules/${kernel_release}/modules.dep
 		else
 			dep_file=`find ${BAZEL_OUT}/amlogic_modules_install -name *.dep | grep "amlogic"`
diff --git a/mk.sh b/mk.sh
index a9bee75..c125757 100755
--- a/mk.sh
+++ b/mk.sh
@@ -172,6 +172,20 @@
 		echo 						>> ${PROJECT_DIR}/project.bzl
 		echo "KCONFIG_EXT_SRCS = [" 			>> ${PROJECT_DIR}/project.bzl
 		echo "]" 					>> ${PROJECT_DIR}/project.bzl
+
+		echo 						>> ${PROJECT_DIR}/project.bzl
+		if [[ -n ${FAST_BUILD} ]]; then
+			echo "FAST_BUILD = \"fatload\""		>> ${PROJECT_DIR}/project.bzl
+		else
+			echo "FAST_BUILD = \"\""		>> ${PROJECT_DIR}/project.bzl
+		fi
+	else
+		echo 						>> ${PROJECT_DIR}/project.bzl
+		if [[ -n ${FAST_BUILD} ]]; then
+			echo "FAST_BUILD = \"android\""		>> ${PROJECT_DIR}/project.bzl
+		else
+			echo "FAST_BUILD = \"\""		>> ${PROJECT_DIR}/project.bzl
+		fi
 	fi
 
 	echo 						>> ${PROJECT_DIR}/project.bzl
@@ -184,8 +198,6 @@
 	sed -i "/UPGRADE_PROJECT/d" ${PROJECT_DIR}/project.bzl
 	echo "UPGRADE_PROJECT = \"${UPGRADE_PROJECT}\"" >> ${PROJECT_DIR}/project.bzl
 
-	echo "FAST_BUILD = \"${FAST_BUILD}\""		>> ${PROJECT_DIR}/project.bzl
-
 	[[ -f ${PROJECT_DIR}/dtb.bzl ]] || touch ${PROJECT_DIR}/dtb.bzl
 	echo "# SPDX-License-Identifier: GPL-2.0" 	>  ${PROJECT_DIR}/dtb.bzl
 	echo 						>> ${PROJECT_DIR}/dtb.bzl