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.3 by root, Wed Aug 20 18:26:03 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
165 193
166cat >dmg/README.txt <<EOF 194cat >dmg/README.txt <<EOF
167Hello! 195Hello!
168 196
169This disk image contains the Deliantra MORPG game client. 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.
170 203
171To play it, simply double-click it, then select a good graphics resolution 204To play it, simply double-click it, then select a good graphics resolution
172in the Setup => Graphics tab and then go to Setup => Login, enter a nickname 205in the Setup => Graphics tab and then go to Setup => Login, enter a nickname
173(no spaces, only ASCII letters supported) and a password, then hit Login. 206(no spaces, only ASCII letters supported) and a password, then hit Login.
174 207
207EOF 240EOF
208chmod 755 dmg/"Reset Configuration" 241chmod 755 dmg/"Reset Configuration"
209 242
210# now, the last third, putting all this into a dmg 243# now, the last third, putting all this into a dmg
211 244
245DMG="Deliantra_MORPG_Client-$VER".dmg
246
212hdiutil 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"
213ls -l ~user/"Deliantra_MORPG_Client-$VER".dmg 248ls -l ~user/"$DMG"
214rm -rf dmg 249rm -rf dmg
215 250
251chmod 644 ~user/$DMG
252echo http://data.plan9.de/"$DMG"
253rsync -avPessh ~user/"$DMG" ruth:/var/www/data.plan9.de/.
216 254
217 255
256

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines