Merge "discoverymgr : multicast polling interval set as 1 hour" into tizen
[platform/core/system/edge-orchestration.git] / build.sh
1 #! /bin/bash
2
3 export BASE_DIR=$( cd "$(dirname "$0")" ; pwd )
4
5 BINARY_FILE="edge-orchestration"
6 SERVICE_DIR="/etc/systemd/system"
7 BINARY_DIR=$BASE_DIR/"src/CMain/bin"
8 SERVICE_FILE="edge-orchestration.service"
9 SERVICE_FILE_x86="edge-orchestration.service.amd64"
10 DBUS_CONF_FILE="org.tizen.orchestration.conf"
11 DBUS_CONF_FILE_x86="org.tizen.orchestration.conf.amd64"
12 DBUS_SERVICE_FILE="org.tizen.orchestration.service"
13 DBUS_SERVICE_FILE_x86="org.tizen.orchestration.service.amd64"
14 DBUS_CONF_DIR="/etc/dbus-1/system.d"
15 DBUS_SERVICE_DIR="/usr/share/dbus-1/system-services"
16
17
18 export GOPATH=$GOPATH:$BASE_DIR:$BASE_DIR/vendor
19
20 ORG_VENDOR_DIR='vendor'
21 CUR_VENDOR_DIR='vendor/src'
22 if [ ! -d $BASE_DIR/$CUR_VENDOR_DIR ]; then
23     ln -s $BASE_DIR/$ORG_VENDOR_DIR $BASE_DIR/$CUR_VENDOR_DIR
24 fi
25
26 function install_prerequisite() {
27     echo ""
28     echo "-----------------------------------"
29     echo " Install prerequisite packages"
30     echo "-----------------------------------"
31     go get github.com/axw/gocov/gocov
32     go get github.com/matm/gocov-html
33     go get github.com/Songmu/make2help/cmd/make2help
34 }
35
36 function build_clean() {
37     echo ""
38     echo "-----------------------------------"
39     echo " Build clean"
40     echo "-----------------------------------"
41     make clean
42 }
43
44 function build_binary() {
45     echo ""
46     echo "----------------------------------------"
47     echo " Create Executable binary from GoMain"
48     echo "----------------------------------------"
49     make build-binary
50 }
51
52 function build_object() {
53     echo ""
54     echo "----------------------------------------"
55     echo " Create Static object of Orchestration"
56     echo "----------------------------------------"
57     make build-object
58 }
59
60 function build_dbus() {
61     echo ""
62     echo "----------------------------------------"
63     echo " Create Executable binary from CMain"
64     echo "----------------------------------------"
65     make build-dbus-server
66
67     echo ""
68     echo "--------------------------------------------------"
69     echo " Create Shared Object from libedge-orchestration"
70     echo "--------------------------------------------------"
71     make build-dbus-client
72 }
73
74 function build_test() {
75     echo ""
76     echo "-------------------------------------"
77     echo " Build test to calculate Coverage"
78     echo "-------------------------------------"
79     sudo systemctl stop ${SERVICE_FILE}
80     sudo systemctl status ${SERVICE_FILE}
81     mkdir -p /tmp/foo
82     make test
83 }
84
85 function lint_src_code() {
86     echo ""
87     echo "---------------------------------------"
88     echo " Analysis source code golint & go vet"
89     echo "---------------------------------------"
90     make lint
91 }
92
93 function build_package() {
94     echo ""
95     echo "------------------------------------------"
96     echo " Create Packages for Tizen from gbs build"
97     echo "------------------------------------------"
98
99     gbs -c ./.tizen.gbs.conf build -A armv7l --include-all
100
101     ### build through go toolchain
102     #gbs -c ./.tizen.gbs.conf build -A armv7l --include-all --define 'go_build ON'
103 }
104
105 function register_service() {
106     echo ""
107     echo "-----------------------------------"
108     echo "  Create Service File [SuperUser]"
109     echo "-----------------------------------"
110
111     sudo systemctl stop $SERVICE_FILE
112     sudo cp $BINARY_DIR/$BINARY_FILE /usr/bin
113     sudo cp $BASE_DIR/packaging/$SERVICE_FILE_x86 $SERVICE_DIR/$SERVICE_FILE
114     sudo cp $BASE_DIR/packaging/$DBUS_CONF_FILE_x86 $DBUS_CONF_DIR/$DBUS_CONF_FILE
115     sudo cp $BASE_DIR/packaging/$DBUS_SERVICE_FILE_x86 $DBUS_SERVICE_DIR/$DBUS_SERVICE_FILE
116     ls -al $SERVICE_DIR | grep $SERVICE_FILE
117
118     echo ""
119     echo "--------------------------------------------"
120     echo "  Create prerequisite Folder [SuperUser]"
121     echo "--------------------------------------------"
122     sudo mkdir -p /var/log/$BINARY_FILE
123     sudo mkdir -p /etc/$BINARY_FILE
124
125     echo ""
126     echo "----------------------------------------"
127     echo "  Register Edge-Orchestration Service"
128     echo "----------------------------------------"
129
130     sudo systemctl daemon-reload
131     sudo systemctl restart $SERVICE_FILE
132     sudo systemctl status $SERVICE_FILE
133 }
134
135 function build_object_arm() {
136     echo ""
137     echo ""
138     echo "**********************************"
139     echo " Target Binary arch is armv7 "
140     echo "**********************************"
141     export GOARCH=arm GOARM=7
142     export CC="arm-linux-gnueabi-gcc"
143     export ARCH=arm
144
145     build_clean
146     build_object
147 }
148
149
150 # Always executed for creating orchestration library
151 build_object_arm
152
153 if [ "$1" == "tizen" ]; then
154     build_package
155 else
156     echo ""
157     echo ""
158     echo "**********************************"
159     echo " Target Binary arch is amd64 "
160     echo "**********************************"
161     export GOARCH=amd64
162     export CC="gcc"
163     export ARCH=x86_64
164
165     case "$1" in
166         "all")
167             build_clean
168             install_prerequisite
169             build_test
170             build_object
171             build_dbus
172             build_binary
173             lint_src_code
174             register_service
175             ;;
176         "test")
177             build_test
178             ;;
179         "status")
180             sudo systemctl status ${SERVICE_FILE}
181             ;;
182         "start")
183             sudo systemctl daemon-reload
184             sudo systemctl start ${SERVICE_FILE}
185             sudo systemctl status ${SERVICE_FILE}
186             ;;
187         "stop")
188             sudo systemctl stop ${SERVICE_FILE}
189             sudo systemctl status ${SERVICE_FILE}
190             ;;
191         "restart")
192             sudo systemctl daemon-reload
193             sudo systemctl restart ${SERVICE_FILE}
194             sudo systemctl status ${SERVICE_FILE}
195             ;;
196         "")
197             build_clean
198             build_object
199             build_dbus
200             register_service
201             ;;
202         *)
203             echo "build script"
204             echo "Usage:"
205             echo "--------------------------------------------------------------"
206             echo "  $0          : build Go executable binary for amd64 "
207             echo "  $0 all      : build C executable binary for amd64  "
208             echo "  $0 tizen    : build arm packages for Tizen"
209             echo "--------------------------------------------------------------"
210             exit 0
211             ;;
212     esac
213 fi