X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/81de4ba3adca9f6f669ed17827894318d8a9ae65..ee45c548e61fa0ce1f8adbcf29d7678769f2c0ed:/wxPython/distrib/mac/wxPythonOSX/build diff --git a/wxPython/distrib/mac/wxPythonOSX/build b/wxPython/distrib/mac/wxPythonOSX/build index e46fbeafde..62b695ffa3 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,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 " 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" @@ -40,19 +45,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 @@ -61,6 +75,7 @@ skipinstall=no skipdmg=no skipclean=no inplace=no +unicode=no 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 ;; + unicode) unicode=yes ;; *) echo "Unknown flag \"${flag}\"" usage @@ -80,11 +96,30 @@ 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 +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 @@ -93,28 +128,28 @@ if [ -z "$TARBALLDIR" ]; then # 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 " $TARBALLDIR/wxPythonDemo-$VERSION.tar.gz" + echo " $TARBALLDIR/wxPython-demo-$VERSION.tar.gz" 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 " $TARBALLDIR/wxPythonDocs-$VERSION.tar.gz" + echo " $TARBALLDIR/wxPython-docs-$VERSION.tar.gz" echo "-------------------------------------------------------" fi -PREFIX=/usr/local/lib/wxPython-$VERSION +PREFIX=/usr/local/lib/wxPython-$CHARTYPE-$VERSION BINPREFIX=/usr/local/bin WXROOT=`dirname $PWD` @@ -122,12 +157,17 @@ PROGDIR="`dirname \"$0\"`" 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 +DMGROOT=$DMGDIR/root +DMGAPPS=$DMGDIR/apps + 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 $INSTALLDEVEL +mkdir -p $INSTALLAPPS + 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 @@ -155,43 +196,48 @@ fi 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 - # 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 - WXBLD=$BUILDROOT fi -echo "Using source tree: $WXDIR" +echo "Using wx root dir: $WXROOT" 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 \ - --disable-monolithic \ + --enable-monolithic \ --with-opengl \ --enable-sound \ --enable-display \ --enable-geometry \ + --enable-debug_flag \ --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 @@ -199,26 +245,32 @@ fi 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 - cd $WXDIR/wxPython + cd $WXROOT/wxPython $PYTHON setup.py \ + UNICODE=$PYUNICODEOPT \ NO_SCRIPTS=1 \ + EP_ADD_OPTS=1 \ 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 #---------------------------------------------------------------------- @@ -226,27 +278,34 @@ 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 -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 - cd $WXDIR/wxPython + cd $WXROOT/wxPython $PYTHON setup.py \ + UNICODE=$PYUNICODEOPT \ NO_SCRIPTS=1 \ + EP_ADD_OPTS=1 \ 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. - if [ "$KIND" = "panther" ]; then + if [ $APPLE_PYTHON == yes ]; then 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 - # install wxPython's tool scripts mkdir -p $INSTALLROOT$BINPREFIX - cd $WXDIR/wxPython/scripts + cd $WXROOT/wxPython/scripts 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 @@ -274,6 +334,11 @@ if [ $skipinstall != yes ]; then fi fi +if [ $APPLE_PYTHON == yes ]; then + SITEPACKAGES=/Library/Python/$PYVER +fi +PKGDIR=`cat $INSTALLROOT$SITEPACKAGES/wx.pth` + popd #---------------------------------------------------------------------- @@ -281,22 +346,28 @@ popd # 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 + + cat > $RESOURCEDIR/Welcome.txt < $RESOURCEDIR/postflight < "$DMGDIR/root/README 1st.txt" < "$DMGROOT/README 1st.txt" < "$DMGAPPS/README 1st.txt" < "$DMGDIR/root/Docs/Build ERROR.txt" < "$DMGAPPS/Docs/Build ERROR.txt" < "$DMGDIR/root/Docs/README 1st.txt" < "$DMGAPPS/Docs/README 1st.txt" < "$DMGDIR/root/Samples/Build ERROR.txt" < "$DMGAPPS/Samples/Build ERROR.txt" <