3 GOBUILD := $(GOCMD) build
4 GOCLEAN := $(GOCMD) clean
8 GO_LDFLAGS := -ldflags '-extldflags "-static"'
11 PKG_NAME := edge-orchestration
12 EXEC_SRC_DIR := GoMain/src
13 OBJ_SRC_DIR := interface
14 PKG_DIRS := devicemgr discoverymgr interface restapi/v1 servicemgr scoringmgr orchestrationapi configuremgr logmgr
15 SERVICE_FILE := $(PKG_NAME).service
16 MANIFEST_FILE := $(PKG_NAME).manifest
17 DBUS_SERVICE_FILE := org.tizen.orchestration.service
18 DBUS_CONF_FILE := org.tizen.orchestration.conf
21 GOMAIN_DIR := $(BASE_DIR)/src/GoMain
22 GOMAIN_BIN_DIR := $(GOMAIN_DIR)/bin
23 GOMAIN_BIN_FILE := $(PKG_NAME)
26 ORG_HEADER_FILE_C := liborchestration.h
27 HEADER_FILE_C := orchestration.h
28 OBJECT_FILE_C := liborchestration.a
29 CMAIN_BIN_FILE := $(PKG_NAME)
30 CMAIN_DIR := $(BASE_DIR)/src/CMain
31 CMAIN_INC_DIR := $(CMAIN_DIR)/inc
32 CMAIN_BIN_DIR := $(CMAIN_DIR)/bin
33 CMAIN_LIB_DIR := $(CMAIN_DIR)/lib
36 LIBPKG_LIB_FILE := liborchestration-client.so
37 LIBPKG_HEADER_FILE := orchestration_client.h
38 LIBPKG_DIR := $(BASE_DIR)/src/libedge-orchestration
39 LIBPKG_LIB_DIR := $(LIBPKG_DIR)/lib
40 LIBPKG_INC_DIR := $(LIBPKG_DIR)/inc
41 LIBPKG_SAMPLE_DIR := $(LIBPKG_DIR)/sample
47 ## edge-orchestration binary build
49 $(GOBUILD) -a $(GO_LDFLAGS) -o $(GOMAIN_BIN_DIR)/$(GOMAIN_BIN_FILE) $(EXEC_SRC_DIR) || exit 1
50 ls -al $(GOMAIN_BIN_DIR)
52 ## edge-orchestration static archive build
54 CGO_ENABLED=1 $(GOBUILD) -o $(CMAIN_LIB_DIR)/$(OBJECT_FILE_C) -buildmode=c-archive $(OBJ_SRC_DIR) || exit 1
55 mv $(CMAIN_LIB_DIR)/$(ORG_HEADER_FILE_C) $(CMAIN_INC_DIR)/$(HEADER_FILE_C)
56 ls -al $(CMAIN_LIB_DIR)
58 ## edge-orchestration with d-bus server module
60 mkdir -p $(CMAIN_BIN_DIR)
61 $(MAKE) -C $(CMAIN_DIR)
62 ls -al $(CMAIN_BIN_DIR)
64 ## libedge-orchestration with d-bus client module
66 $(MAKE) -C $(LIBPKG_DIR)
67 ls -al $(LIBPKG_LIB_DIR)
68 ls -al $(LIBPKG_INC_DIR)
70 ## install output files for packaing
73 install -d $(DESTDIR)/usr/bin
74 install -d $(DESTDIR)/etc/$(PKG_NAME)
75 install -d $(DESTDIR)/usr/lib/systemd/system/multi-user.target.wants
76 install -d $(DESTDIR)/usr/share/dbus-1/system-services
77 install -d $(DESTDIR)/etc/dbus-1/system.d
78 install -m 755 $(CMAIN_BIN_DIR)/$(CMAIN_BIN_FILE) $(DESTDIR)/usr/bin/$(CMAIN_BIN_FILE)
79 install -m 755 $(LIBPKG_SAMPLE_DIR)/orchestration_sample $(DESTDIR)/usr/bin/orchestration_sample
80 install -m 644 $(BASE_DIR)/$(SERVICE_FILE) $(DESTDIR)/usr/lib/systemd/system/$(SERVICE_FILE)
81 ln -s ../$(SERVICE_FILE) $(DESTDIR)/usr/lib/systemd/system/multi-user.target.wants/
83 install -m 644 $(BASE_DIR)/$(DBUS_SERVICE_FILE) $(DESTDIR)/usr/share/dbus-1/system-services/$(DBUS_SERVICE_FILE)
84 install -m 644 $(BASE_DIR)/$(DBUS_CONF_FILE) $(DESTDIR)/etc/dbus-1/system.d/$(DBUS_CONF_FILE)
86 install -d $(DESTDIR)/usr/lib
87 install -d $(DESTDIR)/usr/include/$(PKG_NAME)
88 install -m 644 $(LIBPKG_LIB_DIR)/$(LIBPKG_LIB_FILE) $(DESTDIR)/usr/lib
89 install -m 644 $(LIBPKG_INC_DIR)/$(LIBPKG_HEADER_FILE) $(DESTDIR)/usr/include/$(PKG_NAME)
91 ## go test and coverage
93 $(GOCOVER) test $(PKG_DIRS) > coverage.out
94 $(GOCOVER) report coverage.out
95 $(GOCOVER)-html coverage.out > coverage.html
96 firefox coverage.html &
101 -rm -f $(CMAIN_INC_DIR)/$(HEADER_FILE_C)
102 -rm -f $(CMAIN_LIB_DIR)/$(OBJECT_FILE_C)
103 -rm -f $(GOMAIN_BIN_DIR)/$(GOMAIN_BIN_FILE)
104 -rm -f $(CMAIN_BIN_DIR)/$(CMAIN_BIN_FILE)
106 ## check go style and static analysis
113 @make2help $(MAKEFILE_LIST)
115 ## define build target not a file
116 .PHONY: all build test clean lint help