From 81de4ba3adca9f6f669ed17827894318d8a9ae65 Mon Sep 17 00:00:00 2001 From: Robin Dunn Date: Fri, 11 Jun 2004 22:50:25 +0000 Subject: [PATCH] Add "inplace" build option that allows the distribution to be built from witin the current source tree instead of rewuiring the wxPythonSrc tarball. (Currently it still needs the Docs and Demo tarballs to make a full build, but it can skip those parts if the tarballs are not available.) git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@27758 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- wxPython/distrib/mac/wxPythonOSX/build | 228 ++++++++++++++++--------- 1 file changed, 146 insertions(+), 82 deletions(-) diff --git a/wxPython/distrib/mac/wxPythonOSX/build b/wxPython/distrib/mac/wxPythonOSX/build index 7af4412db9..e46fbeafde 100755 --- a/wxPython/distrib/mac/wxPythonOSX/build +++ b/wxPython/distrib/mac/wxPythonOSX/build @@ -10,7 +10,7 @@ if [ ! -d wxPython -o ! -e ${spectemplate} ]; then exit 1 fi -if [ ! "$UID" = "0" ]; then +if [ "$UID" != "0" ]; then echo "-------------------------------------------------------" echo " WARNING: will be unable to change ownership of files" echo " unless this script is run as root or via sudo" @@ -29,6 +29,8 @@ function usage { echo "" echo "optional command flags:" 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 " skipconfig Don't run configure" echo " skipbuild Don't build wxWidgets or wxPython" echo " skipinstall Don't do the installation step" @@ -52,15 +54,23 @@ esac PYTHONW=${PYTHON}w shift +skiptar=no +skipconfig=no +skipbuild=no +skipinstall=no +skipdmg=no +skipclean=no +inplace=no for flag in $*; do case ${flag} in - skiptar) skiptar=1 ;; - skipconfig) skipconfig=1; skiptar=1 ;; - skipbuild) skipbuild=1; skipconfig=1; skiptar=1 ;; - skipinstall) skipinstall=1 ;; - skipdmg) skipdmg=1 ;; - skipclean) skipclean=1 ;; + skiptar) skiptar=yes ;; + skipconfig) skipconfig=yes; skiptar=yes ;; + skipbuild) skipbuild=yes; skipconfig=yes; skiptar=yes ;; + skipinstall) skipinstall=yes ;; + skipdmg) skipdmg=yes ;; + skipclean) skipclean=yes ;; + inplace) inplace=yes; skiptar=yes ;; *) echo "Unknown flag \"${flag}\"" usage @@ -75,15 +85,35 @@ PYPREFIX=`$PYTHON -c "import sys; print sys.exec_prefix"` PYLIB=$PYPREFIX/lib/python$PYVER SITEPACKAGES=$PYLIB/site-packages + + 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... + # this is a spot on my fileserver where the tarballs go, adjust + # as needed for where you put the wxPython tarball, or set + # TARBALLDIR before invoking this script... TARBALLDIR=/stuff/Development/wxPython/dist/$VERSION fi - TARBALL=$TARBALLDIR/wxPythonSrc-$VERSION.tar.gz +if [ ! -e $TARBALLDIR/wxPythonDemo-$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 "-------------------------------------------------------" +fi + +if [ ! -e $TARBALLDIR/wxPythonDocs-$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 "-------------------------------------------------------" +fi + + + + PREFIX=/usr/local/lib/wxPython-$VERSION BINPREFIX=/usr/local/bin @@ -118,22 +148,35 @@ pushd $BUILDROOT #---------------------------------------------------------------------- # Unpack the tarball -if [ -z "$skiptar" ]; then +if [ $skiptar != yes ]; then echo Unarchiving tarball... tar xzf $TARBALL fi -cd wxPythonSrc-$VERSION -WXDIR=`pwd` -mkdir -p $WXDIR/bld -cd $WXDIR/bld +if [ $inplace = no ]; then + # make a build dir and cd to it. + cd wxPythonSrc-$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 + SRCROOT=$WXROOT + WXBLD=$BUILDROOT +fi + +echo "Using source tree: $WXDIR" +echo "Using build dir: $WXBLD" #---------------------------------------------------------------------- # Configure wxWidgets -if [ -z "$skipconfig" ]; then - ../configure \ +if [ $skipconfig != yes ]; then + $WXDIR/configure \ --prefix=$PREFIX \ --with-mac \ --disable-monolithic \ @@ -153,42 +196,36 @@ if [ -z "$skipconfig" ]; then fi # Build wxWidgets and wxPython -if [ -z "$skipbuild" ]; then +if [ $skipbuild != yes ]; then # Make wxWidgets and some contribs - make - make -C contrib/src/gizmos + 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 setup.py \ NO_SCRIPTS=1 \ - WX_CONFIG="$WXDIR/bld/wx-config --inplace" \ + WX_CONFIG="$WXBLD/wx-config --inplace" \ + BUILD_BASE=$WXBLD/wxPython \ build - # Build wxrc (XRC resource tool) - cd $WXDIR/bld/contrib/utils/wxrc - make + # Build wxrc (XRC resource tool) + cd $WXBLD/contrib/utils/wxrc + make strip wxrc fi #---------------------------------------------------------------------- -if [ -z "$skipinstall" ]; then +if [ $skipinstall != yes ]; then # Install wxWidgets - cd $WXDIR/bld + 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 @@ -201,6 +238,7 @@ if [ -z "$skipinstall" ]; then $PYTHON setup.py \ NO_SCRIPTS=1 \ WX_CONFIG="$INSTALLROOT/$PREFIX/bin/wx-config --prefix=$INSTALLROOT/$PREFIX" \ + BUILD_BASE=$WXBLD/wxPython \ install \ --root=$INSTALLROOT @@ -209,6 +247,9 @@ if [ -z "$skipinstall" ]; then # /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 [ -e $INSTALLROOT/Library/Python/$PYVER ]; then + rm -r $INSTALLROOT/Library/Python/$PYVER + fi mkdir -p $INSTALLROOT/Library/Python/$PYVER mv $INSTALLROOT/$SITEPACKAGES/* $INSTALLROOT/Library/Python/$PYVER rm -r $INSTALLROOT/System @@ -223,10 +264,10 @@ if [ -z "$skipinstall" ]; then # Install wxrc - cp $WXDIR/bld/contrib/utils/wxrc/wxrc $INSTALLROOT$BINPREFIX + cp $WXBLD/contrib/utils/wxrc/wxrc $INSTALLROOT$BINPREFIX - # Set premissions for files in $INSTALLROOT + # Set premissions for files in $INSTALLROOT if [ "$UID" = "0" ]; then chown -R root:admin $INSTALLROOT chmod -R g+w $INSTALLROOT @@ -238,11 +279,11 @@ popd #---------------------------------------------------------------------- # Make the Installer packages and disk image -if [ -z "$skipdmg" ]; then +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 + $PYTHON $PROGDIR/../zappycfiles.py $INSTALLROOT > /dev/null # Make the welcome message @@ -312,15 +353,15 @@ EOF cat > "$DMGDIR/root/README 1st.txt" < "$DMGDIR/root/Docs/Build ERROR.txt" < "$DMGDIR/root/Docs/README 1st.txt" < "$DMGDIR/root/Docs/README 1st.txt" < "$DMGDIR/root/Samples/Build ERROR.txt" <