1PYTHON ?= python 2top_srcdir = `pwd` 3PYTHONPATH ?= $(top_srcdir) 4SUBDIRS = \ 5 $(top_srcdir)/dynrules \ 6 $(top_srcdir)/dynrules/test \ 7 $(top_srcdir)/dynrules/test/util \ 8 $(top_srcdir)/doc \ 9 $(top_srcdir)/examples \ 10 $(top_srcdir)/cplusplus 11 12INTERPRETERS = python2.7 python3.2 python3.3 pypy2.0 13 14all: clean build 15 16docs: clean 17 @cd doc/ && make html 18 @mv doc/build/html doc/ 19 @cd doc/ && rm -rf build 20 @cd cplusplus/ && make docs 21 22dist: docs 23 @echo "Creating dist..." 24 @$(PYTHON) setup.py sdist --format=zip 25 @$(PYTHON) setup.py sdist --format=gztar 26 27bdist: clean docs 28 @echo "Creating bdist..." 29 @$(PYTHON) setup.py bdist 30 31build: 32 @echo "Running build..." 33 @$(PYTHON) setup.py build 34 @echo "Build finished, invoke 'make install' to install." 35 36install: 37 @echo "Installing..." 38 @$(PYTHON) setup.py build install 39 40clean: 41 @echo "Cleaning up in $(top_srcdir)/ ..." 42 @rm -f *.cache *.core *~ MANIFEST 43 @rm -rf build dist __pycache__ 44 45 @for dir in $(SUBDIRS); do \ 46 if test -f $$dir/Makefile; then \ 47 make -C $$dir clean; \ 48 else \ 49 cd $$dir; \ 50 echo "Cleaning up in $$dir..."; \ 51 rm -rf *~ *.cache *.core *.pyc __pycache__; \ 52 fi \ 53 done 54 55release: clean dist 56 57buildall: clean 58 @for interp in $(INTERPRETERS); do \ 59 $$interp setup.py build; \ 60 done 61 62installall: 63 @for interp in $(INTERPRETERS); do \ 64 $$interp setup.py install; \ 65 done 66 67testall: 68 @for interp in $(INTERPRETERS); do \ 69 PYTHONPATH=$(PYTHONPATH) $$interp -B -m dynrules.test.util.runtests || true; \ 70 done 71 72testpackage: 73 @for interp in $(INTERPRETERS); do \ 74 $$interp -c "import dynrules.test; dynrules.test.run()" || true \ 75 done 76 77purge_installs: 78 @for interp in $(INTERPRETERS); do \ 79 rm -rf /usr/local/lib/$$interp/site-packages/dynrules*; \ 80 done 81