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"
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
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
DMGDIR=$TMPDIR/dmg
RESOURCEDIR=$PROGDIR/resources
DESTDIR=$PWD/dist
-
+SRCROOT=$BUILDROOT/wxPythonSrc-$VERSION
#----------------------------------------------------------------------
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
#----------------------------------------------------------------------
-# 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"
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
--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
# 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
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
- # Finally, build the main Installer Package...
+ # Build the main Installer Package...
rm -rf wxPythonOSX-$KIND.pkg
python $PROGDIR/../buildpkg.py \
--Title=wxPythonOSX-$KIND \
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
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 \
# 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.