X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=auto_build.sh;h=82f1ef0962284274ca71de6678c698141120a91b;hb=03be8a9caecaa6aa5fc8a5f902a840aaa05e58a1;hp=536331c346c510ef0fad4ab1f255ae88e1c8899a;hpb=abd78803c92e45b9d6382ef2e1007a587388b074;p=platform%2Fupstream%2Fiotivity.git diff --git a/auto_build.sh b/auto_build.sh index 536331c..82f1ef0 100755 --- a/auto_build.sh +++ b/auto_build.sh @@ -4,100 +4,288 @@ # the build script. For now, use set -e and fail the build at first failure. set -e -function clean() -{ - echo "*********** Clean build *************" - scons -c - rm -rf out -} - -function build() +function build_all() { if [ $(uname -s) = "Linux" ] then - echo "*********** Build for linux *************" - scons RELEASE=$3 + build_linux_unsecured $1 $2 + build_linux_secured $1 $2 + build_linux_unsecured_with_ra $1 $2 + build_linux_secured_with_ra $1 $2 + build_linux_unsecured_with_rm $1 $2 + build_linux_unsecured_with_rd $1 $2 + build_linux_secured_with_rd $1 $2 fi + build_android $1 $2 + + build_arduino $1 $2 + + build_tizen $1 $2 + + if [ $(uname -s) = "Darwin" ] + then + build_darwin $1 $2 + fi +} + +function build_linux() +{ + build_linux_unsecured $1 $2 + + build_linux_secured $1 $2 +} + +function build_linux_unsecured() +{ + echo "*********** Build for linux ************" + scons RELEASE=$1 $2 +} + +function build_linux_unsecured_with_rm() +{ + echo "*********** Build for linux with RoutingManager************" + scons ROUTING=GW RELEASE=$1 $2 +} + +function build_linux_secured() +{ + echo "*********** Build for linux with Security *************" + scons RELEASE=$1 SECURED=1 $2 +} + +function build_linux_unsecured_with_ra() +{ + + echo "*********** Build for linux With Remote Access *************" + scons RELEASE=$1 WITH_RA=1 WITH_RA_IBB=1 $2 +} + +function build_linux_secured_with_ra() +{ + echo "*********** Build for linux With Remote Access & Security ************" + scons RELEASE=$1 WITH_RA=1 WITH_RA_IBB=1 SECURED=1 $2 +} + +function build_linux_unsecured_with_rd() +{ + echo "*********** Build for linux With Resource Directory *************" + scons RELEASE=$1 WITH_RD=1 $2 +} + +function build_linux_secured_with_rd() +{ + echo "*********** Build for linux With Resource Directory & Security ************" + scons RELEASE=$1 WITH_RD=1 SECURED=1 $2 +} + +function build_android() +{ # Note: for android, as oic-resource uses C++11 feature stoi and to_string, # it requires gcc-4.9, currently only android-ndk-r10(for linux) # and windows android-ndk-r10(64bit target version) support these features. - if [ "$BUILD_FOR_ANDROID" = "true" ] - then - echo "*********** Build Boost for android ***********" - pushd extlibs - ./buildDependencies.sh - popd + build_android_x86 $1 $2 + build_android_x86_with_rm $1 $2 + build_android_armeabi $1 $2 + build_android_armeabi_with_rm $1 $2 +} - echo "*********** Build for android x86 *************" - scons TARGET_OS=android TARGET_ARCH=x86 ANDROID_NDK=$1 RELEASE=$3 +function build_android_x86() +{ + echo "*********** Build for android x86 *************" + scons TARGET_OS=android TARGET_ARCH=x86 RELEASE=$1 TARGET_TRANSPORT=IP $2 + scons TARGET_OS=android TARGET_ARCH=x86 RELEASE=$1 TARGET_TRANSPORT=BT $2 + scons TARGET_OS=android TARGET_ARCH=x86 RELEASE=$1 TARGET_TRANSPORT=BLE $2 +} - echo "*********** Build for android armeabi *************" - scons TARGET_OS=android TARGET_ARCH=armeabi ANDROID_NDK=$1 RELEASE=$3 +function build_android_x86_with_rm() +{ + echo "*********** Build for android x86 with Routing Manager *************" + scons TARGET_OS=android TARGET_ARCH=x86 ROUTING=GW RELEASE=$1 TARGET_TRANSPORT=IP $2 + scons TARGET_OS=android TARGET_ARCH=x86 ROUTING=GW RELEASE=$1 TARGET_TRANSPORT=BT $2 + scons TARGET_OS=android TARGET_ARCH=x86 ROUTING=GW RELEASE=$1 TARGET_TRANSPORT=BLE $2 +} - echo "*********** Build for android armeabi-v7a *************" - scons TARGET_OS=android TARGET_ARCH=armeabi-v7a ANDROID_NDK=$1 RELEASE=$3 +function build_android_armeabi() +{ + echo "*********** Build for android armeabi *************" + scons TARGET_OS=android TARGET_ARCH=armeabi RELEASE=$1 TARGET_TRANSPORT=IP $2 + scons TARGET_OS=android TARGET_ARCH=armeabi RELEASE=$1 TARGET_TRANSPORT=BT $2 + scons TARGET_OS=android TARGET_ARCH=armeabi RELEASE=$1 TARGET_TRANSPORT=BLE $2 +} - echo "*********** Build for android armeabi-v7a-hard *************" - scons TARGET_OS=android TARGET_ARCH=armeabi-v7a-hard ANDROID_NDK=$1 RELEASE=$3 - fi - +function build_android_armeabi_with_rm() +{ + echo "*********** Build for android armeabi with Routing Manager*************" + scons TARGET_OS=android TARGET_ARCH=armeabi ROUTING=GW RELEASE=$1 TARGET_TRANSPORT=IP $2 + scons TARGET_OS=android TARGET_ARCH=armeabi ROUTING=GW RELEASE=$1 TARGET_TRANSPORT=BT $2 + scons TARGET_OS=android TARGET_ARCH=armeabi ROUTING=GW RELEASE=$1 TARGET_TRANSPORT=BLE $2 +} + +function build_arduino() +{ echo "*********** Build for arduino avr *************" - scons TARGET_OS=arduino TARGET_ARCH=avr ARDUINO_HOME=$2 RELEASE=$3 + scons resource TARGET_OS=arduino UPLOAD=false BOARD=mega TARGET_ARCH=avr TARGET_TRANSPORT=IP SHIELD=ETH RELEASE=$1 $2 + scons resource TARGET_OS=arduino UPLOAD=false BOARD=mega TARGET_ARCH=avr TARGET_TRANSPORT=IP SHIELD=WIFI RELEASE=$1 $2 + scons resource TARGET_OS=arduino UPLOAD=false BOARD=mega TARGET_ARCH=avr TARGET_TRANSPORT=BLE SHIELD=RBL_NRF8001 RELEASE=$1 $2 echo "*********** Build for arduino arm *************" - scons TARGET_OS=arduino TARGET_ARCH=arm ARDUINO_HOME=$2 RELEASE=$3 + scons resource TARGET_OS=arduino UPLOAD=false BOARD=arduino_due_x TARGET_ARCH=arm TARGET_TRANSPORT=IP SHIELD=ETH RELEASE=$1 $2 + scons resource TARGET_OS=arduino UPLOAD=false BOARD=arduino_due_x TARGET_ARCH=arm TARGET_TRANSPORT=IP SHIELD=WIFI RELEASE=$1 $2 + # BLE support for the Arduino Due is currently unavailable. +} - if [ $(uname -s) = "Darwin" ] - then - echo "*********** Build for OSX *************" - scons TARGET_OS=darwin SYS_VERSION=10.9 RELEASE=$3 +function build_tizen() +{ + echo "*********** Build for Tizen *************" + ./gbsbuild.sh - echo "*********** Build for IOS i386 *************" - scons TARGET_OS=ios TARGET_ARCH=i386 SYS_VERSION=7.0 RELEASE=$3 + echo "*********** Build for Tizen CA lib and sample *************" + scons -f resource/csdk/connectivity/build/tizen/SConscript TARGET_OS=tizen TARGET_TRANSPORT=IP LOGGING=true RELEASE=$1 $2 - echo "*********** Build for IOS x86_64 *************" - scons TARGET_OS=ios TARGET_ARCH=x86_64 SYS_VERSION=7.0 RELEASE=$3 + echo "*********** Build for Tizen CA lib and sample with Security *************" + scons -f resource/csdk/connectivity/build/tizen/SConscript TARGET_OS=tizen TARGET_TRANSPORT=IP LOGGING=true SECURED=1 RELEASE=$1 $2 - echo "*********** Build for IOS armv7 *************" - scons TARGET_OS=ios TARGET_ARCH=armv7 SYS_VERSION=7.0 RELEASE=$3 + echo "*********** Build for Tizen octbstack lib and sample *************" + scons -f resource/csdk/stack/samples/tizen/build/SConscript TARGET_OS=tizen TARGET_TRANSPORT=IP LOGGING=true RELEASE=$1 $2 - echo "*********** Build for IOS armv7s *************" - scons TARGET_OS=ios TARGET_ARCH=armv7s SYS_VERSION=7.0 RELEASE=$3 + echo "*********** Build for Tizen octbstack lib and sample with Routing Manager*************" + scons -f resource/csdk/stack/samples/tizen/build/SConscript TARGET_OS=tizen TARGET_TRANSPORT=IP LOGGING=true ROUTING=GW RELEASE=$1 $2 +} - echo "*********** Build for IOS arm64 *************" - scons TARGET_OS=ios TARGET_ARCH=arm64 SYS_VERSION=7.0 RELEASE=$3 - fi +function build_darwin() # Mac OSx and iOS +{ + echo "*********** Build for OSX *************" + scons TARGET_OS=darwin SYS_VERSION=10.9 RELEASE=$1 $2 + + echo "*********** Build for IOS i386 *************" + scons TARGET_OS=ios TARGET_ARCH=i386 SYS_VERSION=7.0 RELEASE=$1 $2 + + echo "*********** Build for IOS x86_64 *************" + scons TARGET_OS=ios TARGET_ARCH=x86_64 SYS_VERSION=7.0 RELEASE=$1 $2 + + echo "*********** Build for IOS armv7 *************" + scons TARGET_OS=ios TARGET_ARCH=armv7 SYS_VERSION=7.0 RELEASE=$1 $2 + + echo "*********** Build for IOS armv7s *************" + scons TARGET_OS=ios TARGET_ARCH=armv7s SYS_VERSION=7.0 RELEASE=$1 $2 + + echo "*********** Build for IOS arm64 *************" + scons TARGET_OS=ios TARGET_ARCH=arm64 SYS_VERSION=7.0 RELEASE=$1 $2 +} + +function unit_tests() +{ + echo "*********** Unit test Start *************" + scons resource RELEASE=false -c + scons resource LOGGING=false RELEASE=false + scons resource TEST=1 RELEASE=false + echo "*********** Unit test Stop *************" } function help() { echo "Usage:" echo " build:" - echo " `basename $0` " + echo " `basename $0` " + echo " Allowed values for : all, linux_unsecured, linux_secured, linux_unsecured_with_ra, linux_secured_with_ra, linux_unsecured_with_rd, linux_secured_with_rd, android, arduino, tizen, darwin" + echo " Note: \"linux\" will build \"linux_unsecured\", \"linux_secured\", \"linux_unsecured_with_ra\", \"linux_secured_with_ra\", \"linux_secured_with_rd\" & \"linux_unsecured_with_rd\"." + echo " Any selection will build both debug and release versions of all available targets in the scope you've" + echo " selected. To choose any specific command, please use the SCons commandline directly. Please refer" + echo " to [IOTIVITY_REPO]/Readme.scons.txt." echo " clean:" echo " `basename $0` -c" } +# Suppress "Reading ..." message and enable parallel build +export SCONSFLAGS="-Q -j 4" + if [ $# -eq 1 ] then if [ $1 = '-c' ] then - clean + build_all true $1 + build_all false $1 exit 0 + elif [ $1 = 'all' ] + then + build_all true + build_all false + unit_tests + elif [ $1 = 'linux' ] + then + build_linux true + build_linux false + elif [ $1 = 'linux_unsecured' ] + then + build_linux_unsecured true + build_linux_unsecured false + build_linux_unsecured_with_rm true + build_linux_unsecured_with_rm false + elif [ $1 = 'linux_secured' ] + then + build_linux_secured true + build_linux_secured false + elif [ $1 = 'linux_unsecured_with_ra' ] + then + build_linux_unsecured_with_ra true + build_linux_unsecured_with_ra false + elif [ $1 = 'linux_secured_with_ra' ] + then + build_linux_secured_with_ra true + build_linux_secured_with_ra false + elif [ $1 = 'linux_unsecured_with_rd' ] + then + build_linux_unsecured_with_rd true + build_linux_unsecured_with_rd false + elif [ $1 = 'linux_secured_with_rd' ] + then + build_linux_secured_with_rd true + build_linux_secured_with_rd false + elif [ $1 = 'android' ] + then + build_android true + build_android false + elif [ $1 = 'android_x86' ] + then + build_android_x86 true + build_android_x86 false + build_android_x86_with_rm true + build_android_x86_with_rm false + elif [ $1 = 'android_armeabi' ] + then + build_android_armeabi true + build_android_armeabi false + build_android_armeabi_with_rm true + build_android_armeabi_with_rm false + elif [ $1 = 'arduino' ] + then + build_arduino true + build_arduino false + elif [ $1 = 'tizen' ] + then + build_tizen true + build_tizen false + elif [ $1 = 'darwin' ] + then + build_darwin true + build_darwin false + elif [ $1 = 'unit_tests' ] + then + unit_tests else help exit -1 fi -elif [ $# -ne 2 ] +elif [ $# -eq 0 ] then + build_all true + build_all false + unit_tests +else help exit -1 fi -# Suppress "Reading ..." message and enable parallel build -export SCONSFLAGS="-Q -j 4" -build $1 $2 true -build $1 $2 false echo "===================== done ====================="