blob: abbec2aefe44a23ed7f21aedb0ab182c5d74c3eb [file] [log] [blame]
b.liud440f9f2025-04-18 10:44:31 +08001#!/bin/bash
2
3red='\e[0;31m' # 红色
4green='\e[0;32m' # 绿色
5NC='\e[0m' # 没有颜色
6
7export STAGING_DIR=
8DECONFIG_FILE=
9
10# glibc / musl
11GLIBC_NAME=musl
12ASR_PROJECT_NAME=
13ASR_PROJECT_PATCH=
14
15DIR_BUILD_TARGET=build_dir/target-arm_cortex-a7+neon-vfpv4_"$GLIBC_NAME"_eabi
16DIR_STAGING_TARGET=staging_dir/target-arm_cortex-a7+neon-vfpv4_"$GLIBC_NAME"_eabi
17DIR_BIN=
18
19versionFile='mbtk/include/mbtk_device_info.h'
20version=`cat $versionFile | grep -w 'MBTK_DEVICES_REVISION' | cut -d '"' -f 2 `
21
22usage()
23{
24 echo "Usage : ./build.sh <clean/path>"
25}
26
27function excmd()
28{
29 echo -e "${green}Excmd:${NC} $@ ..."
30# && sleep 1
31 $@
32}
33
34function timediff() {
35# time format:date +"%s.%N", such as 1502758855.907197692
36 start_time=$1
37 end_time=$2
38
39 start_s=${start_time%.*}
40 start_nanos=${start_time#*.}
41 end_s=${end_time%.*}
42 end_nanos=${end_time#*.}
43
44 # end_nanos > start_nanos?
45 # Another way, the time part may start with 0, which means
46 # it will be regarded as oct format, use "10#" to ensure
47 # calculateing with decimal
48
49 if [ "$end_nanos" -lt "$start_nanos" ];then
50 end_s=$(( 10#$end_s - 1 ))
51 end_nanos=$(( 10#$end_nanos + 10**9 ))
52 fi
53
54# get timediff
55 time=$(( 10#$end_s - 10#$start_s )).`printf "%03ds" $(( (10#$end_nanos - 10#$start_nanos)/10**6 ))`
56 time_min=$(((end_s - start_s)/60 + 1))
57 echo -e "${green}*${NC} Spend time: "$time \(\~ ${time_min}min\) ${green}***${NC}
58}
59
60init_check()
61{
62
63 if [ ! -f "config/$DECONFIG_FILE" ]; then
64 echo 'Must exec "init.sh" in the first.'
65 exit 1
66 fi
67
68# if [ ! -f "../pack.sh" ]; then
69# echo 'Must exec "init.sh" in the first.'
70# exit 1
71# fi
72
73}
74
75build_init()
76{
77 init_check
78
79 if [ ! -d "feeds/" ]; then
80 echo "Start build inti..."
81 excmd ./scripts/feeds update -a
82 excmd ./scripts/feeds install -a
83
84 echo "$DECONFIG_FILE"
85
86# if [ "$DECONFIG_FILE" == "defconfig_asr1803p401" ];then
87# excmd make prereq
88# fi
89
90 #excmd make $DECONFIG_FILE
91 fi
92
93 if [ -f .config ];then
94 rm .config
95 fi
96
97 excmd make $DECONFIG_FILE
98}
99
100copy_bin()
101{
102 echo "Start copy bin..."
103# [ -f $MBTK_DIR/out/bin/mbtk_audio_set ] && cp -f $MBTK_DIR/out/bin/mbtk_audio_set $MBTK_DIR/bin
104 [ -f $MBTK_DIR/../out/bin/device_info ] && cp -f $MBTK_DIR/../out/bin/device_info $MBTK_DIR/bin
105}
106
107copy_lib()
108{
109 echo "Start copy lib..."
110 [ -f $MBTK_DIR/../out/lib/liblynq_lib.so ] && cp -f $MBTK_DIR/../out/lib/liblynq_lib.so $MBTK_DIR/lib
111# [ -f $MBTK_DIR/../out/lib/libql_lib.so.* ] && cp -f $MBTK_DIR/../out/lib/libql_lib.so.* $MBTK_DIR/lib
112
113 ls $MBTK_DIR/../out/lib/libql_lib.so.*
114 if [ $? -eq 0 ];then
115 cp -f $MBTK_DIR/../out/lib/libql_lib.so.* $MBTK_DIR/lib
116 fi
117
118}
119
120ln_lib()
121{
122 PWD_TEMP=`pwd`
123
124 cd $ROOTFS_DIR/lib
125 if [ -f liblynq_lib.so ];then
126 [ ! -f libpoweralarm.so ] && ln -s liblynq_lib.so libpoweralarm.so
127 [ ! -f liblynq-qser-audio.so ] && ln -s liblynq_lib.so liblynq-qser-audio.so
128 [ ! -f liblynq-adc.so ] && ln -s liblynq_lib.so liblynq-adc.so
129 [ ! -f liblynq-fota.so ] && ln -s liblynq_lib.so liblynq-fota.so
130 [ ! -f liblynq-qser-gnss.so ] && ln -s liblynq_lib.so liblynq-qser-gnss.so
131 [ ! -f liblynq-log.so ] && ln -s liblynq_lib.so liblynq-log.so
132 [ ! -f liblynq-led.so ] && ln -s liblynq_lib.so liblynq-led.so
133 [ ! -f liblynq-qser-autosuspend.so ] && ln -s liblynq_lib.so liblynq-qser-autosuspend.so
134 [ ! -f liblynq-systime.so ] && ln -s liblynq_lib.so liblynq-systime.so
135 [ ! -f liblynq-qser-thermal.so ] && ln -s liblynq_lib.so liblynq-qser-thermal.so
136 [ ! -f liblynq-qser-sim.so ] && ln -s liblynq_lib.so liblynq-qser-sim.so
137 [ ! -f liblynq-qser-sms.so ] && ln -s liblynq_lib.so liblynq-qser-sms.so
138 [ ! -f liblynq-qser-voice.so ] && ln -s liblynq_lib.so liblynq-qser-voice.so
139 [ ! -f liblynq-qser-network.so ] && ln -s liblynq_lib.so liblynq-qser-network.so
140 [ ! -f liblynq-qser-data.so ] && ln -s liblynq_lib.so liblynq-qser-data.so
141 [ ! -f liblynq-irq.so ] && ln -s liblynq_lib.so liblynq-irq.so
142 fi
143
144 cd $PWD_TEMP
145}
146
147build_mbtk()
148{
149 copy_toolchain
150 make -C mbtk/ || exit 1
151
152 ROOTFS_DIR=$DIR_BUILD_TARGET/root-mmp
153 MBTK_DIR=mbtk/rootfs
154
155 if [ "$SEC_SUPPORT" == "Y" ];then
156 # copy_lib
157 if [ -d $ROOTFS_DIR ];then
158 echo "Start build optee_test..."
159 [ -d mbtk/optee_test ] && make clean -C mbtk/optee_test && make -C mbtk/optee_test
160 echo "Should copy to mbtk/rootfs and build.sh if necessary."
161 fi
162 else
163 if [ -f staging_dir/host/bin/sstrip ];then
164 STRIP_FILE=./staging_dir/host/bin/sstrip
165 else
166 STRIP_FILE=./host/linux64/bin/sstrip
167 fi
168
169 if [ ! -d $ROOTFS_DIR ];then
170 mkdir -p $ROOTFS_DIR
171 fi
172
173 excmd cp -rf $MBTK_DIR/* $ROOTFS_DIR/
174
175 CUR_PWD=`pwd`
176 cd $ROOTFS_DIR/etc/rc.d
177 if [ ! -f S15mbtk_boot_normal -a -f ../init.d/mbtk_boot_normal ];then
178 ln -s ../init.d/mbtk_boot_normal S15mbtk_boot_normal
179 fi
180 if [ ! -f S98mbtk_boot_last -a -f ../init.d/mbtk_boot_last ];then
181 ln -s ../init.d/mbtk_boot_last S98mbtk_boot_last
182 fi
183 if [ ! -f S13mbtk_logd -a -f ../init.d/mbtk_logd ];then
184 ln -s ../init.d/mbtk_logd S13mbtk_logd
185 fi
186
187 cd $CUR_PWD
188
189 if [ -d $MBTK_DIR/lib_tmp ];then
190 rm -rf $MBTK_DIR/lib_tmp
191 fi
192
193 if [ -d $MBTK_DIR/bin_tmp ];then
194 rm -rf $MBTK_DIR/bin_tmp
195 fi
196
197 # copy_lib
198
199 copy_bin
200
201 cp -r $MBTK_DIR/lib $MBTK_DIR/lib_tmp
202 cp -r $MBTK_DIR/bin $MBTK_DIR/bin_tmp
203
204 CROSS="arm-openwrt-linux-uclibcgnueabi-" NO_RENAME=1 ; NM="arm-openwrt-linux-uclibcgnueabi-nm" STRIP="$STRIP_FILE" STRIP_KMOD="./scripts/strip-kmod.sh" ./scripts/rstrip.sh $MBTK_DIR/lib_tmp
205 CROSS="arm-openwrt-linux-uclibcgnueabi-" NO_RENAME=1 ; NM="arm-openwrt-linux-uclibcgnueabi-nm" STRIP="$STRIP_FILE" STRIP_KMOD="./scripts/strip-kmod.sh" ./scripts/rstrip.sh $MBTK_DIR/bin_tmp
206
207 cp $MBTK_DIR/lib_tmp/* $ROOTFS_DIR/lib
208 cp $MBTK_DIR/bin_tmp/* $ROOTFS_DIR/bin
209 rm -rf $MBTK_DIR/lib_tmp
210 rm -rf $MBTK_DIR/bin_tmp
211
212 [ -f $ROOTFS_DIR/etc/init.d/wpad ] && rm $ROOTFS_DIR/etc/init.d/wpad
213 ln_lib
214 fi
215}
216
217
218build_mbtk_clean()
219{
220 cd mbtk
221 make clean
222 cd ..
223}
224
225build_rootfs()
226{
227 if [ -f ./staging_dir/host/bin/mksquashfs4 ];then
228 EXEC=./staging_dir/host/bin/mksquashfs4
229 else
230 EXEC=./host/linux64/bin/mksquashfs4
231 fi
232
233 $EXEC $DIR_BUILD_TARGET/root-mmp $DIR_BUILD_TARGET/linux-mmp_"$ASR_PROJECT_NAME"/root.squashfs -nopad -noappend -root-owned -comp xz -Xpreset 8 -Xe -Xlc 0 -Xlp 2 -Xpb 2 -Xbcj arm -b 64k -p '/dev d 755 0 0' -p '/dev/console c 600 0 0 5 1' -processors 1
234 excmd dd if=$DIR_BUILD_TARGET/linux-mmp_"$ASR_PROJECT_NAME"/root.squashfs of=$DIR_BIN/swd/openwrt-mmp-"$ASR_PROJECT_NAME"-root.squashfs
235}
236
237copy_toolchain()
238{
239 # 1806
240 if [ ! -d mbtk/toolchain ];then
241 if [ ! -d owtoolchain/linux64 ];then
242 "Build all in the first."
243 exit 1
244 fi
245 echo "Start Copy Build Toolchain..."
246 mkdir -p mbtk/toolchain
247 cp -r owtoolchain/linux64 mbtk/toolchain/
248 cp -r mbtk/toolchain/linux64/include/* mbtk/toolchain/linux64/usr/include/
249 cp -r $DIR_STAGING_TARGET/usr/* mbtk/toolchain/linux64/usr/
250 cp -r mbtk/toolchain/linux64/usr/include/* mbtk/toolchain/linux64/include/
251 cp -drf $DIR_BUILD_TARGET/audio/obj/olibs/* mbtk/toolchain/linux64/usr/lib/
252 cp -r marvell/services/audio_if/include/* mbtk/toolchain/linux64/include/
b.liude66b442025-05-15 15:17:48 +0800253
254 cp -r marvell/services/ril/include/* mbtk/toolchain/linux64/include/
255 cp -r marvell/services/audio/include/* mbtk/toolchain/linux64/include/
256 cp -r marvell/services/audio/include/stub/* mbtk/toolchain/linux64/include/
257 cp -r marvell/services/audio/tinyalsa/include/* mbtk/toolchain/linux64/include/
258 cp -r marvell/services/audio/libaudio-apu/*.h mbtk/toolchain/linux64/include/
259 cp -r marvell/lte-telephony/apps/aud_sw/vcm_ipc/*.h mbtk/toolchain/linux64/include/
b.liud440f9f2025-04-18 10:44:31 +0800260 fi
261
262 if [ "$SEC_SUPPORT" == "Y" ];then
263 if [ -f mbtk/gcc-arm-none-linux-gnueabihf.tar.gz -a ! -d mbtk/toolchain/gcc-arm-arm-none-linux-gnueabihf ];then
264 echo "Dec file : gcc-arm-none-linux-gnueabihf.tar.gz to mbtk/toolchain."
265 tar zxf mbtk/gcc-arm-none-linux-gnueabihf.tar.gz -C mbtk/toolchain
266 fi
267 fi
268}
269
270build_oem()
271{
272 excmd mkdir -p $DIR_BUILD_TARGET/root-mmp/NVM/oem_data
273 excmd rm -rf $DIR_BUILD_TARGET/linux-mmp_$ASR_PROJECT_NAME/oem_fs
274 excmd mkdir -p $DIR_BUILD_TARGET/linux-mmp_$ASR_PROJECT_NAME/oem_fs
275 excmd cp -fpR target/linux/mmp/$ASR_PROJECT_NAME/oem_fs/* $DIR_BUILD_TARGET/linux-mmp_$ASR_PROJECT_NAME/oem_fs/
276 excmd staging_dir/host/bin/mkfs.ubifs -m 2048 -e 126976 -c 156 -F --space-fixup --compr=zlib -o $DIR_BUILD_TARGET/linux-mmp_$ASR_PROJECT_NAME/oem_data.ubifs -d $DIR_BUILD_TARGET/linux-mmp_$ASR_PROJECT_NAME/oem_fs
277 excmd mkdir -p $DIR_BIN/swd/
278 if [ -e ./$ASR_PROJECT_NAME$ASR_PROJECT_PATCH-ubinize-oem.cfg ]; then
279 excmd cp -fpR ./$ASR_PROJECT_NAME$ASR_PROJECT_PATCH-ubinize-oem.cfg $DIR_BUILD_TARGET/linux-mmp_$ASR_PROJECT_NAME/ubinize-oem.cfg;
280 else
281 excmd cp -fpR ./target/linux/mmp/image/ubinize-oem.cfg $DIR_BUILD_TARGET/linux-mmp_$ASR_PROJECT_NAME/ubinize-oem.cfg;
282 fi
283 excmd cd $DIR_BUILD_TARGET/linux-mmp_$ASR_PROJECT_NAME;
284 excmd sed -i 's/vol_size=.*KiB/vol_size=19344KiB/g' ubinize-oem.cfg; ../../../staging_dir/host/bin/ubinize -m 2048 -p 131072 -s 2048 -o ../../../$DIR_BUILD_TARGET/linux-mmp_$ASR_PROJECT_NAME/oem_data.ubi ubinize-oem.cfg
285 excmd cd ../../..
286 excmd cp -fpR $DIR_BUILD_TARGET/linux-mmp_$ASR_PROJECT_NAME/oem_data.ubi $DIR_BIN/swd/openwrt-mmp-$ASR_PROJECT_NAME-oem_data.ubi
287}
288
289build_busybox()
290{
291 if [ -d mbtk/busybox-1.36.1 ];then
292 CUR_PWD=`pwd`
293 cd mbtk/busybox-1.36.1
294 [ -f busybox.config ] && cp busybox.config .config
295 make install
296
297 if [ ! -d ../rootfs/bin ];then
298 mkdir ../rootfs/bin
299 fi
300
301 if [ -f _install/bin/busybox ];
302 then
303 cp -f _install/bin/busybox ../rootfs/bin
304 fi
305
306 cd $CUR_PWD
307 fi
308}
309
310build()
311{
312 # 1806
313# if [ "$DECONFIG_FILE" == "defconfig_asr1806p301" ];then
314 excmd make $1/{clean,compile} V=99 2>&1 | tee build.log
315# else
316# excmd make $1/{clean,compile,install} V=99 2>&1 | tee build.log
317# fi
318}
319
320mbtk_version_update()
321{
322 # SDK
323 if [ -f mbtk/mbtk_version ];then
324 PATCH_INDEX=`cat mbtk/mbtk_version | grep PATCH_INDEX | cut -d '=' -f 2`
325 if [ -z $PATCH_INDEX ];then
326 PATCH_INDEX=0
327 fi
328 if [ $PATCH_INDEX -lt 10 ];then
329 PATCH_INDEX=00"$PATCH_INDEX"
330 else
331 if [ $PATCH_INDEX -lt 100 ];then
332 PATCH_INDEX=0"$PATCH_INDEX"
333 fi
334 fi
335
336 # T108v05.02b01_YX.00
337 MBTK_VERSION=${version#*:= }
338 MBTK_VERSION_1=`echo $MBTK_VERSION | cut -d '.' -f 1`
339 MBTK_VERSION_2=`echo $MBTK_VERSION | cut -d '.' -f 2`
340 MBTK_VERSION_3=`echo $MBTK_VERSION | cut -d '.' -f 3`
341 if [[ $MBTK_VERSION_3 == *_* ]];then # 有 '_'
342 MBTK_VERSION_3_1=`echo $MBTK_M1901_VERSION_3 | cut -d '_' -f 1`
343 MBTK_VERSION_3_2=`echo $MBTK_M1901_VERSION_3 | cut -d '_' -f 2`
344
345 MBTK_VERSION=$MBTK_VERSION_1.$MBTK_VERSION_2."$PATCH_INDEX"_$MBTK_VERSION_3_2
346 else
347 MBTK_VERSION=$MBTK_VERSION_1.$MBTK_VERSION_2.$PATCH_INDEX
348 fi
349
350 echo "Version : $MBTK_VERSION"
351 sed -i "s/$version/$MBTK_VERSION/" $versionFile
352 fi
353}
354
355build_menuconfig()
356{
357 build_init
358 make menuconfig
359
360 cp -f .config config/$DECONFIG_FILE
361}
362
363config_init()
364{
365 PROJECT=`cat build_version | grep -w 'PROJECT' | cut -d '=' -f 2`
366# PYTHON_SUPPORT=`cat build_version | grep -w 'PYTHON_SUPPORT' | cut -d '=' -f 2`
367 SEC_SUPPORT=`cat build_version | grep -w 'SEC_SUPPORT' | cut -d '=' -f 2`
368 echo "PROJECT = $PROJECT"
369# echo "PYTHON_SUPPORT = $PYTHON_SUPPORT"
370 echo "SEC_SUPPORT = $SEC_SUPPORT"
371 if [ "$PROJECT" == "L901CD-L" ];then
372 ASR_PROJECT_NAME=asr1903
373 ASR_PROJECT_PATCH=p501
374 elif [ "$PROJECT" == "T108" -o "$PROJECT" == "T108-2" -o "$PROJECT" == "L508_X6" ];then
375 ASR_PROJECT_NAME=asr1806
376 ASR_PROJECT_PATCH=p301
377 else
378 ASR_PROJECT_NAME=asr1803
379 ASR_PROJECT_PATCH=p401
380 fi
381
382 DECONFIG_FILE=defconfig_$ASR_PROJECT_NAME$ASR_PROJECT_PATCH
383
384 if [ "$SEC_SUPPORT" == "Y" ];then
385 if [ "$GLIBC_NAME" == "glibc" ];then
386 DIR_BIN=bin/"$ASR_PROJECT_NAME$ASR_PROJECT_PATCH"sec_glibc
387 else
388 DIR_BIN=bin/"$ASR_PROJECT_NAME$ASR_PROJECT_PATCH"sec
389 fi
390 sed -i "/.*CONFIG_PACKAGE_mbtk-rootfs/c\CONFIG_PACKAGE_mbtk-rootfs=y" config/$DECONFIG_FILE
391 else
392 if [ "$GLIBC_NAME" == "glibc" ];then
393 DIR_BIN=bin/"$ASR_PROJECT_NAME$ASR_PROJECT_PATCH"_glibc
394 else
395 DIR_BIN=bin/"$ASR_PROJECT_NAME$ASR_PROJECT_PATCH"
396 fi
397 sed -i "/.*CONFIG_PACKAGE_mbtk-rootfs/c\# CONFIG_PACKAGE_mbtk-rootfs is not set" config/$DECONFIG_FILE
398 fi
399}
b.liude66b442025-05-15 15:17:48 +0800400
b.liub17525e2025-05-14 17:22:29 +0800401toolchain_generate()
402{
403 MBTK_TOOLCHAIN_DIR=mbtk_toolchain
404
405 if [ ! -d mbtk/toolchain/linux64 ];then
406 echo "Build in the first."
407 exit 1
408 fi
409
410 [ -d $MBTK_TOOLCHAIN_DIR ] && rm -rf $MBTK_TOOLCHAIN_DIR
411 [ ! -d $MBTK_TOOLCHAIN_DIR ] && mkdir -p $MBTK_TOOLCHAIN_DIR
412
413 echo "Start copy toolchain..."
414 cp -r mbtk/toolchain/linux64 $MBTK_TOOLCHAIN_DIR/toolchain
415
416 echo "Start copy mbtk header files and libs..."
417 mkdir $MBTK_TOOLCHAIN_DIR/mbtk
418 cp -r mbtk/include $MBTK_TOOLCHAIN_DIR/mbtk
419 cp -r mbtk/rootfs/lib $MBTK_TOOLCHAIN_DIR/mbtk
420
421 echo "Start copy mbtk config files..."
422 cp -r mbtk/mbtk_toolchain_config/* $MBTK_TOOLCHAIN_DIR
423
424 echo "Delete unnecessary files..."
425 # rm -rf $MBTK_TOOLCHAIN_DIR/toolchain/usr
426 rm -rf $MBTK_TOOLCHAIN_DIR/toolchain/initial
427 rm $MBTK_TOOLCHAIN_DIR/toolchain/include.zip
428
429 echo "Start packaging toolchain..."
430 tar -zcf mbtk_toolchain.tar.gz mbtk_toolchain/
431
432 echo "Toolchain generate complete."
433}
b.liud440f9f2025-04-18 10:44:31 +0800434
435################################################################
436### Start ########
437################################################################
438if [ ! -f build_version ];then
439 echo "No found file: build_version"
440 exit 1
441else
442 config_init
443fi
444
445start=$(date +"%s.%N")
446starttime=`date +"%Y-%m-%d %H:%M:%S"`
447
448ROOTFS_DIR="mbtk/rootfs"
449ln_lib
450
451if [ -n "$1" ] ;then #有参数
452 if [ ! -d "feeds/" -a "$1" != "menuconfig" ]; then
453 echo "Must make all in the first."
454 exit 1
455 fi
456
457 case "$1" in
458 clean)
459 # Can not remove toolchain.
460 # [ -d mbtk/toolchain ] && rm -rf mbtk/toolchain
461 excmd make distclean
462 ;;
463 kernel)
464 build target/linux
465 ;;
466 oem)
467 if [ "$SEC_SUPPORT" == "Y" ];then
468 echo "No support."
469 else
470 build_oem
471 fi
472 ;;
473 obm)
474 excmd make package/boot/obm-mmp/{clean,compile} V=99 2>&1 | tee build.log
475 excmd cp -f $DIR_BIN/"$ASR_PROJECT_NAME"_TLoader_QSPINAND.bin $DIR_BIN/swd
476 excmd cp -f $DIR_BIN/"$ASR_PROJECT_NAME"_TLoader_QSPINAND_ProductBuild.bin $DIR_BIN/swd
477 ;;
478 uboot)
479 excmd make package/boot/uboot-mmp/{clean,compile} V=99 2>&1 | tee build.log
480 excmd cp -f $DIR_BIN/openwrt-mmp-"$ASR_PROJECT_NAME"-u-boot.bin $DIR_BIN/swd
481 ;;
482 ffmpeg)
483 build package/feeds/packages/ffmpeg
484 ;;
485 mbtk-rootfs)
486 if [ "$SEC_SUPPORT" == "Y" ];then
487 excmd make package/$1/{clean,compile} V=99 2>&1 | tee build.log
488 else
489 echo "No support."
490 fi
491 ;;
492 openssl)
493 excmd make package/libs/$1/{clean,compile} V=99 2>&1 | tee build.log
494 ;;
495 mbtk)
496 build_mbtk
497 ;;
498 mbtk_clean)
499 build_mbtk_clean
500 ;;
501 rootfs)
502 if [ "$SEC_SUPPORT" == "Y" ];then
503 echo "No support."
504 else
505 build_mbtk
506 build_rootfs
507 fi
508 ;;
509 lte)
510 build package/network/services/lte-telephony
511 ;;
512 audio)
513 build package/services/audio_if
514 ;;
515 fstools)
516 build package/system/fstools
517 ;;
518 ril)
519 build package/services/ril
520 ;;
521 gnss)
522 build package/services/gnss
523 ;;
524 libprop2uci)
525 build package/libs/libprop2uci
526 ;;
527 con_mgr)
528 build package/services/con_mgr
529 ;;
530 ecall)
531 build package/services/ecall_daemon
532 ;;
533 adbd)
534 build package/utils/adbd
535 ;;
536 menuconfig)
537 build_menuconfig
538 ;;
539 openssl)
540 excmd make package/libs/openssl/{clean,compile,install} V=99 2>&1 | tee build.log
541 ;;
542 busybox)
543 build_busybox
544 ;;
b.liub17525e2025-05-14 17:22:29 +0800545 toolchain)
546 toolchain_generate
547 ;;
548 optee)
549 build package/services/optee_app
550 ;;
b.liud440f9f2025-04-18 10:44:31 +0800551 *)
552 SUB_DIR=`find package/ -type d -name "$1" | sed -n '1,1p'`
553 if [ x$SUB_DIR = x ]
554 then
555 echo -e "${red}==Have No module: $1==${NC}"
556 exit 1
557 fi
558 echo -e "Build: ${green}${1}${NC} ${red}${SUB_DIR}${NC}"
559 build $SUB_DIR
560 ;;
561 esac
562else # 全编
563
564 cp $versionFile $versionFile.backup
565 # Change version
566 mbtk_version_update
567
568 # Start build.
569 excmd build_init
570 #if [ -d mbtk/toolchain ];then
571 # build_mbtk
572 #fi
573 # OPT_SEC=y
574 if [ "$SEC_SUPPORT" == "Y" ];then
575 # build mbtk lib in the first.
576 build_mbtk
577
578 excmd make OPT_SEC=y -j8 V=99 2>&1 | tee build.log
579 else
580 excmd make -j8 V=99 2>&1 | tee build.log
581 fi
582
583 mv $versionFile.backup $versionFile
584
585 tail -n1 build.log | grep Error
586 if [ $? -eq "0" ]; then
587 echo "********************Build Fail*****************"
588 else
589 if [ "$SEC_SUPPORT" == "Y" ];then
590 echo "********************Build Success*****************"
591 else
592 echo "********************Build Success*****************"
593 copy_toolchain
594 build_busybox
595 build_mbtk
596 build_rootfs
597 fi
598
599 # ./pack.sh all
600 fi
601fi
602excmd date >> build.log
603end=$(date +"%s.%N")
604endtime=`date +"%Y-%m-%d %H:%M:%S"`
605
606echo -e "${green}***********************************${NC}"
607echo -e "${green}* ${NC}Start time: "$starttime ${green}*${NC}
608echo -e "${green}* ${NC}End time: "$endtime ${green}*${NC}
609timediff $start $end
610echo -e "${green}***********************************${NC}"