X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/8c1a4666a8b6cab0c16f8e7e4e1c674c95c6f2b8..2dfa1180b02ff64115f9ad96e270edea64027a3b:/wxPython/distrib/mac/wxPythonOSX/build diff --git a/wxPython/distrib/mac/wxPythonOSX/build b/wxPython/distrib/mac/wxPythonOSX/build index fbe9a17c1e..9f5473bf0a 100755 --- a/wxPython/distrib/mac/wxPythonOSX/build +++ b/wxPython/distrib/mac/wxPythonOSX/build @@ -3,6 +3,8 @@ # Build wxMac and wxPythonOSX from the tarball and then make an # Installer package out of it. +##set -x + spectemplate=distrib/wxPythonFull.spec.in if [ ! -d wxPython -o ! -e ${spectemplate} ]; then @@ -12,7 +14,7 @@ fi if [ "$UID" != "0" ]; then echo "-------------------------------------------------------" - echo " WARNING: will be unable to change ownership of files" + echo " WARNING: I will be unable to change ownership of files" echo " unless this script is run as root or via sudo" echo "-------------------------------------------------------" fi @@ -22,7 +24,9 @@ fi function usage { echo "" - echo "Usage: $0 [panther|jaguar] [command flags...]" + echo "Usage: $0 PYVER [jaguar|panther] [command flags...]" + echo "" + echo " PYVER Python version to use to do the build" echo "" echo " panther Build for Apple's python in /usr/bin, such as on Panther" echo " jaguar Build for a python in /usr/local/bin, such as on Jaguar" @@ -31,6 +35,9 @@ function usage { echo " skiptar Don't unpack the tarball" echo " inplace Don't use the tarball, build from the CVS tree instead" echo " (The Docs and Demo tarballs are still required for a full build.)" + echo " reswig Regenerate SWIG wrappers" + echo " universal Generate Universal wxWidgets binary (requires Universal Python " + echo " to general Universal wxPython)." echo " unicode Make a unicode build" echo " skipconfig Don't run configure" echo " skipbuild Don't build wxWidgets or wxPython" @@ -41,19 +48,28 @@ function usage { } -if [ $# -lt 1 ]; then +if [ $# -lt 2 ]; then usage exit 1 fi -KIND=$1 +PYVER=$1 +if which python$PYVER && which pythonw$PYVER; then + PYTHON=`which python$PYVER` + PYTHONW=`which pythonw$PYVER` +else + usage; + exit 1 +fi + +KIND=$2 case $KIND in - panther) PYTHON=/usr/bin/python ;; - jaguar) PYTHON=/usr/local/bin/python ;; + panther) TAG=macosx10.3 ;; + jaguar) TAG=macosx10.2 ;; *) usage; exit 1 ;; esac -PYTHONW=${PYTHON}w -shift + +shift;shift skiptar=no skipconfig=no @@ -63,6 +79,8 @@ skipdmg=no skipclean=no inplace=no unicode=no +reswig=no +universal=no for flag in $*; do case ${flag} in @@ -70,11 +88,12 @@ for flag in $*; do skipconfig) skipconfig=yes; skiptar=yes ;; skipbuild) skipbuild=yes; skipconfig=yes; skiptar=yes ;; skipinstall) skipinstall=yes ;; - skipdmg) skipdmg=yes ;; + skipdmg) skipdmg=yes ;; skipclean) skipclean=yes ;; inplace) inplace=yes; skiptar=yes ;; unicode) unicode=yes ;; - + reswig) reswig=yes ;; + universal) universal=yes ;; *) echo "Unknown flag \"${flag}\"" usage exit 1 @@ -83,11 +102,10 @@ done VERSION=`$PYTHON -c "import setup;print setup.VERSION"` -PYVER=`$PYTHON -c "import sys; print sys.version[:3]"` +SHORTVER=`echo $VERSION | cut -c 1,2,3` PYPREFIX=`$PYTHON -c "import sys; print sys.exec_prefix"` PYLIB=$PYPREFIX/lib/python$PYVER SITEPACKAGES=$PYLIB/site-packages -SHORTVER=`echo $VERSION | cut -c 1,2,3` if [ $unicode == yes ]; then CHARTYPE=unicode @@ -99,9 +117,15 @@ else PYUNICODEOPT=0 fi -#if [ "$HOSTNAME" = "bigmac.alldunn.com" ]; then -# MAKEJOBS="--jobs=2" -#fi + +# Test if the python we are using is the System installed framework +# or one that was installed by the user. This changes where the +# site-packages (or its alias) is located in the installer tree. +APPLE_PYTHON=no +if [ -e /Library/Python/$PYVER ] && [ `dirname $PYTHON` == "/usr/bin" ]; then + APPLE_PYTHON=yes +fi + if [ -z "$TARBALLDIR" ]; then @@ -110,21 +134,21 @@ if [ -z "$TARBALLDIR" ]; then # TARBALLDIR before invoking this script... TARBALLDIR=/stuff/Development/wxPython/dist/$VERSION fi -TARBALL=$TARBALLDIR/wxPython-src-$VERSION.tar.gz +TARBALL=$TARBALLDIR/wxPython-src-$VERSION.tar.bz2 -if [ ! -e $TARBALLDIR/wxPython-demo-$VERSION.tar.gz ]; then +if [ ! -e $TARBALLDIR/wxPython-demo-$VERSION.tar.bz2 ]; then echo "-------------------------------------------------------" echo " WARNING: Demo tarball not found, will skip building " echo " the Demo app bundle and etc." - echo " $TARBALLDIR/wxPython-demo-$VERSION.tar.gz" + echo " $TARBALLDIR/wxPython-demo-$VERSION.tar.bz2" echo "-------------------------------------------------------" fi -if [ ! -e $TARBALLDIR/wxPython-docs-$VERSION.tar.gz ]; then +if [ ! -e $TARBALLDIR/wxPython-docs-$VERSION.tar.bz2 ]; then echo "-------------------------------------------------------" echo " WARNING: Docs tarball not found, will skip building " echo " the the wxDocsViewer app bundle and etc." - echo " $TARBALLDIR/wxPython-docs-$VERSION.tar.gz" + echo " $TARBALLDIR/wxPython-docs-$VERSION.tar.bz2" echo "-------------------------------------------------------" fi @@ -134,6 +158,7 @@ fi PREFIX=/usr/local/lib/wxPython-$CHARTYPE-$VERSION BINPREFIX=/usr/local/bin +SWIGBIN=/opt/swig/bin/swig WXROOT=`dirname $PWD` PROGDIR="`dirname \"$0\"`" TMPDIR=$PWD/_build_dmg @@ -164,6 +189,9 @@ mkdir -p $DMGROOT mkdir -p $DMGAPPS/Docs mkdir -p $DMGAPPS/Samples +if [ ! -d $DESTDIR ]; then + mkdir $DESTDIR +fi pushd $BUILDROOT @@ -173,7 +201,7 @@ pushd $BUILDROOT if [ $skiptar != yes ]; then echo Unarchiving tarball... - tar xzf $TARBALL + tar xjf $TARBALL fi if [ $inplace = no ]; then @@ -205,6 +233,10 @@ if [ $KIND = panther ]; then OTHER_CFG_OPTS=--enable-mediactrl fi +UNIVOPT= +if [ $universal = yes ]; then + UNIVOPT=--enable-universal_binary +fi # Configure wxWidgets if [ $skipconfig != yes ]; then $WXDIR/configure \ @@ -219,7 +251,8 @@ if [ $skipconfig != yes ]; then --enable-precomp=no \ --enable-optimise \ --disable-debugreport \ - $UNICODEOPT $OTHER_CFG_OPTS + --disable-precompiled-headers \ + $UNICODEOPT $UNIVOPT $OTHER_CFG_OPTS fi @@ -228,22 +261,27 @@ if [ $skipbuild != yes ]; then # Make wxWidgets and some contribs - # For some reason Rez and DeRez have started locking up if run via - # an ssh terminal. Figure out why, but in the meantime... - if [ "$CHARTYPE" = "ansi" ]; then - echo cp /projects/wx2.5/bld/lib/libwx_macd-2.5.?.r* lib - cp /projects/wx2.5/bld/lib/libwx_macd-2.5.?.r* lib - else - echo cp /projects/wx2.5/bld-unicode/lib/libwx_macud-2.5.?.r* lib - cp /projects/wx2.5/bld-unicode/lib/libwx_macud-2.5.?.r* lib - fi - touch lib/libwx*.r* +# # For some reason Rez and DeRez have started locking up if run via +# # an ssh terminal. Figure out why, but in the meantime... +# if [ "$CHARTYPE" = "ansi" ]; then +# echo cp /projects/wx2.5/bld/lib/libwx_macd-2.5.?.r* lib +# cp /projects/wx2.5/bld/lib/libwx_macd-2.5.?.r* lib +# else +# echo cp /projects/wx2.5/bld-unicode/lib/libwx_macud-2.5.?.r* lib +# cp /projects/wx2.5/bld-unicode/lib/libwx_macud-2.5.?.r* lib +# fi +# touch lib/libwx*.r* make $MAKEJOBS + make $MAKEJOBS -C contrib/src/animate make $MAKEJOBS -C contrib/src/gizmos - make $MAKEJOBS -C contrib/src/ogl CXXFLAGS="-DwxUSE_DEPRECATED=0" make $MAKEJOBS -C contrib/src/stc +SWIGIT=0 +if [ $reswig = yes ]; then + SWIGIT=1 +fi + # Build wxPython cd $WXROOT/wxPython $PYTHON setup.py \ @@ -252,6 +290,8 @@ if [ $skipbuild != yes ]; then EP_ADD_OPTS=1 \ WX_CONFIG="$WXBLD/wx-config --inplace" \ BUILD_BASE=$WXBLD/wxPython \ + SWIG=$SWIGBIN \ + USE_SWIG=$SWIGIT \ build fi @@ -260,10 +300,10 @@ fi if [ $skipinstall != yes ]; then # Install wxWidgets cd $WXBLD - make prefix=$INSTALLROOT$PREFIX install - make -C contrib/src/gizmos prefix=$INSTALLROOT$PREFIX install - make -C contrib/src/ogl CXXFLAGS="-DwxUSE_DEPRECATED=0" prefix=$INSTALLROOT/$PREFIX install - make -C contrib/src/stc prefix=$INSTALLROOT$PREFIX install + make prefix=$INSTALLROOT$PREFIX install + make -C contrib/src/animate prefix=$INSTALLROOT$PREFIX install + make -C contrib/src/gizmos prefix=$INSTALLROOT$PREFIX install + make -C contrib/src/stc prefix=$INSTALLROOT$PREFIX install # relink wx-config with a relative link @@ -283,10 +323,11 @@ if [ $skipinstall != yes ]; then --root=$INSTALLROOT - # Apple's Python (on Panther) sym-links the site-packages dir to + # Apple's Python Framework (such as what comes with Panther) + # sym-links the site-packages dir in the framework to # /Library/Python/$PYVER so we need to move the files so they are # installed in the physical location, not the virtual one. - if [ "$KIND" = "panther" ]; then + if [ $APPLE_PYTHON == yes ]; then if [ -e $INSTALLROOT/Library/Python/$PYVER ]; then rm -r $INSTALLROOT/Library/Python/$PYVER fi @@ -315,7 +356,7 @@ if [ $skipinstall != yes ]; then fi fi -if [ "$KIND" = "panther" ]; then +if [ $APPLE_PYTHON == yes ]; then SITEPACKAGES=/Library/Python/$PYVER fi PKGDIR=`cat $INSTALLROOT$SITEPACKAGES/wx.pth` @@ -382,9 +423,13 @@ EOF # Build the main Installer Package... - rm -rf wxPython${SHORTVER}-osx-$CHARTYPE-$KIND.pkg - python $PROGDIR/../buildpkg.py \ - --Title=wxPython${SHORTVER}-osx-$CHARTYPE-$KIND \ + PKGNAME=wxPython${SHORTVER}-osx-$CHARTYPE-$KIND + if [ $PYVER != 2.3 ]; then + PKGNAME=wxPython${SHORTVER}-osx-$CHARTYPE-$KIND-py$PYVER + fi + rm -rf $PKGNAME.pkg + $PYTHON $PROGDIR/../buildpkg.py \ + --Title=$PKGNAME \ --Version=$VERSION \ --Description="wxPython $CHARTYPE runtime $VERSION for $W_MSG MacPython-OSX $PYVER" \ --NeedsAuthorization="YES" \ @@ -393,7 +438,7 @@ EOF $INSTALLROOT \ $RESOURCEDIR - mv wxPython${SHORTVER}-osx-$CHARTYPE-$KIND.pkg $DMGROOT + mv $PKGNAME.pkg $DMGROOT/$PKGNAME.pkg rm $RESOURCEDIR/postflight rm $RESOURCEDIR/preflight @@ -443,11 +488,11 @@ EOF #----------------------------------------------- # Make a disk image to hold these files - dmgname=wxPython${SHORTVER}-osx-$CHARTYPE-$VERSION-$KIND-py$PYVER + dmgname=wxPython${SHORTVER}-osx-$CHARTYPE-$VERSION-$TAG-py$PYVER $PROGDIR/../makedmg $DMGROOT $DMGDIR $dmgname echo Moving $DMGDIR/$dmgname.dmg to $DESTDIR - mv $DMGDIR/$dmgname.dmg $DESTDIR + mv $DMGDIR/$dmgname.dmg $DESTDIR/$dmgname.dmg #--------------------------------------------------------------------------- @@ -498,7 +543,7 @@ EOF # wxDocs - if [ ! -e $TARBALLDIR/wxPython-docs-$VERSION.tar.gz ]; then + if [ ! -e $TARBALLDIR/wxPython-docs-$VERSION.tar.bz2 ]; then cat > "$DMGAPPS/Docs/Build ERROR.txt" < "$DMGAPPS/Samples/Build ERROR.txt" <