]>
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 [panther|jaguar] [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"