From ccb9881319276e94fdede79c46c4f0d4c981dc41 Mon Sep 17 00:00:00 2001 From: David Phillips Date: Wed, 8 May 2019 22:01:55 +1200 Subject: Refactor build process, use setup.py --- lib/Makefile | 19 +++++++++++++------ lib/python/Makefile | 16 ++++++---------- lib/python/setup.py | 17 +++++++++++++++++ 3 files changed, 36 insertions(+), 16 deletions(-) create mode 100644 lib/python/setup.py (limited to 'lib') diff --git a/lib/Makefile b/lib/Makefile index 4961c4e..ade9772 100644 --- a/lib/Makefile +++ b/lib/Makefile @@ -1,18 +1,25 @@ +include ../config.mk + CFLAGS += -I../inc/ -all: python +all: libalarm.so -python: libalarm.so - make -C python +libalarm.so.1: libalarm.o + $(CC) -shared -o $@ $< $(LDFLAGS) -Wl,-soname,libalarm.so.1 -%.so: %.o - $(CC) -shared -o $@ $< $(LDFLAGS) +libalarm.so: libalarm.so.1 + ln -sf $^ $@ %.o: %.c $(CC) -c -o $@ $< $(LDFLAGS) $(CFLAGS) +install: + install -Dm755 libalarm.so.1 "$(DESTDIR)/$(PREFIX)/lib/libalarm.so.1" + ln -sf libalarm.so.1 "$(DESTDIR)/$(PREFIX)/lib/libalarm.so" + make -C python install + clean: - rm -f libalarm.{s,}o + rm -f libalarm.o libalarm.so.1 make -C python clean .PHONY: python diff --git a/lib/python/Makefile b/lib/python/Makefile index e260e64..e23cc9d 100644 --- a/lib/python/Makefile +++ b/lib/python/Makefile @@ -1,16 +1,12 @@ -CFLAGS += -fPIC \ - -I../../inc/ \ - $(shell pkg-config --cflags python3) +include ../../config.mk -all: alarms.so +all: + $(PYTHON) setup.py build -%.so: %.o - $(CC) -shared -o $@ $< $(LDFLAGS) - -%.o: %.c - $(CC) -c -o $@ $< $(CFLAGS) +install: + $(PYTHON) setup.py install --root="$(DESTDIR)/$(PREFIX)" .PHONY: clean clean: - - rm -f alarms.{s,}o + - rm -rf build *.egg-info diff --git a/lib/python/setup.py b/lib/python/setup.py new file mode 100644 index 0000000..5e3c673 --- /dev/null +++ b/lib/python/setup.py @@ -0,0 +1,17 @@ +from setuptools import setup, Extension + +if __name__ == "__main__": + setup( + name="alarms", + version="0.1", + ext_modules=[ + Extension( + "alarms", + language = "C", + sources = [ "alarms.c" ], + extra_compile_args = [ "-I../../inc" ], + libraries = [ "alarm", "uuid" ], + library_dirs = [ "../" ] + ) + ] + ) -- cgit v1.1