]> git.saurik.com Git - wxWidgets.git/blame - wxPython/distrib/mac/wxPythonOSX/build
distrib changes to enable graphics context and add gdiplus.dll
[wxWidgets.git] / wxPython / distrib / mac / wxPythonOSX / build
CommitLineData
1e4a197e
RD
1#!/bin/sh -e
2#----------------------------------------------------------------------
3# Build wxMac and wxPythonOSX from the tarball and then make an
4# Installer package out of it.
5
0f475e8a 6#set -o xtrace
48e7d325 7
1e4a197e
RD
8spectemplate=distrib/wxPythonFull.spec.in
9
10if [ ! -d wxPython -o ! -e ${spectemplate} ]; then
11 echo "Please run this script from the root wxPython directory."
12 exit 1
13fi
14
81de4ba3 15if [ "$UID" != "0" ]; then
132ae51e 16 echo "-------------------------------------------------------"
c451eded 17 echo " WARNING: I will be unable to change ownership of files"
132ae51e
RD
18 echo " unless this script is run as root or via sudo"
19 echo "-------------------------------------------------------"
20fi
21
1e4a197e
RD
22#----------------------------------------------------------------------
23# Check Parameters
24
25function usage {
26 echo ""
0f475e8a 27 echo "Usage: $0 PYVER [command flags...]"
c451eded 28 echo ""
0f475e8a
RD
29 echo " PYVER Python version to use to do the build. A"
30 echo " matching python\$PYVER must be found on the PATH"
46456f61
RD
31 echo ""
32 echo "optional command flags:"
1e4a197e 33 echo " skiptar Don't unpack the tarball"
81de4ba3
RD
34 echo " inplace Don't use the tarball, build from the CVS tree instead"
35 echo " (The Docs and Demo tarballs are still required for a full build.)"
e61e5964
KO
36 echo " reswig Regenerate SWIG wrappers"
37 echo " universal Generate Universal wxWidgets binary (requires Universal Python "
38 echo " to general Universal wxPython)."
85245f48 39 echo " unicode Make a unicode build"
1e4a197e 40 echo " skipconfig Don't run configure"
b42b447c 41 echo " skipbuild Don't build wxWidgets or wxPython"
1e4a197e
RD
42 echo " skipinstall Don't do the installation step"
43 echo " skipdmg Don't make the package or diskimage"
44 echo " skipclean Don't do the cleanup at the end"
46456f61 45 echo ""
1e4a197e
RD
46}
47
48
c451eded 49PYVER=$1
0f475e8a 50if [ "$PYVER" != "" ] && which python$PYVER && which pythonw$PYVER; then
c451eded
RD
51 PYTHON=`which python$PYVER`
52 PYTHONW=`which pythonw$PYVER`
53else
54 usage;
55 exit 1
56fi
57
0f475e8a 58shift
1e4a197e 59
81de4ba3
RD
60skiptar=no
61skipconfig=no
62skipbuild=no
63skipinstall=no
64skipdmg=no
65skipclean=no
66inplace=no
85245f48 67unicode=no
0f475e8a 68debug=no
e61e5964
KO
69reswig=no
70universal=no
1e4a197e
RD
71
72for flag in $*; do
73 case ${flag} in
81de4ba3
RD
74 skiptar) skiptar=yes ;;
75 skipconfig) skipconfig=yes; skiptar=yes ;;
76 skipbuild) skipbuild=yes; skipconfig=yes; skiptar=yes ;;
77 skipinstall) skipinstall=yes ;;
0f475e8a 78 skipdmg) skipdmg=yes ;;
81de4ba3
RD
79 skipclean) skipclean=yes ;;
80 inplace) inplace=yes; skiptar=yes ;;
85245f48 81 unicode) unicode=yes ;;
0f475e8a
RD
82 ansi) unicode=no ;;
83 debug) debug=yes ;;
e61e5964
KO
84 reswig) reswig=yes ;;
85 universal) universal=yes ;;
1e4a197e
RD
86 *) echo "Unknown flag \"${flag}\""
87 usage
88 exit 1
89 esac
90done
91
92
0f475e8a
RD
93
94OSX_VERSION=`sw_vers -productVersion`
95OSX_VERSION=${OSX_VERSION:0:4}
96
97case $OSX_VERSION in
98 10.4) TAG=macosx10.4 ;;
99 10.3) TAG=macosx10.3 ;;
100 10.2) TAG=macosx10.2 ;;
101 *) usage; exit 1 ;;
102esac
103
104if [ $universal = yes ]; then
105 TAG=universal10.4
106fi
107
108
109
46456f61 110VERSION=`$PYTHON -c "import setup;print setup.VERSION"`
c451eded 111SHORTVER=`echo $VERSION | cut -c 1,2,3`
46456f61 112PYPREFIX=`$PYTHON -c "import sys; print sys.exec_prefix"`
c6387bc1
RD
113PYLIB=$PYPREFIX/lib/python$PYVER
114SITEPACKAGES=$PYLIB/site-packages
81de4ba3 115
85245f48
RD
116if [ $unicode == yes ]; then
117 CHARTYPE=unicode
118 UNICODEOPT=--enable-unicode
119 PYUNICODEOPT=1
120else
121 CHARTYPE=ansi
122 UNICODEOPT=--disable-unicode
123 PYUNICODEOPT=0
124fi
bceb17b2 125
0f475e8a
RD
126if [ $debug == yes ]; then
127 DEBUG_FLAG=--enable-debug
128 PYDEBUGOPT=--debug
129else
130 DEBUG_FLAG=--enable-debug_flag
131 PYDEBUGOPT=
132fi
133
c451eded
RD
134
135# Test if the python we are using is the System installed framework
136# or one that was installed by the user. This changes where the
137# site-packages (or its alias) is located in the installer tree.
138APPLE_PYTHON=no
139if [ -e /Library/Python/$PYVER ] && [ `dirname $PYTHON` == "/usr/bin" ]; then
140 APPLE_PYTHON=yes
141fi
142
eae9a172 143
81de4ba3 144
132ae51e 145if [ -z "$TARBALLDIR" ]; then
81de4ba3
RD
146 # this is a spot on my fileserver where the tarballs go, adjust
147 # as needed for where you put the wxPython tarball, or set
148 # TARBALLDIR before invoking this script...
132ae51e
RD
149 TARBALLDIR=/stuff/Development/wxPython/dist/$VERSION
150fi
bf158fe6 151TARBALL=$TARBALLDIR/wxPython-src-$VERSION.tar.bz2
1e4a197e 152
bf158fe6 153if [ ! -e $TARBALLDIR/wxPython-demo-$VERSION.tar.bz2 ]; then
81de4ba3
RD
154 echo "-------------------------------------------------------"
155 echo " WARNING: Demo tarball not found, will skip building "
156 echo " the Demo app bundle and etc."
bf158fe6 157 echo " $TARBALLDIR/wxPython-demo-$VERSION.tar.bz2"
81de4ba3
RD
158 echo "-------------------------------------------------------"
159fi
160
bf158fe6 161if [ ! -e $TARBALLDIR/wxPython-docs-$VERSION.tar.bz2 ]; then
81de4ba3
RD
162 echo "-------------------------------------------------------"
163 echo " WARNING: Docs tarball not found, will skip building "
164 echo " the the wxDocsViewer app bundle and etc."
bf158fe6 165 echo " $TARBALLDIR/wxPython-docs-$VERSION.tar.bz2"
81de4ba3
RD
166 echo "-------------------------------------------------------"
167fi
168
169
170
171
85245f48 172PREFIX=/usr/local/lib/wxPython-$CHARTYPE-$VERSION
132ae51e 173BINPREFIX=/usr/local/bin
1e4a197e 174
e61e5964 175SWIGBIN=/opt/swig/bin/swig
46456f61 176WXROOT=`dirname $PWD`
1e4a197e
RD
177PROGDIR="`dirname \"$0\"`"
178TMPDIR=$PWD/_build_dmg
179
180BUILDROOT=$TMPDIR/build
85245f48
RD
181
182INSTALLROOT=$TMPDIR/install-root
85245f48
RD
183INSTALLAPPS=$TMPDIR/install-apps
184
1e4a197e 185DMGDIR=$TMPDIR/dmg
85245f48
RD
186DMGROOT=$DMGDIR/root
187DMGAPPS=$DMGDIR/apps
188
1e4a197e
RD
189RESOURCEDIR=$PROGDIR/resources
190DESTDIR=$PWD/dist
28d1454a 191SRCROOT=$BUILDROOT/wxPython-src-$VERSION
1e4a197e
RD
192
193
194#----------------------------------------------------------------------
195# Setup builddirs
196
197mkdir -p $BUILDROOT
198mkdir -p $INSTALLROOT
85245f48
RD
199mkdir -p $INSTALLAPPS
200
1e4a197e 201rm -rf $DMGDIR
85245f48
RD
202mkdir -p $DMGROOT
203mkdir -p $DMGAPPS/Docs
204mkdir -p $DMGAPPS/Samples
b42b447c 205
ae4e0c7a
KO
206if [ ! -d $DESTDIR ]; then
207 mkdir $DESTDIR
208fi
1e4a197e
RD
209
210pushd $BUILDROOT
211
212
213#----------------------------------------------------------------------
214# Unpack the tarball
215
81de4ba3 216if [ $skiptar != yes ]; then
46456f61 217 echo Unarchiving tarball...
bf158fe6 218 tar xjf $TARBALL
1e4a197e
RD
219fi
220
81de4ba3
RD
221if [ $inplace = no ]; then
222 # make a build dir and cd to it.
28d1454a 223 cd wxPython-src-$VERSION
81de4ba3
RD
224 WXDIR=`pwd`
225 mkdir -p $WXDIR/bld
226 cd $WXDIR/bld
227 WXBLD=$WXDIR/bld
228else
61074746
RD
229
230 # If building "inplace" then our build dir will be off of the
231 # WXROOT like normal, adjust the variables to find things that
232 # way.
233 WXBLD=$WXROOT/build-$CHARTYPE
234 mkdir -p $WXBLD
235 cd $WXBLD
236 WXDIR=..
81de4ba3 237 SRCROOT=$WXROOT
81de4ba3
RD
238fi
239
61074746 240echo "Using wx root dir: $WXROOT"
81de4ba3 241echo "Using build dir: $WXBLD"
61074746 242echo "Using source tree: $WXDIR"
1e4a197e
RD
243
244#----------------------------------------------------------------------
245
0f475e8a 246if [ $OSX_VERSION = 10.3 -o $OSX_VERSION = 10.4 ]; then
52e82b22
RD
247 OTHER_CFG_OPTS=--enable-mediactrl
248fi
1e4a197e 249
b42b447c 250# Configure wxWidgets
0f475e8a 251if [ $skipconfig != yes -a $universal != yes ]; then
81de4ba3 252 $WXDIR/configure \
46456f61
RD
253 --prefix=$PREFIX \
254 --with-mac \
eac928f0 255 --enable-monolithic \
1e4a197e 256 --with-opengl \
ec656cfe
RD
257 --enable-sound \
258 --enable-display \
e2f7f062 259 --enable-geometry \
fa5a80d6 260 --enable-graphics_ctx \
0f475e8a 261 $DEBUG_FLAG \
46456f61 262 --enable-precomp=no \
28d1454a 263 --enable-optimise \
8c1a4666 264 --disable-debugreport \
e61e5964 265 --disable-precompiled-headers \
0f475e8a 266 $UNICODEOPT $OTHER_CFG_OPTS
e2f7f062 267
1e4a197e
RD
268fi
269
b42b447c 270# Build wxWidgets and wxPython
81de4ba3 271if [ $skipbuild != yes ]; then
1e4a197e 272
b42b447c 273 # Make wxWidgets and some contribs
0f475e8a
RD
274 WXBLD_CONFIG="$WXBLD/wx-config"
275 if [ $universal = yes ]; then
276 export WXROOT
277 export BUILDPREFIX=$PREFIX
278 export INSTALLDIR=$INSTALLROOT$PREFIX
279 $WXDIR/distrib/scripts/mac/macbuild wxpython universal $CHARTYPE
280 else
281 make $MAKEJOBS
282 make $MAKEJOBS -C contrib/src/animate
283 make $MAKEJOBS -C contrib/src/gizmos
284 make $MAKEJOBS -C contrib/src/stc
285 fi
286
287 SWIGIT=0
288 if [ $reswig = yes ]; then
289 SWIGIT=1
290 fi
e61e5964 291
46456f61 292 # Build wxPython
61074746 293 cd $WXROOT/wxPython
46456f61 294 $PYTHON setup.py \
85245f48 295 UNICODE=$PYUNICODEOPT \
46456f61 296 NO_SCRIPTS=1 \
28d1454a 297 EP_ADD_OPTS=1 \
0f475e8a 298 WX_CONFIG="$WXBLD_CONFIG --inplace" \
81de4ba3 299 BUILD_BASE=$WXBLD/wxPython \
e61e5964
KO
300 SWIG=$SWIGBIN \
301 USE_SWIG=$SWIGIT \
1e4a197e 302 build
1e4a197e
RD
303fi
304
305#----------------------------------------------------------------------
1e4a197e 306
81de4ba3 307if [ $skipinstall != yes ]; then
b42b447c 308 # Install wxWidgets
81de4ba3 309 cd $WXBLD
0f475e8a
RD
310 if [ $universal != yes ]; then
311 make prefix=$INSTALLROOT$PREFIX install
312 make -C contrib/src/animate prefix=$INSTALLROOT$PREFIX install
313 make -C contrib/src/gizmos prefix=$INSTALLROOT$PREFIX install
314 make -C contrib/src/stc prefix=$INSTALLROOT$PREFIX install
315 fi
1e4a197e 316
28d1454a
RD
317 # relink wx-config with a relative link
318 cd $INSTALLROOT$PREFIX/bin
319 rm wx-config
320 ln -s ../lib/wx/config/* wx-config
321
1e4a197e 322 # and wxPython
61074746 323 cd $WXROOT/wxPython
46456f61 324 $PYTHON setup.py \
85245f48 325 UNICODE=$PYUNICODEOPT \
46456f61 326 NO_SCRIPTS=1 \
28d1454a 327 EP_ADD_OPTS=1 \
0f475e8a 328 WX_CONFIG="$INSTALLROOT$PREFIX/bin/wx-config --prefix=$INSTALLROOT$PREFIX" \
81de4ba3 329 BUILD_BASE=$WXBLD/wxPython \
1e4a197e
RD
330 install \
331 --root=$INSTALLROOT
332
46456f61 333
c451eded
RD
334 # Apple's Python Framework (such as what comes with Panther)
335 # sym-links the site-packages dir in the framework to
c6387bc1
RD
336 # /Library/Python/$PYVER so we need to move the files so they are
337 # installed in the physical location, not the virtual one.
c451eded 338 if [ $APPLE_PYTHON == yes ]; then
81de4ba3
RD
339 if [ -e $INSTALLROOT/Library/Python/$PYVER ]; then
340 rm -r $INSTALLROOT/Library/Python/$PYVER
341 fi
c6387bc1
RD
342 mkdir -p $INSTALLROOT/Library/Python/$PYVER
343 mv $INSTALLROOT/$SITEPACKAGES/* $INSTALLROOT/Library/Python/$PYVER
344 rm -r $INSTALLROOT/System
345 SITEPACKAGES=/Library/Python/$PYVER
346 fi
347
79db03c9
RD
348 # install wxPython's tool scripts
349 mkdir -p $INSTALLROOT$BINPREFIX
61074746 350 cd $WXROOT/wxPython/scripts
79db03c9 351 python$PYVER CreateMacScripts.py $INSTALLROOT $BINPREFIX
85245f48 352
1e4a197e 353
85245f48
RD
354 # Remove the .pyc/.pyo files they just take up space and can be recreated
355 # during the install.
61074746 356 pushd $WXROOT/wxPython
85245f48
RD
357 $PYTHON $PROGDIR/../zappycfiles.py $INSTALLROOT > /dev/null
358 popd
c6387bc1 359
79db03c9 360 # Set premissions for files in $INSTALLROOT
132ae51e 361 if [ "$UID" = "0" ]; then
79db03c9
RD
362 chown -R root:admin $INSTALLROOT
363 chmod -R g+w $INSTALLROOT
132ae51e 364 fi
1e4a197e
RD
365fi
366
c451eded 367if [ $APPLE_PYTHON == yes ]; then
85245f48
RD
368 SITEPACKAGES=/Library/Python/$PYVER
369fi
79db03c9 370PKGDIR=`cat $INSTALLROOT$SITEPACKAGES/wx.pth`
28d1454a 371
1e4a197e
RD
372popd
373
374#----------------------------------------------------------------------
375
376# Make the Installer packages and disk image
81de4ba3 377if [ $skipdmg != yes ]; then
1e4a197e 378
85245f48
RD
379 #-----------------------------------------------
380 # The main runtime installer package
1e4a197e
RD
381
382 # Make the welcome message
0f475e8a
RD
383 case $OSX_VERSION in
384 10.4) W_MSG="the Tiger (OS X 10.4.x Intel) version of" ;;
385 10.3) W_MSG="the Panther (OS X 10.3.x) version of" ;;
386 10.2) W_MSG="the Jaguar (OS X 10.2.x) version of" ;;
46456f61 387 esac
0f475e8a
RD
388
389 if [ $universal == yes ]; then
390 W_MSG="the Universal (OS X 10.4.x and above) version of"
391 fi
85245f48
RD
392
393
1e4a197e
RD
394 cat > $RESOURCEDIR/Welcome.txt <<EOF
395Welcome!
396
85245f48 397This Installer package will install the wxPython $CHARTYPE runtime $VERSION for $W_MSG MacPython-OSX $PYVER. This includes:
1e4a197e 398
85245f48
RD
399 * The wxPython packages and modules
400 * The wxWidgets shared libraries and headers
79db03c9 401 * Some command line tool scripts, installed to /usr/local/bin.
85245f48
RD
402
403You must install onto your current boot disk, eventhough the installer does not enforce this, otherwise things will not work.
404
79db03c9 405You 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.
c6387bc1 406
1e4a197e
RD
407Build date: `date`
408EOF
409
410 # make the preflight script
411 cat > $RESOURCEDIR/preflight <<EOF
412#!/bin/sh
413# Cleanup any old install of the wxPython package
414rm -rf \$2$SITEPACKAGES/wxPython
46456f61 415rm -rf \$2$SITEPACKAGES/wx
28d1454a 416rm -rf \$2$SITEPACKAGES/$PKGDIR
1e4a197e
RD
417exit 0
418EOF
419 chmod +x $RESOURCEDIR/preflight
420
421 # make the postflight script
422 cat > $RESOURCEDIR/postflight <<EOF
423#!/bin/sh -e
424# Compile the .py files in the wxPython pacakge
28d1454a
RD
425$PYTHON \$2$PYLIB/compileall.py \$2$SITEPACKAGES/$PKGDIR
426$PYTHON -O \$2$PYLIB/compileall.py \$2$SITEPACKAGES/$PKGDIR
1e4a197e 427
c6387bc1 428# and all of the wxPython pacakge should be group writable
28d1454a
RD
429chgrp -R admin \$2$SITEPACKAGES/$PKGDIR
430chmod -R g+w \$2$SITEPACKAGES/$PKGDIR
1e4a197e
RD
431
432exit 0
433EOF
434 chmod +x $RESOURCEDIR/postflight
435
85245f48 436
1e4a197e 437
c6387bc1 438 # Build the main Installer Package...
0f475e8a 439 PKGNAME=wxPython${SHORTVER}-osx-$CHARTYPE-$TAG
48e7d325 440 if [ $PYVER != 2.3 ]; then
0f475e8a 441 PKGNAME=wxPython${SHORTVER}-osx-$CHARTYPE-$TAG-py$PYVER
48e7d325
RD
442 fi
443 rm -rf $PKGNAME.pkg
444 $PYTHON $PROGDIR/../buildpkg.py \
445 --Title=$PKGNAME \
1e4a197e 446 --Version=$VERSION \
85245f48 447 --Description="wxPython $CHARTYPE runtime $VERSION for $W_MSG MacPython-OSX $PYVER" \
1e4a197e
RD
448 --NeedsAuthorization="YES" \
449 --Relocatable="NO" \
450 --InstallOnly="YES" \
451 $INSTALLROOT \
452 $RESOURCEDIR
453
02b800ce 454 mv $PKGNAME.pkg $DMGROOT/$PKGNAME.pkg
1e4a197e 455
85245f48
RD
456 rm $RESOURCEDIR/postflight
457 rm $RESOURCEDIR/preflight
458 rm $RESOURCEDIR/Welcome.txt
1e4a197e 459
1e4a197e 460
85245f48
RD
461 #-----------------------------------------------
462 # Make a README to go on the disk image
463 cat > "$DMGROOT/README 1st.txt" <<EOF
46456f61
RD
464Welcome to wxPython!
465
85245f48
RD
466This disk image contains the following items:
467
468 wxPython${SHORTVER}-osx-$CHARTYPE-$VERSION-$KIND
469
79db03c9
RD
470 This Installer contains the wxPython runtime, compiled on a
471 $KIND OS X system, using the $CHARTYPE build of the wxWidgets
472 library. It includes the Python modules and extension
473 modules, as well as the wxWidgets libraries.
46456f61 474
79db03c9
RD
475 It is possible to have more than one version of the runtime
476 installed at once if you wish. The most recently installed
477 version will be the default wxPython, but you can choose
478 another by setting the PYTHONPATH or by using the wxversion
479 module. For more details see:
480 http://wiki.wxpython.org/index.cgi/MultiVersionInstalls
85245f48 481
85245f48
RD
482
483 uninstall_wxPython.py
484
485 A simple tool to help you manage your installed versions of
486 wxPython. It will allow you to choose from the currently
487 installed wxPython packages and to select one for
488 uninstallation. It is a text-mode tool so you can either run
489 it from a Terminal command line, or you can open it with
490 PythonLauncher and let it create a Terminal to run it in.
491
61074746
RD
492 NOTE: If you have versions prior to 2.5.3.1 installed, please
493 do run this uninstall tool to remove the older version.
494
85245f48
RD
495EOF
496
497
498
499 cp $PROGDIR/../uninstall_wxPython.py $DMGROOT
500
501
502 #-----------------------------------------------
503 # Make a disk image to hold these files
c451eded 504 dmgname=wxPython${SHORTVER}-osx-$CHARTYPE-$VERSION-$TAG-py$PYVER
85245f48
RD
505 $PROGDIR/../makedmg $DMGROOT $DMGDIR $dmgname
506
507 echo Moving $DMGDIR/$dmgname.dmg to $DESTDIR
ae4e0c7a 508 mv $DMGDIR/$dmgname.dmg $DESTDIR/$dmgname.dmg
85245f48
RD
509
510
511#---------------------------------------------------------------------------
512# Now create app bundles for the demo, docs, and tools and make another
513# disk image to hold it all.
514#---------------------------------------------------------------------------
515
516 cat > "$DMGAPPS/README 1st.txt" <<EOF
517Welcome to wxPython!
1e4a197e 518
85245f48
RD
519On this disk image you will find Demo, Tools, Docs, and etc. for
520wxPython $VERSION. Everything here is optional and you can drag them
521out of the disk image and drop them wherever you want. You will need
522to have an installed wxPython runtime to be able to use any of them.
1e4a197e 523
46456f61 524
85245f48
RD
525 wxPython Demo An application bundle version of the demo.
526 (This has it's own copy of the demo sources
527 within the bundle.)
c6387bc1 528
85245f48 529 XRCed An application for editing wxPython resource
c6387bc1
RD
530 files (XRC files.)
531
85245f48 532 PyCrust An application that provides an interactive
c6387bc1
RD
533 Python shell and also namespace inspectors.
534
b42b447c
RD
535
536
81de4ba3 537 Docs/wxDocsViewer An application that allows you to view the
dcb1fb69 538 wxWidgets documentation.
b42b447c
RD
539
540 Docs/licence License files.
541
81de4ba3 542 Docs/other A few readmes, change log, etc.
b42b447c
RD
543
544
81de4ba3 545 Samples/samples Several small sample applications that
b42b447c
RD
546 demonstrate how to use wxPython.
547
81de4ba3 548 Samples/demo A copy of the wxPython demo source code,
b42b447c
RD
549 just open the folder and run demo.pyw.
550
1e4a197e
RD
551Happy Hacking!
552EOF
553
81de4ba3 554# PyAlaMode An extension of PyCrust that includes source
c6387bc1
RD
555# file editing capabilities.
556
1e4a197e 557
b42b447c 558 # wxDocs
bf158fe6 559 if [ ! -e $TARBALLDIR/wxPython-docs-$VERSION.tar.bz2 ]; then
85245f48 560 cat > "$DMGAPPS/Docs/Build ERROR.txt" <<EOF
dcb1fb69 561
28d1454a 562The wxPython-docs tarball was not found when building this disk image!
81de4ba3
RD
563
564EOF
565
566 else
567 pushd $BUILDROOT
bf158fe6 568 tar xjvf $TARBALLDIR/wxPython-docs-$VERSION.tar.bz2
81de4ba3 569 popd
dcb1fb69 570
81de4ba3
RD
571 # Make an app to launch viewdocs.py
572 $PYTHONW $PROGDIR/../buildapp.py \
85245f48 573 --builddir=$DMGAPPS/Docs \
81de4ba3
RD
574 --name=wxDocsViewer \
575 --mainprogram=$BUILDROOT/wxPython-$VERSION/docs/viewdocs.py \
576 --iconfile=$PROGDIR/Info.icns \
577 build
dcb1fb69 578
85245f48 579 cp $BUILDROOT/wxPython-$VERSION/docs/*.zip $DMGAPPS/Docs/wxDocsViewer.app/Contents/Resources
81de4ba3 580
85245f48 581 cat > "$DMGAPPS/Docs/README 1st.txt" <<EOF
dcb1fb69
RD
582
583The wxDocsViewer application needs to be copied to your Desktop (or
584someplace else you have write access to) before you can run it, so it
585can cache some indexes within its bundle.
586
587EOF
46456f61 588
81de4ba3
RD
589 fi
590
b42b447c 591 # license files, docs, etc.
85245f48 592 pushd $DMGAPPS/Docs
b42b447c
RD
593 cp -pR $SRCROOT/wxPython/licence .
594 cp -pR $SRCROOT/wxPython/docs .
595 rm -rf docs/bin
596 rm -rf docs/xml-raw
597 mv docs other
598 popd
81de4ba3
RD
599
600
bf158fe6 601 if [ ! -e $TARBALLDIR/wxPython-demo-$VERSION.tar.bz2 ]; then
85245f48 602 cat > "$DMGAPPS/Samples/Build ERROR.txt" <<EOF
81de4ba3 603
02b800ce 604The wxPython-$VERSION-demo tarball was not found when building this disk image!
81de4ba3
RD
605
606EOF
85245f48 607 cp "$DMGAPPS/Samples/Build ERROR.txt" $DMGAPPS
81de4ba3
RD
608
609 else
610
611 # Copy the demo and samples to the disk image from the tarball
85245f48 612 pushd $DMGAPPS/Samples
bf158fe6 613 tar xjvf $TARBALLDIR/wxPython-demo-$VERSION.tar.bz2
81de4ba3
RD
614 mv wxPython-$VERSION/* .
615 rm -rf wxPython-$VERSION
0f475e8a 616 rm -f demo/b demo/.setup.sh
81de4ba3
RD
617 mv demo/demo.py demo/demo.pyw
618 popd
619
620 # Make an app bundle to run the demo
621 $PYTHONW $PROGDIR/../buildapp.py \
85245f48 622 --builddir=$DMGAPPS \
81de4ba3 623 --name="wxPython Demo" \
85245f48 624 --mainprogram=$DMGAPPS/Samples/demo/demo.pyw \
81de4ba3
RD
625 --iconfile=$PROGDIR/RunDemo.icns \
626 build
85245f48 627 cp -pR $DMGAPPS/Samples/demo/* "$DMGAPPS/wxPython Demo.app/Contents/Resources"
81de4ba3
RD
628 fi
629
b42b447c 630
46456f61
RD
631 # Make an app bundle to launch PyCrust
632 $PYTHONW $PROGDIR/../buildapp.py \
85245f48 633 --builddir=$DMGAPPS \
46456f61 634 --name=PyCrust \
79db03c9 635 --mainprogram=$INSTALLROOT$BINPREFIX/pycrust.py \
46456f61
RD
636 --iconfile=$PROGDIR/PieShell.icns \
637 build
638
79db03c9
RD
639## TODO: PyAlaMode needs tweaked to be able to run from a bundle. It
640## needs to know to ignore command line parameters and etc...
85245f48
RD
641# # and PyAlaMode
642# $PYTHONW $PROGDIR/../buildapp.py \
643# --builddir=$DMGAPPS \
644# --name=PyAlaMode \
79db03c9 645# --mainprogram=$INSTALLROOT$BINPREFIX/pyalamode.py \
85245f48
RD
646# --iconfile=$PROGDIR/PieShell.icns \
647# build
c6387bc1 648
46456f61
RD
649 # Make an app to launch XRCed
650 $PYTHONW $PROGDIR/../buildapp.py \
85245f48 651 --builddir=$DMGAPPS \
46456f61 652 --name=XRCed \
79db03c9 653 --mainprogram=$INSTALLROOT$BINPREFIX/xrced.py \
46456f61
RD
654 --iconfile=$PROGDIR/XRCed.icns \
655 build
656
81de4ba3 657
1e4a197e 658
85245f48 659 # and then finally make a disk image containing everything
48e7d325 660 dmgname=wxPython${SHORTVER}-osx-docs-demos-$VERSION-$TAG-py$PYVER
85245f48 661 $PROGDIR/../makedmg $DMGAPPS $DMGDIR $dmgname
1e4a197e 662
85245f48 663 echo Moving $DMGDIR/$dmgname.dmg to $DESTDIR
ae4e0c7a 664 mv $DMGDIR/$dmgname.dmg $DESTDIR/$dmgname.dmg
1e4a197e
RD
665fi
666
667
668# Cleanup build/install dirs
81de4ba3 669if [ $skipclean != yes ]; then
1e4a197e
RD
670 echo "Cleaning up..."
671 rm -rf $TMPDIR
672else
673 echo "Cleanup is disabled. You should remove $TMPDIR when finished"
674fi
675
0f475e8a 676exit 0