Merge "apply submodule as Baobab branch" 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
9 # Orchestration library for c-archive
10 HEADER_FILE="orchestration.h"
11 LIBRARY_FILE="liborchestration.a"
12 INTERFACE_OUT_DIR="$BASE_DIR/$SUBMODULE/src/interfaces/capi/output"
13 INTERFACE_OUT_INC_DIR="$INTERFACE_OUT_DIR/inc/linux_arm"
14 INTERFACE_OUT_LIB_DIR="$INTERFACE_OUT_DIR/lib/linux_arm"
15
16 # CMain target
17 CMAIN_DIR="$BASE_DIR/CMain"
18 CMAIN_INC_DIR="$CMAIN_DIR/inc"
19 CMAIN_LIB_DIR="$CMAIN_DIR/lib"
20
21 function build_init() {
22     echo ""
23     echo "=================================================================="
24     echo " Initialize Submodule from \"$SUBMODULE\" repository"
25     echo "=================================================================="
26     submodule_init
27     submodule_sync
28 }
29
30 function build_c_interface() {
31     echo ""
32     echo "=================================================================="
33     echo " Build binary [c-archive] of c interface from Submodule locally"
34     echo "=================================================================="
35     submodule_build
36     copy_library
37 }
38
39 function submodule_init() {
40     echo ""
41     echo "----------------------------------------------------------"
42     echo " Submodule Init to \"$SUBMODULE\" directory"
43     echo "----------------------------------------------------------"
44     git submodule init
45 }
46
47 function submodule_sync() {
48     echo ""
49     echo "---------------------------------------------"
50     echo " Submodule Sync to Init version"
51     echo "---------------------------------------------"
52     git submodule update
53 }
54
55 function submodule_update() {
56     echo ""
57     echo "---------------------------------------------"
58     echo " Submodule update to Latest version"
59     echo "---------------------------------------------"
60     git submodule foreach -q --recursive 'branch="$(git config -f $BASE_DIR/.gitmodules submodule.$name.branch)"; git checkout $branch'
61 }
62
63 function submodule_build() {
64     echo ""
65     echo "---------------------------------------------"
66     echo " Build binary [c-archive]"
67     echo "---------------------------------------------"
68     pushd $BASE_DIR
69     cd $SUBMODULE  || exit 1
70     bash $SUBMODULE_BUILD_CMD || exit 1
71     popd
72 }
73
74 function copy_library() {
75     echo ""
76     echo "----------------------------------------------------------"
77     echo " Copy orchestration library [c-archive] to CMain folder"
78     echo "----------------------------------------------------------"
79     cp $INTERFACE_OUT_INC_DIR/$HEADER_FILE $CMAIN_INC_DIR
80     cp $INTERFACE_OUT_LIB_DIR/$LIBRARY_FILE $CMAIN_LIB_DIR
81     tree $CMAIN_DIR
82 }
83
84 function build_clean() {
85     echo ""
86     echo "-----------------------------------"
87     echo " Build clean"
88     echo "-----------------------------------"
89     make clean
90 }
91
92 function build_test() {
93     echo ""
94     echo "-----------------------------------"
95     echo " Build test"
96     echo "-----------------------------------"
97     make test
98 }
99
100 function build_package() {
101     echo ""
102     echo "------------------------------------------"
103     echo " Create Packages for Tizen from gbs build"
104     echo "------------------------------------------"
105
106     gbs -c ./.tizen.gbs.conf build -A armv7l --include-all
107
108     ### build through go toolchain
109     #gbs -c ./.tizen.gbs.conf build -A armv7l --include-all --define 'go_build ON'
110 }
111
112 case "$1" in
113     "")
114         build_clean
115         build_init
116         build_c_interface
117         build_package
118         ;;
119     "init")
120         build_clean
121         build_init
122         submodule_update
123         build_c_interface
124         build_package
125         ;;
126     "local")
127         build_clean
128         build_c_interface
129         build_package
130         ;;
131     "test")
132         build_test
133         ;;
134     "clean")
135         build_clean
136         ;;
137     *)
138         echo "build script"
139         echo "Usage:"
140         echo "--------------------------------------------------------------"
141         echo "  $0          : build C-Archive & RPM packages from Submodule"
142         echo "  $0 init     : build from latest Submodule"
143         echo "  $0 local    : build from local Submodule"
144         echo "  $0 test     : build test"
145         echo "  $0 clean    : build clean"
146         echo "--------------------------------------------------------------"
147         exit 0
148         ;;
149 esac