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

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines