blob: 9126a1a8593d182415a3cbc60e4a463bdd7cff2e [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"
wanwei.jiang612a8882021-11-23 17:12:23 +080029}
wanwei.jiang612a8882021-11-23 17:12:23 +080030
wanwei.jiang5c8d2b62021-11-26 20:36:33 +080031VA=
wanwei.jiang612a8882021-11-23 17:12:23 +080032ARGS=()
33for i in "$@"
34do
35 case $i in
Lei Zhang2853aa52022-08-23 09:40:06 +080036 --arch)
37 ARCH=$2
38 VA=1
39 shift
40 ;;
wanwei.jiang612a8882021-11-23 17:12:23 +080041 --abi)
42 ABI=1
43 shift
44 ;;
45 --build_config)
46 BUILD_CONFIG=$2
wanwei.jiang5c8d2b62021-11-26 20:36:33 +080047 VA=1
wanwei.jiang612a8882021-11-23 17:12:23 +080048 shift
wanwei.jiang5c8d2b62021-11-26 20:36:33 +080049 ;;
wanwei.jiangd7b29ef2021-12-01 19:59:41 +080050 --lto)
51 LTO=$2
52 VA=1
53 shift
54 ;;
wanwei.jiang5c8d2b62021-11-26 20:36:33 +080055 --symbol_strict)
56 KMI_SYMBOL_LIST_STRICT_MODE=$2
57 VA=1
58 shift
wanwei.jiang612a8882021-11-23 17:12:23 +080059 ;;
Wanwei Jiang0a74fb12022-12-09 16:27:40 +080060 --menuconfig)
61 MENUCONFIG=1
62 shift
63 ;;
64 --basicconfig)
65 if [ "$2" = "m" ] || [ "$2" = "n" ]; then
66 BASICCONFIG=$2
67 else
68 BASICCONFIG="m"
69 fi
70 VA=1
wanwei.jiang612a8882021-11-23 17:12:23 +080071 shift
72 ;;
73 --image)
74 IMAGE=1
75 shift
76 ;;
77 --modules)
78 MODULES=1
79 shift
80 break
81 ;;
82 --dtbs)
83 DTB_BUILD=1
84 shift
85 ;;
wanwei.jiang7ef5fd42022-02-18 16:36:19 +080086 --kernel_dir)
87 KERNEL_DIR=$2
88 VA=1
89 shift
90 ;;
91 --common_drivers_dir)
92 COMMON_DRIVERS_DIR=$2
93 VA=1
94 shift
95 ;;
96 --build_dir)
97 BUILD_DIR=$2
98 VA=1
99 shift
100 ;;
wanwei.jiang1482c872022-05-13 20:33:51 +0800101 --check_defconfig)
102 CHECK_DEFCONFIG=1
103 shift
104 ;;
105 --modules_depend)
106 MODULES_DEPEND=1
107 shift
108 ;;
wanwei.jiang3eab75f2022-05-25 00:39:52 +0800109 --android_project)
110 ANDROID_PROJECT=$2
111 VA=1
112 shift
113 ;;
Wanwei Jiang2d4f9742022-09-13 11:22:17 +0800114 --gki_20)
115 GKI_CONFIG=gki_20
wanwei.jiang6fdd3152022-08-01 20:35:05 +0800116 shift
117 ;;
Wanwei Jiang2d4f9742022-09-13 11:22:17 +0800118 --gki_10)
119 GKI_CONFIG=gki_10
wanwei.jiang6fdd3152022-08-01 20:35:05 +0800120 shift
121 ;;
Wanwei Jiang2d4f9742022-09-13 11:22:17 +0800122 --gki_debug)
123 GKI_CONFIG=gki_debug
wanwei.jiang6fdd3152022-08-01 20:35:05 +0800124 shift
125 ;;
Wanwei Jiang0a74fb12022-12-09 16:27:40 +0800126 --fast_build)
Wanwei Jianga5edc532022-12-18 17:25:59 +0800127 FAST_BUILD=1
Wanwei Jiang0a74fb12022-12-09 16:27:40 +0800128 shift
129 ;;
qinglin.li7a994a02022-12-05 15:04:40 +0800130 --upgrade)
131 UPGRADE_PROJECT=1
132 shift
133 ;;
wanwei.jiang612a8882021-11-23 17:12:23 +0800134 -h|--help)
135 show_help
136 exit 0
137 ;;
138 *)
139 if [[ -n $1 ]];
140 then
wanwei.jiang5c8d2b62021-11-26 20:36:33 +0800141 if [[ -z ${VA} ]];
142 then
143 ARGS+=("$1")
144 fi
wanwei.jiang612a8882021-11-23 17:12:23 +0800145 fi
wanwei.jiang5c8d2b62021-11-26 20:36:33 +0800146 VA=
wanwei.jiang612a8882021-11-23 17:12:23 +0800147 shift
148 ;;
149 esac
150done
wanwei.jiang7ef5fd42022-02-18 16:36:19 +0800151
Lei Zhang2853aa52022-08-23 09:40:06 +0800152if [ "${ARCH}" = "arm" ]; then
153 ARGS+=("LOADADDR=0x108000")
154else
155 ARCH=arm64
156fi
157
158set -- "${ARGS[@]}" # other parameters are used as script parameters of build_abi.sh or build.sh
wanwei.jiang7ef5fd42022-02-18 16:36:19 +0800159 # amlogic parameters default value
160if [[ -z "${ABI}" ]]; then
161 ABI=0
162fi
wanwei.jiang7ef5fd42022-02-18 16:36:19 +0800163if [[ -z "${LTO}" ]]; then
164 LTO=thin
165fi
166if [[ -z "${KERNEL_DIR}" ]]; then
167 KERNEL_DIR=common
168fi
169if [[ ! -f ${KERNEL_DIR}/init/main.c ]]; then
170 echo "The directory of kernel does not exist";
171 exit
172fi
173if [[ -z "${COMMON_DRIVERS_DIR}" ]]; then
174 if [[ -d ${KERNEL_DIR}/../common_drivers ]]; then
175 COMMON_DRIVERS_DIR=../common_drivers
176 elif [[ -d "${KERNEL_DIR}/common_drivers" ]]; then
177 COMMON_DRIVERS_DIR=common_drivers
178 fi
179fi
180if [[ ! -f ${KERNEL_DIR}/${COMMON_DRIVERS_DIR}/amlogic_utils.sh ]]; then
181 echo "The directory of common_drivers does not exist";
182 exit
183fi
184if [[ -z "${BUILD_CONFIG}" ]]; then
Lei Zhang2853aa52022-08-23 09:40:06 +0800185 if [ "${ARCH}" = "arm64" ]; then
186 BUILD_CONFIG=${KERNEL_DIR}/${COMMON_DRIVERS_DIR}/build.config.amlogic
187 elif [ "${ARCH}" = "arm" ]; then
188 BUILD_CONFIG=${KERNEL_DIR}/${COMMON_DRIVERS_DIR}/build.config.amlogic32
189 fi
wanwei.jiang7ef5fd42022-02-18 16:36:19 +0800190fi
191if [[ -z "${BUILD_DIR}" ]]; then
192 BUILD_DIR=build
193fi
194if [[ ! -f ${BUILD_DIR}/build_abi.sh ]]; then
195 echo "The directory of build does not exist";
196fi
197
wanwei.jiangc663c4c2022-06-16 14:41:23 +0800198ROOT_DIR=$(readlink -f $(dirname $0))
199if [[ ! -f ${ROOT_DIR}/${KERNEL_DIR}/init/main.c ]]; then
200 ROOT_DIR=`pwd`
201 if [[ ! -f ${ROOT_DIR}/${KERNEL_DIR}/init/main.c ]]; then
202 echo "the file path of $0 is incorrect"
203 exit
204 fi
205fi
206export ROOT_DIR
207
wanwei.jiang1482c872022-05-13 20:33:51 +0800208CHECK_DEFCONFIG=${CHECK_DEFCONFIG:-0}
209MODULES_DEPEND=${MODULES_DEPEND:-0}
wanwei.jiangc663c4c2022-06-16 14:41:23 +0800210if [[ ! -f ${KERNEL_BUILD_VAR_FILE} ]]; then
211 export KERNEL_BUILD_VAR_FILE=`mktemp /tmp/kernel.XXXXXXXXXXXX`
212 RM_KERNEL_BUILD_VAR_FILE=1
213fi
wanwei.jiang1482c872022-05-13 20:33:51 +0800214
Wanwei Jiang2d4f9742022-09-13 11:22:17 +0800215GKI_CONFIG=${GKI_CONFIG:-gki_debug}
wanwei.jiang6fdd3152022-08-01 20:35:05 +0800216
wanwei.jiang236e9a32021-12-07 16:34:14 +0800217set -e
wanwei.jiang1482c872022-05-13 20:33:51 +0800218export ABI BUILD_CONFIG LTO KMI_SYMBOL_LIST_STRICT_MODE CHECK_DEFCONFIG
219echo ABI=${ABI} BUILD_CONFIG=${BUILD_CONFIG} LTO=${LTO} KMI_SYMBOL_LIST_STRICT_MODE=${KMI_SYMBOL_LIST_STRICT_MODE} CHECK_DEFCONFIG=${CHECK_DEFCONFIG}
Wanwei Jianga5edc532022-12-18 17:25:59 +0800220export KERNEL_DIR COMMON_DRIVERS_DIR BUILD_DIR ANDROID_PROJECT GKI_CONFIG UPGRADE_PROJECT FAST_BUILD
221echo 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 +0800222
Wanwei Jiangac25a172022-11-03 16:49:32 +0800223export CROSS_COMPILE=
224
wanwei.jiang612a8882021-11-23 17:12:23 +0800225if [ "${ABI}" -eq "1" ]; then
226 export OUT_DIR_SUFFIX="_abi"
227else
228 OUT_DIR_SUFFIX=
229fi
230
Wanwei Jiang0a74fb12022-12-09 16:27:40 +0800231echo MENUCONFIG=${MENUCONFIG} BASICCONFIG=${BASICCONFIG} IMAGE=${IMAGE} MODULES=${MODULES} DTB_BUILD=${DTB_BUILD}
232if [[ -n ${MENUCONFIG} ]] || [[ -n ${BASICCONFIG} ]]; then
233 # ${ROOT_DIR}/${BUILD_DIR}/config.sh menuconfig
234 HERMETIC_TOOLCHAIN=0
wanwei.jiang7ef5fd42022-02-18 16:36:19 +0800235 source "${ROOT_DIR}/${BUILD_DIR}/build_utils.sh"
Wanwei Jiang0a74fb12022-12-09 16:27:40 +0800236 source "${ROOT_DIR}/${BUILD_DIR}/_setup_env.sh"
wanwei.jiang612a8882021-11-23 17:12:23 +0800237
Wanwei Jiang0a74fb12022-12-09 16:27:40 +0800238 orig_config=$(mktemp)
Wanwei Jiangb3b3ca02022-12-29 18:03:05 +0800239 orig_defconfig=$(mktemp)
240 out_config="${OUT_DIR}/.config"
241 out_defconfig="${OUT_DIR}/defconfig"
Wanwei Jiang0a74fb12022-12-09 16:27:40 +0800242 changed_config=$(mktemp)
Wanwei Jiangb3b3ca02022-12-29 18:03:05 +0800243 changed_defconfig=$(mktemp)
Wanwei Jiang0a74fb12022-12-09 16:27:40 +0800244
245 if [[ -n ${BASICCONFIG} ]]; then
246 set -x
247 defconfig_name=`basename ${GKI_BASE_CONFIG}`
248 (cd ${KERNEL_DIR} && make ${TOOL_ARGS} O=${OUT_DIR} "${MAKE_ARGS[@]}" ${defconfig_name})
Wanwei Jiangb3b3ca02022-12-29 18:03:05 +0800249 (cd ${KERNEL_DIR} && make ${TOOL_ARGS} O=${OUT_DIR} "${MAKE_ARGS[@]}" savedefconfig)
250 cp ${out_config} ${orig_config}
251 cp ${out_defconfig} ${orig_defconfig}
Wanwei Jiang0a74fb12022-12-09 16:27:40 +0800252 if [ "${BASICCONFIG}" = "m" ]; then
253 (cd ${KERNEL_DIR} && make ${TOOL_ARGS} O=${OUT_DIR} "${MAKE_ARGS[@]}" menuconfig)
254 fi
Wanwei Jiang0a74fb12022-12-09 16:27:40 +0800255 (cd ${KERNEL_DIR} && make ${TOOL_ARGS} O=${OUT_DIR} "${MAKE_ARGS[@]}" savedefconfig)
Wanwei Jiangb3b3ca02022-12-29 18:03:05 +0800256 ${KERNEL_DIR}/scripts/diffconfig ${orig_config} ${out_config} > ${changed_config}
257 ${KERNEL_DIR}/scripts/diffconfig ${orig_defconfig} ${out_defconfig} > ${changed_defconfig}
Wanwei Jiang0a74fb12022-12-09 16:27:40 +0800258 if [ "${ARCH}" = "arm" ]; then
Wanwei Jiangb3b3ca02022-12-29 18:03:05 +0800259 cp ${out_defconfig} ${GKI_BASE_CONFIG}
Wanwei Jiang0a74fb12022-12-09 16:27:40 +0800260 fi
261 set +x
262 echo
263 echo "========================================================"
Wanwei Jiangb3b3ca02022-12-29 18:03:05 +0800264 echo "==================== .config diff ===================="
Wanwei Jiang0a74fb12022-12-09 16:27:40 +0800265 cat ${changed_config}
Wanwei Jiangb3b3ca02022-12-29 18:03:05 +0800266 echo "==================== defconfig diff ===================="
267 cat ${changed_defconfig}
Wanwei Jiang0a74fb12022-12-09 16:27:40 +0800268 echo "========================================================"
269 echo
270 else
wanwei.jiang612a8882021-11-23 17:12:23 +0800271 set -x
272 pre_defconfig_cmds
273 (cd ${KERNEL_DIR} && make ${TOOL_ARGS} O=${OUT_DIR} "${MAKE_ARGS[@]}" ${DEFCONFIG})
wanwei.jiang5d97ab12022-07-25 21:30:39 +0800274 (cd ${KERNEL_DIR} && make ${TOOL_ARGS} O=${OUT_DIR} "${MAKE_ARGS[@]}" savedefconfig)
Wanwei Jiangb3b3ca02022-12-29 18:03:05 +0800275 cp ${out_config} ${orig_config}
276 cp ${out_defconfig} ${orig_defconfig}
277 (cd ${KERNEL_DIR} && make ${TOOL_ARGS} O=${OUT_DIR} "${MAKE_ARGS[@]}" menuconfig)
278 (cd ${KERNEL_DIR} && make ${TOOL_ARGS} O=${OUT_DIR} "${MAKE_ARGS[@]}" savedefconfig)
279 ${KERNEL_DIR}/scripts/diffconfig ${orig_config} ${out_config} > ${changed_config}
280 ${KERNEL_DIR}/scripts/diffconfig ${orig_defconfig} ${out_defconfig} > ${changed_defconfig}
wanwei.jiang612a8882021-11-23 17:12:23 +0800281 post_defconfig_cmds
282 set +x
Wanwei Jiang0a74fb12022-12-09 16:27:40 +0800283 echo
284 echo "========================================================"
285 echo "if the config follows GKI2.0, please add it to the file amlogic_gki.fragment manually"
286 echo "if the config follows GKI1.0 optimize, please add it to the file amlogic_gki.10 manually"
287 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 +0800288 echo "==================== .config diff ===================="
Wanwei Jiang0a74fb12022-12-09 16:27:40 +0800289 cat ${changed_config}
Wanwei Jiangb3b3ca02022-12-29 18:03:05 +0800290 echo "==================== defconfig diff ===================="
291 cat ${changed_defconfig}
Wanwei Jiang0a74fb12022-12-09 16:27:40 +0800292 echo "========================================================"
293 echo
wanwei.jiang612a8882021-11-23 17:12:23 +0800294 fi
Wanwei Jiangb3b3ca02022-12-29 18:03:05 +0800295 rm -f ${orig_config} ${changed_config} ${orig_defconfig} ${changed_defconfig}
Wanwei Jiang0a74fb12022-12-09 16:27:40 +0800296 exit
297fi
wanwei.jiang612a8882021-11-23 17:12:23 +0800298
Wanwei Jiang0a74fb12022-12-09 16:27:40 +0800299if [[ -n ${IMAGE} ]] || [[ -n ${MODULES} ]] || [[ -n ${DTB_BUILD} ]]; then
300 old_path=${PATH}
301 source "${ROOT_DIR}/${BUILD_DIR}/build_utils.sh"
302 source "${ROOT_DIR}/${BUILD_DIR}/_setup_env.sh"
303
Wanwei Jiangc4e11e12022-12-16 12:50:33 +0800304 if [[ ! -f ${OUT_DIR}/.config ]]; then
Wanwei Jiang0a74fb12022-12-09 16:27:40 +0800305 pre_defconfig_cmds
306 set -x
307 (cd ${KERNEL_DIR} && make ${TOOL_ARGS} O=${OUT_DIR} "${MAKE_ARGS[@]}" ${DEFCONFIG})
308 set +x
309 post_defconfig_cmds
Wanwei Jiangc4e11e12022-12-16 12:50:33 +0800310 fi
311
312 if [[ -n ${IMAGE} ]]; then
Wanwei Jiang0a74fb12022-12-09 16:27:40 +0800313 set -x
314 if [ "${ARCH}" = "arm64" ]; then
315 (cd ${OUT_DIR} && make O=${OUT_DIR} ${TOOL_ARGS} "${MAKE_ARGS[@]}" -j$(nproc) Image)
316 elif [ "${ARCH}" = "arm" ]; then
317 (cd ${OUT_DIR} && make O=${OUT_DIR} ${TOOL_ARGS} "${MAKE_ARGS[@]}" -j$(nproc) LOADADDR=0x108000 uImage)
wanwei.jiang612a8882021-11-23 17:12:23 +0800318 fi
Wanwei Jiang0a74fb12022-12-09 16:27:40 +0800319 set +x
wanwei.jiang612a8882021-11-23 17:12:23 +0800320 fi
Wanwei Jiangc4e11e12022-12-16 12:50:33 +0800321 mkdir -p ${DIST_DIR}
wanwei.jiang612a8882021-11-23 17:12:23 +0800322 if [[ -n ${DTB_BUILD} ]]; then
323 set -x
324 (cd ${OUT_DIR} && make O=${OUT_DIR} ${TOOL_ARGS} "${MAKE_ARGS[@]}" -j$(nproc) dtbs)
325 set +x
326 fi
Wanwei Jiang0a74fb12022-12-09 16:27:40 +0800327 if [[ -n ${MODULES} ]]; then
328 export MODULES_STAGING_DIR=$(readlink -m ${COMMON_OUT_DIR}/staging)
329 rm -rf ${MODULES_STAGING_DIR}
330 mkdir -p ${MODULES_STAGING_DIR}
331 if [ "${DO_NOT_STRIP_MODULES}" != "1" ]; then
332 MODULE_STRIP_FLAG="INSTALL_MOD_STRIP=1"
333 fi
334 if [[ `grep "CONFIG_AMLOGIC_IN_KERNEL_MODULES=y" ${ROOT_DIR}/${FRAGMENT_CONFIG}` ]]; then
335 set -x
336 (cd ${OUT_DIR} && make O=${OUT_DIR} ${TOOL_ARGS} "${MAKE_ARGS[@]}" -j$(nproc) modules)
337 (cd ${OUT_DIR} && make O=${OUT_DIR} ${TOOL_ARGS} ${MODULE_STRIP_FLAG} INSTALL_MOD_PATH=${MODULES_STAGING_DIR} "${MAKE_ARGS[@]}" modules_install)
338 set +x
339 fi
340 echo EXT_MODULES=$EXT_MODULES
341 prepare_module_build
342 if [[ -z "${SKIP_EXT_MODULES}" ]] && [[ -n "${EXT_MODULES}" ]]; then
343 echo "========================================================"
344 echo " Building external modules and installing them into staging directory"
345 KERNEL_UAPI_HEADERS_DIR=$(readlink -m ${COMMON_OUT_DIR}/kernel_uapi_headers)
346 for EXT_MOD in ${EXT_MODULES}; do
347 EXT_MOD_REL=$(rel_path ${ROOT_DIR}/${EXT_MOD} ${KERNEL_DIR})
348 mkdir -p ${OUT_DIR}/${EXT_MOD_REL}
349 set -x
350 make -C ${EXT_MOD} M=${EXT_MOD_REL} KERNEL_SRC=${ROOT_DIR}/${KERNEL_DIR} \
351 O=${OUT_DIR} ${TOOL_ARGS} "${MAKE_ARGS[@]}"
352 make -C ${EXT_MOD} M=${EXT_MOD_REL} KERNEL_SRC=${ROOT_DIR}/${KERNEL_DIR} \
353 O=${OUT_DIR} ${TOOL_ARGS} ${MODULE_STRIP_FLAG} \
354 INSTALL_MOD_PATH=${MODULES_STAGING_DIR} \
355 INSTALL_MOD_DIR="extra/${EXT_MOD}" \
356 INSTALL_HDR_PATH="${KERNEL_UAPI_HEADERS_DIR}/usr" \
357 "${MAKE_ARGS[@]}" modules_install
358 set +x
359 done
360 fi
361 export OUT_AMLOGIC_DIR=$(readlink -m ${COMMON_OUT_DIR}/amlogic)
362 set -x
363 extra_cmds
364 set +x
Wanwei Jiang0a74fb12022-12-09 16:27:40 +0800365 MODULES=$(find ${MODULES_STAGING_DIR} -type f -name "*.ko")
366 cp -p ${MODULES} ${DIST_DIR}
367
368 new_path=${PATH}
369 PATH=${old_path}
370 echo "========================================================"
371 if [ -f ${ROOT_DIR}/${KERNEL_DIR}/${COMMON_DRIVERS_DIR}/rootfs_base.cpio.gz.uboot ]; then
372 echo "Rebuild rootfs in order to install modules!"
373 rebuild_rootfs ${ARCH}
374 else
375 echo "There's no file ${ROOT_DIR}/${KERNEL_DIR}/${COMMON_DRIVERS_DIR}/rootfs_base.cpio.gz.uboot, so don't rebuild rootfs!"
376 fi
377 PATH=${new_path}
378 fi
379 if [ -n "${DTS_EXT_DIR}" ]; then
380 if [ -d "${ROOT_DIR}/${DTS_EXT_DIR}" ]; then
381 DTS_EXT_DIR=$(rel_path ${ROOT_DIR}/${DTS_EXT_DIR} ${KERNEL_DIR})
382 if [ -d ${OUT_DIR}/${DTS_EXT_DIR} ]; then
383 FILES="$FILES `ls ${OUT_DIR}/${DTS_EXT_DIR}`"
384 fi
385 fi
386 fi
387 for FILE in ${FILES}; do
388 if [ -f ${OUT_DIR}/${FILE} ]; then
389 echo " $FILE"
390 cp -p ${OUT_DIR}/${FILE} ${DIST_DIR}/
391 elif [[ "${FILE}" =~ \.dtb|\.dtbo ]] && \
392 [ -n "${DTS_EXT_DIR}" ] && [ -f "${OUT_DIR}/${DTS_EXT_DIR}/${FILE}" ] ; then
393 # DTS_EXT_DIR is recalculated before to be relative to KERNEL_DIR
394 echo " $FILE"
395 cp -p "${OUT_DIR}/${DTS_EXT_DIR}/${FILE}" "${DIST_DIR}/"
396 else
397 echo " $FILE is not a file, skipping"
398 fi
399 done
wanwei.jiang612a8882021-11-23 17:12:23 +0800400 exit
401fi
402
403if [ "${ABI}" -eq "1" ]; then
wanwei.jiang7ef5fd42022-02-18 16:36:19 +0800404 ${ROOT_DIR}/${BUILD_DIR}/build_abi.sh "$@"
wanwei.jiang612a8882021-11-23 17:12:23 +0800405else
wanwei.jiang7ef5fd42022-02-18 16:36:19 +0800406 ${ROOT_DIR}/${BUILD_DIR}/build.sh "$@"
wanwei.jiang612a8882021-11-23 17:12:23 +0800407fi
408
Wanwei Jiang0a74fb12022-12-09 16:27:40 +0800409source ${ROOT_DIR}/${BUILD_CONFIG}
410
wanwei.jiangc663c4c2022-06-16 14:41:23 +0800411source ${KERNEL_BUILD_VAR_FILE}
412if [[ -n ${RM_KERNEL_BUILD_VAR_FILE} ]]; then
413 rm -f ${KERNEL_BUILD_VAR_FILE}
414fi
wanwei.jiang612a8882021-11-23 17:12:23 +0800415
wanwei.jiang236e9a32021-12-07 16:34:14 +0800416echo "========================================================"
wanwei.jiangf73b2202022-07-23 16:00:44 +0800417if [ -f ${ROOT_DIR}/${KERNEL_DIR}/${COMMON_DRIVERS_DIR}/rootfs_base.cpio.gz.uboot ]; then
418 echo "Rebuild rootfs in order to install modules!"
Lei Zhang2853aa52022-08-23 09:40:06 +0800419 rebuild_rootfs ${ARCH}
wanwei.jiangf73b2202022-07-23 16:00:44 +0800420else
421 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 +0800422fi
wanwei.jiang236e9a32021-12-07 16:34:14 +0800423set +e
wanwei.jiang1482c872022-05-13 20:33:51 +0800424
425if [[ ${MODULES_DEPEND} -eq "1" ]]; then
426 echo "========================================================"
427 echo "print modules depend"
428 check_undefined_symbol
429fi