]> git.saurik.com Git - wxWidgets.git/blobdiff - wxPython/distrib/mac/wxPythonOSX/build
Detect Apple bug that prevents the joystick code compiling for OS X 10.1
[wxWidgets.git] / wxPython / distrib / mac / wxPythonOSX / build
index e46fbeafde8e4388c6aa1d226d9d27a081acda73..62b695ffa38ab47c1c969c4bd295486e38e2fe00 100755 (executable)
@@ -3,6 +3,8 @@
 # Build wxMac and wxPythonOSX from the tarball and then make an
 # Installer package out of it.
 
 # 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
 spectemplate=distrib/wxPythonFull.spec.in
 
 if [ ! -d wxPython -o ! -e ${spectemplate} ]; then
@@ -12,7 +14,7 @@ fi
 
 if [ "$UID" != "0" ]; then
     echo "-------------------------------------------------------"
 
 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
     echo " unless this script is run as root or via sudo"
     echo "-------------------------------------------------------"
 fi
@@ -22,7 +24,9 @@ fi
 
 function usage {
     echo ""
 
 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"
     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,7 @@ 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 "   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 "   unicode        Make a unicode build"
     echo "   skipconfig     Don't run configure"
     echo "   skipbuild      Don't build wxWidgets or wxPython"
     echo "   skipinstall    Don't do the installation step"
     echo "   skipconfig     Don't run configure"
     echo "   skipbuild      Don't build wxWidgets or wxPython"
     echo "   skipinstall    Don't do the installation step"
@@ -40,19 +45,28 @@ function usage {
 }
 
 
 }
 
 
-if [ $# -lt 1 ]; then
+if [ $# -lt 2 ]; then
     usage
     exit 1
 fi
 
     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
 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
     *)          usage; exit 1 ;;
 esac
-PYTHONW=${PYTHON}w
-shift
+
+shift;shift
 
 skiptar=no
 skipconfig=no
 
 skiptar=no
 skipconfig=no
@@ -61,6 +75,7 @@ skipinstall=no
 skipdmg=no
 skipclean=no
 inplace=no
 skipdmg=no
 skipclean=no
 inplace=no
+unicode=no
 
 for flag in $*; do
     case ${flag} in
 
 for flag in $*; do
     case ${flag} in
@@ -71,6 +86,7 @@ for flag in $*; do
         skipdmg)     skipdmg=yes                                ;;
        skipclean)   skipclean=yes                              ;;
        inplace)     inplace=yes; skiptar=yes                   ;;
         skipdmg)     skipdmg=yes                                ;;
        skipclean)   skipclean=yes                              ;;
        inplace)     inplace=yes; skiptar=yes                   ;;
+       unicode)     unicode=yes                                ;;
 
        *)  echo "Unknown flag \"${flag}\""
            usage
 
        *)  echo "Unknown flag \"${flag}\""
            usage
@@ -80,11 +96,30 @@ done
 
 
 VERSION=`$PYTHON -c "import setup;print setup.VERSION"`
 
 
 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
 
 PYPREFIX=`$PYTHON -c "import sys; print sys.exec_prefix"`
 PYLIB=$PYPREFIX/lib/python$PYVER
 SITEPACKAGES=$PYLIB/site-packages
 
+if [ $unicode == yes ]; then
+    CHARTYPE=unicode
+    UNICODEOPT=--enable-unicode
+    PYUNICODEOPT=1
+else
+    CHARTYPE=ansi
+    UNICODEOPT=--disable-unicode
+    PYUNICODEOPT=0
+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
 
 
 if [ -z "$TARBALLDIR" ]; then
@@ -93,28 +128,28 @@ if [ -z "$TARBALLDIR" ]; then
     # TARBALLDIR before invoking this script...
     TARBALLDIR=/stuff/Development/wxPython/dist/$VERSION
 fi
     # TARBALLDIR before invoking this script...
     TARBALLDIR=/stuff/Development/wxPython/dist/$VERSION
 fi
-TARBALL=$TARBALLDIR/wxPythonSrc-$VERSION.tar.gz
+TARBALL=$TARBALLDIR/wxPython-src-$VERSION.tar.gz
 
 
-if [ ! -e $TARBALLDIR/wxPythonDemo-$VERSION.tar.gz ]; then 
+if [ ! -e $TARBALLDIR/wxPython-demo-$VERSION.tar.gz ]; then 
     echo "-------------------------------------------------------"
     echo " WARNING:  Demo tarball not found, will skip building "
     echo "           the Demo app bundle and etc."
     echo "-------------------------------------------------------"
     echo " WARNING:  Demo tarball not found, will skip building "
     echo "           the Demo app bundle and etc."
-    echo " $TARBALLDIR/wxPythonDemo-$VERSION.tar.gz"
+    echo " $TARBALLDIR/wxPython-demo-$VERSION.tar.gz"
     echo "-------------------------------------------------------"
 fi
 
     echo "-------------------------------------------------------"
 fi
 
-if [ ! -e $TARBALLDIR/wxPythonDocs-$VERSION.tar.gz ]; then
+if [ ! -e $TARBALLDIR/wxPython-docs-$VERSION.tar.gz ]; then
     echo "-------------------------------------------------------"
     echo " WARNING:  Docs tarball not found, will skip building "
     echo "           the the wxDocsViewer app bundle and etc."
     echo "-------------------------------------------------------"
     echo " WARNING:  Docs tarball not found, will skip building "
     echo "           the the wxDocsViewer app bundle and etc."
-    echo " $TARBALLDIR/wxPythonDocs-$VERSION.tar.gz"
+    echo " $TARBALLDIR/wxPython-docs-$VERSION.tar.gz"
     echo "-------------------------------------------------------"
 fi
 
 
 
 
     echo "-------------------------------------------------------"
 fi
 
 
 
 
-PREFIX=/usr/local/lib/wxPython-$VERSION
+PREFIX=/usr/local/lib/wxPython-$CHARTYPE-$VERSION
 BINPREFIX=/usr/local/bin
 
 WXROOT=`dirname $PWD`
 BINPREFIX=/usr/local/bin
 
 WXROOT=`dirname $PWD`
@@ -122,12 +157,17 @@ PROGDIR="`dirname \"$0\"`"
 TMPDIR=$PWD/_build_dmg
 
 BUILDROOT=$TMPDIR/build
 TMPDIR=$PWD/_build_dmg
 
 BUILDROOT=$TMPDIR/build
-INSTALLROOT=$TMPDIR/install
-INSTALLDEVEL=$TMPDIR/install-devel
+
+INSTALLROOT=$TMPDIR/install-root
+INSTALLAPPS=$TMPDIR/install-apps
+
 DMGDIR=$TMPDIR/dmg
 DMGDIR=$TMPDIR/dmg
+DMGROOT=$DMGDIR/root
+DMGAPPS=$DMGDIR/apps
+
 RESOURCEDIR=$PROGDIR/resources
 DESTDIR=$PWD/dist
 RESOURCEDIR=$PROGDIR/resources
 DESTDIR=$PWD/dist
-SRCROOT=$BUILDROOT/wxPythonSrc-$VERSION
+SRCROOT=$BUILDROOT/wxPython-src-$VERSION
 
 
 #----------------------------------------------------------------------
 
 
 #----------------------------------------------------------------------
@@ -135,11 +175,12 @@ SRCROOT=$BUILDROOT/wxPythonSrc-$VERSION
 
 mkdir -p $BUILDROOT
 mkdir -p $INSTALLROOT
 
 mkdir -p $BUILDROOT
 mkdir -p $INSTALLROOT
-#mkdir -p $INSTALLDEVEL
+mkdir -p $INSTALLAPPS
+
 rm -rf $DMGDIR
 rm -rf $DMGDIR
-mkdir -p $DMGDIR/root/Apps
-mkdir -p $DMGDIR/root/Docs
-mkdir -p $DMGDIR/root/Samples
+mkdir -p $DMGROOT
+mkdir -p $DMGAPPS/Docs
+mkdir -p $DMGAPPS/Samples
 
 
 pushd $BUILDROOT
 
 
 pushd $BUILDROOT
@@ -155,43 +196,48 @@ fi
 
 if [ $inplace = no ]; then
     # make a build dir and cd to it.
 
 if [ $inplace = no ]; then
     # make a build dir and cd to it.
-    cd wxPythonSrc-$VERSION
+    cd wxPython-src-$VERSION
     WXDIR=`pwd`
     mkdir -p $WXDIR/bld
     cd $WXDIR/bld
     WXBLD=$WXDIR/bld
 else
     WXDIR=`pwd`
     mkdir -p $WXDIR/bld
     cd $WXDIR/bld
     WXBLD=$WXDIR/bld
 else
-    # If building "inplace" then our build dir will be BUILDROOT,
-    # adjust the variables to find things that way.
-    WXDIR=$WXROOT
+
+    # If building "inplace" then our build dir will be off of the
+    # WXROOT like normal, adjust the variables to find things that
+    # way.
+    WXBLD=$WXROOT/build-$CHARTYPE
+    mkdir -p $WXBLD
+    cd $WXBLD
+    WXDIR=..
     SRCROOT=$WXROOT
     SRCROOT=$WXROOT
-    WXBLD=$BUILDROOT
 fi
 
 fi
 
-echo "Using source tree: $WXDIR"
+echo "Using wx root dir: $WXROOT"
 echo "Using build dir:   $WXBLD" 
 echo "Using build dir:   $WXBLD" 
+echo "Using source tree: $WXDIR"
 
 #----------------------------------------------------------------------
 
 
 #----------------------------------------------------------------------
 
+if [ $KIND = panther ]; then 
+    OTHER_CFG_OPTS=--enable-mediactrl
+fi
 
 # Configure wxWidgets
 if [ $skipconfig != yes ]; then
     $WXDIR/configure \
        --prefix=$PREFIX \
        --with-mac \
 
 # Configure wxWidgets
 if [ $skipconfig != yes ]; then
     $WXDIR/configure \
        --prefix=$PREFIX \
        --with-mac \
-       --disable-monolithic \
+       --enable-monolithic \
        --with-opengl \
        --enable-sound \
        --enable-display \
        --enable-geometry \
        --with-opengl \
        --enable-sound \
        --enable-display \
        --enable-geometry \
+       --enable-debug_flag \
        --enable-precomp=no \
        --enable-precomp=no \
-       --enable-debug_flag
-
-##     --enable-optimise \
-##     --with-libjpeg=builtin \
-##     --with-libpng=builtin \
-##     --with-libtiff=builtin \
-##     --with-zlib=builtin \
+       --enable-optimise \
+       --disable-debugreport \
+       $UNICODEOPT $OTHER_CFG_OPTS
 
 fi
 
 
 fi
 
@@ -199,26 +245,32 @@ fi
 if [ $skipbuild != yes ]; then
 
     # Make wxWidgets and some contribs
 if [ $skipbuild != yes ]; then
 
     # Make wxWidgets and some contribs
-    make
-    make -C contrib/src/gizmos
-    make -C contrib/src/ogl CXXFLAGS="-DwxUSE_DEPRECATED=0"
-    make -C contrib/src/stc
-    make -C contrib/src/xrc
+
+#     # 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/stc
 
     # Build wxPython
 
     # Build wxPython
-    cd $WXDIR/wxPython
+    cd $WXROOT/wxPython
     $PYTHON setup.py \
     $PYTHON setup.py \
+       UNICODE=$PYUNICODEOPT \
        NO_SCRIPTS=1 \
        NO_SCRIPTS=1 \
+       EP_ADD_OPTS=1 \
        WX_CONFIG="$WXBLD/wx-config --inplace" \
        BUILD_BASE=$WXBLD/wxPython \
        build
        WX_CONFIG="$WXBLD/wx-config --inplace" \
        BUILD_BASE=$WXBLD/wxPython \
        build
-
-
-    # Build wxrc (XRC resource tool)
-    cd $WXBLD/contrib/utils/wxrc
-    make
-    strip wxrc
-
 fi
 
 #----------------------------------------------------------------------
 fi
 
 #----------------------------------------------------------------------
@@ -226,27 +278,34 @@ fi
 if [ $skipinstall != yes ]; then
     # Install wxWidgets
     cd $WXBLD
 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 -C contrib/src/xrc 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
+    cd $INSTALLROOT$PREFIX/bin
+    rm wx-config
+    ln -s ../lib/wx/config/* wx-config
 
     # and wxPython
 
     # and wxPython
-    cd $WXDIR/wxPython
+    cd $WXROOT/wxPython
     $PYTHON setup.py \
     $PYTHON setup.py \
+       UNICODE=$PYUNICODEOPT \
        NO_SCRIPTS=1 \
        NO_SCRIPTS=1 \
+       EP_ADD_OPTS=1 \
        WX_CONFIG="$INSTALLROOT/$PREFIX/bin/wx-config --prefix=$INSTALLROOT/$PREFIX" \
        BUILD_BASE=$WXBLD/wxPython \
        install \
        --root=$INSTALLROOT
 
 
        WX_CONFIG="$INSTALLROOT/$PREFIX/bin/wx-config --prefix=$INSTALLROOT/$PREFIX" \
        BUILD_BASE=$WXBLD/wxPython \
        install \
        --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.
     # /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          
        if [ -e $INSTALLROOT/Library/Python/$PYVER ]; then
            rm -r $INSTALLROOT/Library/Python/$PYVER
        fi          
@@ -256,16 +315,17 @@ if [ $skipinstall != yes ]; then
        SITEPACKAGES=/Library/Python/$PYVER
     fi
 
        SITEPACKAGES=/Library/Python/$PYVER
     fi
 
-
     # install wxPython's tool scripts
     mkdir -p $INSTALLROOT$BINPREFIX
     # install wxPython's tool scripts
     mkdir -p $INSTALLROOT$BINPREFIX
-    cd $WXDIR/wxPython/scripts
+    cd $WXROOT/wxPython/scripts
     python$PYVER CreateMacScripts.py $INSTALLROOT $BINPREFIX
 
 
     python$PYVER CreateMacScripts.py $INSTALLROOT $BINPREFIX
 
 
-    # Install wxrc
-    cp $WXBLD/contrib/utils/wxrc/wxrc $INSTALLROOT$BINPREFIX
-
+    # Remove the .pyc/.pyo files they just take up space and can be recreated
+    # during the install.
+    pushd $WXROOT/wxPython
+    $PYTHON $PROGDIR/../zappycfiles.py $INSTALLROOT > /dev/null
+    popd
 
     # Set premissions for files in $INSTALLROOT
     if [ "$UID" = "0" ]; then
 
     # Set premissions for files in $INSTALLROOT
     if [ "$UID" = "0" ]; then
@@ -274,6 +334,11 @@ if [ $skipinstall != yes ]; then
     fi
 fi
 
     fi
 fi
 
+if [ $APPLE_PYTHON == yes ]; then
+    SITEPACKAGES=/Library/Python/$PYVER
+fi
+PKGDIR=`cat $INSTALLROOT$SITEPACKAGES/wx.pth`
+
 popd
 
 #----------------------------------------------------------------------
 popd
 
 #----------------------------------------------------------------------
@@ -281,22 +346,28 @@ popd
 # Make the Installer packages and disk image
 if [ $skipdmg != yes ]; then
 
 # Make the Installer packages and disk image
 if [ $skipdmg != yes ]; then
 
-    # Remove the .pyc/.pyo files they just take up space and can be recreated
-    # during the install.
-    $PYTHON $PROGDIR/../zappycfiles.py $INSTALLROOT > /dev/null
-
+    #-----------------------------------------------
+    # The main runtime installer package
 
     # Make the welcome message
     case $KIND in
        panther)  W_MSG="the Panther (OS X 10.3.x) version of" ;;
        jaguar)   W_MSG="the Jaguar (OS X 10.2.x) version of" ;;
     esac
 
     # Make the welcome message
     case $KIND in
        panther)  W_MSG="the Panther (OS X 10.3.x) version of" ;;
        jaguar)   W_MSG="the Jaguar (OS X 10.2.x) version of" ;;
     esac
+    
+
     cat > $RESOURCEDIR/Welcome.txt <<EOF
 Welcome!
 
     cat > $RESOURCEDIR/Welcome.txt <<EOF
 Welcome!
 
-This program will install wxPython $VERSION for $W_MSG MacPython-OSX $PYVER.
+This Installer package will install the wxPython $CHARTYPE runtime $VERSION for $W_MSG MacPython-OSX $PYVER.  This includes:
+
+    * The wxPython packages and modules
+    * The wxWidgets shared libraries and headers
+    * Some command line tool scripts, installed to /usr/local/bin.
 
 
-You must install onto your current boot disk, even though the installer does not enforce this, otherwise things will not work.
+You must install onto your current boot disk, eventhough the installer does not enforce this, otherwise things will not work.
+
+You can install more than one version of the wxPython runtime if you desire.  The most recently installed version will be the default wxPython, but you can choose another by setting the PYTHONPATH or by using the wxversion module.  See http://wiki.wxpython.org/index.cgi/MultiVersionInstalls for more details.
 
 Build date:   `date`
 EOF
 
 Build date:   `date`
 EOF
@@ -307,6 +378,7 @@ EOF
 # Cleanup any old install of the wxPython package
 rm -rf \$2$SITEPACKAGES/wxPython
 rm -rf \$2$SITEPACKAGES/wx
 # Cleanup any old install of the wxPython package
 rm -rf \$2$SITEPACKAGES/wxPython
 rm -rf \$2$SITEPACKAGES/wx
+rm -rf \$2$SITEPACKAGES/$PKGDIR
 exit 0
 EOF
     chmod +x $RESOURCEDIR/preflight
 exit 0
 EOF
     chmod +x $RESOURCEDIR/preflight
@@ -315,64 +387,114 @@ EOF
     cat > $RESOURCEDIR/postflight <<EOF
 #!/bin/sh -e
 # Compile the .py files in the wxPython pacakge
     cat > $RESOURCEDIR/postflight <<EOF
 #!/bin/sh -e
 # Compile the .py files in the wxPython pacakge
-$PYTHON \$2$PYLIB/compileall.py \$2$SITEPACKAGES/wxPython
-$PYTHON \$2$PYLIB/compileall.py \$2$SITEPACKAGES/wx
-$PYTHON -O \$2$PYLIB/compileall.py \$2$SITEPACKAGES/wxPython
-$PYTHON -O \$2$PYLIB/compileall.py \$2$SITEPACKAGES/wx
-
+$PYTHON \$2$PYLIB/compileall.py \$2$SITEPACKAGES/$PKGDIR
+$PYTHON -O \$2$PYLIB/compileall.py \$2$SITEPACKAGES/$PKGDIR
 
 # and all of the wxPython pacakge should be group writable
 
 # and all of the wxPython pacakge should be group writable
-chgrp -R admin \$2$SITEPACKAGES/wxPython
-chmod -R g+w \$2$SITEPACKAGES/wxPython
-chgrp -R admin \$2$SITEPACKAGES/wx
-chmod -R g+w \$2$SITEPACKAGES/wx
+chgrp -R admin \$2$SITEPACKAGES/$PKGDIR
+chmod -R g+w \$2$SITEPACKAGES/$PKGDIR
 
 exit 0
 EOF
     chmod +x $RESOURCEDIR/postflight
 
 
 exit 0
 EOF
     chmod +x $RESOURCEDIR/postflight
 
-
+    
 
     # Build the main Installer Package...
 
     # Build the main Installer Package...
-    rm -rf wxPythonOSX-$KIND.pkg
-    python $PROGDIR/../buildpkg.py \
-       --Title=wxPythonOSX-$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 \
        --Version=$VERSION \
-       --Description="wxPython $VERSION for $W_MSG MacPython-OSX $PYVER" \
+       --Description="wxPython $CHARTYPE runtime $VERSION for $W_MSG MacPython-OSX $PYVER" \
        --NeedsAuthorization="YES" \
        --Relocatable="NO" \
        --InstallOnly="YES" \
        $INSTALLROOT \
        $RESOURCEDIR
 
        --NeedsAuthorization="YES" \
        --Relocatable="NO" \
        --InstallOnly="YES" \
        $INSTALLROOT \
        $RESOURCEDIR
 
-    mv wxPythonOSX-$KIND.pkg $DMGDIR/root
+    mv $PKGNAME.pkg $DMGROOT
 
 
+    rm $RESOURCEDIR/postflight
+    rm $RESOURCEDIR/preflight
+    rm $RESOURCEDIR/Welcome.txt
 
 
 
 
-    # Make a README.txt to go on the disk image
-    cat > "$DMGDIR/root/README 1st.txt" <<EOF
+    #-----------------------------------------------
+    # Make a README to go on the disk image
+    cat > "$DMGROOT/README 1st.txt" <<EOF
 Welcome to wxPython!
 
 Welcome to wxPython!
 
-On this disk image you will find the installer for wxPython $VERSION for $W_MSG MacPython-OSX $PYVER.  MacPython-OSX is not included.
+This disk image contains the following items:
+
+    wxPython${SHORTVER}-osx-$CHARTYPE-$VERSION-$KIND
+
+        This Installer contains the wxPython runtime, compiled on a
+        $KIND OS X system, using the $CHARTYPE build of the wxWidgets
+        library.  It includes the Python modules and extension
+        modules, as well as the wxWidgets libraries.
 
 
-   wxPython-$KIND.pkg   The installer package.  It contains the wxPython
-                        extension modules, wxMac dynamic libraries and
-                        headers, and some scripts for the command-line
-                        tools.
+        It is possible to have more than one version of the runtime
+        installed at once if you wish.  The most recently installed
+        version will be the default wxPython, but you can choose
+        another by setting the PYTHONPATH or by using the wxversion
+        module.  For more details see:
+        http://wiki.wxpython.org/index.cgi/MultiVersionInstalls 
+
+
+    uninstall_wxPython.py
+
+        A simple tool to help you manage your installed versions of
+        wxPython.  It will allow you to choose from the currently
+        installed wxPython packages and to select one for
+        uninstallation.  It is a text-mode tool so you can either run
+        it from a Terminal command line, or you can open it with
+        PythonLauncher and let it create a Terminal to run it in.
+
+        NOTE: If you have versions prior to 2.5.3.1 installed, please
+        do run this uninstall tool to remove the older version.
+
+EOF
+
+
+
+    cp $PROGDIR/../uninstall_wxPython.py $DMGROOT
+
+
+    #-----------------------------------------------
+    # Make a disk image to hold these files
+    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
+
+
+#---------------------------------------------------------------------------
+# Now create app bundles for the demo, docs, and tools and make another
+# disk image to hold it all.
+#---------------------------------------------------------------------------
+
+    cat > "$DMGAPPS/README 1st.txt" <<EOF
+Welcome to wxPython!
 
 
-Everything else here is optional and you can drag them out of the disk
-image and drop them wherever you want.  You do need to install the above
-package before you can use any of the items below.
+On this disk image you will find Demo, Tools, Docs, and etc. for
+wxPython $VERSION.  Everything here is optional and you can drag them
+out of the disk image and drop them wherever you want.  You will need
+to have an installed wxPython runtime to be able to use any of them.
 
 
 
 
-   Apps/wxPython Demo   An application bundle version of the demo.
-                        (This has it's own copy of the sources within
-                        the bundle.)
+   wxPython Demo        An application bundle version of the demo.
+                        (This has it's own copy of the demo sources 
+                        within the bundle.)
 
 
-   Apps/XRCed           An application for editing wxPython resource
+   XRCed                An application for editing wxPython resource
                         files  (XRC files.)
 
                         files  (XRC files.)
 
-   Apps/PyCrust         An application that provides an interactive
+   PyCrust              An application that provides an interactive
                         Python shell and also namespace inspectors.
 
 
                         Python shell and also namespace inspectors.
 
 
@@ -399,29 +521,29 @@ EOF
 
 
     # wxDocs
 
 
     # wxDocs
-    if [ ! -e $TARBALLDIR/wxPythonDocs-$VERSION.tar.gz ]; then
-       cat > "$DMGDIR/root/Docs/Build ERROR.txt" <<EOF
+    if [ ! -e $TARBALLDIR/wxPython-docs-$VERSION.tar.gz ]; then
+       cat > "$DMGAPPS/Docs/Build ERROR.txt" <<EOF
 
 
-The wxPythonDocs tarball was not found when building this disk image!
+The wxPython-docs tarball was not found when building this disk image!
 
 EOF
 
     else
        pushd $BUILDROOT
 
 EOF
 
     else
        pushd $BUILDROOT
-       tar xzvf $TARBALLDIR/wxPythonDocs-$VERSION.tar.gz
+       tar xzvf $TARBALLDIR/wxPython-docs-$VERSION.tar.gz
        popd
 
         # Make an app to launch viewdocs.py
        $PYTHONW $PROGDIR/../buildapp.py \
        popd
 
         # Make an app to launch viewdocs.py
        $PYTHONW $PROGDIR/../buildapp.py \
-           --builddir=$DMGDIR/root/Docs \
+           --builddir=$DMGAPPS/Docs \
            --name=wxDocsViewer \
            --mainprogram=$BUILDROOT/wxPython-$VERSION/docs/viewdocs.py \
            --iconfile=$PROGDIR/Info.icns \
            build
 
            --name=wxDocsViewer \
            --mainprogram=$BUILDROOT/wxPython-$VERSION/docs/viewdocs.py \
            --iconfile=$PROGDIR/Info.icns \
            build
 
-       cp $BUILDROOT/wxPython-$VERSION/docs/*.zip $DMGDIR/root/Docs/wxDocsViewer.app/Contents/Resources
+       cp $BUILDROOT/wxPython-$VERSION/docs/*.zip $DMGAPPS/Docs/wxDocsViewer.app/Contents/Resources
 
 
-       cat > "$DMGDIR/root/Docs/README 1st.txt" <<EOF
+       cat > "$DMGAPPS/Docs/README 1st.txt" <<EOF
 
 The wxDocsViewer application needs to be copied to your Desktop (or
 someplace else you have write access to) before you can run it, so it
 
 The wxDocsViewer application needs to be copied to your Desktop (or
 someplace else you have write access to) before you can run it, so it
@@ -432,7 +554,7 @@ EOF
     fi
 
     # license files, docs, etc.
     fi
 
     # license files, docs, etc.
-    pushd $DMGDIR/root/Docs
+    pushd $DMGAPPS/Docs
     cp -pR $SRCROOT/wxPython/licence   .
     cp -pR $SRCROOT/wxPython/docs      .
     rm -rf docs/bin
     cp -pR $SRCROOT/wxPython/licence   .
     cp -pR $SRCROOT/wxPython/docs      .
     rm -rf docs/bin
@@ -441,19 +563,19 @@ EOF
     popd
 
 
     popd
 
 
-    if [ ! -e $TARBALLDIR/wxPythonDemo-$VERSION.tar.gz ]; then
-       cat > "$DMGDIR/root/Samples/Build ERROR.txt" <<EOF
+    if [ ! -e $TARBALLDIR/wxPython-demo-$VERSION.tar.gz ]; then
+       cat > "$DMGAPPS/Samples/Build ERROR.txt" <<EOF
 
 
-The wxPythonDemo tarball was not found when building this disk image!
+The wxPython-demo tarball was not found when building this disk image!
 
 EOF
 
 EOF
-       cp "$DMGDIR/root/Samples/Build ERROR.txt" $DMGDIR/root/Apps
+       cp "$DMGAPPS/Samples/Build ERROR.txt" $DMGAPPS
 
     else
 
         # Copy the demo and samples to the disk image from the tarball
 
     else
 
         # Copy the demo and samples to the disk image from the tarball
-       pushd $DMGDIR/root/Samples
-       tar xzvf $TARBALLDIR/wxPythonDemo-$VERSION.tar.gz
+       pushd $DMGAPPS/Samples
+       tar xzvf $TARBALLDIR/wxPython-demo-$VERSION.tar.gz
        mv wxPython-$VERSION/* .
        rm -rf wxPython-$VERSION
        rm demo/b demo/.setup.sh
        mv wxPython-$VERSION/* .
        rm -rf wxPython-$VERSION
        rm demo/b demo/.setup.sh
@@ -462,34 +584,36 @@ EOF
 
         # Make an app bundle to run the demo
        $PYTHONW $PROGDIR/../buildapp.py \
 
         # Make an app bundle to run the demo
        $PYTHONW $PROGDIR/../buildapp.py \
-           --builddir=$DMGDIR/root/Apps \
+           --builddir=$DMGAPPS \
            --name="wxPython Demo" \
            --name="wxPython Demo" \
-           --mainprogram=$DMGDIR/root/Samples/demo/demo.pyw \
+           --mainprogram=$DMGAPPS/Samples/demo/demo.pyw \
            --iconfile=$PROGDIR/RunDemo.icns \
            build
            --iconfile=$PROGDIR/RunDemo.icns \
            build
-       cp -pR $DMGDIR/root/Samples/demo/* "$DMGDIR/root/Apps/wxPython Demo.app/Contents/Resources"
+       cp -pR $DMGAPPS/Samples/demo/* "$DMGAPPS/wxPython Demo.app/Contents/Resources"
     fi
 
 
     # Make an app bundle to launch PyCrust
     $PYTHONW $PROGDIR/../buildapp.py \
     fi
 
 
     # Make an app bundle to launch PyCrust
     $PYTHONW $PROGDIR/../buildapp.py \
-       --builddir=$DMGDIR/root/Apps \
+       --builddir=$DMGAPPS \
        --name=PyCrust \
        --mainprogram=$INSTALLROOT$BINPREFIX/pycrust.py \
        --iconfile=$PROGDIR/PieShell.icns \
        build
 
        --name=PyCrust \
        --mainprogram=$INSTALLROOT$BINPREFIX/pycrust.py \
        --iconfile=$PROGDIR/PieShell.icns \
        build
 
-#     # and PyAlaMode
-#     $PYTHONW $PROGDIR/../buildapp.py \
-#      --builddir=$DMGDIR/root \
-#      --name=PyAlaMode \
-#      --mainprogram=$INSTALLROOT$BINPREFIX/pyalamode.py \
-#      --iconfile=$PROGDIR/PieShell.icns \
-#      build
+## TODO: PyAlaMode needs tweaked to be able to run from a bundle.  It
+## needs to know to ignore command line parameters and etc...
+#      # and PyAlaMode
+#      $PYTHONW $PROGDIR/../buildapp.py \
+#      --builddir=$DMGAPPS \
+#      --name=PyAlaMode \
+#      --mainprogram=$INSTALLROOT$BINPREFIX/pyalamode.py \
+#      --iconfile=$PROGDIR/PieShell.icns \
+#      build
 
     # Make an app to launch XRCed
     $PYTHONW $PROGDIR/../buildapp.py \
 
     # Make an app to launch XRCed
     $PYTHONW $PROGDIR/../buildapp.py \
-       --builddir=$DMGDIR/root/Apps \
+       --builddir=$DMGAPPS \
        --name=XRCed \
        --mainprogram=$INSTALLROOT$BINPREFIX/xrced.py \
        --iconfile=$PROGDIR/XRCed.icns \
        --name=XRCed \
        --mainprogram=$INSTALLROOT$BINPREFIX/xrced.py \
        --iconfile=$PROGDIR/XRCed.icns \
@@ -497,11 +621,12 @@ EOF
 
 
 
 
 
 
-    # and then finally make a disk image containing the packages and etc.
-    $PROGDIR/../makedmg $DMGDIR/root $DMGDIR wxPythonOSX-$VERSION-$KIND-Py$PYVER
+    # and then finally make a disk image containing everything
+    dmgname=wxPython${SHORTVER}-osx-docs-demos-$VERSION-$TAG-py$PYVER
+    $PROGDIR/../makedmg $DMGAPPS $DMGDIR $dmgname
 
 
-    echo Moving $DMGDIR/wxPythonOSX-$VERSION-$KIND-Py$PYVER.dmg to $DESTDIR
-    mv $DMGDIR/wxPythonOSX-$VERSION-$KIND-Py$PYVER.dmg  $DESTDIR
+    echo Moving $DMGDIR/$dmgname.dmg to $DESTDIR
+    mv $DMGDIR/$dmgname.dmg  $DESTDIR
 fi
 
 
 fi