Makefile 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. PYTHON=python
  2. SETUPFLAGS=
  3. COMPILEFLAGS=
  4. INSTALLFLAGS=
  5. PYTHONS=python2.6 python2.7 python3.1 python3.2 python3.3 python3.4
  6. .PHONY: inplace all rebuild test_inplace test fulltests clean distclean
  7. .PHONY: sdist install
  8. all: inplace README.html README.md
  9. README.md: README.txt CHANGES.txt
  10. pandoc --from=rst --to=markdown README.txt > $@
  11. pandoc --from=rst --to=markdown CHANGES.txt >> $@
  12. README.html: README.txt CHANGES.txt void.css
  13. @echo | cat README.txt - CHANGES.txt | \
  14. rst2html --verbose --exit-status=1 --stylesheet=void.css \
  15. > README.html
  16. inplace:
  17. $(PYTHON) setup.py $(SETUPFLAGS) build_ext -i $(COMPILEFLAGS)
  18. rebuild: clean all
  19. test_inplace: inplace
  20. $(PYTHON) -m tests
  21. test: test_inplace
  22. fulltest:
  23. $(MAKE) clean
  24. @set -e; \
  25. for python in $(PYTHONS); do \
  26. if [ -z $$(which $$python) ]; then \
  27. echo "*** $$python not found ***\n"; \
  28. continue; \
  29. fi; \
  30. echo "*** $$python ***"; \
  31. $$python $(SETUPFLAGS) setup.py -q test; \
  32. echo ""; \
  33. done
  34. $(MAKE) clean
  35. clean:
  36. @find . \( -name '*.o' -or -name '*.so' -or -name '*.sl' -or \
  37. -name '*.py[cod]' -or -name README.html \) \
  38. -and -type f -delete
  39. distclean: clean
  40. @rm -rf build
  41. @rm -rf dist
  42. @find . \( -name '~*' -or -name '*.orig' -or -name '*.bak' -or \
  43. -name 'core*' \) -and -type f -delete
  44. whitespace:
  45. @find \( -name '*.rst' -or -name '*.py' -or -name '*.xml' \) | \
  46. xargs sed -i 's/[ \t]*$$//'
  47. packages: README.html README.md
  48. $(PYTHON) setup.py packages
  49. install:
  50. $(PYTHON) setup.py $(SETUPFLAGS) build $(COMPILEFLAGS)
  51. $(PYTHON) setup.py install $(INSTALLFLAGS)