]> git.saurik.com Git - wxWidgets.git/blobdiff - wxPython/distrib/mac/wxPythonOSX/build
Some more explainations in places, typos fixed, a little reorg, etc.
[wxWidgets.git] / wxPython / distrib / mac / wxPythonOSX / build
index 99d4a30e96e672c8a5c97961485a9975e0e9d276..58456b12e3b0cb17d3b51098274807a2b2569a13 100755 (executable)
@@ -15,17 +15,16 @@ fi
 
 function usage {
     echo ""
-    echo "Usage: $0  [apple|local]  [command flags...]"
+    echo "Usage: $0  [panther|jaguar]  [command flags...]"
     echo ""
-    echo "   apple          Build for Apple's python in /usr/bin"
-    echo "   local          Build for a locally installed python in /usr/local/bin"
-    echo "                  (for example Jaguar's MacPython)"
+    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 "optional command flags:"
     echo "   skiptar        Don't unpack the tarball"
     echo "   use_cvs        Use the CVS workspace instead of a tarfile"
     echo "   skipconfig     Don't run configure"
-    echo "   skipbuild      Don't build wxWindows or wxPython"
+    echo "   skipbuild      Don't build wxWidgets or wxPython"
     echo "   skipinstall    Don't do the installation step"
     echo "   skipdmg        Don't make the package or diskimage"
     echo "   skipclean      Don't do the cleanup at the end"
@@ -40,9 +39,9 @@ fi
 
 KIND=$1
 case $KIND in
-    apple)    PYTHON=/usr/bin/python ;;
-    local)    PYTHON=/usr/local/bin/python ;;
-    *)        usage; exit 1 ;;
+    panther)    PYTHON=/usr/bin/python ;;
+    jaguar)     PYTHON=/usr/local/bin/python ;;
+    *)          usage; exit 1 ;;
 esac
 PYTHONW=${PYTHON}w
 shift
@@ -68,10 +67,11 @@ done
 VERSION=`$PYTHON -c "import setup;print setup.VERSION"`
 PYVER=`$PYTHON -c "import sys; print sys.version[:3]"`
 PYPREFIX=`$PYTHON -c "import sys; print sys.exec_prefix"`
-SITEPACKAGES=$PYPREFIX/lib/python$PYVER/site-packages
+PYLIB=$PYPREFIX/lib/python$PYVER
+SITEPACKAGES=$PYLIB/site-packages
 
-SRCDIR=/stuff/Development/wxPython/dist/$VERSION
-TARBALL=$SRCDIR/wxPythonSrc-$VERSION.tar.gz
+TARBALLDIR=/stuff/Development/wxPython/dist/$VERSION
+TARBALL=$TARBALLDIR/wxPythonSrc-$VERSION.tar.gz
 
 PREFIX=/usr/lib/wxPython-$VERSION
 BINPREFIX=/usr/bin
@@ -86,7 +86,7 @@ INSTALLDEVEL=$TMPDIR/install-devel
 DMGDIR=$TMPDIR/dmg
 RESOURCEDIR=$PROGDIR/resources
 DESTDIR=$PWD/dist
-
+SRCROOT=$BUILDROOT/wxPythonSrc-$VERSION
 
 
 #----------------------------------------------------------------------
@@ -96,7 +96,10 @@ mkdir -p $BUILDROOT
 mkdir -p $INSTALLROOT
 #mkdir -p $INSTALLDEVEL
 rm -rf $DMGDIR
-mkdir -p $DMGDIR/root
+mkdir -p $DMGDIR/root/Apps
+mkdir -p $DMGDIR/root/Docs
+mkdir -p $DMGDIR/root/Samples
+
 
 pushd $BUILDROOT
 
@@ -148,30 +151,31 @@ cd $WXDIR/bld
 #----------------------------------------------------------------------
 
 
-# Configure wxWindows
+# Configure wxWidgets
 if [ -z "$skipconfig" ]; then
     ../configure \
        --prefix=$PREFIX \
        --with-mac \
        --disable-monolithic \
        --with-opengl \
+       --enable-sound \
+       --enable-display \
        --enable-geometry \
-       --enable-optimise \
        --enable-precomp=no \
-       \
-       --with-libjpeg=builtin \
-       --with-libpng=builtin \
-       --with-libtiff=builtin \
-       --with-zlib=builtin \
-       \
        --enable-debug_flag
 
+##     --enable-optimise \
+##     --with-libjpeg=builtin \
+##     --with-libpng=builtin \
+##     --with-libtiff=builtin \
+##     --with-zlib=builtin \
+
 fi
 
-# Build wxWindows and wxPython
+# Build wxWidgets and wxPython
 if [ -z "$skipbuild" ]; then
 
-    # Make wxWindows and some contribs
+    # Make wxWidgets and some contribs
     make 
     make -C contrib/src/gizmos 
     make -C contrib/src/ogl CXXFLAGS="-DwxUSE_DEPRECATED=0"
@@ -201,9 +205,9 @@ if [ -z "$skipbuild" ]; then
 fi
 
 #----------------------------------------------------------------------
-# Install wxWindows
 
 if [ -z "$skipinstall" ]; then
+    # Install wxWidgets
     cd $WXDIR/bld
     make prefix=$INSTALLROOT$PREFIX install
     make -C contrib/src/gizmos prefix=$INSTALLROOT$PREFIX install
@@ -221,23 +225,35 @@ if [ -z "$skipinstall" ]; then
        --root=$INSTALLROOT
 
 
+    # Apple's Python (on Panther) sym-links the site-packages dir 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
+       mkdir -p $INSTALLROOT/Library/Python/$PYVER
+       mv $INSTALLROOT/$SITEPACKAGES/* $INSTALLROOT/Library/Python/$PYVER
+       rm -r $INSTALLROOT/System
+       SITEPACKAGES=/Library/Python/$PYVER
+    fi
+
+
     # install wxPython's tool scripts
     mkdir -p $INSTALLROOT$BINPREFIX
     cd $WXDIR/wxPython/scripts
     python$PYVER CreateMacScripts.py $INSTALLROOT $BINPREFIX
 
+
     # Install wxrc
     cp $WXDIR/bld/contrib/utils/wxrc/wxrc $INSTALLROOT$BINPREFIX
 
 
-    # install the wxPython headers
-    cd $WXDIR/wxPython
-    cp -R include $INSTALLROOT$PREFIX
-    mkdir -p      $INSTALLROOT$PREFIX/include/wx/wxPython/i_files
-    cp src/*.i    $INSTALLROOT$PREFIX/include/wx/wxPython/i_files
+    # install the wxPython headers
+    cd $WXDIR/wxPython
+    cp -R include $INSTALLROOT$PREFIX
+    mkdir -p      $INSTALLROOT$PREFIX/include/wx/wxPython/i_files
+    cp src/*.i    $INSTALLROOT$PREFIX/include/wx/wxPython/i_files
 
 
-    # TODO for $INSTALLROOT and $INSTALLDEVEL ?
+    # Set premissions for files in $INSTALLROOT 
     chown -R root:admin $INSTALLROOT
     chmod -R g+w        $INSTALLROOT
 fi
@@ -256,14 +272,16 @@ if [ -z "$skipdmg" ]; then
 
     # Make the welcome message
     case $KIND in
-       apple)  W_MSG="an Apple installed (Panther) version of" ;;
-       local)  W_MSG="a locally built version (or Jaguar version) of" ;;
+       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!
 
 This program will install wxPython $VERSION for $W_MSG MacPython-OSX $PYVER.
 
+You must install onto your current boot disk, even though the installer does not enforce this, otherwise things will not work.
+
 Build date:   `date`
 EOF
 
@@ -281,13 +299,13 @@ EOF
     cat > $RESOURCEDIR/postflight <<EOF
 #!/bin/sh -e
 # Compile the .py files in the wxPython pacakge
-$PYTHON \$2$SITEPACKAGES/../compileall.py \$2$SITEPACKAGES/wxPython
-$PYTHON \$2$SITEPACKAGES/../compileall.py \$2$SITEPACKAGES/wx
-$PYTHON -O \$2$SITEPACKAGES/../compileall.py \$2$SITEPACKAGES/wxPython
-$PYTHON -O \$2$SITEPACKAGES/../compileall.py \$2$SITEPACKAGES/wx
+$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
 
 
-# and 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
@@ -299,7 +317,7 @@ EOF
 
 
 
-    # Finally, build the main Installer Package...
+    # Build the main Installer Package...
     rm -rf wxPythonOSX-$KIND.pkg
     python $PROGDIR/../buildpkg.py \
        --Title=wxPythonOSX-$KIND \
@@ -314,25 +332,12 @@ EOF
     mv wxPythonOSX-$KIND.pkg $DMGDIR/root
 
 
-#     # and the devel package
-#     rm -rf wxPythonOSX-devel.pkg
-#     python $PROGDIR/../buildpkg.py \
-#      --Title=wxPythonOSX-devel \
-#      --Version=$VERSION \
-#      --Description="Headers and such that allow you to link with the same wxMac that wxPython does" \
-#      --NeedsAuthorization="YES" \
-#      --Relocatable="NO" \
-#      --InstallOnly="YES" \
-#      $INSTALLDEVEL
-
-#     mv wxPythonOSX-devel.pkg $DMGDIR/root
-
 
     # Make a README.txt to go on the disk image
-    cat > $DMGDIR/root/README.txt <<EOF
+    cat > "$DMGDIR/root/README 1st.txt" <<EOF
 Welcome to wxPython!
 
-On this disk image you will find the installer for the wxPython $VERSION for $W_MSG MacPython-OSX $PYVER.  You must already have MacPython-OSX installed.  
+On this disk image you will find the installer for wxPython $VERSION for $W_MSG MacPython-OSX $PYVER.  MacPython-OSX is not included.  
 
    wxPython-$KIND.pkg   The installer package.  It contains the wxPython 
                         extension modules, wxMac dynamic libraries and
@@ -340,45 +345,105 @@ On this disk image you will find the installer for the wxPython $VERSION for $W_
                         tools.  
 
 Everything else here is optional and you can drag them out of the disk 
-image and drop them where ever you want.
+image and drop them whereever you want.  You do need to install the above
+package before you can use any of the items below.
+
+
+   Apps/wxPython Demo   An application bundle version of the demo.
+                        (This has it's own copy of the sources within
+                        the bundle.)
+
+   Apps/XRCed           An application for editing wxPython resource
+                        files  (XRC files.)
+
+   Apps/PyCrust         An application that provides an interactive 
+                        Python shell and also namespace inspectors.
+
 
-   docs/                A few readmes, change log, etc.  The full 
-                        documentation is downloadable separately. 
 
-   licence/             License docs.
+   Docs/wxDocsViewer    An application that allows you to view the 
+                        wxWidgets documentation.
 
-   demo/                A copy of the wxPython demo.
+   Docs/licence         License files.
 
-   samples/             Several small sample applications that 
+   Docs/other           A few readmes, change log, etc.  The full 
+                        documentation is downloadable separately. 
+
+
+   Samples/samples      Several small sample applications that 
                         demonstrate how to use wxPython.
 
+   Samples/demo         A copy of the wxPython demo source code, 
+                        just open the folder and run demo.pyw.
+
 Happy Hacking!
 EOF
 
+#   PyAlaMode            An extension of PyCrust that includes source 
+#                        file editing capabilities.
 
-    # license files, docs, etc.
-    cp -pR $WXDIR/wxPython/licence $DMGDIR/root
-    rm -rf $WXDIR/wxPython/docs/xml-raw
-    cp -pR $WXDIR/wxPython/docs $DMGDIR/root
-    rm -rf $DMGDIR/root/docs/bin
 
-    # Copy the demo and samples to the disk image
-    cp -pR $WXDIR/wxPython/demo $DMGDIR/root
-    cp -pR $WXDIR/wxPython/samples $DMGDIR/root
-    rm $DMGDIR/root/demo/b
+    # wxDocs
+    pushd $BUILDROOT
+    tar xzvf $TARBALLDIR/wxPythonDocs-$VERSION.tar.gz
+    popd
+
+    # Make an app to launch viewdocs.py
+    $PYTHONW $PROGDIR/../buildapp.py \
+       --builddir=$DMGDIR/root/Docs \
+       --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
 
+    cat > "$DMGDIR/root/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
+can cache some indexes within its bundle.
+
+EOF
+
+    # license files, docs, etc.
+    pushd $DMGDIR/root/Docs
+    cp -pR $SRCROOT/wxPython/licence   .
+    cp -pR $SRCROOT/wxPython/docs      .
+    rm -rf docs/bin
+    rm -rf docs/xml-raw
+    mv docs other
+    popd
+    
+    # Copy the demo and samples to the disk image from the tarball
+    pushd $DMGDIR/root/Samples
+    tar xzvf $TARBALLDIR/wxPythonDemo-$VERSION.tar.gz
+    mv wxPython-$VERSION/* .
+    rm -rf wxPython-$VERSION
+    rm demo/b demo/.setup.sh
+    mv demo/demo.py demo/demo.pyw
+    popd
     
+
     # Make an app bundle to launch PyCrust
     $PYTHONW $PROGDIR/../buildapp.py \
-       --builddir=$DMGDIR/root \
+       --builddir=$DMGDIR/root/Apps \
        --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
+
     # Make an app to launch XRCed
     $PYTHONW $PROGDIR/../buildapp.py \
-       --builddir=$DMGDIR/root \
+       --builddir=$DMGDIR/root/Apps \
        --name=XRCed \
        --mainprogram=$INSTALLROOT$BINPREFIX/xrced.py \
        --iconfile=$PROGDIR/XRCed.icns \
@@ -386,12 +451,12 @@ EOF
 
     # Make an app bundle to run the demo
     $PYTHONW $PROGDIR/../buildapp.py \
-       --builddir=$DMGDIR/root \
+       --builddir=$DMGDIR/root/Apps \
        --name="wxPython Demo" \
-       --mainprogram=$DMGDIR/root/demo/demo.py \
+       --mainprogram=$DMGDIR/root/Samples/demo/demo.pyw \
        --iconfile=$PROGDIR/RunDemo.icns \
        build
-    cp -pR $DMGDIR/root/demo/* "$DMGDIR/root/wxPython Demo.app/Contents/Resources"
+    cp -pR $DMGDIR/root/Samples/demo/* "$DMGDIR/root/Apps/wxPython Demo.app/Contents/Resources"
     
 
     # and then finally make a disk image containing the packages and etc.