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