Add arguments for app control launch
[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
17 # CMain target
18 CMAIN_DIR="$BASE_DIR/CMain"
19 CMAIN_INC_DIR="$CMAIN_DIR/inc"
20 CMAIN_LIB_DIR="$CMAIN_DIR/lib"
21
22 function build_init() {
23     echo ""
24     echo "=================================================================="
25     echo " Initialize Submodule from \"$SUBMODULE\" repository"
26     echo "=================================================================="
27     submodule_init
28     submodule_sync
29 }
30
31 function build_c_interface() {
32     echo ""
33     echo "=================================================================="
34     echo " Build binary [c-archive] of c interface from Submodule locally"
35     echo "=================================================================="
36     submodule_build $1
37     copy_library
38 }
39
40 function submodule_init() {
41     echo ""
42     echo "----------------------------------------------------------"
43     echo " Submodule Init to \"$SUBMODULE\" directory"
44     echo "----------------------------------------------------------"
45     git submodule init
46 }
47
48 function submodule_sync() {
49     echo ""
50     echo "---------------------------------------------"
51     echo " Submodule Sync to Init version"
52     echo "---------------------------------------------"
53     git submodule update
54 }
55
56 function submodule_update() {
57     echo ""
58     echo "---------------------------------------------"
59     echo " Submodule update to Latest version"
60     echo "---------------------------------------------"
61     pushd $BASE_DIR
62     git submodule foreach -q --recursive 'branch="$(git config -f $BASE_DIR/.gitmodules submodule.$name.branch)"; git checkout $branch'
63     cd $SUBMODULE || exit 1
64     git checkout b5d4190f722274952cbea334c635ee504e70d5fc
65     popd
66 }
67
68 function submodule_apply_patch() {
69     echo ""
70     echo "---------------------------------------------"
71     echo " Apply LF Edge patch for tizen"
72     echo "---------------------------------------------"
73     pushd $BASE_DIR
74     cd $SUBMODULE || exit 1
75     git apply ../patches/build.patch
76     git apply ../patches/capabilitydetails.patch
77     git apply ../patches/capability.patch
78     git apply ../patches/capability_test.patch
79     git apply ../patches/commands.patch
80     git apply ../patches/commandvalidator.patch
81     git apply ../patches/injectionchecker.patch
82     git apply ../patches/native.patch
83     git apply ../patches/configuremgr.patch
84     git apply ../patches/configuremgr_test.patch
85     git apply ../patches/devicedetails.patch
86     git apply ../patches/discovery.patch
87     git apply ../patches/glide.patch
88     git apply ../patches/gomain.patch
89     git apply ../patches/javaapi.patch
90     git apply ../patches/main.patch
91     git apply ../patches/mock_orchestration.patch
92     git apply ../patches/mocks_capability.patch
93     git apply ../patches/mocks_configuremgr.patch
94     git apply ../patches/mocks_servicemgr.patch
95     git apply ../patches/mocks_utils.patch
96     git apply ../patches/nativeexecutor.patch
97     git apply ../patches/orchestration_api.patch
98     git apply ../patches/orchestrationapi_test.patch
99     git apply ../patches/orchestration.patch
100     git apply ../patches/orchestration_test.patch
101     git apply ../patches/servicemgr.patch
102     git apply ../patches/servicemgr_test.patch
103     git apply ../patches/types.patch
104     git apply ../patches/utils.patch
105     git apply ../patches/wrapper.patch
106     popd
107 }
108
109
110 function submodule_build() {
111     echo ""
112     echo "---------------------------------------------"
113     echo " Build binary [c-archive]"
114     echo "---------------------------------------------"
115     pushd $BASE_DIR
116     cd $SUBMODULE  || exit 1
117     if [ "$1" == "secure" ]; then
118         bash $SUBMODULE_BUILD_CMD_WITH_TAGS || exit 1
119     else
120         bash $SUBMODULE_BUILD_CMD || exit 1
121     fi
122     popd
123 }
124
125 function copy_library() {
126     echo ""
127     echo "----------------------------------------------------------"
128     echo " Copy orchestration library [c-archive] to CMain folder"
129     echo "----------------------------------------------------------"
130     cp $INTERFACE_OUT_INC_DIR/$HEADER_FILE $CMAIN_INC_DIR
131     cp $INTERFACE_OUT_LIB_DIR/$LIBRARY_FILE $CMAIN_LIB_DIR
132     tree $CMAIN_DIR
133 }
134
135 function build_clean() {
136     echo ""
137     echo "-----------------------------------"
138     echo " Build clean"
139     echo "-----------------------------------"
140     make clean
141 }
142
143 function build_test() {
144     echo ""
145     echo "-----------------------------------"
146     echo " Build test"
147     echo "-----------------------------------"
148     INTERFACE_OUT_INC_DIR="$INTERFACE_OUT_DIR/inc/linux_x86-64"
149     INTERFACE_OUT_LIB_DIR="$INTERFACE_OUT_DIR/lib/linux_x86-64"
150     build_clean
151     build_c_interface
152     make test
153 }
154
155 function build_package() {
156     echo ""
157     echo "------------------------------------------"
158     echo " Create Packages for Tizen from gbs build"
159     echo "------------------------------------------"
160
161     gbs -c ./.tizen.gbs.conf build -A armv7l --include-all
162
163     ### build through go toolchain
164     #gbs -c ./.tizen.gbs.conf build -A armv7l --include-all --define 'go_build ON'
165 }
166
167 case "$1" in
168     "")
169         build_clean
170         build_init
171         build_c_interface
172         build_package
173         ;;
174     "secure")
175         build_clean
176         build_init
177         submodule_update
178         submodule_apply_patch
179         build_c_interface $1
180         build_package
181         ;;
182     "init")
183         build_clean
184         build_init
185         submodule_update
186         submodule_apply_patch
187         build_c_interface $2
188         build_package
189         ;;
190     "local")
191         build_clean
192         build_c_interface $2
193         build_package
194         ;;
195     "test")
196         build_test
197         ;;
198     "clean")
199         build_clean
200         ;;
201     *)
202         echo "build script"
203         echo "Usage:"
204         echo "---------------------------------------------------------------------------------------"
205         echo "  $0              : build C-Archive & RPM packages from Submodule"
206         echo "  $0 secure       : build C-Archive & RPM packages from Submodule with secure option"
207         echo "  $0 init         : build from latest Submodule"
208         echo "  $0 init secure  : build from latest Submodule with secure option"
209         echo "  $0 local        : build from local Submodule"
210         echo "  $0 local secure : build from local Submodule with secure option"
211         echo "  $0 test         : build test"
212         echo "  $0 clean        : build clean"
213         echo "---------------------------------------------------------------------------------------"
214         exit 0
215         ;;
216 esac