export BASE_DIR=$( cd "$(dirname "$0")" ; pwd )
-BINARY_FILE="edge-orchestration"
-SERVICE_DIR="/etc/systemd/system"
-BINARY_DIR=$BASE_DIR/"src/CMain/bin"
-SERVICE_FILE="edge-orchestration.service"
-DBUS_CONF_FILE="org.tizen.orchestration.conf"
-DBUS_CONF_FILE_x86="org.tizen.orchestration.conf.amd64"
-DBUS_SERVICE_FILE="org.tizen.orchestration.service"
-DBUS_CONF_DIR="/etc/dbus-1/system.d"
-DBUS_SERVICE_DIR="/usr/share/dbus-1/system-services"
-
-
-export GOPATH=$GOPATH:$BASE_DIR:$BASE_DIR/vendor
-
-ORG_VENDOR_DIR='vendor'
-CUR_VENDOR_DIR='vendor/src'
-if [ ! -d $BASE_DIR/$CUR_VENDOR_DIR ]; then
- ln -s $BASE_DIR/$ORG_VENDOR_DIR $BASE_DIR/$CUR_VENDOR_DIR
-fi
-
-function install_prerequisite() {
+# Submodule
+SUBMODULE="edge-home-orchestration-go"
+SUBMODULE_BUILD_CMD="build.sh object"
+SUBMODULE_BUILD_CMD_WITH_TAGS="build.sh object secure"
+
+# Orchestration library for c-archive
+HEADER_FILE="orchestration.h"
+LIBRARY_FILE="liborchestration.a"
+INTERFACE_OUT_DIR="$BASE_DIR/$SUBMODULE/src/interfaces/capi/output"
+INTERFACE_OUT_INC_DIR="$INTERFACE_OUT_DIR/inc/linux_arm"
+INTERFACE_OUT_LIB_DIR="$INTERFACE_OUT_DIR/lib/linux_arm"
+
+# CMain target
+CMAIN_DIR="$BASE_DIR/CMain"
+CMAIN_INC_DIR="$CMAIN_DIR/inc"
+CMAIN_LIB_DIR="$CMAIN_DIR/lib"
+
+function build_init() {
echo ""
- echo "-----------------------------------"
- echo " Install prerequisite packages"
- echo "-----------------------------------"
- go get github.com/axw/gocov/gocov
- go get github.com/matm/gocov-html
- go get github.com/Songmu/make2help/cmd/make2help
+ echo "=================================================================="
+ echo " Initialize Submodule from \"$SUBMODULE\" repository"
+ echo "=================================================================="
+ submodule_init
+ submodule_sync
}
-function build_clean() {
+function build_c_interface() {
echo ""
- echo "-----------------------------------"
- echo " Build clean"
- echo "-----------------------------------"
- make clean
+ echo "=================================================================="
+ echo " Build binary [c-archive] of c interface from Submodule locally"
+ echo "=================================================================="
+ submodule_build $1
+ copy_library
}
-function build_binary() {
+function submodule_init() {
echo ""
- echo "----------------------------------------"
- echo " Create Executable binary from GoMain"
- echo "----------------------------------------"
- make build-binary
+ echo "----------------------------------------------------------"
+ echo " Submodule Init to \"$SUBMODULE\" directory"
+ echo "----------------------------------------------------------"
+ git submodule init
}
-function build_object() {
+function submodule_sync() {
echo ""
- echo "----------------------------------------"
- echo " Create Static object of Orchestration"
- echo "----------------------------------------"
- make build-object
+ echo "---------------------------------------------"
+ echo " Submodule Sync to Init version"
+ echo "---------------------------------------------"
+ git submodule update
}
-function build_dbus() {
+function submodule_update() {
echo ""
- echo "----------------------------------------"
- echo " Create Executable binary from CMain"
- echo "----------------------------------------"
- make build-dbus-server
+ echo "---------------------------------------------"
+ echo " Submodule update to Latest version"
+ echo "---------------------------------------------"
+ git submodule foreach -q --recursive 'branch="$(git config -f $BASE_DIR/.gitmodules submodule.$name.branch)"; git checkout $branch'
+}
+function submodule_build() {
echo ""
- echo "--------------------------------------------------"
- echo " Create Shared Object from libedge-orchestration"
- echo "--------------------------------------------------"
- make build-dbus-client
+ echo "---------------------------------------------"
+ echo " Build binary [c-archive]"
+ echo "---------------------------------------------"
+ pushd $BASE_DIR
+ cd $SUBMODULE || exit 1
+ if [ "$1" == "secure" ]; then
+ bash $SUBMODULE_BUILD_CMD_WITH_TAGS || exit 1
+ else
+ bash $SUBMODULE_BUILD_CMD || exit 1
+ fi
+ popd
}
-function build_test() {
+function copy_library() {
echo ""
- echo "-------------------------------------"
- echo " Build test to calculate Coverage"
- echo "-------------------------------------"
- sudo systemctl stop ${SERVICE_FILE}
- sudo systemctl status ${SERVICE_FILE}
- mkdir -p /tmp/foo
- make test
+ echo "----------------------------------------------------------"
+ echo " Copy orchestration library [c-archive] to CMain folder"
+ echo "----------------------------------------------------------"
+ cp $INTERFACE_OUT_INC_DIR/$HEADER_FILE $CMAIN_INC_DIR
+ cp $INTERFACE_OUT_LIB_DIR/$LIBRARY_FILE $CMAIN_LIB_DIR
+ tree $CMAIN_DIR
}
-function lint_src_code() {
+function build_clean() {
echo ""
- echo "---------------------------------------"
- echo " Analysis source code golint & go vet"
- echo "---------------------------------------"
- make lint
+ echo "-----------------------------------"
+ echo " Build clean"
+ echo "-----------------------------------"
+ make clean
+}
+
+function build_test() {
+ echo ""
+ echo "-----------------------------------"
+ echo " Build test"
+ echo "-----------------------------------"
+ INTERFACE_OUT_INC_DIR="$INTERFACE_OUT_DIR/inc/linux_x86-64"
+ INTERFACE_OUT_LIB_DIR="$INTERFACE_OUT_DIR/lib/linux_x86-64"
+ build_clean
+ build_c_interface
+ make test
}
function build_package() {
#gbs -c ./.tizen.gbs.conf build -A armv7l --include-all --define 'go_build ON'
}
-function register_service() {
- echo ""
- echo "-----------------------------------"
- echo " Create Service File [SuperUser]"
- echo "-----------------------------------"
-
- sudo systemctl stop $SERVICE_FILE
- sudo cp $BINARY_DIR/$BINARY_FILE /usr/bin
- sudo cp $BASE_DIR/packaging/$SERVICE_FILE $SERVICE_DIR
- sudo cp $BASE_DIR/packaging/$DBUS_CONF_FILE_x86 $DBUS_CONF_DIR/$DBUS_CONF_FILE
- sudo cp $BASE_DIR/packaging/$DBUS_SERVICE_FILE $DBUS_SERVICE_DIR
- ls -al $SERVICE_DIR | grep $SERVICE_FILE
-
- echo ""
- echo "----------------------------------------"
- echo " Register Edge-Orchestration Service"
- echo "----------------------------------------"
-
- sudo systemctl daemon-reload
- sudo systemctl restart $SERVICE_FILE
- sudo systemctl status $SERVICE_FILE
-}
-
-function build_object_arm() {
- echo ""
- echo ""
- echo "**********************************"
- echo " Target Binary arch is armv7 "
- echo "**********************************"
- export GOARCH=arm GOARM=7
- export CC="arm-linux-gnueabi-gcc"
- export ARCH=arm
-
- build_clean
- build_object
-}
-
-
-# Always executed for creating orchestration library
-build_object_arm
-
-if [ "$1" == "tizen" ]; then
- build_package
-else
- echo ""
- echo ""
- echo "**********************************"
- echo " Target Binary arch is amd64 "
- echo "**********************************"
- export GOARCH=amd64
- export CC="gcc"
- export ARCH=x86_64
-
- case "$1" in
- "all")
- build_clean
- install_prerequisite
- build_test
- build_object
- build_dbus
- build_binary
- lint_src_code
- register_service
- ;;
- "test")
- build_test
- ;;
- "status")
- sudo systemctl status ${SERVICE_FILE}
- ;;
- "start")
- sudo systemctl daemon-reload
- sudo systemctl start ${SERVICE_FILE}
- sudo systemctl status ${SERVICE_FILE}
- ;;
- "stop")
- sudo systemctl stop ${SERVICE_FILE}
- sudo systemctl status ${SERVICE_FILE}
- ;;
- "restart")
- sudo systemctl daemon-reload
- sudo systemctl restart ${SERVICE_FILE}
- sudo systemctl status ${SERVICE_FILE}
- ;;
- "")
- build_clean
- build_object
- build_dbus
- register_service
- ;;
- *)
- echo "build script"
- echo "Usage:"
- echo "--------------------------------------------------------------"
- echo " $0 : build Go executable binary for amd64 "
- echo " $0 all : build C executable binary for amd64 "
- echo " $0 tizen : build arm packages for Tizen"
- echo "--------------------------------------------------------------"
- exit 0
- ;;
- esac
-fi
+case "$1" in
+ "")
+ build_clean
+ build_init
+ build_c_interface
+ build_package
+ ;;
+ "secure")
+ build_clean
+ build_init
+ submodule_update
+ build_c_interface $1
+ build_package
+ ;;
+ "init")
+ build_clean
+ build_init
+ submodule_update
+ build_c_interface $2
+ build_package
+ ;;
+ "local")
+ build_clean
+ build_c_interface $2
+ build_package
+ ;;
+ "test")
+ build_test
+ ;;
+ "clean")
+ build_clean
+ ;;
+ *)
+ echo "build script"
+ echo "Usage:"
+ echo "---------------------------------------------------------------------------------------"
+ echo " $0 : build C-Archive & RPM packages from Submodule"
+ echo " $0 secure : build C-Archive & RPM packages from Submodule with secure option"
+ echo " $0 init : build from latest Submodule"
+ echo " $0 init secure : build from latest Submodule with secure option"
+ echo " $0 local : build from local Submodule"
+ echo " $0 local secure : build from local Submodule with secure option"
+ echo " $0 test : build test"
+ echo " $0 clean : build clean"
+ echo "---------------------------------------------------------------------------------------"
+ exit 0
+ ;;
+esac