Files
ggwave/bindings/python/Makefile
2023-01-19 18:18:29 +02:00

42 lines
1.3 KiB
Makefile

default: build
.PHONY:
ggwave:
# create a clean (maybe updated) copy of ggwave src
rm -rf ggwave && mkdir ggwave && cp -r ../../include ggwave/ && cp -r ../../src ggwave/
pyggwave.bycython.cpp: ggwave.pyx cggwave.pxd
python -m pip install cython
cython --cleanup=3 --cplus ggwave.pyx -o ggwave.bycython.cpp
# To build package, README.rst is needed, because it goes into long description of package,
# which is what is visible on PyPI.
# However, to generate README.rst from README-tmpl.rst, built package is needed (for `import ggwave` in cog)!
# Therefore, we first build package without README.rst, use it to generate README.rst,
# and then finally build package again but with README.rst.
BUILD_SOURCE_FILES=ggwave pyggwave.bycython.cpp setup.py
buildWithoutREADME.rst: ${BUILD_SOURCE_FILES}
GGWAVE_OMIT_README_RST=1 python setup.py build_ext -i
README.rst: buildWithoutREADME.rst README-tmpl.rst
python -m pip install cogapp
cog -d -o README.rst README-tmpl.rst
BUILD_FILES=${BUILD_SOURCE_FILES} README.rst
build: ${BUILD_FILES}
python setup.py build_ext -i
sdist: ggwave pyggwave.bycython.cpp setup.py README.rst MANIFEST.in
python setup.py sdist
publish: clean sdist
twine upload --repository pypi dist/*
clean:
rm -rf ggwave dist ggwave.egg-info build
rm -f ggwave.c *.bycython.* ggwave.*.so
rm -f README.rst