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
+HEADER_FILE_C := orchestration.h
+OBJECT_FILE_C := liborchestration.so
+CMAIN_DIR := $(BASE_DIR)/src/CMain
+CMAIN_BIN_DIR := $(CMAIN_DIR)/bin
+
+
+
+
.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_DIR)/$(OBJECT_FILE_C) -buildmode=c-shared -linkshared $(OBJ_SRC_DIR) || exit 1
## go test and coverage
test:
## build clean
clean:
$(GOCLEAN)
- rm -f $(BIN_DIR)/*
+ -rm -f $(CMAIN_DIR)/$(OBJECT_FILE_C)
+ -rm -f $(CMAIN_DIR)/$(HEADER_FILE_C)
+ -rm -f $(BIN_DIR)/*
## check go style and static analysis
lint:
install_prerequisite
build_clean
build_test
- build_binary
build_object
+ build_binary
lint_src_code
- register_service
+ register_service
else
build_clean
build_binary
# lt; -o $@
orchestration: main.o dbus_interface.o
- $(CC) -g -Wall -Werror ./src/main.o ./src/dbus_interface.o -o orchestration -I ./inc `pkg-config --libs --cflags gio-2.0 gio-unix-2.0 glib-2.0 dbus-glib-1 dbus-1`
+ $(CC) -g -Wall -Werror ./src/main.o ./src/dbus_interface.o -o ./bin/orchestration -I ./inc `pkg-config --libs --cflags gio-2.0 gio-unix-2.0 glib-2.0 dbus-glib-1 dbus-1`
main.o: ./src/main.c
$(CC) -Wall ./src/main.c -c -o ./src/main.o -I ./inc `pkg-config --libs --cflags glib-2.0`
.PHONY: clean
clean:
- rm ./src/*.o orchestration
\ No newline at end of file
+ -rm ./src/*.o ./bin/orchestration
\ No newline at end of file
--- /dev/null
+/* Code generated by cmd/cgo; DO NOT EDIT. */
+
+/* package interface */
+
+
+#line 1 "cgo-builtin-prolog"
+
+#include <stddef.h> /* for ptrdiff_t below */
+
+#ifndef GO_CGO_EXPORT_PROLOGUE_H
+#define GO_CGO_EXPORT_PROLOGUE_H
+
+typedef struct { const char *p; ptrdiff_t n; } _GoString_;
+
+#endif
+
+/* Start of preamble from import "C" comments. */
+
+
+
+
+/* End of preamble from import "C" comments. */
+
+
+/* Start of boilerplate cgo prologue. */
+#line 1 "cgo-gcc-export-header-prolog"
+
+#ifndef GO_CGO_PROLOGUE_H
+#define GO_CGO_PROLOGUE_H
+
+typedef signed char GoInt8;
+typedef unsigned char GoUint8;
+typedef short GoInt16;
+typedef unsigned short GoUint16;
+typedef int GoInt32;
+typedef unsigned int GoUint32;
+typedef long long GoInt64;
+typedef unsigned long long GoUint64;
+typedef GoInt64 GoInt;
+typedef GoUint64 GoUint;
+typedef __SIZE_TYPE__ GoUintptr;
+typedef float GoFloat32;
+typedef double GoFloat64;
+typedef float _Complex GoComplex64;
+typedef double _Complex GoComplex128;
+
+/*
+ static assertion to make sure the file is being used on architecture
+ at least with matching size of GoInt.
+*/
+typedef char _check_for_64_bit_pointer_matching_GoInt[sizeof(void*)==64/8 ? 1:-1];
+
+typedef _GoString_ GoString;
+typedef void *GoMap;
+typedef void *GoChan;
+typedef struct { void *t; void *v; } GoInterface;
+typedef struct { void *data; GoInt len; GoInt cap; } GoSlice;
+
+#endif
+
+/* End of boilerplate cgo prologue. */
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+extern int OrchestrationInit();
+
+extern int OrchestrationRequestService();
+
+#ifdef __cplusplus
+}
+#endif