orchestrationapi_test.go : enchanement test
[platform/core/system/edge-orchestration.git] / Makefile
1 # Go parameters
2 GOCMD       := go
3 GOBUILD     := $(GOCMD) build
4 GOCLEAN     := $(GOCMD) clean
5 GOLINT          := golint
6 GOVET           := $(GOCMD) vet
7 GOCOVER     := gocov
8 GO_LDFLAGS  := -ldflags '-extldflags "-static"'
9
10 # Target parameters
11 PKG_NAME                := edge-orchestration
12 EXEC_SRC_DIR    := GoMain/src
13 OBJ_SRC_DIR             := interface
14 PKG_DIRS                := discoverymgr restapi/v1 restapi/httpclient servicemgr scoringmgr securemgr 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
19
20 # GoMain target
21 GOMAIN_DIR              := $(BASE_DIR)/src/GoMain
22 GOMAIN_BIN_DIR  := $(GOMAIN_DIR)/bin
23 GOMAIN_BIN_FILE := $(PKG_NAME)
24
25 # CMain target
26 OBJECT_NAME                     := liborchestration
27 HEADER_FILE_C           := orchestration.h
28 OBJECT_FILE_C           := liborchestration.a
29 CUR_HEADER_FILE_C       := $(OBJECT_NAME)-$(VERSION)-$(BUILD_DATE).h
30 CUR_OBJECT_FILE_C       := $(OBJECT_NAME)-$(VERSION)-$(BUILD_DATE).a
31 CMAIN_BIN_FILE          := $(PKG_NAME)
32 CMAIN_DIR                       := $(BASE_DIR)/src/CMain
33 ifeq ($(ARCH), arm)
34         CMAIN_INC_DIR           := $(CMAIN_DIR)/inc/linux_arm
35         CMAIN_BIN_DIR           := $(CMAIN_DIR)/bin/linux_arm
36         CMAIN_LIB_DIR           := $(CMAIN_DIR)/lib/linux_arm
37 else
38         CMAIN_INC_DIR           := $(CMAIN_DIR)/inc
39         CMAIN_BIN_DIR           := $(CMAIN_DIR)/bin
40         CMAIN_LIB_DIR           := $(CMAIN_DIR)/lib
41 endif
42 CMAIN_TEST_DIR          := $(CMAIN_DIR)/unittest
43
44 # Library package
45 LIBPKG_LIB_FILE         := liborchestration-client.so
46 LIBPKG_HEADER_FILE      := orchestration_client.h
47 LIBPKG_DIR                      := $(BASE_DIR)/src/libedge-orchestration
48 LIBPKG_LIB_DIR          := $(LIBPKG_DIR)/lib
49 LIBPKG_INC_DIR          := $(LIBPKG_DIR)/inc
50 LIBPKG_SAMPLE_DIR       := $(LIBPKG_DIR)/sample
51
52 # Default scoring
53 LIBSCORE_SAMPLE                 := myscoring
54 LIBSCORE_SAMPLE_LIBRARY := libmyscoring.so
55 LIBSCORE_SAMPLE_VER             := 1.0.1
56 LIBSCORE_SAMPLE_CONF    := myscoring.conf
57 LIBSCORE_SAMPLE_DIR             := $(BASE_DIR)/src/scoringmgr/mock/myscoring
58
59
60
61 .DEFAULT_GOAL := help
62
63 ## edge-orchestration binary build
64 build-binary:
65         $(GOBUILD) -a $(GO_LDFLAGS) -o $(GOMAIN_BIN_DIR)/$(GOMAIN_BIN_FILE) $(EXEC_SRC_DIR) || exit 1
66         ls -al $(GOMAIN_BIN_DIR)
67
68 ## edge-orchestration static archive build
69 build-object:
70         CGO_ENABLED=1 $(GOBUILD) -o $(CMAIN_LIB_DIR)/$(CUR_OBJECT_FILE_C) -buildmode=c-archive $(OBJ_SRC_DIR) || exit 1
71         mv $(CMAIN_LIB_DIR)/$(CUR_HEADER_FILE_C) $(CMAIN_INC_DIR)/$(HEADER_FILE_C)
72         ln -rs $(CMAIN_LIB_DIR)/$(CUR_OBJECT_FILE_C) $(CMAIN_LIB_DIR)/$(OBJECT_FILE_C)
73         ls -al $(CMAIN_LIB_DIR)
74
75 ## edge-orchestration with d-bus server module
76 build-dbus-server:
77         mkdir -p $(CMAIN_BIN_DIR)
78         $(MAKE) -C $(CMAIN_DIR)
79         ls -al $(CMAIN_BIN_DIR)
80
81 ## libedge-orchestration with d-bus client module
82 build-dbus-client:
83         $(MAKE) -C $(LIBPKG_DIR)
84         ls -al $(LIBPKG_LIB_DIR)
85         ls -al $(LIBPKG_INC_DIR)
86         $(MAKE) -C $(LIBSCORE_SAMPLE_DIR)
87
88 ## install output files for packaing
89 install:
90         -rm -rf $(DESTDIR)
91         install -d $(DESTDIR)/usr/bin
92         install -d $(DESTDIR)/etc/$(PKG_NAME)
93         install -d $(DESTDIR)/var/log/$(PKG_NAME)
94         install -d $(DESTDIR)/usr/lib/systemd/system/multi-user.target.wants
95         install -d $(DESTDIR)/usr/share/dbus-1/system-services
96         install -d $(DESTDIR)/etc/dbus-1/system.d
97         install -m 755 $(CMAIN_BIN_DIR)/$(CMAIN_BIN_FILE) $(DESTDIR)/usr/bin/$(CMAIN_BIN_FILE)
98         install -m 755 $(LIBPKG_SAMPLE_DIR)/orchestration_sample $(DESTDIR)/usr/bin/orchestration_sample
99         install -m 644 $(BASE_DIR)/$(SERVICE_FILE) $(DESTDIR)/usr/lib/systemd/system/$(SERVICE_FILE)
100         ln -s ../$(SERVICE_FILE) $(DESTDIR)/usr/lib/systemd/system/multi-user.target.wants/
101
102         install -m 644 $(BASE_DIR)/$(DBUS_SERVICE_FILE) $(DESTDIR)/usr/share/dbus-1/system-services/$(DBUS_SERVICE_FILE)
103         install -m 644 $(BASE_DIR)/$(DBUS_CONF_FILE) $(DESTDIR)/etc/dbus-1/system.d/$(DBUS_CONF_FILE)
104
105         install -d $(DESTDIR)/usr/lib
106         install -d $(DESTDIR)/usr/include/$(PKG_NAME)
107         install -m 644 $(LIBPKG_LIB_DIR)/$(LIBPKG_LIB_FILE) $(DESTDIR)/usr/lib
108         install -m 644 $(LIBPKG_INC_DIR)/$(LIBPKG_HEADER_FILE) $(DESTDIR)/usr/include/$(PKG_NAME)
109
110         install -d $(DESTDIR)/etc/$(PKG_NAME)/$(LIBSCORE_SAMPLE)
111         install -m 644 $(LIBSCORE_SAMPLE_DIR)/$(LIBSCORE_SAMPLE_CONF) $(DESTDIR)/etc/$(PKG_NAME)/$(LIBSCORE_SAMPLE)/
112 #       install -m 644 $(LIBSCORE_SAMPLE_DIR)/$(LIBSCORE_SAMPLE_LIBRARY) $(DESTDIR)/etc/$(PKG_NAME)/$(LIBSCORE_SAMPLE)/
113         install -m 644 $(LIBSCORE_SAMPLE_DIR)/$(LIBSCORE_SAMPLE_LIBRARY).$(LIBSCORE_SAMPLE_VER) $(DESTDIR)/etc/$(PKG_NAME)/$(LIBSCORE_SAMPLE)/
114
115 ## go test and coverage
116 test:
117         $(GOCOVER) test -v $(PKG_DIRS) > coverage.out
118         $(GOCOVER) report coverage.out
119         $(GOCOVER)-html coverage.out > coverage.html
120         firefox coverage.html &
121         $(MAKE) -C $(CMAIN_TEST_DIR)
122
123 ## build clean
124 clean:
125         $(GOCLEAN)
126         -rm -f $(CMAIN_INC_DIR)/$(HEADER_FILE_C)
127         -rm -f $(CMAIN_LIB_DIR)/$(OBJECT_FILE_C)
128         -rm -f $(GOMAIN_BIN_DIR)/$(GOMAIN_BIN_FILE)
129         -rm -f $(CMAIN_BIN_DIR)/$(CMAIN_BIN_FILE)
130         -rm -f $(CMAIN_LIB_DIR)/$(OBJECT_NAME)*.a
131
132 ## check go style and static analysis
133 lint:
134         $(GOLINT) ./src/...
135         $(GOVET) ./src/...
136
137 ## show help
138 help:
139         @make2help $(MAKEFILE_LIST)
140
141 ## define build target not a file
142 .PHONY: all build test clean lint help