add build parameters
This commit is contained in:
parent
267cb7914b
commit
d198229fe3
2 changed files with 51 additions and 3 deletions
|
|
@ -1,16 +1,54 @@
|
||||||
|
# set some defaults
|
||||||
|
|
||||||
|
# one of static, shared
|
||||||
|
ifndef BUILD_MODE
|
||||||
|
BUILD_MODE = static
|
||||||
|
endif
|
||||||
|
|
||||||
|
# one of none, colm, goolm, vodozemac
|
||||||
|
ifndef OLM_FLAVOUR
|
||||||
|
OLM_FLAVOUR = colm
|
||||||
|
endif
|
||||||
|
|
||||||
|
|
||||||
|
# calculate configuration matrix
|
||||||
|
|
||||||
|
ifeq ($(BUILD_MODE),static)
|
||||||
|
build_mode_name=c-archive
|
||||||
|
build_mode_ext=a
|
||||||
|
else ifeq ($(BUILD_MODE),shared)
|
||||||
|
build_mode_name=c-shared
|
||||||
|
build_mode_ext=so
|
||||||
|
else
|
||||||
|
$(error unknown BUILD_MODE $(BUILD_MODE))
|
||||||
|
endif
|
||||||
|
|
||||||
|
link_list =
|
||||||
|
|
||||||
|
ifeq ($(BUILD_MODE),static)
|
||||||
|
ifeq ($(OLM_FLAVOUR),colm)
|
||||||
|
link_list += olm
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
|
||||||
|
|
||||||
SOURCE_GO=$(shell find ../libmxclient/ -iname "*.go")
|
SOURCE_GO=$(shell find ../libmxclient/ -iname "*.go")
|
||||||
|
|
||||||
|
ifndef GO_OUTDIR
|
||||||
|
GO_OUTDIR = ../pygomx-module
|
||||||
|
endif
|
||||||
|
|
||||||
.PHONY:
|
.PHONY:
|
||||||
all: _pygomx.o libmxclient.h
|
all: _pygomx.o libmxclient.h
|
||||||
mkdir -p build/lib
|
mkdir -p build/lib
|
||||||
cp *.so build/lib
|
cp *.so build/lib
|
||||||
|
|
||||||
_pygomx.o: libmxclient.h build_ffi.py
|
_pygomx.o: libmxclient.h build_ffi.py
|
||||||
python3 build_ffi.py
|
python3 build_ffi.py $(link_list)
|
||||||
|
|
||||||
libmxclient.h: ../libmxclient/go.mod ../libmxclient/go.sum $(SOURCE_GO)
|
libmxclient.h: ../libmxclient/go.mod ../libmxclient/go.sum $(SOURCE_GO)
|
||||||
cd ../libmxclient/ && \
|
cd ../libmxclient/ && \
|
||||||
CGO_ENABLED=1 go build -buildmode=c-archive -o ../pygomx-module/libmxclient.a .
|
CGO_ENABLED=1 go build -buildmode=$(build_mode_name) -o $(GO_OUTDIR)/libmxclient.$(build_mode_ext) .
|
||||||
|
|
||||||
.PHONY:
|
.PHONY:
|
||||||
clean:
|
clean:
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,16 @@
|
||||||
#!/usr/bin/python
|
#!/usr/bin/python
|
||||||
|
import sys
|
||||||
from cffi import FFI
|
from cffi import FFI
|
||||||
|
|
||||||
|
lib_list = [
|
||||||
|
"mxclient",
|
||||||
|
]
|
||||||
|
|
||||||
|
if len(sys.argv) > 1:
|
||||||
|
lib_list += sys.argv[1:]
|
||||||
|
|
||||||
|
print(f"liblist: {lib_list}")
|
||||||
|
|
||||||
ffibuilder = FFI()
|
ffibuilder = FFI()
|
||||||
|
|
||||||
ffibuilder.set_source(
|
ffibuilder.set_source(
|
||||||
|
|
@ -8,7 +18,7 @@ ffibuilder.set_source(
|
||||||
source=""" //passed to the real C compiler
|
source=""" //passed to the real C compiler
|
||||||
#include "libmxclient.h"
|
#include "libmxclient.h"
|
||||||
""",
|
""",
|
||||||
libraries=["mxclient", "olm"],
|
libraries=lib_list,
|
||||||
library_dirs=["."],
|
library_dirs=["."],
|
||||||
include_dirs=["."],
|
include_dirs=["."],
|
||||||
)
|
)
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue