]> git.saurik.com Git - wxWidgets.git/blobdiff - wxPython/distrib/mac/wxPythonOSX/build
Now we can build all tarballs on one (Unix shell) box using pre-flight.sh.
[wxWidgets.git] / wxPython / distrib / mac / wxPythonOSX / build
index 8f4f703fca3b8b865f135d9f0f4b371fa82d1c7b..9f5473bf0ab0fb555395a346d82257684a72e73d 100755 (executable)
@@ -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
@@ -33,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"
@@ -43,7 +48,7 @@ function usage {
 }
 
 
-if [ $# -lt 1 ]; then
+if [ $# -lt 2 ]; then
     usage
     exit 1
 fi
@@ -74,6 +79,8 @@ skipdmg=no
 skipclean=no
 inplace=no
 unicode=no
+reswig=no
+universal=no
 
 for flag in $*; do
     case ${flag} in
@@ -81,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
@@ -126,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
 
@@ -150,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
@@ -180,6 +189,9 @@ mkdir -p $DMGROOT
 mkdir -p $DMGAPPS/Docs
 mkdir -p $DMGAPPS/Samples
 
+if [ ! -d $DESTDIR ]; then
+  mkdir $DESTDIR
+fi
 
 pushd $BUILDROOT
 
@@ -189,7 +201,7 @@ pushd $BUILDROOT
 
 if [ $skiptar != yes ]; then
     echo Unarchiving tarball...
-    tar xzf $TARBALL
+    tar xjf $TARBALL
 fi
 
 if [ $inplace = no ]; then
@@ -221,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 \
@@ -235,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
 
@@ -244,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 \
@@ -268,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
 
@@ -276,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
@@ -399,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" \
@@ -410,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
@@ -464,7 +492,7 @@ EOF
     $PROGDIR/../makedmg $DMGROOT $DMGDIR $dmgname
 
     echo Moving $DMGDIR/$dmgname.dmg to $DESTDIR
-    mv $DMGDIR/$dmgname.dmg  $DESTDIR
+    mv $DMGDIR/$dmgname.dmg  $DESTDIR/$dmgname.dmg
 
 
 #---------------------------------------------------------------------------
@@ -515,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" <<EOF
 
 The wxPython-docs tarball was not found when building this disk image!
@@ -524,7 +552,7 @@ EOF
 
     else
        pushd $BUILDROOT
-       tar xzvf $TARBALLDIR/wxPython-docs-$VERSION.tar.gz
+       tar xjvf $TARBALLDIR/wxPython-docs-$VERSION.tar.bz2
        popd
 
         # Make an app to launch viewdocs.py
@@ -557,10 +585,10 @@ EOF
     popd
 
 
-    if [ ! -e $TARBALLDIR/wxPython-demo-$VERSION.tar.gz ]; then
+    if [ ! -e $TARBALLDIR/wxPython-demo-$VERSION.tar.bz2 ]; then
        cat > "$DMGAPPS/Samples/Build ERROR.txt" <<EOF
 
-The wxPython-demo tarball was not found when building this disk image!
+The wxPython-$VERSION-demo tarball was not found when building this disk image!
 
 EOF
        cp "$DMGAPPS/Samples/Build ERROR.txt" $DMGAPPS
@@ -569,7 +597,7 @@ EOF
 
         # Copy the demo and samples to the disk image from the tarball
        pushd $DMGAPPS/Samples
-       tar xzvf $TARBALLDIR/wxPython-demo-$VERSION.tar.gz
+       tar xjvf $TARBALLDIR/wxPython-demo-$VERSION.tar.bz2
        mv wxPython-$VERSION/* .
        rm -rf wxPython-$VERSION
        rm demo/b demo/.setup.sh
@@ -616,11 +644,11 @@ EOF
 
 
     # and then finally make a disk image containing everything
-    dmgname=wxPython${SHORTVER}-osx-docs-demos-$VERSION-$TAG
+    dmgname=wxPython${SHORTVER}-osx-docs-demos-$VERSION-$TAG-py$PYVER
     $PROGDIR/../makedmg $DMGAPPS $DMGDIR $dmgname
 
     echo Moving $DMGDIR/$dmgname.dmg to $DESTDIR
-    mv $DMGDIR/$dmgname.dmg  $DESTDIR
+    mv $DMGDIR/$dmgname.dmg  $DESTDIR/$dmgname.dmg
 fi