Update DBus Server for updating PS-Key.
[platform/core/system/edge-orchestration.git] / build.sh
index 10a6e67..f2bbc70 100755 (executable)
--- a/build.sh
+++ b/build.sh
 
 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() {
@@ -100,105 +118,51 @@ 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