1## 2# Makefile for Twisted 3## 4 5# Project info 6Project = Twisted 7ProjectName = Twisted 8UserType = Developer 9ToolType = Library 10 11# Include common makefile targets for B&I 12include $(MAKEFILEPATH)/CoreOS/ReleaseControl/Common.make 13 14PYTHON_VERSIONS = $(shell \ 15 for python in /usr/bin/python2.*[6-9]; do \ 16 "$${python}" -c 'import sys; print "%d.%d" % tuple(sys.version_info[0:2])'; \ 17 done; \ 18) 19 20PYTHON = /usr/bin/python 21EXTRAS := $(shell "$(PYTHON)" -c 'import sys; print sys.prefix')/Extras 22CORE_SCRIPTS = trial twistd 23 24build:: extract_source 25 $(_v) for version in $(PYTHON_VERSIONS); do \ 26 echo "Building for Python $${version}..."; \ 27 cd $(OBJROOT)/$(Project) && $(Environment) "$(PYTHON)$${version}" setup.py build; \ 28 done; 29 30install:: 31 $(_v) for version in $(PYTHON_VERSIONS); do \ 32 extras="$$("$(PYTHON)$${version}" -c 'import sys; print sys.prefix')/Extras"; \ 33 echo "Installing for Python $${version}..."; \ 34 cd $(OBJROOT)/$(Project) && $(Environment) "$(PYTHON)$${version}" setup.py install --home="$${extras}" --root="$(DSTROOT)"; \ 35 for so in $$(find "$(DSTROOT)$${extras}" -type f -name '*.so'); do $(STRIP) -Sx "$${so}"; done; \ 36 echo "Removing turds for Python $${version}..."; \ 37 for turd in "$(DSTROOT)$${extras}/lib/python/twisted/python/zsh/"* "$(DSTROOT)$${extras}/lib/python/twisted/topfiles/"*.misc; do \ 38 if [ ! -s "$${turd}" ]; then rm -f "$${turd}"; fi; \ 39 done; \ 40 echo "Removing empty files for Python $${version}..."; \ 41 find "$(DSTROOT)$${extras}/lib/python" -name '*.py' -empty -exec cp "$(SRCROOT)/empty.py" '{}' ";" -print; \ 42 echo "Initializing dropin.cache for Python $${version}..."; \ 43 PYTHONPATH="$(DSTROOT)$${extras}/lib/python" "$(DSTROOT)$${extras}/bin/twistd" --help 2>&1 >/dev/null; \ 44 done; 45 $(_v) $(INSTALL_DIRECTORY) "$(DSTROOT)/$(USRBINDIR)"; 46 $(_v) $(INSTALL_DIRECTORY) "$(DSTROOT)/$(MANDIR)/man1"; 47 $(_v) for script in $(CORE_SCRIPTS); do \ 48 $(LN) -s "$(EXTRAS)/bin/$${script}" "$(DSTROOT)$(USRBINDIR)/$${script}"; \ 49 $(INSTALL_FILE) "$(OBJROOT)/$(Project)/doc/core/man/$${script}.1" "$(DSTROOT)$(MANDIR)/man1/"; \ 50 done; 51 52# 53# Automatic Extract & Patch 54# 55 56AEP = YES 57AEP_ProjVers = $(Project)-12.2.0 58AEP_Filename = $(AEP_ProjVers).tar.bz2 59AEP_ExtractDir = $(AEP_ProjVers) 60AEP_Patches = 61 62extract_source:: 63ifeq ($(AEP),YES) 64 @echo "Extracting source for $(Project)..."; 65 $(_v) $(MKDIR) -p "$(OBJROOT)"; 66 $(_v) $(TAR) -C "$(OBJROOT)" -xjf "$(SRCROOT)/$(AEP_Filename)"; 67 $(_v) $(RMDIR) "$(OBJROOT)/$(Project)"; 68 $(_v) $(MV) "$(OBJROOT)/$(AEP_ExtractDir)" "$(OBJROOT)/$(Project)"; 69 $(_v) for patchfile in $(AEP_Patches); do \ 70 cd "$(OBJROOT)/$(Project)" && patch -lp0 < "$(SRCROOT)/patches/$${patchfile}"; \ 71 done; 72endif 73 74# 75# Open Source Hooey 76# 77 78OSV = /usr/local/OpenSourceVersions 79OSL = /usr/local/OpenSourceLicenses 80 81install:: install-ossfiles 82 83install-ossfiles:: 84 $(_v) $(INSTALL_DIRECTORY) "$(DSTROOT)/$(OSV)"; 85 $(_v) $(INSTALL_FILE) "$(SRCROOT)/$(ProjectName).plist" "$(DSTROOT)/$(OSV)/$(ProjectName).plist"; 86 $(_v) $(INSTALL_DIRECTORY) "$(DSTROOT)/$(OSL)"; 87 $(_v) $(INSTALL_FILE) "$(OBJROOT)/$(Project)/LICENSE" "$(DSTROOT)/$(OSL)/$(ProjectName).txt"; 88