ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/deliantra/Deliantra-Client/makebin.osx
(Generate patch)

Comparing deliantra/Deliantra-Client/makebin.osx (file contents):
Revision 1.1 by root, Tue Aug 19 21:48:28 2008 UTC vs.
Revision 1.17 by root, Sat Apr 24 06:27:40 2010 UTC

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

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines