Fail the build if one step fails
[platform/upstream/iotivity.git] / auto_build.sh
1 #! /bin/bash
2
3 # Ideally we will capture the exit code of each step and try them all before failing
4 # the build script.  For now, use set -e and fail the build at first failure.
5 set -e
6
7 function clean()
8 {
9         echo "*********** Clean build *************"
10         scons -c
11         rm -rf out
12 }
13
14 function build()
15 {
16         if [ $(uname -s) = "Linux" ]
17         then
18                 echo "*********** Build for linux *************"
19                 scons RELEASE=$3
20         fi
21
22         # Note: for android, as oic-resource uses C++11 feature stoi and to_string,
23         # it requires gcc-4.9, currently only android-ndk-r10(for linux)
24         # and windows android-ndk-r10(64bit target version) support these features.
25
26         echo "*********** Build for android x86 *************"
27         scons TARGET_OS=android TARGET_ARCH=x86 ANDROID_NDK=$1 RELEASE=$3
28
29         echo "*********** Build for android armeabi *************"
30         scons TARGET_OS=android TARGET_ARCH=armeabi ANDROID_NDK=$1 RELEASE=$3
31
32         echo "*********** Build for android armeabi-v7a *************"
33         scons TARGET_OS=android TARGET_ARCH=armeabi-v7a ANDROID_NDK=$1 RELEASE=$3
34
35         echo "*********** Build for android armeabi-v7a-hard *************"
36         scons TARGET_OS=android TARGET_ARCH=armeabi-v7a-hard ANDROID_NDK=$1 RELEASE=$3
37
38         echo "*********** Build for arduino avr *************"
39         scons TARGET_OS=arduino TARGET_ARCH=avr ARDUINO_HOME=$2 RELEASE=$3
40
41         echo "*********** Build for arduino arm *************"
42         scons TARGET_OS=arduino TARGET_ARCH=arm ARDUINO_HOME=$2 RELEASE=$3
43
44         if [ $(uname -s) = "Darwin" ]
45         then
46                 echo "*********** Build for OSX *************"
47                 scons TARGET_OS=darwin SYS_VERSION=10.9 RELEASE=$3
48
49                 echo "*********** Build for IOS i386 *************"
50                 scons TARGET_OS=ios TARGET_ARCH=i386 SYS_VERSION=7.0 RELEASE=$3
51
52                 echo "*********** Build for IOS x86_64 *************"
53                 scons TARGET_OS=ios TARGET_ARCH=x86_64 SYS_VERSION=7.0 RELEASE=$3
54
55                 echo "*********** Build for IOS armv7 *************"
56                 scons TARGET_OS=ios TARGET_ARCH=armv7 SYS_VERSION=7.0 RELEASE=$3
57
58                 echo "*********** Build for IOS armv7s *************"
59                 scons TARGET_OS=ios TARGET_ARCH=armv7s SYS_VERSION=7.0 RELEASE=$3
60
61                 echo "*********** Build for IOS arm64 *************"
62                 scons TARGET_OS=ios TARGET_ARCH=arm64 SYS_VERSION=7.0 RELEASE=$3
63         fi
64 }
65
66 function  help()
67 {
68         echo "Usage:"
69         echo "  build:"
70         echo "     `basename $0` <path-to-android-ndk> <path-to-arduino-home>"
71         echo "  clean:"
72         echo "     `basename $0` -c"
73 }
74
75 if [ $# -eq 1 ]
76 then
77         if [ $1 = '-c' ]
78         then
79                 clean
80                 exit 0
81         else
82                 help
83                 exit -1
84         fi
85 elif [ $# -ne 2 ]
86 then
87         help
88         exit -1
89 fi
90
91 # Suppress "Reading ..." message and enable parallel build
92 export SCONSFLAGS="-Q -j 8"
93 build $1 $2 true
94 build $1 $2 false
95 echo "===================== done ====================="