]> git.saurik.com Git - wxWidgets.git/blame - wxPython/distrib/mac/wxPythonOSX/build
removed 'unsigned' from 'unsigned int' so epydoc doesn't get ocnfused
[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
0f475e8a
RD
282 make $MAKEJOBS -C contrib/src/gizmos
283 make $MAKEJOBS -C contrib/src/stc
284 fi
285
286 SWIGIT=0
287 if [ $reswig = yes ]; then
288 SWIGIT=1
289 fi
e61e5964 290
46456f61 291 # Build wxPython
61074746 292 cd $WXROOT/wxPython
46456f61 293 $PYTHON setup.py \
85245f48 294 UNICODE=$PYUNICODEOPT \
46456f61 295 NO_SCRIPTS=1 \
28d1454a 296 EP_ADD_OPTS=1 \
0f475e8a 297 WX_CONFIG="$WXBLD_CONFIG --inplace" \
81de4ba3 298 BUILD_BASE=$WXBLD/wxPython \
e61e5964
KO
299 SWIG=$SWIGBIN \
300 USE_SWIG=$SWIGIT \
1e4a197e 301 build
1e4a197e
RD
302fi
303
304#----------------------------------------------------------------------
1e4a197e 305
81de4ba3 306if [ $skipinstall != yes ]; then
b42b447c 307 # Install wxWidgets
81de4ba3 308 cd $WXBLD
0f475e8a
RD
309 if [ $universal != yes ]; then
310 make prefix=$INSTALLROOT$PREFIX install
0f475e8a
RD
311 make -C contrib/src/gizmos prefix=$INSTALLROOT$PREFIX install
312 make -C contrib/src/stc prefix=$INSTALLROOT$PREFIX install
313 fi
1e4a197e 314
28d1454a
RD
315 # relink wx-config with a relative link
316 cd $INSTALLROOT$PREFIX/bin
317 rm wx-config
318 ln -s ../lib/wx/config/* wx-config
319
1e4a197e 320 # and wxPython
61074746 321 cd $WXROOT/wxPython
46456f61 322 $PYTHON setup.py \
85245f48 323 UNICODE=$PYUNICODEOPT \
46456f61 324 NO_SCRIPTS=1 \
28d1454a 325 EP_ADD_OPTS=1 \
0f475e8a 326 WX_CONFIG="$INSTALLROOT$PREFIX/bin/wx-config --prefix=$INSTALLROOT$PREFIX" \
81de4ba3 327 BUILD_BASE=$WXBLD/wxPython \
1e4a197e
RD
328 install \
329 --root=$INSTALLROOT
330
46456f61 331
c451eded
RD
332 # Apple's Python Framework (such as what comes with Panther)
333 # sym-links the site-packages dir in the framework to
c6387bc1
RD
334 # /Library/Python/$PYVER so we need to move the files so they are
335 # installed in the physical location, not the virtual one.
c451eded 336 if [ $APPLE_PYTHON == yes ]; then
81de4ba3
RD
337 if [ -e $INSTALLROOT/Library/Python/$PYVER ]; then
338 rm -r $INSTALLROOT/Library/Python/$PYVER
339 fi
c6387bc1
RD
340 mkdir -p $INSTALLROOT/Library/Python/$PYVER
341 mv $INSTALLROOT/$SITEPACKAGES/* $INSTALLROOT/Library/Python/$PYVER
342 rm -r $INSTALLROOT/System
343 SITEPACKAGES=/Library/Python/$PYVER
344 fi
345
79db03c9
RD
346 # install wxPython's tool scripts
347 mkdir -p $INSTALLROOT$BINPREFIX
61074746 348 cd $WXROOT/wxPython/scripts
79db03c9 349 python$PYVER CreateMacScripts.py $INSTALLROOT $BINPREFIX
85245f48 350
1e4a197e 351
85245f48
RD
352 # Remove the .pyc/.pyo files they just take up space and can be recreated
353 # during the install.
61074746 354 pushd $WXROOT/wxPython
85245f48
RD
355 $PYTHON $PROGDIR/../zappycfiles.py $INSTALLROOT > /dev/null
356 popd
c6387bc1 357
79db03c9 358 # Set premissions for files in $INSTALLROOT
132ae51e 359 if [ "$UID" = "0" ]; then
79db03c9
RD
360 chown -R root:admin $INSTALLROOT
361 chmod -R g+w $INSTALLROOT
132ae51e 362 fi
1e4a197e
RD
363fi
364
c451eded 365if [ $APPLE_PYTHON == yes ]; then
85245f48
RD
366 SITEPACKAGES=/Library/Python/$PYVER
367fi
79db03c9 368PKGDIR=`cat $INSTALLROOT$SITEPACKAGES/wx.pth`
28d1454a 369
1e4a197e
RD
370popd
371
372#----------------------------------------------------------------------
373
374# Make the Installer packages and disk image
81de4ba3 375if [ $skipdmg != yes ]; then
1e4a197e 376
85245f48
RD
377 #-----------------------------------------------
378 # The main runtime installer package
1e4a197e
RD
379
380 # Make the welcome message
0f475e8a
RD
381 case $OSX_VERSION in
382 10.4) W_MSG="the Tiger (OS X 10.4.x Intel) version of" ;;
383 10.3) W_MSG="the Panther (OS X 10.3.x) version of" ;;
384 10.2) W_MSG="the Jaguar (OS X 10.2.x) version of" ;;
46456f61 385 esac
0f475e8a
RD
386
387 if [ $universal == yes ]; then
388 W_MSG="the Universal (OS X 10.4.x and above) version of"
389 fi
85245f48
RD
390
391
1e4a197e
RD
392 cat > $RESOURCEDIR/Welcome.txt <<EOF
393Welcome!
394
85245f48 395This Installer package will install the wxPython $CHARTYPE runtime $VERSION for $W_MSG MacPython-OSX $PYVER. This includes:
1e4a197e 396
85245f48
RD
397 * The wxPython packages and modules
398 * The wxWidgets shared libraries and headers
79db03c9 399 * Some command line tool scripts, installed to /usr/local/bin.
85245f48
RD
400
401You must install onto your current boot disk, eventhough the installer does not enforce this, otherwise things will not work.
402
79db03c9 403You 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 404
1e4a197e
RD
405Build date: `date`
406EOF
407
408 # make the preflight script
409 cat > $RESOURCEDIR/preflight <<EOF
410#!/bin/sh
411# Cleanup any old install of the wxPython package
412rm -rf \$2$SITEPACKAGES/wxPython
46456f61 413rm -rf \$2$SITEPACKAGES/wx
28d1454a 414rm -rf \$2$SITEPACKAGES/$PKGDIR
1e4a197e
RD
415exit 0
416EOF
417 chmod +x $RESOURCEDIR/preflight
418
419 # make the postflight script
420 cat > $RESOURCEDIR/postflight <<EOF
421#!/bin/sh -e
422# Compile the .py files in the wxPython pacakge
28d1454a
RD
423$PYTHON \$2$PYLIB/compileall.py \$2$SITEPACKAGES/$PKGDIR
424$PYTHON -O \$2$PYLIB/compileall.py \$2$SITEPACKAGES/$PKGDIR
1e4a197e 425
c6387bc1 426# and all of the wxPython pacakge should be group writable
28d1454a
RD
427chgrp -R admin \$2$SITEPACKAGES/$PKGDIR
428chmod -R g+w \$2$SITEPACKAGES/$PKGDIR
1e4a197e
RD
429
430exit 0
431EOF
432 chmod +x $RESOURCEDIR/postflight
433
85245f48 434
1e4a197e 435
c6387bc1 436 # Build the main Installer Package...
0f475e8a 437 PKGNAME=wxPython${SHORTVER}-osx-$CHARTYPE-$TAG
48e7d325 438 if [ $PYVER != 2.3 ]; then
0f475e8a 439 PKGNAME=wxPython${SHORTVER}-osx-$CHARTYPE-$TAG-py$PYVER
48e7d325
RD
440 fi
441 rm -rf $PKGNAME.pkg
442 $PYTHON $PROGDIR/../buildpkg.py \
443 --Title=$PKGNAME \
1e4a197e 444 --Version=$VERSION \
85245f48 445 --Description="wxPython $CHARTYPE runtime $VERSION for $W_MSG MacPython-OSX $PYVER" \
1e4a197e
RD
446 --NeedsAuthorization="YES" \
447 --Relocatable="NO" \
448 --InstallOnly="YES" \
449 $INSTALLROOT \
450 $RESOURCEDIR
451
02b800ce 452 mv $PKGNAME.pkg $DMGROOT/$PKGNAME.pkg
1e4a197e 453
85245f48
RD
454 rm $RESOURCEDIR/postflight
455 rm $RESOURCEDIR/preflight
456 rm $RESOURCEDIR/Welcome.txt
1e4a197e 457
1e4a197e 458
85245f48
RD
459 #-----------------------------------------------
460 # Make a README to go on the disk image
461 cat > "$DMGROOT/README 1st.txt" <<EOF
46456f61
RD
462Welcome to wxPython!
463
85245f48
RD
464This disk image contains the following items:
465
466 wxPython${SHORTVER}-osx-$CHARTYPE-$VERSION-$KIND
467
79db03c9
RD
468 This Installer contains the wxPython runtime, compiled on a
469 $KIND OS X system, using the $CHARTYPE build of the wxWidgets
470 library. It includes the Python modules and extension
471 modules, as well as the wxWidgets libraries.
46456f61 472
79db03c9
RD
473 It is possible to have more than one version of the runtime
474 installed at once if you wish. The most recently installed
475 version will be the default wxPython, but you can choose
476 another by setting the PYTHONPATH or by using the wxversion
477 module. For more details see:
478 http://wiki.wxpython.org/index.cgi/MultiVersionInstalls
85245f48 479
85245f48
RD
480
481 uninstall_wxPython.py
482
483 A simple tool to help you manage your installed versions of
484 wxPython. It will allow you to choose from the currently
485 installed wxPython packages and to select one for
486 uninstallation. It is a text-mode tool so you can either run
487 it from a Terminal command line, or you can open it with
488 PythonLauncher and let it create a Terminal to run it in.
489
61074746
RD
490 NOTE: If you have versions prior to 2.5.3.1 installed, please
491 do run this uninstall tool to remove the older version.
492
85245f48
RD
493EOF
494
495
496
497 cp $PROGDIR/../uninstall_wxPython.py $DMGROOT
498
499
500 #-----------------------------------------------
501 # Make a disk image to hold these files
c451eded 502 dmgname=wxPython${SHORTVER}-osx-$CHARTYPE-$VERSION-$TAG-py$PYVER
85245f48
RD
503 $PROGDIR/../makedmg $DMGROOT $DMGDIR $dmgname
504
505 echo Moving $DMGDIR/$dmgname.dmg to $DESTDIR
ae4e0c7a 506 mv $DMGDIR/$dmgname.dmg $DESTDIR/$dmgname.dmg
85245f48
RD
507
508
509#---------------------------------------------------------------------------
510# Now create app bundles for the demo, docs, and tools and make another
511# disk image to hold it all.
512#---------------------------------------------------------------------------
513
514 cat > "$DMGAPPS/README 1st.txt" <<EOF
515Welcome to wxPython!
1e4a197e 516
85245f48
RD
517On this disk image you will find Demo, Tools, Docs, and etc. for
518wxPython $VERSION. Everything here is optional and you can drag them
519out of the disk image and drop them wherever you want. You will need
520to have an installed wxPython runtime to be able to use any of them.
1e4a197e 521
46456f61 522
85245f48
RD
523 wxPython Demo An application bundle version of the demo.
524 (This has it's own copy of the demo sources
525 within the bundle.)
c6387bc1 526
85245f48 527 XRCed An application for editing wxPython resource
c6387bc1
RD
528 files (XRC files.)
529
85245f48 530 PyCrust An application that provides an interactive
c6387bc1
RD
531 Python shell and also namespace inspectors.
532
b42b447c
RD
533
534
81de4ba3 535 Docs/wxDocsViewer An application that allows you to view the
dcb1fb69 536 wxWidgets documentation.
b42b447c
RD
537
538 Docs/licence License files.
539
81de4ba3 540 Docs/other A few readmes, change log, etc.
b42b447c
RD
541
542
81de4ba3 543 Samples/samples Several small sample applications that
b42b447c
RD
544 demonstrate how to use wxPython.
545
81de4ba3 546 Samples/demo A copy of the wxPython demo source code,
b42b447c
RD
547 just open the folder and run demo.pyw.
548
1e4a197e
RD
549Happy Hacking!
550EOF
551
81de4ba3 552# PyAlaMode An extension of PyCrust that includes source
c6387bc1
RD
553# file editing capabilities.
554
1e4a197e 555
b42b447c 556 # wxDocs
bf158fe6 557 if [ ! -e $TARBALLDIR/wxPython-docs-$VERSION.tar.bz2 ]; then
85245f48 558 cat > "$DMGAPPS/Docs/Build ERROR.txt" <<EOF
dcb1fb69 559
28d1454a 560The wxPython-docs tarball was not found when building this disk image!
81de4ba3
RD
561
562EOF
563
564 else
565 pushd $BUILDROOT
bf158fe6 566 tar xjvf $TARBALLDIR/wxPython-docs-$VERSION.tar.bz2
81de4ba3 567 popd
dcb1fb69 568
81de4ba3
RD
569 # Make an app to launch viewdocs.py
570 $PYTHONW $PROGDIR/../buildapp.py \
85245f48 571 --builddir=$DMGAPPS/Docs \
81de4ba3
RD
572 --name=wxDocsViewer \
573 --mainprogram=$BUILDROOT/wxPython-$VERSION/docs/viewdocs.py \
574 --iconfile=$PROGDIR/Info.icns \
575 build
dcb1fb69 576
85245f48 577 cp $BUILDROOT/wxPython-$VERSION/docs/*.zip $DMGAPPS/Docs/wxDocsViewer.app/Contents/Resources
81de4ba3 578
85245f48 579 cat > "$DMGAPPS/Docs/README 1st.txt" <<EOF
dcb1fb69
RD
580
581The wxDocsViewer application needs to be copied to your Desktop (or
582someplace else you have write access to) before you can run it, so it
583can cache some indexes within its bundle.
584
585EOF
46456f61 586
81de4ba3
RD
587 fi
588
b42b447c 589 # license files, docs, etc.
85245f48 590 pushd $DMGAPPS/Docs
b42b447c
RD
591 cp -pR $SRCROOT/wxPython/licence .
592 cp -pR $SRCROOT/wxPython/docs .
593 rm -rf docs/bin
594 rm -rf docs/xml-raw
595 mv docs other
596 popd
81de4ba3
RD
597
598
bf158fe6 599 if [ ! -e $TARBALLDIR/wxPython-demo-$VERSION.tar.bz2 ]; then
85245f48 600 cat > "$DMGAPPS/Samples/Build ERROR.txt" <<EOF
81de4ba3 601
02b800ce 602The wxPython-$VERSION-demo tarball was not found when building this disk image!
81de4ba3
RD
603
604EOF
85245f48 605 cp "$DMGAPPS/Samples/Build ERROR.txt" $DMGAPPS
81de4ba3
RD
606
607 else
608
609 # Copy the demo and samples to the disk image from the tarball
85245f48 610 pushd $DMGAPPS/Samples
bf158fe6 611 tar xjvf $TARBALLDIR/wxPython-demo-$VERSION.tar.bz2
81de4ba3
RD
612 mv wxPython-$VERSION/* .
613 rm -rf wxPython-$VERSION
0f475e8a 614 rm -f demo/b demo/.setup.sh
81de4ba3
RD
615 mv demo/demo.py demo/demo.pyw
616 popd
617
618 # Make an app bundle to run the demo
619 $PYTHONW $PROGDIR/../buildapp.py \
85245f48 620 --builddir=$DMGAPPS \
81de4ba3 621 --name="wxPython Demo" \
85245f48 622 --mainprogram=$DMGAPPS/Samples/demo/demo.pyw \
81de4ba3
RD
623 --iconfile=$PROGDIR/RunDemo.icns \
624 build
85245f48 625 cp -pR $DMGAPPS/Samples/demo/* "$DMGAPPS/wxPython Demo.app/Contents/Resources"
81de4ba3
RD
626 fi
627
b42b447c 628
46456f61
RD
629 # Make an app bundle to launch PyCrust
630 $PYTHONW $PROGDIR/../buildapp.py \
85245f48 631 --builddir=$DMGAPPS \
46456f61 632 --name=PyCrust \
79db03c9 633 --mainprogram=$INSTALLROOT$BINPREFIX/pycrust.py \
46456f61
RD
634 --iconfile=$PROGDIR/PieShell.icns \
635 build
636
79db03c9
RD
637## TODO: PyAlaMode needs tweaked to be able to run from a bundle. It
638## needs to know to ignore command line parameters and etc...
85245f48
RD
639# # and PyAlaMode
640# $PYTHONW $PROGDIR/../buildapp.py \
641# --builddir=$DMGAPPS \
642# --name=PyAlaMode \
79db03c9 643# --mainprogram=$INSTALLROOT$BINPREFIX/pyalamode.py \
85245f48
RD
644# --iconfile=$PROGDIR/PieShell.icns \
645# build
c6387bc1 646
46456f61
RD
647 # Make an app to launch XRCed
648 $PYTHONW $PROGDIR/../buildapp.py \
85245f48 649 --builddir=$DMGAPPS \
46456f61 650 --name=XRCed \
79db03c9 651 --mainprogram=$INSTALLROOT$BINPREFIX/xrced.py \
46456f61
RD
652 --iconfile=$PROGDIR/XRCed.icns \
653 build
654
81de4ba3 655
1e4a197e 656
85245f48 657 # and then finally make a disk image containing everything
48e7d325 658 dmgname=wxPython${SHORTVER}-osx-docs-demos-$VERSION-$TAG-py$PYVER
85245f48 659 $PROGDIR/../makedmg $DMGAPPS $DMGDIR $dmgname
1e4a197e 660
85245f48 661 echo Moving $DMGDIR/$dmgname.dmg to $DESTDIR
ae4e0c7a 662 mv $DMGDIR/$dmgname.dmg $DESTDIR/$dmgname.dmg
1e4a197e
RD
663fi
664
665
666# Cleanup build/install dirs
81de4ba3 667if [ $skipclean != yes ]; then
1e4a197e
RD
668 echo "Cleaning up..."
669 rm -rf $TMPDIR
670else
671 echo "Cleanup is disabled. You should remove $TMPDIR when finished"
672fi
673
0f475e8a 674exit 0