PROJECT = wxWidgets
NAME = wxPython-src
VERSION = 2.8.8.1
export CURRENT_VERSION = $(shell echo $(VERSION) | sed 's/\.[^.]*$$//')
export BASE_VERSION = $(shell echo $(CURRENT_VERSION) | sed 's/\.[^.]*$$//')
export COMPATIBILITY_VERSION = 2.6
NAMEVERS = $(NAME)-$(VERSION)
TARBALL = $(NAMEVERS).tar.bz2
FAKEBIN = $(OBJROOT)/bin
WXWIDGETSTOP = $(OBJROOT)/$(PROJECT)
WXWIDGETSBUILD = $(WXWIDGETSTOP)/darwin
PYTHONPROJECT = python
VERSIONERDIR = /usr/local/versioner
PYTHONVERSIONS = $(VERSIONERDIR)/$(PYTHONPROJECT)/versions
INCOMPATIBLE = 3.0
DEFAULT := $(shell sed -n '/^DEFAULT = /s///p' $(PYTHONVERSIONS))
VERSIONS := $(filter-out $(INCOMPATIBLE), $(shell grep '^[0-9]' $(PYTHONVERSIONS)))
ORDEREDVERS := $(DEFAULT) $(filter-out $(DEFAULT),$(VERSIONS))
TESTOK := -f $(shell echo $(foreach vers,$(VERSIONS),$(OBJROOT)/$(vers)/.ok) | sed 's/ / -a -f /g')
WXPYTHONPROJECT = wxPython
WXPYTHONPROJECTVERS = $(WXPYTHONPROJECT)-$(VERSION)
WXPYTHONBUILD = $(OBJROOT)/$(PROJECT)/$(WXPYTHONPROJECT)
WXPYTHONDEFAULT = $(OBJROOT)/$(DEFAULT)
DOC = $(DSTROOT)/Developer/Documentation
DOCPYTHON = $(DOC)/Python
DOCPYTHONWXPYTHON = $(DOCPYTHON)/$(WXPYTHONPROJECT)
DOCWXWIDGETS = $(DOC)/$(PROJECT)
DOCWXWIDGETSWXPYTHON = $(DOCWXWIDGETS)/$(WXPYTHONPROJECT)
EXAMPLES = $(DSTROOT)/Developer/Examples
EXAMPLESPYTHON = $(EXAMPLES)/Python
EXAMPLESPYTHONWXPYTHON = $(EXAMPLESPYTHON)/$(WXPYTHONPROJECT)
EXAMPLESWXWIDGETS = $(EXAMPLES)/$(PROJECT)
EXAMPLESWXWIDGETSWXPYTHON = $(EXAMPLESWXWIDGETS)/$(WXPYTHONPROJECT)
OSV = $(DSTROOT)/usr/local/OpenSourceVersions
OSL = $(DSTROOT)/usr/local/OpenSourceLicenses
ifndef LD_TWOLEVEL_NAMESPACE
export LD_TWOLEVEL_NAMESPACE = YES
endif
ifndef MACOSX_DEPLOYMENT_TARGET
export MACOSX_DEPLOYMENT_TARGET = 10.5
endif
no_target: $(PROJECT) $(WXPYTHONPROJECT)
$(PROJECT): $(WXWIDGETSBUILD)
$(MAKE) -C $(OBJROOT) -f Makefile \
SRCROOT=$(OBJROOT) OBJROOT=$(WXWIDGETSBUILD)
$(WXPYTHONPROJECT): $(WXWIDGETSBUILD) $(FAKEBIN)/wx-config
$(MAKE) -C $(OBJROOT) -f Makefile.wxPython \
OBJROOT=$(WXPYTHONBUILD) FAKEBIN=$(FAKEBIN)
$(FAKEBIN)/wx-config:
mkdir -p $(FAKEBIN)
cp $(DSTROOT)/usr/bin/wx-config $(FAKEBIN)/wx-config
sed 's,XXXDSTROOTXXX,$(DSTROOT),' $(SRCROOT)/fix/wx-config.ed | ed - $(FAKEBIN)/wx-config
$(WXWIDGETSBUILD):
rsync -a $(SRCROOT)/ $(OBJROOT)
@set -x && \
cd $(OBJROOT) && \
gnutar xjf $(TARBALL) && \
rm -rf $(PROJECT) && \
mv $(NAMEVERS) $(PROJECT) && \
chmod a-x $(PROJECT)/wxPython/demo/bmp_source/customcontrol.png && \
ed - $(PROJECT)/configure < fix/configure.ed && \
ed - $(PROJECT)/Makefile.in < fix/Makefile.in.ed && \
ed - $(PROJECT)/include/wx/platform.h < fix/platform.h.ed && \
ed - $(PROJECT)/src/mac/carbon/morefilex/MoreFilesX.c < fix/MoreFilesX.ed && \
ed - $(PROJECT)/src/mac/carbon/morefilex/MoreFilesX.h < fix/MoreFilesX.ed && \
ex - $(PROJECT)/wxPython/config.py < fix/O3.ex && \
cp -f fix/anykey.wav $(PROJECT)/wxPython/demo/data/anykey.wav && \
for i in `find $(PROJECT) -name Makefile.in | xargs fgrep -l -e -compatibility_version`; do \
ed - $$i < fix/compatibility_version.ed || exit 1; \
done
find $(OBJROOT) -type f -perm +111 \( -name '*.h' -o -name '*.cpp' -o -name '*.icns' -o -name '*.png' -o -name '*.txt' \) | xargs chmod -v a-x
mkdir $(WXWIDGETSBUILD)
install: $(PROJECT)install $(WXPYTHONPROJECT)install
install -d $(OSV)
install $(SRCROOT)/$(PROJECT).plist $(OSV)
install -d $(OSL)
install $(OBJROOT)/$(PROJECT)/docs/licence.txt $(OSL)/$(PROJECT).txt
$(PROJECT)install: $(WXWIDGETSBUILD)
$(MAKE) -C $(OBJROOT) -f Makefile install \
SRCROOT=$(OBJROOT) OBJROOT=$(WXWIDGETSBUILD)
rm -rf $(DSTROOT)/usr/share/locale
install -d -g admin -m 0775 $(DOCWXWIDGETS)
rsync -rlt $(WXWIDGETSTOP)/docs $(DOCWXWIDGETS)
-chown -R root:admin $(DOCWXWIDGETS)
-chmod -R g+w $(DOCWXWIDGETS)
strip $(DSTROOT)/usr/bin/wxrc-2.8
rm -f $(DSTROOT)/Developer/Documentation/wxWidgets/docs/html/wx/wx.cn1
$(WXPYTHONPROJECT)install: $(WXWIDGETSBUILD) $(FAKEBIN)/wx-config
@set -x && \
mv -f '$(WXPYTHONBUILD)' '$(OBJROOT)/$(DEFAULT)' && \
for vers in $(filter-out $(DEFAULT),$(VERSIONS)); do \
ditto '$(OBJROOT)/$(DEFAULT)' "$(OBJROOT)/$$vers" || exit 1; \
done && \
for vers in $(VERSIONS); do \
mkdir -p "$(SYMROOT)/$$vers" && \
mkdir -p "$(OBJROOT)/$$vers/DSTROOT" || exit 1; \
(echo "######## Building $$vers:" `date` ' TOPSRCROOT='$(SRCROOT)' \
VERSIONER_PYTHON_VERSION=$$vers \
VERSIONER_PYTHON_PREFER_32_BIT=yes \
$(MAKE) -C $(OBJROOT) -f Makefile.wxPython install \
OBJROOT="$(OBJROOT)/$$vers" FAKEBIN=$(FAKEBIN) \
DSTROOT="$(OBJROOT)/$$vers/DSTROOT" \
SYMROOT="$(SYMROOT)/$$vers" >> "$(SYMROOT)/$$vers/LOG" 2>&1 && \
touch "$(OBJROOT)/$$vers/.ok" && \
echo "######## Finished $$vers:" `date` ' ) & \
done && \
wait && \
for vers in $(VERSIONS); do \
cat $(SYMROOT)/$$vers/LOG && \
rm -f $(SYMROOT)/$$vers/LOG || exit 1; \
done && \
if [ $(TESTOK) ]; then \
$(MAKE) merge; \
else \
echo ' exit 1; \
fi
merge: mergebegin mergeversions mergefinish
mergebegin:
@echo '
#mergedefault:
MERGEVERSIONS = \
System
mergeversions:
@set -x && \
for vers in $(VERSIONS); do \
cd $(OBJROOT)/$$vers/DSTROOT && \
rsync -Ra $(MERGEVERSIONS) $(DSTROOT) || exit 1; \
done
mergefinish:
install -d -g admin -m 0775 $(EXAMPLESWXWIDGETSWXPYTHON)
rsync -rlt $(WXPYTHONDEFAULT)/demo $(WXPYTHONDEFAULT)/samples $(EXAMPLESWXWIDGETSWXPYTHON)
-chown -R root:admin $(EXAMPLESWXWIDGETSWXPYTHON)
-chmod -R g+w $(EXAMPLESWXWIDGETSWXPYTHON)
install -d -g admin -m 0775 $(EXAMPLESPYTHON)
ln -s ../$(PROJECT)/$(WXPYTHONPROJECT) $(EXAMPLESPYTHONWXPYTHON)
install -d -g admin -m 0775 $(DOCWXWIDGETSWXPYTHON)
rsync -rlt $(WXPYTHONDEFAULT)/docs/ $(DOCWXWIDGETSWXPYTHON)
-chown -R root:admin $(DOCWXWIDGETSWXPYTHON)
-chmod -R g+w $(DOCWXWIDGETSWXPYTHON)
install -d -g admin -m 0775 $(DOCPYTHON)
ln -s ../$(PROJECT)/$(WXPYTHONPROJECT) $(DOCPYTHONWXPYTHON)
for i in `find $(EXAMPLESWXWIDGETSWXPYTHON) -name __init__.py -size 0c`; do \
echo $$i && \
echo ' done
.DEFAULT:
@$(MAKE) -f Makefile $@