]>
git.saurik.com Git - wxWidgets.git/blob - wxPython/distrib/mac/wxPythonOSX/build
   2 #---------------------------------------------------------------------- 
   3 # Build wxMac and wxPythonOSX from the tarball and then make an 
   4 # Installer package out of it. 
   6 spectemplate
=distrib
/wxPythonFull.spec.
in 
   8 if [ ! -d wxPython 
-o ! -e ${spectemplate} ]; then 
   9     echo "Please run this script from the root wxPython directory." 
  13 #---------------------------------------------------------------------- 
  18     echo "Usage: $0  [apple|local]  [command flags...]" 
  20     echo "   panther        Build for Apple's python in /usr/bin, such as on Panther" 
  21     echo "   jaguar         Build for a python in /usr/local/bin, such as on Jaguar" 
  23     echo "optional command flags:" 
  24     echo "   skiptar        Don't unpack the tarball" 
  25     echo "   use_cvs        Use the CVS workspace instead of a tarfile" 
  26     echo "   skipconfig     Don't run configure" 
  27     echo "   skipbuild      Don't build wxWindows or wxPython" 
  28     echo "   skipinstall    Don't do the installation step" 
  29     echo "   skipdmg        Don't make the package or diskimage" 
  30     echo "   skipclean      Don't do the cleanup at the end" 
  42     panther
)    PYTHON
=/usr
/bin
/python 
;; 
  43     jaguar
)     PYTHON
=/usr
/local
/bin
/python 
;; 
  53         use_cvs
)     skiptar
=1; use_cvs
=1        ;; 
  54         skipconfig
)  skipconfig
=1; skiptar
=1     ;; 
  55         skipbuild
)   skipbuild
=1; skipconfig
=1; skiptar
=1 ;; 
  56         skipinstall
) skipinstall
=1               ;; 
  58         skipclean
)   skipclean
=1                 ;; 
  60         *)  echo "Unknown flag \"${flag}\"" 
  67 VERSION
=`$PYTHON -c "import setup;print setup.VERSION"` 
  68 PYVER
=`$PYTHON -c "import sys; print sys.version[:3]"` 
  69 PYPREFIX
=`$PYTHON -c "import sys; print sys.exec_prefix"` 
  70 PYLIB
=$PYPREFIX/lib
/python
$PYVER 
  71 SITEPACKAGES
=$PYLIB/site
-packages 
  73 SRCDIR
=/stuff
/Development
/wxPython
/dist
/$VERSION 
  74 TARBALL
=$SRCDIR/wxPythonSrc
-$VERSION.
tar.gz
 
  76 PREFIX
=/usr
/lib
/wxPython
-$VERSION 
  80 PROGDIR
="`dirname \"$0\"`" 
  81 TMPDIR
=$PWD/_build_dmg
 
  83 BUILDROOT
=$TMPDIR/build
 
  84 INSTALLROOT
=$TMPDIR/install 
  85 INSTALLDEVEL
=$TMPDIR/install-devel 
  87 RESOURCEDIR
=$PROGDIR/resources
 
  92 #---------------------------------------------------------------------- 
  97 #mkdir -p $INSTALLDEVEL 
 104 #---------------------------------------------------------------------- 
 107 if [ -z "$skiptar" ]; then 
 108     echo Unarchiving tarball...
 
 112 if [ "$use_cvs" = 1 ]; then 
 113     # copy the cvs workspace, except for build dirs 
 115     mkdir -p wxPythonSrc
-$VERSION 
 117     echo Finding updated files...
 
 118     if [ -e .last_copy 
]; then 
 119         FEXPR
="-cnewer .last_copy" 
 122     find $WXROOT $FEXPR -print \
 
 123         | grep -v $WXROOT/bld \
 
 124         | grep -v wxPython
/build \
 
 125         | grep -v wxPython
/_build \
 
 128         | cut 
-b ${#MEASURE}- > filelist
 
 130     for x 
in `cat filelist`; do 
 131         if [ -d "$WXROOT/$x" ]; then 
 132             mkdir -p "wxPythonSrc-$VERSION/$x" 
 135             cp -p "$WXROOT/$x" "wxPythonSrc-$VERSION/$x" 
 143 cd wxPythonSrc
-$VERSION 
 148 #---------------------------------------------------------------------- 
 151 # Configure wxWindows 
 152 if [ -z "$skipconfig" ]; then 
 156         --disable-monolithic \
 
 160         --enable-precomp=no \
 
 162         --with-libjpeg=builtin \
 
 163         --with-libpng=builtin \
 
 164         --with-libtiff=builtin \
 
 165         --with-zlib=builtin \
 
 171 # Build wxWindows and wxPython 
 172 if [ -z "$skipbuild" ]; then 
 174     # Make wxWindows and some contribs 
 176     make -C contrib
/src
/gizmos 
 
 177     make -C contrib
/src
/ogl CXXFLAGS
="-DwxUSE_DEPRECATED=0" 
 178     make -C contrib
/src
/stc
 
 179     make -C contrib
/src
/xrc
 
 181     if [ ! -e $WXDIR/include
/wx
/gizmos 
]; then 
 182         # Make some links so the wxPython build can find all the headers it needs 
 183         pushd $WXDIR/include
/wx
 
 184         ln -s ..
/..
/contrib
/include
/wx
/* .
 
 192         WX_CONFIG
="$WXDIR/bld/wx-config --prefix=$WXDIR --exec-prefix=$WXDIR/bld" \
 
 196     # Build wxrc (XRC resource tool)  
 197     cd $WXDIR/bld
/contrib
/utils
/wxrc
 
 203 #---------------------------------------------------------------------- 
 205 if [ -z "$skipinstall" ]; then 
 208     make prefix
=$INSTALLROOT$PREFIX install 
 209     make -C contrib
/src
/gizmos prefix
=$INSTALLROOT$PREFIX install 
 210     make -C contrib
/src
/ogl CXXFLAGS
="-DwxUSE_DEPRECATED=0" prefix
=$INSTALLROOT/$PREFIX install 
 211     make -C contrib
/src
/stc prefix
=$INSTALLROOT$PREFIX install 
 212     make -C contrib
/src
/xrc prefix
=$INSTALLROOT$PREFIX install 
 219         WX_CONFIG
="$INSTALLROOT/$PREFIX/bin/wx-config --prefix=$INSTALLROOT/$PREFIX" \
 
 224     # Apple's Python (on Panther) sym-links the site-packages dir to 
 225     # /Library/Python/$PYVER so we need to move the files so they are 
 226     # installed in the physical location, not the virtual one. 
 227     if [ "$KIND" = "panther" ]; then 
 228         mkdir -p $INSTALLROOT/Library
/Python
/$PYVER 
 229         mv $INSTALLROOT/$SITEPACKAGES/* $INSTALLROOT/Library
/Python
/$PYVER 
 230         rm -r $INSTALLROOT/System
 
 231         SITEPACKAGES
=/Library
/Python
/$PYVER 
 235     # install wxPython's tool scripts 
 236     mkdir -p $INSTALLROOT$BINPREFIX 
 237     cd $WXDIR/wxPython
/scripts
 
 238     python
$PYVER CreateMacScripts.py 
$INSTALLROOT $BINPREFIX 
 242     cp $WXDIR/bld
/contrib
/utils
/wxrc
/wxrc 
$INSTALLROOT$BINPREFIX 
 245     # install the wxPython headers 
 247     cp -R include 
$INSTALLROOT$PREFIX 
 248     mkdir -p      $INSTALLROOT$PREFIX/include
/wx
/wxPython
/i_files
 
 249     cp src
/*.i    
$INSTALLROOT$PREFIX/include
/wx
/wxPython
/i_files
 
 252     # Set premissions for files in $INSTALLROOT  
 253     chown 
-R root
:admin 
$INSTALLROOT 
 254     chmod -R g
+w        
$INSTALLROOT 
 259 #---------------------------------------------------------------------- 
 261 # Make the Installer packages and disk image 
 262 if [ -z "$skipdmg" ]; then 
 264     # Remove the .pyc/.pyo files they just take up space and can be recreated 
 265     # during the install. 
 266     $PYTHON $PROGDIR/..
/zappycfiles.py 
$INSTALLROOT 
 269     # Make the welcome message 
 271         panther
)  W_MSG
="the Panther (OS X 10.3.x) version of" ;; 
 272         jaguar
)   W_MSG
="the Jaguar (OS X 10.2.x) version of" ;; 
 274     cat > $RESOURCEDIR/Welcome.txt 
<<EOF 
 277 This program will install wxPython $VERSION for $W_MSG MacPython-OSX $PYVER. 
 279 You must install onto your current boot disk, even though the installer does not enforce this, otherwise things will not work. 
 284     # make the preflight script 
 285     cat > $RESOURCEDIR/preflight 
<<EOF 
 287 # Cleanup any old install of the wxPython package 
 288 rm -rf \$2$SITEPACKAGES/wxPython 
 289 rm -rf \$2$SITEPACKAGES/wx 
 292     chmod +x 
$RESOURCEDIR/preflight
 
 294     # make the postflight script 
 295     cat > $RESOURCEDIR/postflight 
<<EOF 
 297 # Compile the .py files in the wxPython pacakge 
 298 $PYTHON \$2$PYLIB/compileall.py \$2$SITEPACKAGES/wxPython 
 299 $PYTHON \$2$PYLIB/compileall.py \$2$SITEPACKAGES/wx 
 300 $PYTHON -O \$2$PYLIB/compileall.py \$2$SITEPACKAGES/wxPython 
 301 $PYTHON -O \$2$PYLIB/compileall.py \$2$SITEPACKAGES/wx 
 304 # and all of the wxPython pacakge should be group writable 
 305 chgrp -R admin \$2$SITEPACKAGES/wxPython 
 306 chmod -R g+w \$2$SITEPACKAGES/wxPython 
 307 chgrp -R admin \$2$SITEPACKAGES/wx 
 308 chmod -R g+w \$2$SITEPACKAGES/wx 
 312     chmod +x 
$RESOURCEDIR/postflight
 
 316     # Build the main Installer Package... 
 317     rm -rf wxPythonOSX
-$KIND.pkg
 
 318     python 
$PROGDIR/..
/buildpkg.py \
 
 319         --Title=wxPythonOSX
-$KIND \
 
 321         --Description="wxPython $VERSION for $W_MSG MacPython-OSX $PYVER" \
 
 322         --NeedsAuthorization="YES" \
 
 324         --InstallOnly="YES" \
 
 328     mv wxPythonOSX
-$KIND.pkg 
$DMGDIR/root
 
 332     # Make a README.txt to go on the disk image 
 333     cat > "$DMGDIR/root/README 1st.txt" <<EOF 
 336 On this disk image you will find the installer for wxPython $VERSION for $W_MSG MacPython-OSX $PYVER.  MacPython-OSX is not included.   
 338    wxPython-$KIND.pkg   The installer package.  It contains the wxPython  
 339                         extension modules, wxMac dynamic libraries and 
 340                         headers, and some scripts for the command-line  
 343 Everything else here is optional and you can drag them out of the disk  
 344 image and drop them whereever you want.  You do need to install the above 
 345 package before you can use any of the items below. 
 347    docs/                A few readmes, change log, etc.  The full  
 348                         documentation is downloadable separately.  
 350    licence/             License docs. 
 352    demo/                A copy of the wxPython demo source code,  
 353                         just open the folder and run demo.py. 
 355    samples/             Several small sample applications that  
 356                         demonstrate how to use wxPython. 
 358    wxPython Demo        An application bundle version of the demo. 
 359                         (This has it's own copy of the sources within 
 362    XRCed                An application for editing wxPython resource 
 365    PyCrust              An application that provides an interactive  
 366                         Python shell and also namespace inspectors. 
 371 #   PyAlaMode            An extension of PyCrust that includes source  
 372 #                        file editing capabilities. 
 375     # license files, docs, etc. 
 376     cp -pR $WXDIR/wxPython
/licence 
$DMGDIR/root
 
 377     rm -rf $WXDIR/wxPython
/docs
/xml
-raw 
 378     cp -pR $WXDIR/wxPython
/docs 
$DMGDIR/root
 
 379     rm -rf $DMGDIR/root
/docs
/bin
 
 381     # Copy the demo and samples to the disk image 
 382     cp -pR $WXDIR/wxPython
/demo 
$DMGDIR/root
 
 383     cp -pR $WXDIR/wxPython
/samples 
$DMGDIR/root
 
 384     rm $DMGDIR/root
/demo
/b
 
 387     # Make an app bundle to launch PyCrust 
 388     $PYTHONW $PROGDIR/..
/buildapp.py \
 
 389         --builddir=$DMGDIR/root \
 
 391         --mainprogram=$INSTALLROOT$BINPREFIX/pycrust.py \
 
 392         --iconfile=$PROGDIR/PieShell.icns \
 
 396 #     $PYTHONW $PROGDIR/../buildapp.py \ 
 397 #       --builddir=$DMGDIR/root \ 
 399 #       --mainprogram=$INSTALLROOT$BINPREFIX/pyalamode.py \ 
 400 #       --iconfile=$PROGDIR/PieShell.icns \ 
 403     # Make an app to launch XRCed 
 404     $PYTHONW $PROGDIR/..
/buildapp.py \
 
 405         --builddir=$DMGDIR/root \
 
 407         --mainprogram=$INSTALLROOT$BINPREFIX/xrced.py \
 
 408         --iconfile=$PROGDIR/XRCed.icns \
 
 411     # Make an app bundle to run the demo 
 412     $PYTHONW $PROGDIR/..
/buildapp.py \
 
 413         --builddir=$DMGDIR/root \
 
 414         --name="wxPython Demo" \
 
 415         --mainprogram=$DMGDIR/root
/demo
/demo.py \
 
 416         --iconfile=$PROGDIR/RunDemo.icns \
 
 418     cp -pR $DMGDIR/root
/demo
/* "$DMGDIR/root/wxPython Demo.app/Contents/Resources" 
 421     # and then finally make a disk image containing the packages and etc. 
 422     $PROGDIR/..
/makedmg 
$DMGDIR/root 
$DMGDIR wxPythonOSX
-$VERSION-$KIND-Py$PYVER 
 424     echo Moving 
$DMGDIR/wxPythonOSX
-$VERSION-$KIND-Py$PYVER.dmg to 
$DESTDIR 
 425     mv $DMGDIR/wxPythonOSX
-$VERSION-$KIND-Py$PYVER.dmg  
$DESTDIR 
 429 # Cleanup build/install dirs 
 430 if [ -z "$skipclean" ]; then 
 431     echo "Cleaning up..." 
 434     echo "Cleanup is disabled.  You should remove $TMPDIR when finished"