X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/85245f48ad351409d50cbecfab874827eb0f719b..6a52ea5cb81dcd07c286d34b80945534780fe05f:/wxPython/distrib/mac/wxPythonOSX/build diff --git a/wxPython/distrib/mac/wxPythonOSX/build b/wxPython/distrib/mac/wxPythonOSX/build index 53404d8e2b..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" @@ -41,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 @@ -83,11 +96,10 @@ 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 -SHORTVER=`echo $VERSION | cut -c 1,2,3` if [ $unicode == yes ]; then CHARTYPE=unicode @@ -100,6 +112,16 @@ else 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 # this is a spot on my fileserver where the tarballs go, adjust # as needed for where you put the wxPython tarball, or set @@ -137,7 +159,6 @@ TMPDIR=$PWD/_build_dmg BUILDROOT=$TMPDIR/build INSTALLROOT=$TMPDIR/install-root -INSTALLCOMMON=$TMPDIR/install-common INSTALLAPPS=$TMPDIR/install-apps DMGDIR=$TMPDIR/dmg @@ -154,7 +175,6 @@ SRCROOT=$BUILDROOT/wxPython-src-$VERSION mkdir -p $BUILDROOT mkdir -p $INSTALLROOT -mkdir -p $INSTALLCOMMON mkdir -p $INSTALLAPPS rm -rf $DMGDIR @@ -182,18 +202,26 @@ if [ $inplace = no ]; then 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 @@ -208,8 +236,8 @@ if [ $skipconfig != yes ]; then --enable-debug_flag \ --enable-precomp=no \ --enable-optimise \ - $UNICODEOPT - + --disable-debugreport \ + $UNICODEOPT $OTHER_CFG_OPTS fi @@ -218,19 +246,24 @@ if [ $skipbuild != yes ]; then # Make wxWidgets and some contribs - # For some reason Rez and DeRez have started locking up if run as root... - if [ "$UID" = "0" ]; then - chmod a+w lib - su robind -c "make lib/libwx_macd-2.5.3.r" - fi - - make - make -C contrib/src/gizmos - make -C contrib/src/ogl CXXFLAGS="-DwxUSE_DEPRECATED=0" - make -C contrib/src/stc +# # 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 \ @@ -245,10 +278,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 @@ -257,7 +290,7 @@ if [ $skipinstall != yes ]; then ln -s ../lib/wx/config/* wx-config # and wxPython - cd $WXDIR/wxPython + cd $WXROOT/wxPython $PYTHON setup.py \ UNICODE=$PYUNICODEOPT \ NO_SCRIPTS=1 \ @@ -268,10 +301,11 @@ if [ $skipinstall != yes ]; then --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 @@ -281,34 +315,29 @@ if [ $skipinstall != yes ]; then SITEPACKAGES=/Library/Python/$PYVER fi - # move the common files to $INSTALLCOMMON - mkdir -p $INSTALLCOMMON$SITEPACKAGES - mv $INSTALLROOT$SITEPACKAGES/wx.pth $INSTALLCOMMON$SITEPACKAGES - mv $INSTALLROOT$SITEPACKAGES/wxversion.py $INSTALLCOMMON$SITEPACKAGES - - # install wxPython's tool scripts in COMMON too - mkdir -p $INSTALLCOMMON$BINPREFIX - cd $WXDIR/wxPython/scripts - python$PYVER CreateMacScripts.py $INSTALLCOMMON $BINPREFIX + # install wxPython's tool scripts + mkdir -p $INSTALLROOT$BINPREFIX + cd $WXROOT/wxPython/scripts + python$PYVER CreateMacScripts.py $INSTALLROOT $BINPREFIX # Remove the .pyc/.pyo files they just take up space and can be recreated # during the install. - pushd $WXDIR/wxPython + pushd $WXROOT/wxPython $PYTHON $PROGDIR/../zappycfiles.py $INSTALLROOT > /dev/null popd - # Set premissions for files in $INSTALLROOT and $INSTALLCOMMON + # Set premissions for files in $INSTALLROOT if [ "$UID" = "0" ]; then - chown -R root:admin $INSTALLROOT $INSTALLCOMMON - chmod -R g+w $INSTALLROOT $INSTALLCOMMON + chown -R root:admin $INSTALLROOT + chmod -R g+w $INSTALLROOT fi fi -if [ "$KIND" = "panther" ]; then +if [ $APPLE_PYTHON == yes ]; then SITEPACKAGES=/Library/Python/$PYVER fi -PKGDIR=`cat $INSTALLCOMMON$SITEPACKAGES/wx.pth` +PKGDIR=`cat $INSTALLROOT$SITEPACKAGES/wx.pth` popd @@ -334,10 +363,11 @@ This Installer package will install the wxPython $CHARTYPE runtime $VERSION for * 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, 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. You also need to install one instance of the wxPython-common package, which will determine which of the installed runtimes will be the default. +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 @@ -371,9 +401,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" \ @@ -382,42 +416,13 @@ EOF $INSTALLROOT \ $RESOURCEDIR - mv wxPython${SHORTVER}-osx-$CHARTYPE-$KIND.pkg $DMGROOT + mv $PKGNAME.pkg $DMGROOT rm $RESOURCEDIR/postflight rm $RESOURCEDIR/preflight rm $RESOURCEDIR/Welcome.txt - #----------------------------------------------- - # The common files package - - # Make the welcome message - cat > $RESOURCEDIR/Welcome.txt < "$DMGROOT/README 1st.txt" <