1# Makefile orchestrating python_modules
2
3PROJECTS = \
4    setuptools \
5    altgraph \
6    modulegraph \
7    macholib \
8    bdist_mpkg \
9    py2app \
10    numpy \
11    xattr \
12    bonjour-py \
13    scipy \
14    pytz \
15    matplotlib
16
17EXTRAS = $(shell python -c "import sys, os;print(os.path.join(sys.prefix, 'Extras'))")
18EXTRASPYTHON = $(EXTRAS)/lib/python
19
20make := $(SRCROOT)/make.pl
21export PYTHONPATH := $(DSTROOT)$(EXTRASPYTHON)
22ifeq ($(DEBUG),YES)
23export DISTUTILS_DEBUG := YES
24endif
25
26no_target:
27	echo 'specify target install, installsrc, installhdrs, clean'
28	false
29
30afterinstallsrc:
31	for i in $(PROJECTS); do \
32	    $(MAKE) -C $(SRCROOT)/$$i afterinstallsrc || exit 1; \
33	done
34
35install:
36	for i in $(PROJECTS); do \
37	    echo ===== Installing $$i ===== && \
38	    $(make) -C $$i install \
39		EXTRAS="$(EXTRAS)" EXTRASPYTHON="$(EXTRASPYTHON)" \
40		OSL='$(OSL)' OSV='$(OSV)' \
41		|| exit 1; \
42	done
43	@echo ===== Stripping binaries =====
44	set -x && cd $(DSTROOT)$(EXTRASPYTHON) && \
45	for i in `find . -name \*.so | sed 's,^\./,,'`; do \
46	    rsync -R $$i $(SYMROOT) && \
47	    strip -x $$i || exit 1; \
48	done
49	@echo ===== Fixing empty files =====
50	@set -x && \
51	for i in `find $(DSTROOT)$(EXTRASPYTHON) -name __init__.py -size 0c`; do \
52	    echo '#' > $$i && \
53	    j=`echo $$i | sed 's,^$(DSTROOT),,'` && \
54	    python -c "from py_compile import compile;compile('$$i', dfile='$$j', doraise=True)" && \
55	    python -O -c "from py_compile import compile;compile('$$i', dfile='$$j', doraise=True)" || exit 1; \
56	done
57	for i in `find $(DSTROOT)$(EXTRASPYTHON) -name zip-safe -size 0c`; do \
58	    echo > $$i || exit 1; \
59	done
60
61installhdrs:
62	@echo $(Project) has no headers to install
63
64installsrc:
65	ditto . $(SRCROOT)
66
67clean:
68