source: git/buildmacosx.sh @ 2032841

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

buildmacosx.sh,configure.in,lib/Info.plist.in: Make buildmacosx.sh
work.

git-svn-id: file:///home/survex-svn/survex/trunk@3514 4b37db11-9a0c-4f06-9ece-9ab7cdaee568

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