3 GOBUILD := $(GOCMD) build
4 GOCLEAN := $(GOCMD) clean
8 GO_LDFLAGS := -ldflags '-extldflags "-static"'
11 BIN_DIR := $(BASE_DIR)/bin
12 BINARY_FILE := edge-orchestration
13 EXEC_SRC_DIR := GoMain
14 OBJ_SRC_DIR := interface
15 PKG_DIRS := devicemgr discoverymgr interface restapi/v1 servicemgr
18 ORG_HEADER_FILE_C := liborchestration.h
19 HEADER_FILE_C := orchestration.h
20 OBJECT_FILE_C := liborchestration.a
21 CMAIN_DIR := $(BASE_DIR)/src/CMain
22 CMAIN_INC_DIR := $(CMAIN_DIR)/inc
23 CMAIN_BIN_DIR := $(CMAIN_DIR)/bin
24 CMAIN_LIB_DIR := $(CMAIN_DIR)/lib
34 ## edge-orchestration binary build
36 $(GOBUILD) -a $(GO_LDFLAGS) -o $(BIN_DIR)/$(BINARY_FILE) $(EXEC_SRC_DIR) || exit 1
39 $(MAKE) -C $(CMAIN_DIR)
41 ## edge-orchestration shared object build
43 CGO_ENABLED=1 $(GOBUILD) -o $(CMAIN_LIB_DIR)/$(OBJECT_FILE_C) -buildmode=c-archive $(OBJ_SRC_DIR) || exit 1
44 mv $(CMAIN_LIB_DIR)/$(ORG_HEADER_FILE_C) $(CMAIN_INC_DIR)/$(HEADER_FILE_C)
46 ## go test and coverage
48 $(GOCOVER) test $(PKG_DIRS) > coverage.out
49 $(GOCOVER) report coverage.out
50 $(GOCOVER)-html coverage.out > coverage.html
51 firefox coverage.html &
56 -rm -f $(CMAIN_INC_DIR)/$(HEADER_FILE_C)
57 -rm -f $(CMAIN_LIB_DIR)/$(OBJECT_FILE_C)
60 ## check go style and static analysis
67 @make2help $(MAKEFILE_LIST)
69 ## define build target not a file
70 .PHONY: all build test clean lint help