source: git/buildmacosx.sh @ 1324d6c

RELEASE/1.1RELEASE/1.2debug-cidebug-ci-sanitisersstereowalls-data
Last change on this file since 1324d6c was 1324d6c, checked in by Olly Betts <olly@…>, 15 years ago

Say "wxWidgets" instead of "wxWindows" consistently.
Require wxWidgets 2.6.0 or newer - 2.4 is really old now.

git-svn-id: file:///home/survex-svn/survex/branches/survex-1_1@3341 4b37db11-9a0c-4f06-9ece-9ab7cdaee568

  • Property mode set to 100755
File size: 3.6 KB
Line 
1#!/bin/sh
2#
3# Note: this script requires MacOS X 10.2 or greater, and builds diskimages
4# which require MacOS X 10.1 or greater to install.
5#
6# Run from the unpacked survex-1.1.X directory like so:
7#
8#   ./buildmacosx.sh --install-wx
9#
10# This will automatically download and temporarily install wxWidgets
11# (this script is smart enough not to download or build it if it already
12# has).
13#
14# If you already have wxWidgets installed permanently, use:
15#
16#   ./buildmacosx.sh
17#
18# If wxWidgets is installed somewhere such that wx-config isn't on your
19# PATH you need to indicate where wx-config is by running this script
20# something like this:
21#
22#   env WXCONFIG=/path/to/wx-config ./buildmacosx.sh
23#
24# If using a pre-installed wxWidgets, note that it must satisfy the
25# following requirements:
26#   - It must be built with OpenGL support (--with-opengl).
27#   - It must be the Carbon version.
28#   - It must be a "non-unicode" build.
29#
30
31set -e
32
33WXVERSION=2.7.0-1
34
35if test "x$1" = "x--install-wx" ; then
36  if test -x WXINSTALL/bin/wx-config ; then
37    :
38  else
39    prefix=`pwd`/WXINSTALL
40    test -f wxWidgets-$WXVERSION.tar.bz2 || \
41      curl -O ftp://ftp.wxwidgets.org/pub/$WXVERSION/wxWidgets-$WXVERSION.tar.bz2
42    test -d wxWidgets-$WXVERSION || tar jxvf wxWidgets-$WXVERSION.tar.bz2
43    test -d wxWidgets-$WXVERSION/build || mkdir wxWidgets-$WXVERSION/build
44    # wx's Carbon glcanvas is unsatisfactory, so for now we use our own.
45    cp src/carbon-glcanvas.cpp wxWidgets-$WXVERSION/src/mac/carbon/
46    cd wxWidgets-$WXVERSION/build
47    ../configure --disable-shared --prefix="$prefix" --with-opengl
48    make -s
49    make -s install
50    cd ../..
51  fi
52  WXCONFIG=`pwd`/WXINSTALL/bin/wx-config
53fi
54
55test -n "$WXCONFIG" || WXCONFIG=`which wx-config`
56if test -z "$WXCONFIG" ; then
57  echo "WXCONFIG not set and wx-config not on your PATH"
58  exit 1
59fi
60# Force static linking so the user doesn't need to install wxWidgets.
61WXCONFIG=$WXCONFIG' --static'
62export WXCONFIG
63rm -rf *.dmg Survex macosxtmp
64D=`pwd`/Survex
65T=`pwd`/macosxtmp
66./configure --prefix="$D" --bindir="$D" --mandir="$T"
67make
68make install
69#mv Survex/survex Survex/Survex
70
71# Construct the Aven application bundle.
72cp -r lib/Aven.app Survex
73cp -r $D/share/survex/* Survex/Aven.app/Contents/Resources/
74mv Survex/aven Survex/Aven.app/Contents/MacOS/
75rm -f Survex/share/survex/aven.txf
76rm -rf Survex/share/survex/icons
77
78size=`du -s Survex|sed 's/[^0-9].*//'`
79# Allow 1000 extra sectors for various overheads (500 wasn't enough).
80sectors=`expr 1000 + $size`
81# Partition needs to be at least 4M and sectors are 512 bytes.
82if test $sectors -lt 8192 ; then
83  sectors=8192
84fi
85echo "Creating new blank image survex-macosx.dmg of $sectors sectors"
86# This creates the diskimage file and initialises it as an HFS+ volume.
87hdiutil create -sectors $sectors survex-macosx -layout NONE -fs HFS+ -volname Survex
88
89echo "Presenting image to the filesystems for mounting."
90# This will mount the image onto the Desktop.
91# Get the name of the device we mounted it on...
92dev=`hdid survex-macosx.dmg|tail -1|sed 's!/dev/\([!-~]*\).*!\1!;'`
93echo "Mounted on device $dev, copying files into image."
94ditto -rsrcFork Survex /Volumes/Survex/Survex
95ditto lib/INSTALL.OSX /Volumes/Survex/INSTALL
96echo "Detaching image."
97hdiutil detach $dev
98
99version=`sed 's/.*AM_INIT_AUTOMAKE([^,]*, *\([0-9.]*\).*/\1/p;d' configure.in`
100file=survex-macosx-`echo $version`.dmg
101echo "Compressing image file survex-macosx.dmg to $file"
102# This needs MacOS X 10.1 or above for unpacking - change UDZO to UDCO to allow
103# the dmg to be unpacked on 10.0 as well:
104hdiutil convert survex-macosx.dmg -format UDZO -o "$file"
105rm survex-macosx.dmg
106
107echo "$file created successfully."
Note: See TracBrowser for help on using the repository browser.