Merge "fix bug at strcmp" into tizen
[platform/core/system/edge-orchestration.git] / build.sh
1 #! /bin/bash
2
3 export BASE_DIR=$( cd "$(dirname "$0")" ; pwd )
4
5 # Submodule
6 SUBMODULE="edge-home-orchestration-go"
7 SUBMODULE_BUILD_CMD="build.sh object"
8 SUBMODULE_BUILD_CMD_WITH_TAGS="build.sh object secure"
9
10 # Orchestration library for c-archive
11 HEADER_FILE="orchestration.h"
12 LIBRARY_FILE="liborchestration.a"
13 INTERFACE_OUT_DIR="$BASE_DIR/$SUBMODULE/src/interfaces/capi/output"
14 INTERFACE_OUT_INC_DIR="$INTERFACE_OUT_DIR/inc/linux_arm"
15 INTERFACE_OUT_LIB_DIR="$INTERFACE_OUT_DIR/lib/linux_arm"
16 CERTKEY_FILE="edge-orchestration.key"
17 CERTKEY_PATH="$BASE_DIR/$SUBMODULE/doc/sampleTLSKey"
18
19 # CMain target
20 CMAIN_DIR="$BASE_DIR/CMain"
21 CMAIN_INC_DIR="$CMAIN_DIR/inc"
22 CMAIN_LIB_DIR="$CMAIN_DIR/lib"
23
24 function build_init() {
25     echo ""
26     echo "=================================================================="
27     echo " Initialize Submodule from \"$SUBMODULE\" repository"
28     echo "=================================================================="
29     submodule_init
30     submodule_sync
31 }
32
33 function build_c_interface() {
34     echo ""
35     echo "=================================================================="
36     echo " Build binary [c-archive] of c interface from Submodule locally"
37     echo "=================================================================="
38     submodule_build $1
39     copy_library
40     copy_certKey
41 }
42
43 function submodule_init() {
44     echo ""
45     echo "----------------------------------------------------------"
46     echo " Submodule Init to \"$SUBMODULE\" directory"
47     echo "----------------------------------------------------------"
48     git submodule init
49 }
50
51 function submodule_sync() {
52     echo ""
53     echo "---------------------------------------------"
54     echo " Submodule Sync to Init version"
55     echo "---------------------------------------------"
56     git submodule update
57 }
58
59 function submodule_update() {
60     echo ""
61     echo "---------------------------------------------"
62     echo " Submodule update to Latest version"
63     echo "---------------------------------------------"
64     git submodule foreach -q --recursive 'branch="$(git config -f $BASE_DIR/.gitmodules submodule.$name.branch)"; git checkout $branch'
65 }
66
67 function submodule_build() {
68     echo ""
69     echo "---------------------------------------------"
70     echo " Build binary [c-archive]"
71     echo "---------------------------------------------"
72     pushd $BASE_DIR
73     cd $SUBMODULE  || exit 1
74     if [ "$1" == "secure" ]; then
75         bash $SUBMODULE_BUILD_CMD_WITH_TAGS || exit 1
76     else
77         bash $SUBMODULE_BUILD_CMD || exit 1
78     fi
79     popd
80 }
81
82 function copy_library() {
83     echo ""
84     echo "----------------------------------------------------------"
85     echo " Copy orchestration library [c-archive] to CMain folder"
86     echo "----------------------------------------------------------"
87     cp $INTERFACE_OUT_INC_DIR/$HEADER_FILE $CMAIN_INC_DIR
88     cp $INTERFACE_OUT_LIB_DIR/$LIBRARY_FILE $CMAIN_LIB_DIR
89     tree $CMAIN_DIR
90 }
91
92 function copy_certKey() {
93     echo ""
94     echo "----------------------------------------------------------"
95     echo " Copy orchestration Certification Key to CMain folder"
96     echo "----------------------------------------------------------"
97     cp $CERTKEY_PATH/$CERTKEY_FILE $CMAIN_DIR
98 }
99
100 function build_clean() {
101     echo ""
102     echo "-----------------------------------"
103     echo " Build clean"
104     echo "-----------------------------------"
105     make clean
106 }
107
108 function build_test() {
109     echo ""
110     echo "-----------------------------------"
111     echo " Build test"
112     echo "-----------------------------------"
113     make test
114 }
115
116 function build_package() {
117     echo ""
118     echo "------------------------------------------"
119     echo " Create Packages for Tizen from gbs build"
120     echo "------------------------------------------"
121
122     gbs -c ./.tizen.gbs.conf build -A armv7l --include-all
123
124     ### build through go toolchain
125     #gbs -c ./.tizen.gbs.conf build -A armv7l --include-all --define 'go_build ON'
126 }
127
128 case "$1" in
129     "")
130         build_clean
131         build_init
132         build_c_interface
133         build_package
134         ;;
135     "secure")
136         build_clean
137         build_init
138         build_c_interface $1
139         build_package
140         ;;
141     "init")
142         build_clean
143         build_init
144         submodule_update
145         build_c_interface $2
146         build_package
147         ;;
148     "local")
149         build_clean
150         build_c_interface $2
151         build_package
152         ;;
153     "test")
154         build_test
155         ;;
156     "clean")
157         build_clean
158         ;;
159     *)
160         echo "build script"
161         echo "Usage:"
162         echo "---------------------------------------------------------------------------------------"
163         echo "  $0              : build C-Archive & RPM packages from Submodule"
164         echo "  $0 secure       : build C-Archive & RPM packages from Submodule with secure option"
165         echo "  $0 init         : build from latest Submodule"
166         echo "  $0 init secure  : build from latest Submodule with secure option"
167         echo "  $0 local        : build from local Submodule"
168         echo "  $0 local secure : build from local Submodule with secure option"
169         echo "  $0 test         : build test"
170         echo "  $0 clean        : build clean"
171         echo "---------------------------------------------------------------------------------------"
172         exit 0
173         ;;
174 esac