Project = python
Extra_Configure_Flags = --enable-ipv6 --with-threads --enable-framework=/System/Library/Frameworks --enable-toolbox-glue
Extra_CC_Flags += -fno-common -Wno-long-double -mno-fused-madd
Extra_LD_Flags += -Wl,-F.
Extra_Install_Flags = DESTDIR=${DSTROOT}
GnuAfterInstall = fixup-after-install
include $(MAKEFILEPATH)/CoreOS/ReleaseControl/GNUSource.make
Install_Flags := $(shell echo $(Install_Flags) | sed 's/prefix=[^ ]* *//')
Install_Target = frameworkinstallstructure libinstall libainstall sharedinstall oldsharedinstall
FIX = $(SRCROOT)/fix
ConfigStamp2 = $(ConfigStamp)2
configure:: $(ConfigStamp2)
$(ConfigStamp2): $(ConfigStamp)
$(_v) ed - ${OBJROOT}/Makefile < $(FIX)/Makefile.ed
$(_v) ed - ${OBJROOT}/pyconfig.h < $(FIX)/pyconfig.ed
$(_v) patch ${OBJROOT}/Lib/plat-mac/applesingle.py \
$(FIX)/applesingle.py.patch
$(_v) $(TOUCH) $(ConfigStamp2)
FRAMEWORKS = /System/Library/Frameworks
PYFRAMEWORK = $(FRAMEWORKS)/Python.framework
VERSIONSVER = $(PYFRAMEWORK)/Versions/$(VERS)
RESOURCESVERS = $(VERSIONSVER)/Resources
LIBPYTHONVERS = $(VERSIONSVER)/lib/python$(VERS)
RUNPYTHON = DYLD_FRAMEWORK_PATH=$(OBJROOT) $(OBJROOT)/python.exe
BYTE2UTF16 = $(RUNPYTHON) $(FIX)/byte2utf16.py
UTF162BYTE = $(RUNPYTHON) $(FIX)/utf162byte.py
fixup-after-install: delete-stuff \
strip-installed-files \
fix-empty-file \
fix-CFBundleIdentifier \
fix-CFBundleShortVersionString \
fix-paths \
make-Library-Python \
fix-permissions \
fix-LINKFORSHARED
delete-stuff:
rm -rf $(DSTROOT)/usr/local
rm -rf $(DSTROOT)$(PYFRAMEWORK)/Headers
rm -rf $(DSTROOT)$(PYFRAMEWORK)/Python
rm -rf $(DSTROOT)$(PYFRAMEWORK)/Resources
rm -rf $(DSTROOT)$(PYFRAMEWORK)/Versions/Current
rm -rf $(DSTROOT)$(VERSIONSVER)/Headers
rm -rf $(DSTROOT)$(VERSIONSVER)/bin
strip-installed-files:
strip -x $(DSTROOT)$(VERSIONSVER)/Python
strip -x $(DSTROOT)$(LIBPYTHONVERS)/config/python.o
strip -x $(DSTROOT)$(LIBPYTHONVERS)/lib-dynload/*.so
fix-empty-file:
echo ' $(RUNPYTHON) $(OBJROOT)/Lib/py_compile.py $(DSTROOT)$(LIBPYTHONVERS)/bsddb/test/__init__.py
$(RUNPYTHON) -O $(OBJROOT)/Lib/py_compile.py $(DSTROOT)$(LIBPYTHONVERS)/bsddb/test/__init__.py
fix-CFBundleIdentifier:
ed - $(DSTROOT)$(RESOURCESVERS)/Info.plist < $(FIX)/pfinfo.ed
fix-CFBundleShortVersionString:
@set -x && \
for s in `find $(DSTROOT)$(RESOURCESVERS) -name InfoPlist.strings`; do \
$(UTF162BYTE) $$s $(OBJROOT)/temp.ip.strings && \
ed - $(OBJROOT)/temp.ip.strings < $(FIX)/removeCFkeys.ed && \
$(BYTE2UTF16) $(OBJROOT)/temp.ip.strings $$s; \
done
fix-paths:
ed - $(DSTROOT)$(LIBPYTHONVERS)/config/Makefile < $(FIX)/adjustSLF.ed
fix-LINKFORSHARED:
ed - $(DSTROOT)$(LIBPYTHONVERS)/config/Makefile < $(FIX)/LINKFORSHARED.ed
LIBRARYPYTHON = /Library/Python
LIBRARYPYTHONVERS = $(LIBRARYPYTHON)/$(VERS)
ORIGSITEPACKAGES = $(LIBRARYPYTHONVERS)/site-packages
SITEPACKAGES = $(LIBPYTHONVERS)/site-packages
make-Library-Python:
install -d $(DSTROOT)$(LIBRARYPYTHONVERS)
mv -f $(DSTROOT)$(SITEPACKAGES) $(DSTROOT)$(LIBRARYPYTHONVERS)
ln -sf ../../../../../../../..$(ORIGSITEPACKAGES) $(DSTROOT)$(SITEPACKAGES)
fix-permissions:
@set -x && for i in Library; do \
chgrp -Rf admin $(DSTROOT)/$$i && \
chmod -Rf g+w $(DSTROOT)/$$i; \
done