Cleaner implementation of Rational
[linpy.git] / Makefile
index edb6c69..28c927f 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -1,28 +1,38 @@
+NAME=pypol
+
 PYTHON=python3
-PIP=pip3
-VIRTUALENV=pyvenv
+SETUP=$(PYTHON) setup.py
 RM=rm -rf
 
 .PHONY: default
 default:
-       @echo "pypol - A polyhedral library based on ISL"
+       @echo "$(NAME) – A polyhedral library based on ISL"
        @echo
        @echo "Makefile usage:"
+       @echo "  make build            build the extension modules"
        @echo "  make test             run the test suite"
+       @echo "  make doc              generate the documentation"
+       @echo "  make view_doc         open the documentation index"
        @echo "  make clean            remove the generated files"
 
+.PHONY: build
+build:
+       $(SETUP) build_ext --inplace
+
 .PHONY: test
-test:
-       $(PYTHON) -m unittest
+test: build
+       $(PYTHON) -m unittest -v
+
+.PHONY: doc
+doc:
+       $(MAKE) -C doc html
+
+.PHONY: view_doc
+view_doc: doc
+       xdg-open doc/_build/html/index.html >/dev/null 2>&1
 
 .PHONY: clean
 clean:
-       $(RM) build dist MANIFEST venv
-       $(RM) pypol.egg-info pypol/islhelper.*.so pypol/__pycache__
-       $(RM) tests/__pycache__
-
-.PHONY: venv
-venv:
-       $(RM) venv
-       $(VIRTUALENV) venv
-       . venv/bin/activate; $(PIP) install -e .
+       $(RM) build dist MANIFEST venv $(NAME).egg-info $(NAME)/_islhelper.*.so
+       find . -name __pycache__ | xargs $(RM)
+       $(MAKE) -C doc $@