1 export PATH__ROOT=`pwd`
2 . configuration.sh
3 . setup-env
4 # Pretty colors
5 GREEN="\033[01;32m"
6 YELLOW="\033[01;33m"
7 NORMAL="\033[00m"
8 BLUE="\033[34m"
9 RED="\033[31m"
10 PURPLE="\033[35m"
11 CYAN="\033[36m"
12 UNDERLINE="\033[02m"
14 function print_highlight()
15 {
16 echo -e " ${YELLOW}***** $1 ***** ${NORMAL} "
17 }
19 function usage ()
20 {
21 echo ""
22 echo "This script compiles one/all of the following utilities: kernel, libnl, openssl, hostapd, wpa_supplicant,wl18xx_modules,firmware,crda,calibrator"
23 echo "by calling specific utility name and action."
24 echo ""
25 echo " Usage: ./wl18xx_build.sh init <head|TAG> [ Update w/o build ] "
26 echo " update <head|TAG> [ Update & build ] "
27 echo " rebuild [ Build w/o update ] "
28 echo " clean [ Clean, Update & build ] "
29 echo " "
30 echo " Building a specific module usage "
31 echo " ./build.sh hostapd "
32 echo " wpa_supplicant "
33 echo " modules(driver) "
34 echo " firmware "
35 echo " scripts "
36 echo " calibrator "
37 echo " wlconf "
38 echo " uimage "
39 echo " openssl "
40 echo " libnl "
41 echo " crda "
43 exit 1
44 }
46 function assert_no_error()
47 {
48 if [ $? -ne 0 ]; then
49 echo "****** ERROR $? $@*******"
50 exit 1
51 fi
52 echo "****** $1 *******"
53 }
55 function repo_id()
56 {
57 i="0"
58 while [ $i -lt ${#repositories[@]} ]; do
59 [ $1 == "${repositories[i]}" ] && echo $i
60 i=$[$i + 3]
61 done
62 }
64 function repo_url()
65 {
66 echo "${repositories[`repo_id $1` + 1]}"
67 }
69 function repo_branch()
70 {
71 echo "${repositories[`repo_id $1` + 2]}"
72 }
74 function path()
75 {
76 i="0"
77 while [ $i -lt "${#paths[@]}" ]; do
78 [ $1 == "${paths[i]}" ] && echo "${paths[i + 1]}"
79 i=$[$i + 2]
80 done
81 }
83 function set_path()
84 {
85 i="0"
86 while [ $i -lt "${#paths[@]}" ]; do
87 [ $1 == "${paths[i]}" ] && paths[i+1]=$2
88 i=$[$i + 2]
89 done
90 }
92 function repo_path()
93 {
94 echo `path src`/$1
95 }
97 function cd_path()
98 {
99 cd `path $1`
100 }
102 function cd_repo()
103 {
104 cd `repo_path $1`
105 }
107 function cd_back()
108 {
109 cd - > /dev/null
110 }
112 function read_kernel_version()
113 {
114 filename=`repo_path kernel`/Makefile
116 if [ ! -f $filename ]
117 then
118 KERNEL_VERSION=0
119 KERNEL_PATCHLEVEL=0
120 KERNEL_SUBLEVEL=0
121 echo "No Makefile was found. Kernel version was set to default."
122 else
123 exec 6< $filename
124 read version <&6
125 read patchlevel <&6
126 read sublevel <&6
127 exec 6<&-
129 KERNEL_VERSION=$(echo $version|sed 's/[^0-9]//g')
130 KERNEL_PATCHLEVEL=$(echo $patchlevel|sed 's/[^0-9]//g')
131 KERNEL_SUBLEVEL=$(echo $sublevel|sed 's/[^0-9]//g')
132 echo "Makefile was found. Kernel version was set to $KERNEL_VERSION.$KERNEL_PATCHLEVEL.$KERNEL_SUBLEVEL."
133 fi
134 }
136 #----------------------------------------------------------j
137 function setup_environment()
138 {
139 if [ ! -e setup-env ]
140 then
141 echo "No setup-env"
142 exit 1
143 fi
145 #if a rootfs path is set - replace the default.
146 if [[ "$ROOTFS" != "DEFAULT" ]]
147 then
148 echo " Changing ROOTFS path to $ROOTFS"
149 set_path filesystem $ROOTFS
150 [ ! -d $ROOTFS ] && echo "Error ROOTFS: $ROOTFS dir does not exist" && exit 1
151 fi
152 #if no toolchain path is set - download it.
153 if [[ "$TOOLCHAIN_PATH" == "DEFAULT" ]]
154 then
155 echo " Setting TOOLCHAIN_PATH path to default"
156 export TOOLCHAIN_PATH=`path toolchain`/arm/bin
157 DEFAULT_TOOLCHAIN=1
158 fi
160 #if no kernel path is set - download it.
161 if [[ "$KERNEL_PATH" == "DEFAULT" ]]
162 then
163 echo " Setting KERNEL_PATH path to default"
164 export KERNEL_PATH=`repo_path kernel`
165 DEFAULT_KERNEL=1
166 else
167 echo " Using user defined kernel"
168 [ ! -d $KERNEL_PATH ] && echo "Error KERNEL_PATH: $KERNEL_PATH dir does not exist" && exit 1
169 fi
171 export PROCESSORS_NUMBER=$(egrep '^processor' /proc/cpuinfo | wc -l)
172 export PKG_CONFIG_PATH=`path filesystem`/lib/pkgconfig
173 export INSTALL_PREFIX=`path filesystem`
174 export LIBNL_PATH=`repo_path libnl`
175 export KLIB=${KERNEL_PATH}
176 export KLIB_BUILD=${KERNEL_PATH}
177 export GIT_TREE=`repo_path driver`
178 export PATH=$TOOLCHAIN_PATH:$PATH
180 }
182 function setup_filesystem_skeleton()
183 {
184 mkdir -p `path filesystem`/usr/bin
185 mkdir -p `path filesystem`/etc
186 mkdir -p `path filesystem`/usr/lib/crda
187 mkdir -p `path filesystem`/lib/firmware/ti-connectivity
188 mkdir -p `path filesystem`/usr/share/wl18xx
189 mkdir -p `path filesystem`/usr/sbin/wlconf
190 mkdir -p `path filesystem`/usr/sbin/wlconf/official_inis
191 mkdir -p `path filesystem`/etc/wireless-regdb/pubkeys
192 }
194 function setup_directories()
195 {
196 i="0"
197 while [ $i -lt ${#paths[@]} ]; do
198 mkdir -p ${paths[i + 1]}
199 i=$[$i + 2]
200 done
201 setup_filesystem_skeleton
203 }
205 function setup_repositories()
206 {
207 i="0"
208 while [ $i -lt ${#repositories[@]} ]; do
209 url=${repositories[$i + 1]}
210 name=${repositories[$i]}
211 echo -e "${NORMAL}Cloning into: ${GREEN} $name ${NORMAL}"
212 #Skip kernel clone if it was user defined
213 [ "$name" != "kernel" -o "$DEFAULT_KERNEL" ] && [ ! -d `repo_path $name` ] && git clone $url `repo_path $name`
214 i=$[$i + 3]
215 done
216 }
218 function setup_branches()
219 {
220 i="0"
221 while [ $i -lt ${#repositories[@]} ]; do
222 name=${repositories[$i]}
223 url=${repositories[$i + 1]}
224 branch=${repositories[$i + 2]}
225 checkout_type="branch"
226 #for all the openlink repo. we use a tag if provided.
227 [ "$name" == "kernel" ] && [ -z "$DEFAULT_KERNEL" ] && i=$[$i + 3] && continue
228 cd_repo $name
229 echo -e "\n${NORMAL}Checking out branch ${GREEN}$branch ${NORMAL}in repo ${GREEN}$name ${NORMAL} "
230 git checkout $branch
231 git fetch origin
232 git fetch origin --tags
233 if [[ "$url" == *git.ti.com* ]]
234 then
235 [[ -n $RESET ]] && echo -e "${PURPLE}Reset to latest in repo ${GREEN}$name ${NORMAL} branch ${GREEN}$branch ${NORMAL}" && git reset --hard origin/$branch
236 [[ -n $USE_TAG ]] && git reset --hard $USE_TAG && echo -e "${NORMAL}Reset to tag ${GREEN}$USE_TAG ${NORMAL}in repo ${GREEN}$name ${NORMAL} "
237 fi
238 cd_back
239 i=$[$i + 3]
240 done
241 }
243 function setup_toolchain()
244 {
245 if [ ! -f `path downloads`/arm-toolchain.tar.bz2 ]; then
246 echo "Setting toolchain"
247 wget ${toolchain[0]} -O `path downloads`/arm-toolchain.tar.bz2
248 tar -xjf `path downloads`/arm-toolchain.tar.bz2 -C `path toolchain`
249 mv `path toolchain`/* `path toolchain`/arm
250 fi
251 }
253 function build_uimage()
254 {
255 cd_repo kernel
256 [ -z $NO_CONFIG ] && cp `path configuration`/kernel_$KERNEL_VERSION.$KERNEL_PATCHLEVEL.config `repo_path kernel`/.config
257 [ -z $NO_CLEAN ] && make clean
258 [ -z $NO_CLEAN ] && assert_no_error
260 if [ "$KERNEL_VERSION" -eq 3 ] && [ "$KERNEL_PATCHLEVEL" -eq 2 ]
261 then
262 make -j${PROCESSORS_NUMBER} uImage
263 else
264 LOADADDR=0x80008000 make -j${PROCESSORS_NUMBER} uImage.am335x-evm
265 fi
267 assert_no_error
268 cp `repo_path kernel`/arch/arm/boot/uImage `path tftp`/uImage
269 cd_back
270 }
272 function generate_compat()
273 {
274 cd_repo backports
275 python ./gentree.py --clean `repo_path driver` `path compat_wireless`
276 cd_back
277 }
279 function build_modules()
280 {
281 generate_compat
282 cd_repo compat_wireless
283 if [ -z $NO_CLEAN ]; then
284 make clean
285 fi
286 make defconfig-wl18xx
287 make -j${PROCESSORS_NUMBER}
288 assert_no_error
289 find . -name \*.ko -exec cp {} `path debugging`/ \;
290 find . -name \*.ko -exec ${CROSS_COMPILE}strip -g {} \;
292 make -C ${KERNEL_PATH} M=`pwd` "INSTALL_MOD_PATH=`path filesystem`" modules_install
293 assert_no_error
294 #chmod -R 0777 ${PATH__FILESYSTEM}/lib/modules/
295 cd_back
296 }
298 function build_openssl()
299 {
300 cd_repo openssl
301 [ -z $NO_CONFIG ] && ./Configure s/compiler:gcc
302 [ -z $NO_CLEAN ] && make clean
303 [ -z $NO_CLEAN ] && assert_no_error
304 make
305 assert_no_error
306 make install_sw
307 assert_no_error
308 cd_back
309 }
311 function build_libnl()
312 {
313 cd_repo libnl
314 [ -z $NO_CONFIG ] && ./autogen.sh
315 [ -z $NO_CONFIG ] && ./configure --prefix=`path filesystem` --host=${ARCH} CC=${CROSS_COMPILE}gcc AR=${CROSS_COMPILE}ar
316 [ -z $NO_CLEAN ] && make clean
317 [ -z $NO_CLEAN ] && assert_no_error
318 make
319 assert_no_error
320 make install
321 assert_no_error
322 cd_back
323 }
325 function build_wpa_supplicant()
326 {
327 cd `repo_path hostap`/wpa_supplicant
328 [ -z $NO_CONFIG ] && cp android.config .config
329 CONFIG_LIBNL32=y DESTDIR=`path filesystem` make clean
330 assert_no_error
331 CONFIG_LIBNL32=y DESTDIR=`path filesystem` CFLAGS+="-I`path filesystem`/usr/local/ssl/include -I`repo_path libnl`/include" LIBS+="-L`path filesystem`/lib -L`path filesystem`/usr/local/ssl/lib -lssl -lcrypto -lm -ldl -lpthread" LIBS_p+="-L`path filesystem`/lib -L`path filesystem`/usr/local/ssl/lib -lssl -lcrypto -lm -ldl -lpthread" make -j${PROCESSORS_NUMBER} CC=${CROSS_COMPILE}gcc LD=${CROSS_COMPILE}ld AR=${CROSS_COMPILE}ar
332 assert_no_error
333 CONFIG_LIBNL32=y DESTDIR=`path filesystem` make install
334 assert_no_error
335 cd_back
336 cp `repo_path scripts_download`/conf/*_supplicant.conf `path filesystem`/etc/
337 }
339 function build_hostapd()
340 {
341 cd `repo_path hostap`/hostapd
342 [ -z $NO_CONFIG ] && cp android.config .config
343 CONFIG_LIBNL32=y DESTDIR=`path filesystem` make clean
344 assert_no_error
345 CONFIG_LIBNL32=y DESTDIR=`path filesystem` CFLAGS+="-I`path filesystem`/usr/local/ssl/include -I`repo_path libnl`/include" LIBS+="-L`path filesystem`/lib -L`path filesystem`/usr/local/ssl/lib -lssl -lcrypto -lm -ldl -lpthread" LIBS_p+="-L`path filesystem`/lib -L`path filesystem`/usr/local/ssl/lib -lssl -lcrypto -lm -ldl -lpthread" make -j${PROCESSORS_NUMBER} CC=${CROSS_COMPILE}gcc LD=${CROSS_COMPILE}ld AR=${CROSS_COMPILE}ar
346 assert_no_error
347 CONFIG_LIBNL32=y DESTDIR=`path filesystem` make install
348 assert_no_error
349 cd_back
350 cp `repo_path scripts_download`/conf/hostapd.conf `path filesystem`/etc/
351 }
353 function build_crda()
354 {
355 cp `repo_path wireless_regdb`/regulatory.bin `path filesystem`/usr/lib/crda/regulatory.bin
356 cp `repo_path wireless_regdb`/linville.key.pub.pem `path filesystem`/etc/wireless-regdb/pubkeys/
357 cd_repo crda
359 [ -z $NO_CLEAN ] && DESTDIR=`path filesystem` make clean
360 [ -z $NO_CLEAN ] && assert_no_error
361 PKG_CONFIG_LIBDIR="`path filesystem`/lib/pkgconfig" PKG_CONFIG_PATH="`path filesystem`/usr/local/ssl/lib/pkgconfig" DESTDIR=`path filesystem` CFLAGS+="-I`path filesystem`/usr/local/ssl/include -I`path filesystem`/include -L`path filesystem`/usr/local/ssl/lib -L`path filesystem`/lib" LDLIBS+=-lpthread V=1 USE_OPENSSL=1 make -j${PROCESSORS_NUMBER} all_noverify CC=${CROSS_COMPILE}gcc LD=${CROSS_COMPILE}ld AR=${CROSS_COMPILE}ar
362 assert_no_error
363 DESTDIR=`path filesystem` make install
364 assert_no_error
365 cd_back
366 }
368 function build_calibrator()
369 {
370 cd_repo ti_utils
371 [ -z $NO_CLEAN ] && NFSROOT=`path filesystem` make clean
372 [ -z $NO_CLEAN ] && assert_no_error
373 NLVER=3 NLROOT=`repo_path libnl`/include NFSROOT=`path filesystem` LIBS+=-lpthread make
374 assert_no_error
375 NFSROOT=`path filesystem` make install
376 #assert_no_error
377 cd_back
378 }
380 function build_wlconf()
381 {
382 files_to_copy="dictionary.txt struct.bin wl18xx-conf-default.bin README example.conf example.ini configure-device.sh"
383 cd `repo_path ti_utils`/wlconf
384 if [ -z $NO_CLEAN ]; then
385 NFSROOT=`path filesystem` make clean
386 assert_no_error
387 for file_to_copy in $files_to_copy; do
388 rm -f `path filesstem`/usr/sbin/wlconf/$file_to_copy
389 done
390 rm -f `path filesystem`/usr/sbin/wlconf/official_inis/*
391 fi
392 NFSROOT=`path filesystem` make CC=${CROSS_COMPILE}gcc LD=${CROSS_COMPILE}ld
393 assert_no_error
395 # install
396 cp -f `repo_path ti_utils`/wlconf/wlconf `path filesystem`/usr/sbin/wlconf
397 chmod 755 `path filesystem`/usr/sbin/wlconf
398 for file_to_copy in $files_to_copy; do
399 cp $file_to_copy `path filesystem`/usr/sbin/wlconf/$file_to_copy
400 done
401 cp official_inis/* `path filesystem`/usr/sbin/wlconf/official_inis/
402 cd_back
403 }
405 function build_fw_download()
406 {
407 cp `repo_path fw_download`/*.bin `path filesystem`/lib/firmware/ti-connectivity
408 }
411 function build_scripts_download()
412 {
413 cd_repo scripts_download
414 echo "Copying scripts"
415 scripts_download_path=`repo_path scripts_download`
416 for script_dir in `ls $scripts_download_path`
417 do
418 echo "Copying everything from ${script_dir} to `path filesystem`/usr/share/wl18xx directory"
419 cp -rf `repo_path scripts_download`/${script_dir}/* `path filesystem`/usr/share/wl18xx
420 done
421 cd_back
422 }
424 function clean_outputs()
425 {
426 echo "Cleaning outputs"
427 rm -rf `path filesystem`/*
428 rm -f `path outputs`/${tar_filesystem[0]}
429 rm -f `path outputs`/uImage
431 }
433 function build_outputs()
434 {
435 if [[ "$ROOTFS" == "DEFAULT" ]]
436 then
437 echo "Building outputs"
438 cd_path filesystem
439 tar cpjf `path outputs`/${tar_filesystem[0]} .
440 cd_back
441 cp `path tftp`/uImage `path outputs`/uImage
442 fi
443 }
445 function install_outputs()
446 {
447 echo "Installing outputs"
448 tftp_path=${setup[2]}
449 sitara_left_path=${setup[5]}
450 sitara_right_path=${setup[8]}
452 cp `path outputs`/uImage ${tftp_path}
453 cp `path outputs`/${tar_filesystem[0]} $sitara_left_path
454 cp `path outputs`/${tar_filesystem[0]} $sitara_right_path
456 cd $sitara_left_path
457 tar xjf ${tar_filesystem[0]}
458 cd_back
460 cd $sitara_right_path
461 tar xjf ${tar_filesystem[0]}
462 cd_back
463 }
465 function set_files_to_verify()
466 {
467 files_to_verify=(
468 # skeleton path
469 # source path
470 # pattern in output of file
472 `path filesystem`/usr/local/sbin/wpa_supplicant
473 `repo_path hostap`/wpa_supplicant/wpa_supplicant
474 "ELF 32-bit LSB executable, ARM"
476 `path filesystem`/usr/local/bin/hostapd
477 `repo_path hostap`/hostapd/hostapd
478 "ELF 32-bit LSB executable, ARM"
480 `path filesystem`/sbin/crda
481 `repo_path crda`/crda
482 "ELF 32-bit LSB executable, ARM"
484 `path filesystem`/usr/lib/crda/regulatory.bin
485 `repo_path wireless_regdb`/regulatory.bin
486 "CRDA wireless regulatory database file"
488 `path filesystem`/lib/firmware/ti-connectivity/wl18xx-fw-4.bin
489 `repo_path fw_download`/wl18xx-fw-4.bin
490 "data"
492 `path filesystem`/lib/modules/$KERNEL_VERSION.$KERNEL_PATCHLEVEL.*/extra/drivers/net/wireless/ti/wl18xx/wl18xx.ko
493 `path compat_wireless`/drivers/net/wireless/ti/wl18xx/wl18xx.ko
494 "ELF 32-bit LSB relocatable, ARM"
496 `path filesystem`/lib/modules/$KERNEL_VERSION.$KERNEL_PATCHLEVEL.*/extra/drivers/net/wireless/ti/wlcore/wlcore.ko
497 `path compat_wireless`/drivers/net/wireless/ti/wlcore/wlcore.ko
498 "ELF 32-bit LSB relocatable, ARM"
500 #`path filesystem`/usr/bin/calibrator
501 #`repo_path ti_utils`/calibrator
502 #"ELF 32-bit LSB executable, ARM"
504 `path filesystem`/usr/sbin/wlconf/wlconf
505 `repo_path ti_utils`/wlconf/wlconf
506 "ELF 32-bit LSB executable, ARM"
507 )
508 }
510 function get_tag()
511 {
512 i="0"
513 while [ $i -lt ${#repositories[@]} ]; do
514 name=${repositories[$i]}
515 url=${repositories[$i + 1]}
516 branch=${repositories[$i + 2]}
517 checkout_type="branch"
518 cd_repo $name
519 if [[ "$url" == *git.ti.com* ]]
520 then
521 echo -e "${PURPLE}Describe of ${NORMAL} repo : ${GREEN}$name ${NORMAL} " ;
522 git describe
523 fi
524 cd_back
525 i=$[$i + 3]
526 done
527 }
531 function admin_tag()
532 {
533 i="0"
534 while [ $i -lt ${#repositories[@]} ]; do
535 name=${repositories[$i]}
536 url=${repositories[$i + 1]}
537 branch=${repositories[$i + 2]}
538 checkout_type="branch"
539 cd_repo $name
540 if [[ "$url" == *git.ti.com* ]]
541 then
542 echo -e "${PURPLE}Adding tag ${GREEN} $1 ${NORMAL} to repo : ${GREEN}$name ${NORMAL} " ;
543 git show --summary
544 read -p "Do you want to tag this commit ?" yn
545 case $yn in
546 [Yy]* ) git tag -a $1 -m "$1" ;
547 git push --tags ;;
548 [Nn]* ) echo -e "${PURPLE}Tag was not applied ${NORMAL} " ;;
550 * ) echo "Please answer yes or no.";;
551 esac
553 fi
554 cd_back
555 i=$[$i + 3]
556 done
557 }
560 function verify_skeleton()
561 {
562 echo "Verifying filesystem skeleton..."
564 set_files_to_verify
566 i="0"
567 while [ $i -lt ${#files_to_verify[@]} ]; do
568 skeleton_path=${files_to_verify[i]}
569 source_path=${files_to_verify[i + 1]}
570 file_pattern=${files_to_verify[i + 2]}
571 file $skeleton_path | grep "${file_pattern}" >/dev/null
572 if [ $? -eq 1 ]; then
573 echo -e "${RED}ERROR " $skeleton_path " Not found ! ${NORMAL}"
574 #exit
575 fi
577 md5_skeleton=$(md5sum $skeleton_path | awk '{print $1}')
578 md5_source=$(md5sum $source_path | awk '{print $1}')
579 if [ $md5_skeleton != $md5_source ]; then
580 echo "ERROR: file mismatch"
581 echo $skeleton_path
582 exit 1
583 fi
584 i=$[$i + 3]
585 done
587 which regdbdump > /dev/null
588 if [ $? -eq 0 ]; then
589 regdbdump `path filesystem`/usr/lib/crda/regulatory.bin > /dev/null
590 assert_no_error
591 fi
592 }
594 function setup_workspace()
595 {
596 setup_directories
597 setup_repositories
598 setup_branches
599 #Download toolchain only if it was not set
600 [ DEFAULT_TOOLCHAIN ] && setup_toolchain
601 }
604 function build_all()
605 {
606 read_kernel_version
608 if [ -z $NO_EXTERNAL ]
609 then
610 [ $DEFAULT_KERNEL ] && build_uimage
611 build_openssl
612 build_libnl
613 build_crda
614 fi
616 if [ -z $NO_TI ]
617 then
618 build_modules
619 build_wpa_supplicant
620 build_hostapd
621 build_calibrator
622 build_wlconf
623 build_fw_download
624 build_scripts_download
625 fi
627 [ -z $NO_VERIFY ] && verify_skeleton
629 }
631 function setup_and_build()
632 {
633 setup_workspace
634 build_all
635 }
637 function main()
638 {
639 [[ "$1" == "-h" || "$1" == "--help" ]] && usage
641 setup_environment
642 setup_directories
644 case "$1" in
645 'update')
646 print_highlight " setting up workspace and building all "
647 if [ -n "$2" ]
648 then
649 print_highlight "Using tag $2 "
650 USE_TAG=$2
651 else
652 print_highlight "Updating all to head (this will revert local changes)"
653 RESET=1
654 fi
655 setup_workspace
656 build_all
657 ;;
659 'init')
660 print_highlight " initializing workspace (w/o build) "
661 [[ -n "$2" ]] && echo "Using tag $2 " && USE_TAG=$2
662 NO_BUILD=1
663 setup_workspace
664 read_kernel_version
665 ;;
668 'clean')
669 print_highlight " cleaning & building all "
670 clean_outputs
671 setup_directories
672 build_all
673 ;;
675 'rebuild')
676 print_highlight " building all (w/o clean) "
677 NO_CLEAN=1 build_all
678 ;;
680 'openlink')
681 print_highlight " building all (w/o clean) "
682 NO_EXTERNAL=1 setup_and_build
683 ;;
684 #################### Building single components #############################
685 'kernel')
686 print_highlight " building only Kernel "
687 build_uimage
688 ;;
690 'modules')
691 print_highlight " building only Driver modules "
692 build_modules
693 ;;
695 'wpa_supplicant')
696 print_highlight " building only wpa_supplicant "
697 build_wpa_supplicant
699 ;;
701 'hostapd')
702 print_highlight " building only hostapd "
703 build_hostapd
704 ;;
706 'crda')
707 print_highlight " building only CRDA "
708 build_crda
709 ;;
711 'scripts')
712 print_highlight " Copying scripts "
713 build_scripts_download
714 ;;
715 'utils')
716 print_highlight " building only ti-utils "
717 build_calibrator
718 build_wlconf
719 ;;
720 ############################################################
721 'get_tag')
722 get_tag
723 exit
724 ;;
726 'admin_tag')
727 admin_tag $2
728 ;;
730 *)
731 print_highlight " building all (No clean & no source code update) "
732 #clean_outputs
733 NO_CLEAN=1 build_all
734 ;;
735 esac
737 [[ -z $NO_BUILD ]] && build_outputs
738 [[ -n $INSTALL_NFS ]] && install_outputs
739 }
740 main $@