@@ -3,67 +3,57 @@ SED = sed
33ETAGS = etags
44INCLUDE_DIR := $(shell pkg-config --variable=includedir libsystemd)
55INCLUDE_FLAGS := $(shell pkg-config --cflags libsystemd)
6- VERSION := $(shell $( PYTHON ) setup.py --version)
6+ VERSION := $(shell meson introspect --projectinfo build | jq -r . version)
77TESTFLAGS = -v
8-
9- define buildscript
10- import sys, sysconfig, setuptools
11- sversion = int(setuptools.__version__.split(".")[0])
12- end = sys.implementation.cache_tag if sversion >= 61 else "{}.{}".format(*sys.version_info[:2])
13- print("build/lib.{}-{}".format(sysconfig.get_platform(), end))
14- endef
15-
16- builddir := $(shell $(PYTHON ) -c '$(buildscript ) ')
8+ BUILD_DIR = build
179
1810all : build
1911
2012.PHONY : update-constants
2113update-constants : update-constants.py $(INCLUDE_DIR ) /systemd/sd-messages.h
22- $(PYTHON ) $+ systemd/id128-defines.h | \
14+ $(PYTHON ) $+ src/ systemd/id128-defines.h | \
2315 sort -u | \
24- tee systemd/id128-defines.h.tmp | \
16+ tee src/ systemd/id128-defines.h.tmp | \
2517 $(SED ) -n -r ' s/,//g; s/#define (SD_MESSAGE_[A-Z0-9_]+)\s.*/add_id(m, "\1", \1) JOINER/p' | \
26- sort -u > systemd/id128-constants.h.tmp
27- mv systemd/id128-defines.h{.tmp,}
28- mv systemd/id128-constants.h{.tmp,}
18+ sort -u > src/ systemd/id128-constants.h.tmp
19+ mv src/ systemd/id128-defines.h{.tmp,}
20+ mv src/ systemd/id128-constants.h{.tmp,}
2921 ($( SED) 9q < docs/id128.rst && \
3022 sed -n -r ' s/#define (SD_MESSAGE_[A-Z0-9_]+) .*/ .. autoattribute:: systemd.id128.\1/p' \
31- systemd/id128-defines.h) > docs/id128.rst.tmp
23+ src/ systemd/id128-defines.h) > docs/id128.rst.tmp
3224 mv docs/id128.rst{.tmp,}
3325
3426build :
35- $(PYTHON ) setup.py build_ext $(INCLUDE_FLAGS )
36- $(PYTHON ) setup.py build
27+ $(PYTHON ) -m build -Cbuild-dir=$(BUILD_DIR )
3728
3829install :
39- $(PYTHON ) setup.py install --skip-build $( if $( DESTDIR ) ,--root $( DESTDIR ) )
30+ $(PYTHON ) -m pip install .
4031
4132dist :
42- $(PYTHON ) setup.py sdist
33+ $(PYTHON ) -m build -- sdist
4334
4435sign : dist/systemd-python-$(VERSION ) .tar.gz
4536 gpg --detach-sign -a dist/systemd-python-$(VERSION ) .tar.gz
4637
4738clean :
48- rm -rf build systemd/* .so systemd/* .py[co] * .py[co] systemd/__pycache__
39+ rm -rf $( BUILD_DIR ) systemd/* .so systemd/* .py[co] * .py[co] systemd/__pycache__
4940
5041distclean : clean
5142 rm -rf dist MANIFEST
5243
5344SPHINXOPTS += -D version=$(VERSION ) -D release=$(VERSION )
54- sphinx-% : build
55- cd build && \
56- PYTHONPATH=../$(builddir ) $(PYTHON ) -m sphinx -b $* $(SPHINXOPTS ) ../docs $*
57- @echo Output has been generated in build/$*
45+ sphinx-% : install
46+ mkdir $(BUILD_DIR ) && cd $(BUILD_DIR ) && $(PYTHON ) -m sphinx -b $* $(SPHINXOPTS ) ../docs $*
47+ @echo Output has been generated in $(BUILD_DIR ) /$*
5848
5949doc : sphinx-html
6050
61- check : build
62- (cd $( builddir ) && $( PYTHON) -m pytest . ../../ docs $( TESTFLAGS) )
51+ check : build install
52+ ($( PYTHON) -m pytest src/systemd/test docs $( TESTFLAGS) )
6353
6454www_target = www.freedesktop.org:/srv/www.freedesktop.org/www/software/systemd/python-systemd
6555doc-sync :
66- rsync -rlv --delete --omit-dir-times build /html/ $(www_target ) /
56+ rsync -rlv --delete --omit-dir-times $( BUILD_DIR ) /html/ $(www_target ) /
6757
6858upload : dist/systemd-python-$(VERSION ) .tar.gz dist/systemd-python-$(VERSION ) .tar.gz.asc
6959 twine-3 upload $+
@@ -72,7 +62,6 @@ TAGS: $(shell git ls-files systemd/*.[ch])
7262 $(ETAGS ) $+
7363
7464shell :
75- # we change the directory because python insists on adding $CWD to path
76- (cd $(builddir) && $(PYTHON))
65+ $(PYTHON )
7766
7867.PHONY : build install dist sign upload clean distclean TAGS doc doc-sync shell
0 commit comments