blob: e0ab19e874c27548a92f5701e23e779edb61c0b7 [file] [log] [blame]
wanwei.jiang612a8882021-11-23 17:12:23 +08001#!/bin/bash
2
wanwei.jiang612a8882021-11-23 17:12:23 +08003function show_help {
4 echo "USAGE: $0 [--nongki] [--abi]"
5 echo
Lei Zhang2853aa52022-08-23 09:40:06 +08006 echo " --arch for ARCH, build 64 or 32 bit kernel, arm|arm64[default], require parameter value"
wanwei.jiang5c8d2b62021-11-26 20:36:33 +08007 echo " --abi for ABI, call build_abi.sh not build.sh, 1|0[default], not require parameter value"
8 echo " --build_config for BUILD_CONFIG, common_drivers/build.config.amlogic[default]|common/build.config.gki.aarch64, require parameter value"
wanwei.jiang5c8d2b62021-11-26 20:36:33 +08009 echo " --symbol_strict for KMI_SYMBOL_LIST_STRICT_MODE, 1[default]|0, require parameter value"
wanwei.jiangd7b29ef2021-12-01 19:59:41 +080010 echo " --lto for LTO, full|thin[default]|none, require parameter value"
Wanwei Jiang0a74fb12022-12-09 16:27:40 +080011 echo " --menuconfig for only menuconfig, not require parameter value"
12 echo " --basicconfig for basicconfig, m(menuconfig)[default]|n"
wanwei.jiang5c8d2b62021-11-26 20:36:33 +080013 echo " --image for only build kernel, not require parameter value"
14 echo " --modules for only build modules, not require parameter value"
15 echo " --dtbs for only build dtbs, not require parameter value"
wanwei.jiang7ef5fd42022-02-18 16:36:19 +080016 echo " --kernel_dir for KERNEL_DIR, common[default]|other dir, require parameter value"
17 echo " --common_drivers_dir for COMMON_DRIVERS_DIR, common[default]|other dir, require parameter value"
18 echo " --build_dir for BUILD_DIR, build[default]|other dir, require parameter value"
wanwei.jiang1482c872022-05-13 20:33:51 +080019 echo " --check_defconfig for check defconfig"
20 echo " --modules_depend for check modules depend"
wanwei.jiang3eab75f2022-05-25 00:39:52 +080021 echo " --android_project for android project build"
Wanwei Jiang0a74fb12022-12-09 16:27:40 +080022 echo " --gki_20 for build gki 2.0 kernel: gki_defconfig + amlogic_gki.fragment"
23 echo " --gki_10 for build gki 1.0 kernel: gki_defconfig + amlogic_gki.fragment + amlogic_gki.10"
24 echo " --gki_debug for build gki debug kernel: gki_defconfig + amlogic_gki.fragment + amlogic_gki.10 + amlogic_gki.debug"
25 echo " for note: current can't use --gki_10, amlogic_gki.10 for optimize, amlogic_gki.debug for debug, and follow GKI1.0"
26 echo " so build GKI1.0 Image need with --gki_debug, default parameter --gki_debug"
27 echo " --fast_build for fast build"
28 echo " --upgrade for android upgrade builtin module optimize vendor_boot size"
Dezhen Wang124ad7d2023-02-06 15:35:14 +080029 echo " --manual_insmod_module for insmod ko manually when kernel is booting.It's usually used in debug test"
wanwei.jiang612a8882021-11-23 17:12:23 +080030}
wanwei.jiang612a8882021-11-23 17:12:23 +080031
wanwei.jiang5c8d2b62021-11-26 20:36:33 +080032VA=
wanwei.jiang612a8882021-11-23 17:12:23 +080033ARGS=()
34for i in "$@"
35do
36 case $i in
Lei Zhang2853aa52022-08-23 09:40:06 +080037 --arch)
38 ARCH=$2
39 VA=1
40 shift
41 ;;
wanwei.jiang612a8882021-11-23 17:12:23 +080042 --abi)
43 ABI=1
44 shift
45 ;;
46 --build_config)
47 BUILD_CONFIG=$2
wanwei.jiang5c8d2b62021-11-26 20:36:33 +080048 VA=1
wanwei.jiang612a8882021-11-23 17:12:23 +080049 shift
wanwei.jiang5c8d2b62021-11-26 20:36:33 +080050 ;;
wanwei.jiangd7b29ef2021-12-01 19:59:41 +080051 --lto)
52 LTO=$2
53 VA=1
54 shift
55 ;;
wanwei.jiang5c8d2b62021-11-26 20:36:33 +080056 --symbol_strict)
57 KMI_SYMBOL_LIST_STRICT_MODE=$2
58 VA=1
59 shift
wanwei.jiang612a8882021-11-23 17:12:23 +080060 ;;
Wanwei Jiang0a74fb12022-12-09 16:27:40 +080061 --menuconfig)
62 MENUCONFIG=1
63 shift
64 ;;
65 --basicconfig)
66 if [ "$2" = "m" ] || [ "$2" = "n" ]; then
67 BASICCONFIG=$2
68 else
69 BASICCONFIG="m"
70 fi
71 VA=1
wanwei.jiang612a8882021-11-23 17:12:23 +080072 shift
73 ;;
74 --image)
75 IMAGE=1
76 shift
77 ;;
78 --modules)
79 MODULES=1
80 shift
81 break
82 ;;
83 --dtbs)
84 DTB_BUILD=1
85 shift
86 ;;
wanwei.jiang7ef5fd42022-02-18 16:36:19 +080087 --kernel_dir)
88 KERNEL_DIR=$2
89 VA=1
90 shift
91 ;;
92 --common_drivers_dir)
93 COMMON_DRIVERS_DIR=$2
94 VA=1
95 shift
96 ;;
97 --build_dir)
98 BUILD_DIR=$2
99 VA=1
100 shift
101 ;;
wanwei.jiang1482c872022-05-13 20:33:51 +0800102 --check_defconfig)
103 CHECK_DEFCONFIG=1
104 shift
105 ;;
106 --modules_depend)
107 MODULES_DEPEND=1
108 shift
109 ;;
wanwei.jiang3eab75f2022-05-25 00:39:52 +0800110 --android_project)
111 ANDROID_PROJECT=$2
112 VA=1
113 shift
114 ;;
Wanwei Jiang2d4f9742022-09-13 11:22:17 +0800115 --gki_20)
116 GKI_CONFIG=gki_20
wanwei.jiang6fdd3152022-08-01 20:35:05 +0800117 shift
118 ;;
Wanwei Jiang2d4f9742022-09-13 11:22:17 +0800119 --gki_10)
120 GKI_CONFIG=gki_10
wanwei.jiang6fdd3152022-08-01 20:35:05 +0800121 shift
122 ;;
Wanwei Jiang2d4f9742022-09-13 11:22:17 +0800123 --gki_debug)
124 GKI_CONFIG=gki_debug
wanwei.jiang6fdd3152022-08-01 20:35:05 +0800125 shift
126 ;;
Wanwei Jiang0a74fb12022-12-09 16:27:40 +0800127 --fast_build)
Wanwei Jianga5edc532022-12-18 17:25:59 +0800128 FAST_BUILD=1
Wanwei Jiang0a74fb12022-12-09 16:27:40 +0800129 shift
130 ;;
qinglin.li7a994a02022-12-05 15:04:40 +0800131 --upgrade)
132 UPGRADE_PROJECT=1
133 shift
134 ;;
Dezhen Wang124ad7d2023-02-06 15:35:14 +0800135 --manual_insmod_module)
136 MANUAL_INSMOD_MODULE=1
137 shift
138 ;;
wanwei.jiang612a8882021-11-23 17:12:23 +0800139 -h|--help)
140 show_help
141 exit 0
142 ;;
143 *)
144 if [[ -n $1 ]];
145 then
wanwei.jiang5c8d2b62021-11-26 20:36:33 +0800146 if [[ -z ${VA} ]];
147 then
148 ARGS+=("$1")
149 fi
wanwei.jiang612a8882021-11-23 17:12:23 +0800150 fi
wanwei.jiang5c8d2b62021-11-26 20:36:33 +0800151 VA=
wanwei.jiang612a8882021-11-23 17:12:23 +0800152 shift
153 ;;
154 esac
155done
wanwei.jiang7ef5fd42022-02-18 16:36:19 +0800156
Lei Zhang2853aa52022-08-23 09:40:06 +0800157if [ "${ARCH}" = "arm" ]; then
158 ARGS+=("LOADADDR=0x108000")
159else
160 ARCH=arm64
161fi
162
163set -- "${ARGS[@]}" # other parameters are used as script parameters of build_abi.sh or build.sh
wanwei.jiang7ef5fd42022-02-18 16:36:19 +0800164 # amlogic parameters default value
165if [[ -z "${ABI}" ]]; then
166 ABI=0
167fi
wanwei.jiang7ef5fd42022-02-18 16:36:19 +0800168if [[ -z "${LTO}" ]]; then
169 LTO=thin
170fi
171if [[ -z "${KERNEL_DIR}" ]]; then
172 KERNEL_DIR=common
173fi
174if [[ ! -f ${KERNEL_DIR}/init/main.c ]]; then
175 echo "The directory of kernel does not exist";
176 exit
177fi
178if [[ -z "${COMMON_DRIVERS_DIR}" ]]; then
179 if [[ -d ${KERNEL_DIR}/../common_drivers ]]; then
180 COMMON_DRIVERS_DIR=../common_drivers
181 elif [[ -d "${KERNEL_DIR}/common_drivers" ]]; then
182 COMMON_DRIVERS_DIR=common_drivers
183 fi
184fi
185if [[ ! -f ${KERNEL_DIR}/${COMMON_DRIVERS_DIR}/amlogic_utils.sh ]]; then
186 echo "The directory of common_drivers does not exist";
187 exit
188fi
189if [[ -z "${BUILD_CONFIG}" ]]; then
Lei Zhang2853aa52022-08-23 09:40:06 +0800190 if [ "${ARCH}" = "arm64" ]; then
191 BUILD_CONFIG=${KERNEL_DIR}/${COMMON_DRIVERS_DIR}/build.config.amlogic
192 elif [ "${ARCH}" = "arm" ]; then
193 BUILD_CONFIG=${KERNEL_DIR}/${COMMON_DRIVERS_DIR}/build.config.amlogic32
194 fi
wanwei.jiang7ef5fd42022-02-18 16:36:19 +0800195fi
196if [[ -z "${BUILD_DIR}" ]]; then
197 BUILD_DIR=build
198fi
199if [[ ! -f ${BUILD_DIR}/build_abi.sh ]]; then
200 echo "The directory of build does not exist";
201fi
202
wanwei.jiangc663c4c2022-06-16 14:41:23 +0800203ROOT_DIR=$(readlink -f $(dirname $0))
204if [[ ! -f ${ROOT_DIR}/${KERNEL_DIR}/init/main.c ]]; then
205 ROOT_DIR=`pwd`
206 if [[ ! -f ${ROOT_DIR}/${KERNEL_DIR}/init/main.c ]]; then
207 echo "the file path of $0 is incorrect"
208 exit
209 fi
210fi
211export ROOT_DIR
212
wanwei.jiang1482c872022-05-13 20:33:51 +0800213CHECK_DEFCONFIG=${CHECK_DEFCONFIG:-0}
214MODULES_DEPEND=${MODULES_DEPEND:-0}
wanwei.jiangc663c4c2022-06-16 14:41:23 +0800215if [[ ! -f ${KERNEL_BUILD_VAR_FILE} ]]; then
216 export KERNEL_BUILD_VAR_FILE=`mktemp /tmp/kernel.XXXXXXXXXXXX`
217 RM_KERNEL_BUILD_VAR_FILE=1
218fi
wanwei.jiang1482c872022-05-13 20:33:51 +0800219
Wanwei Jiang2d4f9742022-09-13 11:22:17 +0800220GKI_CONFIG=${GKI_CONFIG:-gki_debug}
wanwei.jiang6fdd3152022-08-01 20:35:05 +0800221
wanwei.jiang236e9a32021-12-07 16:34:14 +0800222set -e
Dezhen Wang124ad7d2023-02-06 15:35:14 +0800223export ABI BUILD_CONFIG LTO KMI_SYMBOL_LIST_STRICT_MODE CHECK_DEFCONFIG MANUAL_INSMOD_MODULE
224echo ABI=${ABI} BUILD_CONFIG=${BUILD_CONFIG} LTO=${LTO} KMI_SYMBOL_LIST_STRICT_MODE=${KMI_SYMBOL_LIST_STRICT_MODE} CHECK_DEFCONFIG=${CHECK_DEFCONFIG} MANUAL_INSMOD_MODULE=${MANUAL_INSMOD_MODULE}
Wanwei Jianga5edc532022-12-18 17:25:59 +0800225export KERNEL_DIR COMMON_DRIVERS_DIR BUILD_DIR ANDROID_PROJECT GKI_CONFIG UPGRADE_PROJECT FAST_BUILD
226echo KERNEL_DIR=${KERNEL_DIR} COMMON_DRIVERS_DIR=${COMMON_DRIVERS_DIR} BUILD_DIR=${BUILD_DIR} ANDROID_PROJECT=${ANDROID_PROJECT} GKI_CONFIG=${GKI_CONFIG} UPGRADE_PROJECT=${UPGRADE_PROJECT} FAST_BUILD=${FAST_BUILD}
wanwei.jiang5c8d2b62021-11-26 20:36:33 +0800227
Wanwei Jiangac25a172022-11-03 16:49:32 +0800228export CROSS_COMPILE=
229
wanwei.jiang612a8882021-11-23 17:12:23 +0800230if [ "${ABI}" -eq "1" ]; then
231 export OUT_DIR_SUFFIX="_abi"
232else
233 OUT_DIR_SUFFIX=
234fi
235
Wanwei Jiang0a74fb12022-12-09 16:27:40 +0800236echo MENUCONFIG=${MENUCONFIG} BASICCONFIG=${BASICCONFIG} IMAGE=${IMAGE} MODULES=${MODULES} DTB_BUILD=${DTB_BUILD}
237if [[ -n ${MENUCONFIG} ]] || [[ -n ${BASICCONFIG} ]]; then
238 # ${ROOT_DIR}/${BUILD_DIR}/config.sh menuconfig
239 HERMETIC_TOOLCHAIN=0
wanwei.jiang7ef5fd42022-02-18 16:36:19 +0800240 source "${ROOT_DIR}/${BUILD_DIR}/build_utils.sh"
Wanwei Jiang0a74fb12022-12-09 16:27:40 +0800241 source "${ROOT_DIR}/${BUILD_DIR}/_setup_env.sh"
wanwei.jiang612a8882021-11-23 17:12:23 +0800242
Wanwei Jiang0a74fb12022-12-09 16:27:40 +0800243 orig_config=$(mktemp)
Wanwei Jiangb3b3ca02022-12-29 18:03:05 +0800244 orig_defconfig=$(mktemp)
245 out_config="${OUT_DIR}/.config"
246 out_defconfig="${OUT_DIR}/defconfig"
Wanwei Jiang0a74fb12022-12-09 16:27:40 +0800247 changed_config=$(mktemp)
Wanwei Jiangb3b3ca02022-12-29 18:03:05 +0800248 changed_defconfig=$(mktemp)
Wanwei Jiang0a74fb12022-12-09 16:27:40 +0800249
250 if [[ -n ${BASICCONFIG} ]]; then
251 set -x
252 defconfig_name=`basename ${GKI_BASE_CONFIG}`
253 (cd ${KERNEL_DIR} && make ${TOOL_ARGS} O=${OUT_DIR} "${MAKE_ARGS[@]}" ${defconfig_name})
Wanwei Jiangb3b3ca02022-12-29 18:03:05 +0800254 (cd ${KERNEL_DIR} && make ${TOOL_ARGS} O=${OUT_DIR} "${MAKE_ARGS[@]}" savedefconfig)
255 cp ${out_config} ${orig_config}
256 cp ${out_defconfig} ${orig_defconfig}
Wanwei Jiang0a74fb12022-12-09 16:27:40 +0800257 if [ "${BASICCONFIG}" = "m" ]; then
258 (cd ${KERNEL_DIR} && make ${TOOL_ARGS} O=${OUT_DIR} "${MAKE_ARGS[@]}" menuconfig)
259 fi
Wanwei Jiang0a74fb12022-12-09 16:27:40 +0800260 (cd ${KERNEL_DIR} && make ${TOOL_ARGS} O=${OUT_DIR} "${MAKE_ARGS[@]}" savedefconfig)
Wanwei Jiangb3b3ca02022-12-29 18:03:05 +0800261 ${KERNEL_DIR}/scripts/diffconfig ${orig_config} ${out_config} > ${changed_config}
262 ${KERNEL_DIR}/scripts/diffconfig ${orig_defconfig} ${out_defconfig} > ${changed_defconfig}
Wanwei Jiang0a74fb12022-12-09 16:27:40 +0800263 if [ "${ARCH}" = "arm" ]; then
Wanwei Jiangb3b3ca02022-12-29 18:03:05 +0800264 cp ${out_defconfig} ${GKI_BASE_CONFIG}
Wanwei Jiang0a74fb12022-12-09 16:27:40 +0800265 fi
266 set +x
267 echo
268 echo "========================================================"
Wanwei Jiangb3b3ca02022-12-29 18:03:05 +0800269 echo "==================== .config diff ===================="
Wanwei Jiang0a74fb12022-12-09 16:27:40 +0800270 cat ${changed_config}
Wanwei Jiangb3b3ca02022-12-29 18:03:05 +0800271 echo "==================== defconfig diff ===================="
272 cat ${changed_defconfig}
Wanwei Jiang0a74fb12022-12-09 16:27:40 +0800273 echo "========================================================"
274 echo
275 else
wanwei.jiang612a8882021-11-23 17:12:23 +0800276 set -x
277 pre_defconfig_cmds
278 (cd ${KERNEL_DIR} && make ${TOOL_ARGS} O=${OUT_DIR} "${MAKE_ARGS[@]}" ${DEFCONFIG})
wanwei.jiang5d97ab12022-07-25 21:30:39 +0800279 (cd ${KERNEL_DIR} && make ${TOOL_ARGS} O=${OUT_DIR} "${MAKE_ARGS[@]}" savedefconfig)
Wanwei Jiangb3b3ca02022-12-29 18:03:05 +0800280 cp ${out_config} ${orig_config}
281 cp ${out_defconfig} ${orig_defconfig}
282 (cd ${KERNEL_DIR} && make ${TOOL_ARGS} O=${OUT_DIR} "${MAKE_ARGS[@]}" menuconfig)
283 (cd ${KERNEL_DIR} && make ${TOOL_ARGS} O=${OUT_DIR} "${MAKE_ARGS[@]}" savedefconfig)
284 ${KERNEL_DIR}/scripts/diffconfig ${orig_config} ${out_config} > ${changed_config}
285 ${KERNEL_DIR}/scripts/diffconfig ${orig_defconfig} ${out_defconfig} > ${changed_defconfig}
wanwei.jiang612a8882021-11-23 17:12:23 +0800286 post_defconfig_cmds
287 set +x
Wanwei Jiang0a74fb12022-12-09 16:27:40 +0800288 echo
289 echo "========================================================"
290 echo "if the config follows GKI2.0, please add it to the file amlogic_gki.fragment manually"
291 echo "if the config follows GKI1.0 optimize, please add it to the file amlogic_gki.10 manually"
292 echo "if the config follows GKI1.0 debug, please add it to the file amlogic_gki.debug manually"
Wanwei Jiangb3b3ca02022-12-29 18:03:05 +0800293 echo "==================== .config diff ===================="
Wanwei Jiang0a74fb12022-12-09 16:27:40 +0800294 cat ${changed_config}
Wanwei Jiangb3b3ca02022-12-29 18:03:05 +0800295 echo "==================== defconfig diff ===================="
296 cat ${changed_defconfig}
Wanwei Jiang0a74fb12022-12-09 16:27:40 +0800297 echo "========================================================"
298 echo
wanwei.jiang612a8882021-11-23 17:12:23 +0800299 fi
Wanwei Jiangb3b3ca02022-12-29 18:03:05 +0800300 rm -f ${orig_config} ${changed_config} ${orig_defconfig} ${changed_defconfig}
Wanwei Jiang0a74fb12022-12-09 16:27:40 +0800301 exit
302fi
wanwei.jiang612a8882021-11-23 17:12:23 +0800303
Wanwei Jiang0a74fb12022-12-09 16:27:40 +0800304if [[ -n ${IMAGE} ]] || [[ -n ${MODULES} ]] || [[ -n ${DTB_BUILD} ]]; then
305 old_path=${PATH}
306 source "${ROOT_DIR}/${BUILD_DIR}/build_utils.sh"
307 source "${ROOT_DIR}/${BUILD_DIR}/_setup_env.sh"
308
Wanwei Jiangc4e11e12022-12-16 12:50:33 +0800309 if [[ ! -f ${OUT_DIR}/.config ]]; then
Wanwei Jiang0a74fb12022-12-09 16:27:40 +0800310 pre_defconfig_cmds
311 set -x
312 (cd ${KERNEL_DIR} && make ${TOOL_ARGS} O=${OUT_DIR} "${MAKE_ARGS[@]}" ${DEFCONFIG})
313 set +x
314 post_defconfig_cmds
Wanwei Jiangc4e11e12022-12-16 12:50:33 +0800315 fi
316
317 if [[ -n ${IMAGE} ]]; then
Wanwei Jiang0a74fb12022-12-09 16:27:40 +0800318 set -x
319 if [ "${ARCH}" = "arm64" ]; then
320 (cd ${OUT_DIR} && make O=${OUT_DIR} ${TOOL_ARGS} "${MAKE_ARGS[@]}" -j$(nproc) Image)
321 elif [ "${ARCH}" = "arm" ]; then
322 (cd ${OUT_DIR} && make O=${OUT_DIR} ${TOOL_ARGS} "${MAKE_ARGS[@]}" -j$(nproc) LOADADDR=0x108000 uImage)
wanwei.jiang612a8882021-11-23 17:12:23 +0800323 fi
Wanwei Jiang0a74fb12022-12-09 16:27:40 +0800324 set +x
wanwei.jiang612a8882021-11-23 17:12:23 +0800325 fi
Wanwei Jiangc4e11e12022-12-16 12:50:33 +0800326 mkdir -p ${DIST_DIR}
wanwei.jiang612a8882021-11-23 17:12:23 +0800327 if [[ -n ${DTB_BUILD} ]]; then
328 set -x
329 (cd ${OUT_DIR} && make O=${OUT_DIR} ${TOOL_ARGS} "${MAKE_ARGS[@]}" -j$(nproc) dtbs)
330 set +x
331 fi
Wanwei Jiang0a74fb12022-12-09 16:27:40 +0800332 if [[ -n ${MODULES} ]]; then
333 export MODULES_STAGING_DIR=$(readlink -m ${COMMON_OUT_DIR}/staging)
334 rm -rf ${MODULES_STAGING_DIR}
335 mkdir -p ${MODULES_STAGING_DIR}
336 if [ "${DO_NOT_STRIP_MODULES}" != "1" ]; then
337 MODULE_STRIP_FLAG="INSTALL_MOD_STRIP=1"
338 fi
339 if [[ `grep "CONFIG_AMLOGIC_IN_KERNEL_MODULES=y" ${ROOT_DIR}/${FRAGMENT_CONFIG}` ]]; then
340 set -x
341 (cd ${OUT_DIR} && make O=${OUT_DIR} ${TOOL_ARGS} "${MAKE_ARGS[@]}" -j$(nproc) modules)
342 (cd ${OUT_DIR} && make O=${OUT_DIR} ${TOOL_ARGS} ${MODULE_STRIP_FLAG} INSTALL_MOD_PATH=${MODULES_STAGING_DIR} "${MAKE_ARGS[@]}" modules_install)
343 set +x
344 fi
345 echo EXT_MODULES=$EXT_MODULES
346 prepare_module_build
347 if [[ -z "${SKIP_EXT_MODULES}" ]] && [[ -n "${EXT_MODULES}" ]]; then
348 echo "========================================================"
349 echo " Building external modules and installing them into staging directory"
350 KERNEL_UAPI_HEADERS_DIR=$(readlink -m ${COMMON_OUT_DIR}/kernel_uapi_headers)
351 for EXT_MOD in ${EXT_MODULES}; do
352 EXT_MOD_REL=$(rel_path ${ROOT_DIR}/${EXT_MOD} ${KERNEL_DIR})
353 mkdir -p ${OUT_DIR}/${EXT_MOD_REL}
354 set -x
355 make -C ${EXT_MOD} M=${EXT_MOD_REL} KERNEL_SRC=${ROOT_DIR}/${KERNEL_DIR} \
356 O=${OUT_DIR} ${TOOL_ARGS} "${MAKE_ARGS[@]}"
357 make -C ${EXT_MOD} M=${EXT_MOD_REL} KERNEL_SRC=${ROOT_DIR}/${KERNEL_DIR} \
358 O=${OUT_DIR} ${TOOL_ARGS} ${MODULE_STRIP_FLAG} \
359 INSTALL_MOD_PATH=${MODULES_STAGING_DIR} \
360 INSTALL_MOD_DIR="extra/${EXT_MOD}" \
361 INSTALL_HDR_PATH="${KERNEL_UAPI_HEADERS_DIR}/usr" \
362 "${MAKE_ARGS[@]}" modules_install
363 set +x
364 done
365 fi
366 export OUT_AMLOGIC_DIR=$(readlink -m ${COMMON_OUT_DIR}/amlogic)
367 set -x
368 extra_cmds
369 set +x
Wanwei Jiang0a74fb12022-12-09 16:27:40 +0800370 MODULES=$(find ${MODULES_STAGING_DIR} -type f -name "*.ko")
371 cp -p ${MODULES} ${DIST_DIR}
372
373 new_path=${PATH}
374 PATH=${old_path}
375 echo "========================================================"
376 if [ -f ${ROOT_DIR}/${KERNEL_DIR}/${COMMON_DRIVERS_DIR}/rootfs_base.cpio.gz.uboot ]; then
377 echo "Rebuild rootfs in order to install modules!"
378 rebuild_rootfs ${ARCH}
379 else
380 echo "There's no file ${ROOT_DIR}/${KERNEL_DIR}/${COMMON_DRIVERS_DIR}/rootfs_base.cpio.gz.uboot, so don't rebuild rootfs!"
381 fi
382 PATH=${new_path}
383 fi
384 if [ -n "${DTS_EXT_DIR}" ]; then
385 if [ -d "${ROOT_DIR}/${DTS_EXT_DIR}" ]; then
386 DTS_EXT_DIR=$(rel_path ${ROOT_DIR}/${DTS_EXT_DIR} ${KERNEL_DIR})
387 if [ -d ${OUT_DIR}/${DTS_EXT_DIR} ]; then
388 FILES="$FILES `ls ${OUT_DIR}/${DTS_EXT_DIR}`"
389 fi
390 fi
391 fi
392 for FILE in ${FILES}; do
393 if [ -f ${OUT_DIR}/${FILE} ]; then
394 echo " $FILE"
395 cp -p ${OUT_DIR}/${FILE} ${DIST_DIR}/
396 elif [[ "${FILE}" =~ \.dtb|\.dtbo ]] && \
397 [ -n "${DTS_EXT_DIR}" ] && [ -f "${OUT_DIR}/${DTS_EXT_DIR}/${FILE}" ] ; then
398 # DTS_EXT_DIR is recalculated before to be relative to KERNEL_DIR
399 echo " $FILE"
400 cp -p "${OUT_DIR}/${DTS_EXT_DIR}/${FILE}" "${DIST_DIR}/"
401 else
402 echo " $FILE is not a file, skipping"
403 fi
404 done
wanwei.jiang612a8882021-11-23 17:12:23 +0800405 exit
406fi
407
408if [ "${ABI}" -eq "1" ]; then
wanwei.jiang7ef5fd42022-02-18 16:36:19 +0800409 ${ROOT_DIR}/${BUILD_DIR}/build_abi.sh "$@"
wanwei.jiang612a8882021-11-23 17:12:23 +0800410else
wanwei.jiang7ef5fd42022-02-18 16:36:19 +0800411 ${ROOT_DIR}/${BUILD_DIR}/build.sh "$@"
wanwei.jiang612a8882021-11-23 17:12:23 +0800412fi
413
Wanwei Jiang0a74fb12022-12-09 16:27:40 +0800414source ${ROOT_DIR}/${BUILD_CONFIG}
415
wanwei.jiangc663c4c2022-06-16 14:41:23 +0800416source ${KERNEL_BUILD_VAR_FILE}
417if [[ -n ${RM_KERNEL_BUILD_VAR_FILE} ]]; then
418 rm -f ${KERNEL_BUILD_VAR_FILE}
419fi
wanwei.jiang612a8882021-11-23 17:12:23 +0800420
wanwei.jiang236e9a32021-12-07 16:34:14 +0800421echo "========================================================"
wanwei.jiangf73b2202022-07-23 16:00:44 +0800422if [ -f ${ROOT_DIR}/${KERNEL_DIR}/${COMMON_DRIVERS_DIR}/rootfs_base.cpio.gz.uboot ]; then
423 echo "Rebuild rootfs in order to install modules!"
Lei Zhang2853aa52022-08-23 09:40:06 +0800424 rebuild_rootfs ${ARCH}
wanwei.jiangf73b2202022-07-23 16:00:44 +0800425else
426 echo "There's no file ${ROOT_DIR}/${KERNEL_DIR}/${COMMON_DRIVERS_DIR}/rootfs_base.cpio.gz.uboot, so don't rebuild rootfs!"
wanwei.jiang612a8882021-11-23 17:12:23 +0800427fi
wanwei.jiang236e9a32021-12-07 16:34:14 +0800428set +e
wanwei.jiang1482c872022-05-13 20:33:51 +0800429
430if [[ ${MODULES_DEPEND} -eq "1" ]]; then
431 echo "========================================================"
432 echo "print modules depend"
433 check_undefined_symbol
434fi