X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/1e4a197e4c60e461b8068b0619692ea083e30b8b..289128a4fb1383e46d3478d605bd574a89aeb548:/wxPython/distrib/mac/wxPythonOSX/build?ds=sidebyside diff --git a/wxPython/distrib/mac/wxPythonOSX/build b/wxPython/distrib/mac/wxPythonOSX/build index 6fca6f4226..99d4a30e96 100755 --- a/wxPython/distrib/mac/wxPythonOSX/build +++ b/wxPython/distrib/mac/wxPythonOSX/build @@ -15,11 +15,13 @@ fi function usage { echo "" - echo "Usage: $0 wx_version py_version [command flags...]" - echo " wx_version String to use for version in filenames, etc." - echo " py_version String to append to python (which python version to use.)" + echo "Usage: $0 [apple|local] [command flags...]" echo "" - echo "command flags:" + 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 "" + 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" @@ -27,17 +29,23 @@ function usage { 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" + echo "" } -if [ $# -lt 2 ]; then +if [ $# -lt 1 ]; then usage exit 1 fi -VERSION=$1 -PYVER=$2 -shift;shift +KIND=$1 +case $KIND in + apple) PYTHON=/usr/bin/python ;; + local) PYTHON=/usr/local/bin/python ;; + *) usage; exit 1 ;; +esac +PYTHONW=${PYTHON}w +shift for flag in $*; do @@ -57,13 +65,18 @@ for flag in $*; do done -SRCDIR=/Volumes/Gate.Stuff/Development/wxPython/dist/$VERSION +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 + +SRCDIR=/stuff/Development/wxPython/dist/$VERSION TARBALL=$SRCDIR/wxPythonSrc-$VERSION.tar.gz -SITEPACKAGES=/Library/Frameworks/Python.framework/Versions/$PYVER/lib/python$PYVER/site-packages -# TODO: Should I change the prefix to /usr? -PREFIX=/usr/local +PREFIX=/usr/lib/wxPython-$VERSION +BINPREFIX=/usr/bin +WXROOT=`dirname $PWD` PROGDIR="`dirname \"$0\"`" TMPDIR=$PWD/_build_dmg @@ -81,7 +94,7 @@ DESTDIR=$PWD/dist mkdir -p $BUILDROOT mkdir -p $INSTALLROOT -mkdir -p $INSTALLDEVEL +#mkdir -p $INSTALLDEVEL rm -rf $DMGDIR mkdir -p $DMGDIR/root @@ -92,7 +105,8 @@ pushd $BUILDROOT # Unpack the tarball if [ -z "$skiptar" ]; then - tar xzvf $TARBALL + echo Unarchiving tarball... + tar xzf $TARBALL fi if [ "$use_cvs" = 1 ]; then @@ -104,19 +118,21 @@ if [ "$use_cvs" = 1 ]; then if [ -e .last_copy ]; then FEXPR="-cnewer .last_copy" fi - find /projects/wx $FEXPR -print \ - | grep -v wx/build \ + MEASURE=$WXROOT// + find $WXROOT $FEXPR -print \ + | grep -v $WXROOT/bld \ | grep -v wxPython/build \ | grep -v wxPython/_build \ | grep -v CVS \ - | cut -b 14- > filelist + | grep -v .pyc \ + | cut -b ${#MEASURE}- > filelist for x in `cat filelist`; do - if [ -d "/projects/wx/$x" ]; then + if [ -d "$WXROOT/$x" ]; then mkdir -p "wxPythonSrc-$VERSION/$x" else echo $x - cp -p "/projects/wx/$x" "wxPythonSrc-$VERSION/$x" + cp -p "$WXROOT/$x" "wxPythonSrc-$VERSION/$x" fi done @@ -126,58 +142,60 @@ fi cd wxPythonSrc-$VERSION WXDIR=`pwd` -mkdir -p $WXDIR/build -cd $WXDIR/build +mkdir -p $WXDIR/bld +cd $WXDIR/bld #---------------------------------------------------------------------- # Configure wxWindows if [ -z "$skipconfig" ]; then - ../configure --with-mac --prefix=$PREFIX \ + ../configure \ + --prefix=$PREFIX \ + --with-mac \ + --disable-monolithic \ --with-opengl \ - --enable-precomp=no \ --enable-geometry \ --enable-optimise \ - --enable-debug_flag \ + --enable-precomp=no \ + \ --with-libjpeg=builtin \ --with-libpng=builtin \ --with-libtiff=builtin \ - --with-zlib=builtin + --with-zlib=builtin \ + \ + --enable-debug_flag fi # Build wxWindows and wxPython if [ -z "$skipbuild" ]; then - make + # Make wxWindows 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 + + if [ ! -e $WXDIR/include/wx/gizmos ]; then + # Make some links so the wxPython build can find all the headers it needs + pushd $WXDIR/include/wx + ln -s ../../contrib/include/wx/* . + popd + fi + + # Build wxPython cd $WXDIR/wxPython - python$PYVER setup.py \ - IN_CVS_TREE=1 \ - WX_CONFIG="$WXDIR/build/wx-config --prefix=$WXDIR --exec-prefix=$WXDIR/build" \ + $PYTHON setup.py \ + NO_SCRIPTS=1 \ + WX_CONFIG="$WXDIR/bld/wx-config --prefix=$WXDIR --exec-prefix=$WXDIR/bld" \ build - # Build wxrc (XRC resource tool) but don't use the makefiles since they expect - # a shared version of the xrc lib to have been built... - cd $WXDIR/contrib/utils/wxrc - WX_CONFIG="$WXDIR/build/wx-config --prefix=$WXDIR --exec-prefix=$WXDIR/build" - wCC=`$WX_CONFIG --cc` - wCXX=`$WX_CONFIG --cxx` - - for f in wxrc.cpp ../../src/xrc/*.cpp; do - echo $f - $wCXX `$WX_CONFIG --cxxflags` -I ../../include -I ../../src/xrc/expat/xmlparse -I ../../src/xrc/expat/xmltok -c $f - done - for f in ../../src/xrc/expat/xmlparse/xmlparse.c ../../src/xrc/expat/xmltok/xmlrole.c ../../src/xrc/expat/xmltok/xmltok.c; do - echo $f - $wCC `$WX_CONFIG --cxxflags` -I ../../include -I ../../src/xrc/expat/xmlparse -I ../../src/xrc/expat/xmltok -c $f - done - - # the handlers are not needed - rm xh_*.o xmlrsall.o - - $wCXX `$WX_CONFIG --libs` *.o -o wxrc + # Build wxrc (XRC resource tool) + cd $WXDIR/bld/contrib/utils/wxrc + make strip wxrc fi @@ -186,34 +204,42 @@ fi # Install wxWindows if [ -z "$skipinstall" ]; then - cd $WXDIR/build - make prefix=$INSTALLROOT/$PREFIX install + cd $WXDIR/bld + 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 # and wxPython cd $WXDIR/wxPython - python$PYVER setup.py \ - IN_CVS_TREE=1 \ - WX_CONFIG="$WXDIR/build/wx-config --prefix=$WXDIR --exec-prefix=$WXDIR/build" \ + $PYTHON setup.py \ + NO_SCRIPTS=1 \ + WX_CONFIG="$INSTALLROOT/$PREFIX/bin/wx-config --prefix=$INSTALLROOT/$PREFIX" \ install \ --root=$INSTALLROOT + # install wxPython's tool scripts + mkdir -p $INSTALLROOT$BINPREFIX cd $WXDIR/wxPython/scripts - python$PYVER CreateMacScripts.py $INSTALLROOT $PREFIX/bin + python$PYVER CreateMacScripts.py $INSTALLROOT $BINPREFIX # Install wxrc - cp $WXDIR/contrib/utils/wxrc/wxrc $INSTALLROOT$PREFIX/bin + 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 - # Move wxWindows devel files and save for a separate installer package - mkdir -p $INSTALLDEVEL$PREFIX - mkdir -p $INSTALLDEVEL$PREFIX/bin - mkdir -p $INSTALLDEVEL$PREFIX/lib - mv -f $INSTALLROOT$PREFIX/include $INSTALLDEVEL$PREFIX - mv -f $INSTALLROOT$PREFIX/lib/wx $INSTALLDEVEL$PREFIX/lib - mv -f $INSTALLROOT$PREFIX/bin/wx* $INSTALLDEVEL$PREFIX/bin + # TODO for $INSTALLROOT and $INSTALLDEVEL ? + chown -R root:admin $INSTALLROOT + chmod -R g+w $INSTALLROOT fi popd @@ -225,63 +251,18 @@ if [ -z "$skipdmg" ]; then # Remove the .pyc/.pyo files they just take up space and can be recreated # during the install. - python $PROGDIR/../zappycfiles.py $INSTALLROOT/Library/Frameworks/Python.framework - - # Copy the demo, samples, and such to the Applications dir - APPDIR=$INSTALLROOT/Applications/wxPythonOSX-$VERSION - mkdir -p $APPDIR - cp -pR $WXDIR/wxPython/demo $APPDIR - cp -pR $WXDIR/wxPython/samples $APPDIR - - # Move sample launchers to .pyw files. - # TODO: A better, more automated way to do this!!! - pushd $APPDIR/samples - for x in StyleEditor/STCStyleEditor \ - doodle/superdoodle \ - frogedit/FrogEdit \ - pySketch/pySketch \ - wxProject/wxProject; do - mv $x.py $x.pyw - done - popd - - # Make an app to launch the demo - cat > $APPDIR/demo/RunDemo.pyw < $RESOURCEDIR/Welcome.txt < $RESOURCEDIR/postflight < $DMGDIR/root/README.txt <