add build parameters

This commit is contained in:
saces 2026-02-13 14:46:36 +01:00
parent 267cb7914b
commit d198229fe3
2 changed files with 51 additions and 3 deletions

View file

@ -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")
ifndef GO_OUTDIR
GO_OUTDIR = ../pygomx-module
endif
.PHONY:
all: _pygomx.o libmxclient.h
mkdir -p build/lib
cp *.so build/lib
_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)
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:
clean:

View file

@ -1,6 +1,16 @@
#!/usr/bin/python
import sys
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.set_source(
@ -8,7 +18,7 @@ ffibuilder.set_source(
source=""" //passed to the real C compiler
#include "libmxclient.h"
""",
libraries=["mxclient", "olm"],
libraries=lib_list,
library_dirs=["."],
include_dirs=["."],
)