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.2 by root, Wed Aug 20 00:46:12 2008 UTC vs.
Revision 1.20 by root, Mon Dec 26 03:58:12 2011 UTC

1#!/bin/bash 1#!/opt/local/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 4
5# port install libsdl +no_x11 libsdl_mixer libsdl_image libvorbis libpng jpeg pango db46 libogg p5-libwww-perl p5-yaml db52
6# port install bash wget
7# need to patch libSDL_image from /opt/local/lib/libjpeg.dylib to ./libjpeg.8.dylib
8# ln -s db46/db.h /opt/local/include
9# ln -s db46/libdb.dylib /opt/local/lib
10# /opt/local/bin/cpan Pod::POM
11
12#export MACOSX_DEPLOYMENT_TARGET=10.3 # maybe it helps
13#export MACOSX_DEPLOYMENT_TARGET=10.5 # nope
14
15cvs update
16
5PERL=/opt/local 17PREFIX=/opt/local
6PERLLIB=/usr/lib/perl5 18PERL=$PREFIX
7PANGO=1.6.0 19DB1=4
20DB2=6
21
22ln -sf $PREFIX/include/db$DB1$DB2/db.h $PREFIX/include/db.h
23rm -f $PREFIX/lib/libdb-$DB1.$DB2.dylib
24cp -p $PREFIX/lib/db$DB1$DB2/libdb-$DB1.$DB2.dylib $PREFIX/lib/libdb-$DB1.$DB2.dylib
25
26eval $(perl -V:sitelib)
27PERLLIB=$sitelib
28
29OPTLIBS=(
30 db-4.6
31 glib-2.0.0 gobject-2.0.0 gmodule-2.0.0
32 pango-1.0.0 pangoft2-1.0.0
33 SDL-1.2.0 SDL_mixer-1.2.0 SDL_image-1.2.0
34 vorbisfile vorbis.0 ogg.0
35 png14.14 jpeg.8 tiff.3 z.1
36 fontconfig.1 expat.1 freetype.6 intl.8 iconv.2
37)
38
39declare -A deliantrified
40
41deliantrify_lib() {
42 local lib="$1"
43
44 [ "${deliantrified["$lib"]}" ] && exit 0
45 deliantrified["$lib"]=+
46
47 (
48 cd $PREFIX/lib || exit 69
49 echo "deliantrifying $lib"
50 cp -p lib$lib.dylib libdeliantra-$lib.dylib || exit 68
51 install_name_tool -id libdeliantra-$lib.dylib libdeliantra-$lib.dylib
52 for lib2 in $(otool -L libdeliantra-$lib.dylib | perl -ne 'print "$1\n" if m%'"$PREFIX/lib/lib"'(\S+).dylib%'); do
53 deliantrify_lib "$lib2"
54 install_name_tool -change lib$lib2.dylib libdeliantra-$lib2.dylib libdeliantra-$lib.dylib
55 done
56 ) || exit
57}
58
59# don't ask...
60#for lib in "${OPTLIBS[@]}"; do
61# deliantrify_lib "$lib"
62#done
8 63
9umask 022 64umask 022
10 65
11if false; then 66if true; then
12 for mod in AnyEvent EV JSON-XS Deliantra Compress-LZF BDB; do 67 for mod in common-sense AnyEvent EV JSON-XS Compress-LZF BDB Guard deliantra/Deliantra; do
13 ( 68 (
69 mkdir -p /root/src/$mod || exit 77
14 cd /root/src/$mod 70 cd /root/src/$mod
71 set -x
72 pwd
73 rsync -avPessh 10.0.0.1:src/$mod/. . --del --exclude "*.tar.gz" --delete-excluded
15 $PERL/bin/perl Makefile.PL </dev/null 74 $PERL/bin/perl Makefile.PL </dev/null
16 make clean 75 make clean
17 $PERL/bin/perl Makefile.PL </dev/null 76 $PERL/bin/perl Makefile.PL </dev/null
18 make install || exit 77 make install || exit
19 make clean 78 make clean
20 ) 79 ) || exit
21 done 80 done
22fi 81fi
23 82
83exit 0
84
24if true; then 85if true; then
25 86
26( 87(
27 perl -ne '/^(resources\/.*)/ and print "$1;root/Deliantra/Client/private/$1\n"' <MANIFEST 88 perl -ne '/^(resources\/.*)/ and print "$1;root/Deliantra/Client/private/$1\n"' <MANIFEST
28 89
29 echo "docwiki.pst;root/Deliantra/Client/private/resources/docwiki.pst" 90 echo "docwiki.pst;root/Deliantra/Client/private/resources/docwiki.pst"
30 91
31#pangoversion;root/pangoversion 92#pangoversion;root/pangoversion
32#/opt/local/lib/libglib-2.0.so.0;shlib/darwin-2level/libglib-2.0.dylib 93#/opt/local/lib/libglib-2.0.so.0;shlib/darwin-multi-2level/libglib-2.0.dylib
33#/lib/libgcc_s.so.1;shlib/darwin-2level/libgcc_s.so.1 94#/lib/libgcc_s.so.1;shlib/darwin-multi-2level/libgcc_s.so.1
34#/opt/local/lib/libstdc++.so.6;shlib/darwin-2level/libstdc++.so.6 95#/opt/local/lib/libstdc++.so.6;shlib/darwin-multi-2level/libstdc++.so.6
35#/opt/local/lib/libaudio.so.2;shlib/darwin-2level/libaudio.so.2 96#/opt/local/lib/libaudio.so.2;shlib/darwin-multi-2level/libaudio.so.2
36 97
37 ( echo "[Pango]"; echo "ModuleFiles = pango.modules" ) > pango.rc 98 ( echo "[Pango]"; echo "ModuleFiles = pango.modules" ) > pango.rc
38 echo "pango.rc;root/pango.rc" 99 echo "pango.rc;root/pango.rc"
39 100
40 ( 101 (
44 echo "$base $rest" >&5 105 echo "$base $rest" >&5
45 done 106 done
46 ) 5>pango.modules 107 ) 5>pango.modules
47 echo "pango.modules;root/pango.modules" 108 echo "pango.modules;root/pango.modules"
48 109
49 for lib in \ 110 for lib in "${OPTLIBS[@]}"; do
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" 111 echo "/opt/local/lib/lib$lib.dylib;shlib/darwin-multi-2level/lib$lib.dylib"
59 done 112 done
60 113
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>
81EOF
82 echo "fonts.conf;root/fonts.conf"
83
84) >addlist 114) >addlist
85 115
86#cat pango.modules;exit 116#cat pango.modules;exit
87 117
88trap "rm -f addlist pango.rc pango.modules fonts.conf" 0 118trap "rm -f addlist pango.rc pango.modules fonts.conf" 0
89 119
90cd /root/src/deliantra/Deliantra-Client
91
92#$PERL/bin/perl Makefile.PL 120$PERL/bin/perl Makefile.PL
93#make clean 121make clean
94#$PERL/bin/perl Makefile.PL 122$PERL/bin/perl Makefile.PL
95make install || exit 123make install || exit
96 124
97DYLD_LIBRARY_PATH=/opt/local/lib \ 125DYLD_LIBRARY_PATH=/opt/local/lib \
98$PERL/bin/pp -C \ 126$PERL/bin/pp -C \
99 -z 9 \ 127 -z 9 \
151 <key>LSMinimumSystemVersion</key> 179 <key>LSMinimumSystemVersion</key>
152 <string>10.5</string> 180 <string>10.5</string>
153 <key>NSAppleScriptEnabled</key> 181 <key>NSAppleScriptEnabled</key>
154 <false/> 182 <false/>
155 <key>NSHumanReadableCopyright</key> 183 <key>NSHumanReadableCopyright</key>
156 <string>Deliantra MORPG Client - Copyright 2008 The Deliantra Team</string> 184 <string>Deliantra MORPG Client - Copyright 2008,2009 The Deliantra Team</string>
157</dict> 185</dict>
158</plist> 186</plist>
159EOF 187EOF
160 188
161rm -rf dmg 189rm -rf dmg
162mkdir dmg 190mkdir dmg
163 191
164mv "$APP.app" dmg/ 192mv "$APP.app" dmg/
165 193
194cat >dmg/README.txt <<EOF
195Hello!
196
197This disk image contains the Deliantra MORPG game client.
198
199The client has been compiled for Intel systems only.
200
201The client uses a lot of right mouse button click pop-up menus, to emulate
202a right-click with a mouse that has only one button, use ctrl-click.
203
204To play it, simply double-click it, then select a good graphics resolution
205in the Setup => Graphics tab and then go to Setup => Login, enter a nickname
206(no spaces, only ASCII letters supported) and a password, then hit Login.
207
208You can also install the client application by dragging it onto your
209harddisk or anywhere else, but it should play perfectly fine from the disk
210image.
211
212The game stores configuration settings, map data, music and other resources
213in a hidden directory called .deliantra in your home directory.
214
215The script "Reset Configuration" will reset the configuration and delete
216any downloaded resources. You can use this when you no longer want to play
217Deliantra, or when you have problems with the settings (window too large
218etc.).
219
220Unfortunately, Mac OS X has quite buggy OpenGL support: make sure your
221monitor cable is plugged in correctly when you can't go into fullscreen or
222when the graphics look broken.
223
224See http://www.deliantra.net/ for more info.
225
226EOF
227
228cat >dmg/"Reset Configuration" <<EOF
229#!/bin/sh
230
231rm -rf ~/.deliantra
232
233echo
234echo
235echo
236echo
237echo
238echo Configuration/Cache Cleared
239
240EOF
241chmod 755 dmg/"Reset Configuration"
242
166# now, the last third, putting all this into a dmg 243# now, the last third, putting all this into a dmg
167 244
245DMG="Deliantra_MORPG_Client-$VER".dmg
246
168hdiutil create -srcfolder dmg -volname "Deliantra MORPG Client" -ov -format UDZO ~user/"Deliantra_MORPG_Client-$VER".dmg 247hdiutil create -srcfolder dmg -volname "Deliantra MORPG Client" -ov -format UDZO ~user/"$DMG"
169ls -l ~user/"Deliantra_MORPG_Client-$VER".dmg 248ls -l ~user/"$DMG"
170rm -rf dmg 249rm -rf dmg
171 250
251chmod 644 ~user/$DMG
252echo http://data.plan9.de/"$DMG"
253rsync -avPessh ~user/"$DMG" ruth:/var/www/data.plan9.de/.
172 254
173 255
256

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines