]> Gitweb @ Texas Instruments - Open Source Git Repositories - git.TI.com/gitweb - wilink8-wlan/build-utilites.git/blobdiff - build_wl18xx.sh
build - add option to build all hostap
[wilink8-wlan/build-utilites.git] / build_wl18xx.sh
index a5c36cfb677e7e1dc680b06715c1198931c4090d..154302a34efe0dca9421db2dcb52c81d579969c3 100755 (executable)
@@ -177,6 +177,7 @@ function setup_environment()
         DEFAULT_TOOLCHAIN=1
     fi   
 
+
     #if no kernel path is set - download it.
     if [[ "$KERNEL_PATH" == "DEFAULT" ]]
     then            
@@ -194,8 +195,8 @@ function setup_environment()
        export LIBNL_PATH=`repo_path libnl`     
        export KLIB=`path filesystem`
        export KLIB_BUILD=${KERNEL_PATH}
-        export GIT_TREE=`repo_path driver`
-        export PATH=$TOOLCHAIN_PATH:$PATH
+       export GIT_TREE=`repo_path driver`
+       export PATH=$TOOLCHAIN_PATH:$PATH
     
 }
 
@@ -272,6 +273,56 @@ function setup_toolchain()
        fi
 }
 
+function build_intree()
+{
+       cd_repo driver
+       export KERNEL_PATH=`repo_path driver`
+       read_kernel_version
+       [ $CONFIG ] && cp `path configuration`/kernel_$KERNEL_VERSION.$KERNEL_PATCHLEVEL.config `repo_path driver`/.config
+       [ $CLEAN ] && make clean
+       [ $CLEAN ] && assert_no_error
+
+       make -j${PROCESSORS_NUMBER} zImage
+       make -j${PROCESSORS_NUMBER} am335x-evm.dtb
+       make -j${PROCESSORS_NUMBER} am335x-evm-wow.dtb
+       make -j${PROCESSORS_NUMBER} am335x-bone.dtb
+       make -j${PROCESSORS_NUMBER} am335x-boneblack.dtb
+       make -j${PROCESSORS_NUMBER} am335x-boneblack-e14-wl1837.dtb
+       make -j${PROCESSORS_NUMBER} am335x-boneblack-su-audio.dtb
+       make -j${PROCESSORS_NUMBER} am335x-boneblack-wl1835.dtb
+       make -j${PROCESSORS_NUMBER} modules
+       INSTALL_MOD_PATH=`path filesystem` make -j${PROCESSORS_NUMBER} modules_install
+       cp `repo_path driver`/arch/arm/boot/zImage `path tftp`/zImage
+       cp `repo_path driver`/arch/arm/boot/dts/am335x-*.dtb `path tftp`/
+
+       assert_no_error
+
+       cd `path filesystem`
+       [ -f ../outputs/drv_skeleton.tar ] && rm ../outputs/drv_skeleton.tar
+       find ./ -name wl*.ko -exec tar rf ../outputs/drv_skeleton.tar {$1} \;
+       find ./ -name *80211*.ko -exec tar rf ../outputs/drv_skeleton.tar {$1} \;
+
+       cd_back
+}
+
+function rebuild_intree()
+{
+    cd_repo driver
+       export KERNEL_PATH=`repo_path driver`
+
+       INSTALL_MOD_PATH=`path filesystem` make -j${PROCESSORS_NUMBER} M=net/wireless/ modules
+       INSTALL_MOD_PATH=`path filesystem` make -j${PROCESSORS_NUMBER} M=net/wireless/ modules_install
+
+       INSTALL_MOD_PATH=`path filesystem` make -j${PROCESSORS_NUMBER} M=net/mac80211/ modules
+       INSTALL_MOD_PATH=`path filesystem` make -j${PROCESSORS_NUMBER} M=net/mac80211/ modules_install
+
+       INSTALL_MOD_PATH=`path filesystem` make -j${PROCESSORS_NUMBER} M=drivers/net/wireless/ti/ modules
+       INSTALL_MOD_PATH=`path filesystem` make -j${PROCESSORS_NUMBER} M=drivers/net/wireless/ti/ modules_install
+
+       assert_no_error
+       cd_back
+}
+
 function build_uimage()
 {
     cd_repo kernel
@@ -393,7 +444,7 @@ function build_hostapd()
 {
     cd `repo_path hostap`/hostapd
        [ -z $NO_CONFIG ] && cp android.config .config
-       [ -n "$UPNP_EN" ] && echo "Enable UPNP config" && sed -i "/#CONFIG_WPS_UPNP=y/ s/# *//" .config
+       [ -z $NO_UPNP ] && echo "Enable UPNP config" && sed -i "/#CONFIG_WPS_UPNP=y/ s/# *//" .config
        CONFIG_LIBNL32=y DESTDIR=`path filesystem` make clean
        assert_no_error
        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
@@ -419,6 +470,19 @@ function build_crda()
        cd_back
 }
 
+function build_wl_logger()
+{
+       if [ -d "`repo_path ti_utils`/wl_logproxy" ]; then
+               cd `repo_path ti_utils`/wl_logproxy
+               [ -z $NO_CLEAN ] && NFSROOT=`path filesystem` make clean
+               [ -z $NO_CLEAN ] && assert_no_error
+               NLVER=3 NLROOT=`repo_path libnl`/include NFSROOT=`path filesystem` LIBS+=-lpthread make
+               assert_no_error
+               NFSROOT=`path filesystem` make install
+               cd_back
+       fi
+}
+
 function build_calibrator()
 {
        cd_repo ti_utils
@@ -463,6 +527,17 @@ function build_fw_download()
        cp `repo_path fw_download`/*.bin `path filesystem`/lib/firmware/ti-connectivity
 }
 
+function build_fw()
+{
+       cd `repo_path firmware-build`/victoria/firmware
+       [ -z $NO_CLEAN ] && ./build.sh clean
+       ./build.sh
+       cp `repo_path firmware-build`/victoria/firmware/out/Firmware18xx/wl18xx-fw-4.bin `path filesystem`/lib/firmware/ti-connectivity
+       cp `repo_path firmware-build`/victoria/firmware/out/Firmware18xx/wl18xx-fw-4.bin `path outputs`
+       cd_back
+}
+
+
 function patch_kernel()
 {
        [ ! -d $KERNEL_PATH ] && echo "Error KERNEL_PATH: $KERNEL_PATH dir does not exist" && exit 1
@@ -505,7 +580,7 @@ function build_uim()
 function build_bt_firmware()
 {
        cd_repo bt-firmware
-       for i in `repo_path bt-firmware`/*.bts; do
+       for i in `repo_path bt-firmware`/initscripts/*.bts; do
                echo "Installing bluetooth init script: $i"
                install -m 0755 $i `path filesystem`/lib/firmware/
                assert_no_error
@@ -633,6 +708,49 @@ function set_files_to_verify()
         `repo_path ti_utils`/wlconf/wlconf
         "ELF 32-bit LSB[ ]*executable, ARM"
         )
+
+               [ $INTREE ] && files_to_verify=(
+        # skeleton path
+        # source path
+        # pattern in output of file
+
+        `path filesystem`/usr/local/sbin/wpa_supplicant
+        `repo_path hostap`/wpa_supplicant/wpa_supplicant
+        "ELF 32-bit LSB[ ]*executable, ARM"
+
+        `path filesystem`/usr/local/bin/hostapd
+        `repo_path hostap`/hostapd/hostapd
+        "ELF 32-bit LSB[ ]*executable, ARM"
+
+        `path filesystem`/sbin/crda
+        `repo_path crda`/crda
+        "ELF 32-bit LSB[ ]*executable, ARM"
+
+        `path filesystem`/usr/lib/crda/regulatory.bin
+        `repo_path wireless_regdb`/regulatory.bin
+        "CRDA wireless regulatory database file"
+
+        `path filesystem`/lib/firmware/ti-connectivity/wl18xx-fw-4.bin
+        `repo_path fw_download`/wl18xx-fw-4.bin
+        "data"
+
+        `path filesystem`/lib/modules/$KERNEL_VERSION.$KERNEL_PATCHLEVEL.*/kernel/drivers/net/wireless/ti/wl18xx/wl18xx.ko
+        `repo_path driver`/drivers/net/wireless/ti/wl18xx/wl18xx.ko
+        "ELF 32-bit LSB[ ]*relocatable, ARM"
+
+        `path filesystem`/lib/modules/$KERNEL_VERSION.$KERNEL_PATCHLEVEL.*/kernel/drivers/net/wireless/ti/wlcore/wlcore.ko
+        `repo_path driver`/drivers/net/wireless/ti/wlcore/wlcore.ko
+        "ELF 32-bit LSB[ ]*relocatable, ARM"
+
+        #`path filesystem`/usr/bin/calibrator
+        #`repo_path ti_utils`/calibrator
+        #"ELF 32-bit LSB[ ]*executable, ARM"
+
+        `path filesystem`/usr/sbin/wlconf/wlconf
+        `repo_path ti_utils`/wlconf/wlconf
+        "ELF 32-bit LSB[ ]*executable, ARM"
+        ) 
+
 }
 
 function get_tag()
@@ -761,7 +879,7 @@ function build_all()
 {
     if [ -z $NO_EXTERNAL ] 
     then        
-        [ $DEFAULT_KERNEL ] && build_uimage
+        [ -z $INTREE ] && [ $DEFAULT_KERNEL ] && build_uimage
         build_openssl
         build_libnl
         build_crda
@@ -769,11 +887,13 @@ function build_all()
     
     if [ -z $NO_TI ] 
     then
-        build_modules
+        [ -z $INTREE ] && build_modules
+               [ $INTREE ] && build_intree
         build_iw
         build_wpa_supplicant
         build_hostapd  
         build_calibrator
+        build_wl_logger
         build_wlconf
         build_fw_download
         build_scripts_download
@@ -838,15 +958,26 @@ function main()
         #################### Building single components #############################
                'kernel')
                print_highlight " building only Kernel "
-                #clean_kernel
+        #clean_kernel
                build_uimage
                ;;
+
+               'intree')
+               print_highlight " building modules intree"
+               build_intree
+               ;;
                
-                'kernel_modules')
-        print_highlight " building only Driver modules "
-                build_uimage
+               'intree_m')
+               print_highlight " Building JUST wireless modules intree"
+               rebuild_intree
+               ;;
+
+        'kernel_modules')
+        print_highlight " building kernel and driver modules"
+        build_uimage
                build_modules
-                ;;
+               ;;
+
                'modules')
         print_highlight " building only Driver modules "
                build_modules
@@ -890,14 +1021,28 @@ function main()
                'utils')
                print_highlight " building only ti-utils "
                build_calibrator
+               build_wl_logger
                build_wlconf            
                ;;
 
+               'all_hostap')
+                print_highlight " building hostap and dependencies "
+                build_libnl
+                build_openssl
+                build_wpa_supplicant
+               build_hostapd
+                ;; 
+
                'firmware')
                print_highlight " building only firmware"
                build_fw_download
                ;;
 
+               'fw')
+               print_highlight " building only firmware"
+               build_fw
+               ;;
+
                'patch_kernel')
                print_highlight " only patching kernel $2 without performing an actual build!"
                NO_BUILD=1
@@ -933,6 +1078,11 @@ function main()
         NO_CLEAN=1 build_all
                ;;
 
+               'all_intree')
+        print_highlight " building all (in-tree) (No clean & no source code update) "
+               #clean_outputs
+        INTREE=1 build_all
+               ;;
         *)
         echo " "
         echo "**** Unknown parameter - please see usage below **** "