ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/cf.schmorp.de/Deliantra-Client/makebin.osx
Revision: 1.19
Committed: Sat Apr 24 08:05:16 2010 UTC (14 years, 2 months ago) by root
Branch: MAIN
Changes since 1.18: +6 -8 lines
Log Message:
*** empty log message ***

File Contents

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