Add submodule from https://github.com/lf-edge/edge-home-orchestration-go.git
[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     submodule_update
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
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     git submodule foreach git pull origin master
62 }
63
64 function submodule_build() {
65     echo ""
66     echo "---------------------------------------------"
67     echo " Build binary [c-archive]"
68     echo "---------------------------------------------"
69     pushd $BASE_DIR
70     cd $SUBMODULE  || exit 1
71     bash $SUBMODULE_BUILD_CMD || exit 1
72     popd
73 }
74
75 function copy_library() {
76     echo ""
77     echo "----------------------------------------------------------"
78     echo " Copy orchestration library [c-archive] to CMain folder"
79     echo "----------------------------------------------------------"
80     cp $INTERFACE_OUT_INC_DIR/$HEADER_FILE $CMAIN_INC_DIR
81     cp $INTERFACE_OUT_LIB_DIR/$LIBRARY_FILE $CMAIN_LIB_DIR
82     tree $CMAIN_DIR
83 }
84
85 function build_clean() {
86     echo ""
87     echo "-----------------------------------"
88     echo " Build clean"
89     echo "-----------------------------------"
90     make clean
91 }
92
93 function build_test() {
94     echo ""
95     echo "-----------------------------------"
96     echo " Build test"
97     echo "-----------------------------------"
98     make test
99 }
100
101 function build_package() {
102     echo ""
103     echo "------------------------------------------"
104     echo " Create Packages for Tizen from gbs build"
105     echo "------------------------------------------"
106
107     gbs -c ./.tizen.gbs.conf build -A armv7l --include-all
108
109     ### build through go toolchain
110     #gbs -c ./.tizen.gbs.conf build -A armv7l --include-all --define 'go_build ON'
111 }
112
113 case "$1" in
114     "")
115         build_clean
116         build_init
117         build_c_interface
118         build_package
119         ;;
120     "local")
121         build_clean
122         build_c_interface
123         build_package
124         ;;
125     "test")
126         build_test
127         ;;
128     "clean")
129         build_clean
130         ;;
131     *)
132         echo "build script"
133         echo "Usage:"
134         echo "--------------------------------------------------------------"
135         echo "  $0          : build C-Archive & RPM packages from Submodule"
136         echo "  $0 local    : build from local Submodule"
137         echo "  $0 test     : build test"
138         echo "  $0 clean    : build clean"
139         echo "--------------------------------------------------------------"
140         exit 0
141         ;;
142 esac