GO_LDFLAGS := -ldflags '-extldflags "-static"'
# Target parameters
+BIN_DIR := $(BASE_DIR)/bin
BINARY_FILE := edge-orchestration
-OBJECT_FILE := liborchestration.so
-HEADER_FILE := orchestration.h
EXEC_SRC_DIR := GoMain
OBJ_SRC_DIR := interface
-BIN_DIR := $(BASE_DIR)/bin
-CMAIN_DIR := $(BASE_DIR)/src/CMain
PKG_DIRS := devicemgr discoverymgr interface restapi/v1 servicemgr
+# CMain target
+ORG_HEADER_FILE_C := liborchestration.h
+HEADER_FILE_C := orchestration.h
+OBJECT_FILE_C := liborchestration.a
+CMAIN_DIR := $(BASE_DIR)/src/CMain
+CMAIN_INC_DIR := $(CMAIN_DIR)/inc
+CMAIN_BIN_DIR := $(CMAIN_DIR)/bin
+CMAIN_LIB_DIR := $(CMAIN_DIR)/lib
+
+
+
+
.DEFAULT_GOAL := help
## test and build
$(GOBUILD) -a $(GO_LDFLAGS) -o $(BIN_DIR)/$(BINARY_FILE) $(EXEC_SRC_DIR) || exit 1
ls -al $(BIN_DIR)
+ $(MAKE) -C $(CMAIN_DIR)
+
## edge-orchestration shared object build
build-object:
- CGO_ENABLED=1 $(GOBUILD) -o $(BIN_DIR)/$(OBJECT_FILE) -buildmode=c-shared -linkshared $(OBJ_SRC_DIR) || exit 1
- ls -al $(BIN_DIR)
-
- rm -f $(CMAIN_DIR)/$(OBJECT_FILE)
- rm -f $(CMAIN_DIR)/$(HEADER_FILE)
- cp $(BIN_DIR)/$(OBJECT_FILE) $(CMAIN_DIR)
- cp $(BIN_DIR)/$(HEADER_FILE) $(CMAIN_DIR)
+ CGO_ENABLED=1 $(GOBUILD) -o $(CMAIN_LIB_DIR)/$(OBJECT_FILE_C) -buildmode=c-archive $(OBJ_SRC_DIR) || exit 1
+ mv $(CMAIN_LIB_DIR)/$(ORG_HEADER_FILE_C) $(CMAIN_INC_DIR)/$(HEADER_FILE_C)
## go test and coverage
test:
## build clean
clean:
$(GOCLEAN)
- rm -f $(BIN_DIR)/*
+ -rm -f $(CMAIN_INC_DIR)/$(HEADER_FILE_C)
+ -rm -f $(CMAIN_LIB_DIR)/$(OBJECT_FILE_C)
+ -rm -f $(BIN_DIR)/*
## check go style and static analysis
lint: