Add device capability and get authenticated device list
[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/configuremgr.patch
80     git apply ../patches/configuremgr_test.patch
81     git apply ../patches/devicedetails.patch
82     git apply ../patches/discovery.patch
83     git apply ../patches/glide.patch
84     git apply ../patches/gomain.patch
85     git apply ../patches/javaapi.patch
86     git apply ../patches/main.patch
87     git apply ../patches/mock_orchestration.patch
88     git apply ../patches/mocks_capability.patch
89     git apply ../patches/mocks_configuremgr.patch
90     git apply ../patches/mocks_servicemgr.patch
91     git apply ../patches/mocks_utils.patch
92     git apply ../patches/nativeexecutor.patch
93     git apply ../patches/orchestration_api.patch
94     git apply ../patches/orchestrationapi_test.patch
95     git apply ../patches/orchestration.patch
96     git apply ../patches/orchestration_test.patch
97     git apply ../patches/servicemgr.patch
98     git apply ../patches/servicemgr_test.patch
99     git apply ../patches/types.patch
100     git apply ../patches/utils.patch
101     git apply ../patches/wrapper.patch
102     popd
103 }
104
105
106 function submodule_build() {
107     echo ""
108     echo "---------------------------------------------"
109     echo " Build binary [c-archive]"
110     echo "---------------------------------------------"
111     pushd $BASE_DIR
112     cd $SUBMODULE  || exit 1
113     if [ "$1" == "secure" ]; then
114         bash $SUBMODULE_BUILD_CMD_WITH_TAGS || exit 1
115     else
116         bash $SUBMODULE_BUILD_CMD || exit 1
117     fi
118     popd
119 }
120
121 function copy_library() {
122     echo ""
123     echo "----------------------------------------------------------"
124     echo " Copy orchestration library [c-archive] to CMain folder"
125     echo "----------------------------------------------------------"
126     cp $INTERFACE_OUT_INC_DIR/$HEADER_FILE $CMAIN_INC_DIR
127     cp $INTERFACE_OUT_LIB_DIR/$LIBRARY_FILE $CMAIN_LIB_DIR
128     tree $CMAIN_DIR
129 }
130
131 function build_clean() {
132     echo ""
133     echo "-----------------------------------"
134     echo " Build clean"
135     echo "-----------------------------------"
136     make clean
137 }
138
139 function build_test() {
140     echo ""
141     echo "-----------------------------------"
142     echo " Build test"
143     echo "-----------------------------------"
144     INTERFACE_OUT_INC_DIR="$INTERFACE_OUT_DIR/inc/linux_x86-64"
145     INTERFACE_OUT_LIB_DIR="$INTERFACE_OUT_DIR/lib/linux_x86-64"
146     build_clean
147     build_c_interface
148     make test
149 }
150
151 function build_package() {
152     echo ""
153     echo "------------------------------------------"
154     echo " Create Packages for Tizen from gbs build"
155     echo "------------------------------------------"
156
157     gbs -c ./.tizen.gbs.conf build -A armv7l --include-all
158
159     ### build through go toolchain
160     #gbs -c ./.tizen.gbs.conf build -A armv7l --include-all --define 'go_build ON'
161 }
162
163 case "$1" in
164     "")
165         build_clean
166         build_init
167         build_c_interface
168         build_package
169         ;;
170     "secure")
171         build_clean
172         build_init
173         submodule_update
174         submodule_apply_patch
175         build_c_interface $1
176         build_package
177         ;;
178     "init")
179         build_clean
180         build_init
181         submodule_update
182         submodule_apply_patch
183         build_c_interface $2
184         build_package
185         ;;
186     "local")
187         build_clean
188         build_c_interface $2
189         build_package
190         ;;
191     "test")
192         build_test
193         ;;
194     "clean")
195         build_clean
196         ;;
197     *)
198         echo "build script"
199         echo "Usage:"
200         echo "---------------------------------------------------------------------------------------"
201         echo "  $0              : build C-Archive & RPM packages from Submodule"
202         echo "  $0 secure       : build C-Archive & RPM packages from Submodule with secure option"
203         echo "  $0 init         : build from latest Submodule"
204         echo "  $0 init secure  : build from latest Submodule with secure option"
205         echo "  $0 local        : build from local Submodule"
206         echo "  $0 local secure : build from local Submodule with secure option"
207         echo "  $0 test         : build test"
208         echo "  $0 clean        : build clean"
209         echo "---------------------------------------------------------------------------------------"
210         exit 0
211         ;;
212 esac