PYTHON = python SED = sed SPHINX_BUILD = sphinx-build ETAGS = etags INCLUDE_DIR := $(shell pkg-config --variable=includedir libsystemd) VERSION := $(shell $(PYTHON) setup.py --version) TESTFLAGS = -v define buildscript import sys,sysconfig print("build/lib.{}-{}.{}".format(sysconfig.get_platform(), *sys.version_info[:2])) endef builddir := $(shell $(PYTHON) -c '$(buildscript)') all: build .PHONY: update-constants update-constants: $(INCLUDE_DIR)/systemd/sd-messages.h cat $< systemd/id128-defines.h | \ $(SED) -n -r '/#define SD_MESSAGE_[A-Z0-9_]/p' | \ sort -u | \ tee systemd/id128-defines.h.tmp | \ $(SED) -n -r 's/,//g; s/#define (SD_MESSAGE_[A-Z0-9_]+)\s.*/add_id(m, "\1", \1) JOINER/p' | \ sort -u >systemd/id128-constants.h.tmp mv systemd/id128-defines.h{.tmp,} mv systemd/id128-constants.h{.tmp,} ($(SED) 9q docs/id128.rst.tmp mv docs/id128.rst{.tmp,} build: $(PYTHON) setup.py build_ext $(if $(INCLUDE_DIR),-I$(INCLUDE_DIR)) $(PYTHON) setup.py build install: $(PYTHON) setup.py install --skip-build $(if $(DESTDIR),--root $(DESTDIR)) dist: $(PYTHON) setup.py sdist sign: dist/systemd-python-$(VERSION).tar.gz gpg --detach-sign -a dist/systemd-python-$(VERSION).tar.gz clean: rm -rf build systemd/*.so systemd/*.py[co] *.py[co] systemd/__pycache__ distclean: clean rm -rf dist MANIFEST SPHINXOPTS = -D version=$(VERSION) -D release=$(VERSION) sphinx-%: build PYTHONPATH=$(builddir) $(SPHINX_BUILD) -b $* $(SPHINXOPTS) docs build/$* @echo Output has been generated in build/$* check: build (cd $(builddir) && $(PYTHON) -m pytest . ../../docs $(TESTFLAGS)) www_target = www.freedesktop.org:/srv/www.freedesktop.org/www/software/systemd/python-systemd doc-sync: rsync -rlv --delete --omit-dir-times build/html/ $(www_target)/ upload: dist/systemd-python-$(VERSION).tar.gz dist/systemd-python-$(VERSION).tar.gz.asc twine-3 upload $+ TAGS: $(shell git ls-files systemd/*.[ch]) $(ETAGS) $+ .PHONY: build install dist sign upload clean distclean TAGS doc-sync