ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/cf.schmorp.de/Deliantra-Client/makebin.osx
Revision: 1.5
Committed: Mon Sep 1 09:17:46 2008 UTC (15 years, 10 months ago) by root
Branch: MAIN
Changes since 1.4: +5 -0 lines
Log Message:
*** empty log message ***

File Contents

# Content
1 #!/bin/bash
2
3 # Convert a gtk2-perl program to a standalone OS X binary
4
5 PERL=/opt/local
6 PERLLIB=/usr/lib/perl5
7 PANGO=1.6.0
8
9 umask 022
10
11 if false; then
12 for mod in AnyEvent EV JSON-XS Deliantra Compress-LZF BDB; do
13 (
14 cd /root/src/$mod
15 $PERL/bin/perl Makefile.PL </dev/null
16 make clean
17 $PERL/bin/perl Makefile.PL </dev/null
18 make install || exit
19 make clean
20 )
21 done
22 fi
23
24 if true; then
25
26 (
27 perl -ne '/^(resources\/.*)/ and print "$1;root/Deliantra/Client/private/$1\n"' <MANIFEST
28
29 echo "docwiki.pst;root/Deliantra/Client/private/resources/docwiki.pst"
30
31 #pangoversion;root/pangoversion
32 #/opt/local/lib/libglib-2.0.so.0;shlib/darwin-2level/libglib-2.0.dylib
33 #/lib/libgcc_s.so.1;shlib/darwin-2level/libgcc_s.so.1
34 #/opt/local/lib/libstdc++.so.6;shlib/darwin-2level/libstdc++.so.6
35 #/opt/local/lib/libaudio.so.2;shlib/darwin-2level/libaudio.so.2
36
37 ( echo "[Pango]"; echo "ModuleFiles = pango.modules" ) > pango.rc
38 echo "pango.rc;root/pango.rc"
39
40 (
41 grep ^/opt /opt/local/etc/pango/pango.modules | while read so rest; do
42 base=$(basename "$so")
43 echo "$so;root/$base"
44 echo "$base $rest" >&5
45 done
46 ) 5>pango.modules
47 echo "pango.modules;root/pango.modules"
48
49 for lib in \
50 db-4.6 \
51 glib-2.0.0 gobject-2.0.0 gmodule-2.0.0 \
52 pango-1.0.0 pangoft2-1.0.0 \
53 SDL-1.2.0 SDL_mixer-1.2.0 SDL_image-1.2.0 \
54 vorbisfile vorbis.0 ogg.0 \
55 png12 jpeg.62 z.1 \
56 fontconfig.1 expat.1 freetype.6 intl.8 iconv.2;
57 do
58 echo "/opt/local/lib/lib$lib.dylib;shlib/darwin-2level/lib$lib.dylib"
59 done
60
61 cat >>fonts.conf <<EOF
62 <?xml version="1.0"?>
63 <!DOCTYPE fontconfig SYSTEM "fonts.dtd">
64 <fontconfig>
65
66 <match target="pattern"> <test qual="any" name="family"> <string>mono</string> </test> <edit name="family" mode="assign"> <string>monospace</string> </edit> </match>
67
68 <match target="pattern"> <test qual="any" name="family"> <string>sans serif</string> </test> <edit name="family" mode="assign"> <string>sans-serif</string> </edit> </match>
69
70 <match target="pattern"> <test qual="any" name="family"> <string>sans</string> </test> <edit name="family" mode="assign"> <string>sans-serif</string> </edit> </match>
71
72 <cachedir>fontconfig-cache</cachedir>
73
74 <config>
75 <blank>
76 <int>0x0020</int><int>0x00A0</int><int>0x00AD</int><int>0x034F</int><int>0x0600</int><int>0x0601</int><int>0x0602</int><int>0x0603</int><int>0x06DD</int><int>0x070F</int><int>0x115F</int><int>0x1160</int><int>0x1680</int><int>0x17B4</int><int>0x17B5</int><int>0x180E</int><int>0x2000</int><int>0x2001</int><int>0x2002</int><int>0x2003</int><int>0x2004</int><int>0x2005</int><int>0x2006</int><int>0x2007</int><int>0x2008</int><int>0x2009</int><int>0x200A</int><int>0x200B</int><int>0x200C</int><int>0x200D</int><int>0x200E</int><int>0x200F</int><int>0x2028</int><int>0x2029</int><int>0x202A</int><int>0x202B</int><int>0x202C</int><int>0x202D</int><int>0x202E</int><int>0x202F</int><int>0x205F</int><int>0x2060</int><int>0x2061</int><int>0x2062</int><int>0x2063</int><int>0x206A</int><int>0x206B</int><int>0x206C</int><int>0x206D</int><int>0x206E</int><int>0x206F</int><int>0x2800</int><int>0x3000</int><int>0x3164</int><int>0xFEFF</int><int>0xFFA0</int><int>0xFFF9</int><int>0xFFFA</int><int>0xFFFB</int>
77 </blank>
78 </config>
79
80 </fontconfig>
81 EOF
82 echo "fonts.conf;root/fonts.conf"
83
84 ) >addlist
85
86 #cat pango.modules;exit
87
88 trap "rm -f addlist pango.rc pango.modules fonts.conf" 0
89
90 cd /root/src/deliantra/Deliantra-Client
91
92 #$PERL/bin/perl Makefile.PL
93 #make clean
94 #$PERL/bin/perl Makefile.PL
95 make install || exit
96
97 DYLD_LIBRARY_PATH=/opt/local/lib \
98 $PERL/bin/pp -C \
99 -z 9 \
100 -M AnyEvent::Impl::EV \
101 -M attributes \
102 -a "blib/arch/auto/Deliantra/Client/Client.bundle;lib/auto/Deliantra/Client/Client.bundle" \
103 -o deliantra -A addlist bin/deliantra || exit
104
105 fi
106
107 # for other OS'es, we would be finished now, but for OS X, this is just one third of the process :/
108 # create the app
109
110 VER=$(perl -e 'require "DC.pm"; print $DC::VERSION')
111 APP="Deliantra MORPG Client $VER"
112
113 rm -rf "Deliantra MORPG Client "*.app
114
115 mkdir "$APP".app "$APP".app/Contents "$APP".app/Contents/MacOS "$APP".app/Contents/Resources
116
117 ln deliantra "$APP".app/Contents/MacOS/run
118 ln osx/deliantra.icns "$APP".app/Contents/Resources/
119
120 cat >"$APP.app/Contents/Info.plist" <<EOF
121 <?xml version="1.0" encoding="UTF-8"?>
122 <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
123 <plist version="1.0">
124 <dict>
125 <key>CFBundleDevelopmentRegion</key>
126 <string>English</string>
127 <key>CFBundleDisplayName</key>
128 <string>Deliantra MORPG Client</string>
129 <key>CFBundleExecutable</key>
130 <string>run</string>
131 <key>CFBundleGetInfoString</key>
132 <string>Deliantra MORPG Client $VER (www.deliantra.net)</string>
133 <key>CFBundleIconFile</key>
134 <string>deliantra.icns</string>
135 <key>CFBundleIdentifier</key>
136 <string>net.deliantra.client</string>
137 <key>CFBundleInfoDictionaryVersion</key>
138 <string>6.0</string>
139 <key>CFBundleName</key>
140 <string>Deliantra MORPG Client</string>
141 <key>CFBundlePackageType</key>
142 <string>APPL</string>
143 <key>CFBundleShortVersionString</key>
144 <string>$VER</string>
145 <key>CFBundleVersionString</key>
146 <string>$VER.$(date "+%Y.%m.%d.%H.%M.%S")</string>
147 <key>CFBundleSignature</key>
148 <string>????</string>
149 <key>LSHasLocalizedDisplayName</key>
150 <false/>
151 <key>LSMinimumSystemVersion</key>
152 <string>10.5</string>
153 <key>NSAppleScriptEnabled</key>
154 <false/>
155 <key>NSHumanReadableCopyright</key>
156 <string>Deliantra MORPG Client - Copyright 2008 The Deliantra Team</string>
157 </dict>
158 </plist>
159 EOF
160
161 rm -rf dmg
162 mkdir dmg
163
164 mv "$APP.app" dmg/
165
166 cat >dmg/README.txt <<EOF
167 Hello!
168
169 This disk image contains the Deliantra MORPG game client.
170
171 The client has been compiled for Intel systems only.
172
173 The client uses a lot of right mouse button click pop-up menus, to emulate
174 a right-click with a mouse that has only one button, use ctrl-click.
175
176 To play it, simply double-click it, then select a good graphics resolution
177 in the Setup => Graphics tab and then go to Setup => Login, enter a nickname
178 (no spaces, only ASCII letters supported) and a password, then hit Login.
179
180 You can also install the client application by dragging it onto your
181 harddisk or anywhere else, but it should play perfectly fine from the disk
182 image.
183
184 The game stores configuration settings, map data, music and other resources
185 in a hidden directory called .deliantra in your home directory.
186
187 The script "Reset Configuration" will reset the configuration and delete
188 any downloaded resources. You can use this when you no longer want to play
189 Deliantra, or when you have problems with the settings (window too large
190 etc.).
191
192 Unfortunately, Mac OS X has quite buggy OpenGL support: make sure your
193 monitor cable is plugged in correctly when you can't go into fullscreen or
194 when the graphics look broken.
195
196 See http://www.deliantra.net/ for more info.
197
198 EOF
199
200 cat >dmg/"Reset Configuration" <<EOF
201 #!/bin/sh
202
203 rm -rf ~/.deliantra
204
205 echo
206 echo
207 echo
208 echo
209 echo
210 echo Configuration/Cache Cleared
211
212 EOF
213 chmod 755 dmg/"Reset Configuration"
214
215 # now, the last third, putting all this into a dmg
216
217 DMG="Deliantra_MORPG_Client-$VER".dmg
218
219 hdiutil create -srcfolder dmg -volname "Deliantra MORPG Client" -ov -format UDZO ~user/"$DMG"
220 ls -l ~user/"$DMG"
221 rm -rf dmg
222
223 chmod 644 ~user/$DMG
224 echo http://data.plan9.de/"$DMG"
225 rsync -avPessh ~user/"$DMG" ruth:/var/www/data.plan9.de/.
226
227
228