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

Comparing deliantra/Deliantra-Client/util/gatherer (file contents):
Revision 1.1 by root, Fri Dec 30 04:17:19 2011 UTC vs.
Revision 1.4 by root, Fri Dec 30 06:52:07 2011 UTC

1#!/bin/bash 1#!/bin/bash
2
3# this gem of a hack gathers all fiels required by the client for the platform
4# by deep magic, it works on osx, linux and windows. on MY osx, linux
5# and windows, that is.
2 6
3STRIP="strip" 7STRIP="strip"
4LIBEXT=so 8LIBEXT=so
5LIB0=so.? 9LIB0=so.?
6SO=so 10SO=so
7SYSLIB=/usr/lib 11SYSLIB=/usr/lib
8MAKE=make 12MAKE=make
9ARCHNAME=x86 13ARCHNAME=x86
10GENPACK_ENVVARS= 14GENPACK_ENVVARS="LD_LIBRARY_PATH=."
11 15
12umask 022 16umask 022
13 17
14if [ "$(uname -s)" = CYGWIN_NT-5.0 ]; then 18if [ "$(uname -s)" = CYGWIN_NT-5.0 ]; then
15 . ~/.setenv 19 . ~/.setenv
36elif [ "$(uname -s)" = Darwin ]; then 40elif [ "$(uname -s)" = Darwin ]; then
37 OS=darwin 41 OS=darwin
38 URLADER=-osx105 42 URLADER=-osx105
39 PANGO=1.6.0 43 PANGO=1.6.0
40 PERL=/opt/local/bin/perl 44 PERL=/opt/local/bin/perl
45 GENPACK_ENVVARS="DYLD_LIBRARY_PATH=."
41 46
42 SYSLIB=/opt/local/lib 47 SYSLIB=/opt/local/lib
43 LIB0=dylib 48 LIB0=dylib
44 SO=bundle 49 SO=bundle
45 STRIP="strip -x" 50 STRIP="strip -x"
66 71
67export EV_EVENTFD=0 72export EV_EVENTFD=0
68export EV_INOTIFY=0 73export EV_INOTIFY=0
69export EV_SIGNALFD=0 74export EV_SIGNALFD=0
70 75
71if false; then 76if true; then
77 for mod in deliantra/Deliantra deliantra/Deliantra-Client; do
72# for mod in common-sense AnyEvent EV JSON-XS Deliantra Compress-LZF BDB Guard CFPlus; do 78# for mod in common-sense AnyEvent EV JSON-XS deliantra/Deliantra Compress-LZF BDB Guard deliantra/Deliantra-Client; do
73 for mod in CFPlus; do 79# for mod in CFPlus; do
74 ( 80 (
75 cd /root/src/$mod 81 cd /root/src/$mod
82 cvs update -AdP
76 $PERL Makefile.PL </dev/null 83 $PERL Makefile.PL </dev/null >/dev/null
77 $MAKE clean 84 $MAKE clean >/dev/null
78 $PERL Makefile.PL </dev/null 85 $PERL Makefile.PL </dev/null >/dev/null
79 $MAKE install || exit 86 if ! $MAKE install >log 2>&1; then
87 cat log
88 exit
89 fi
90 rm -f log
80 $MAKE clean 91 $MAKE clean >/dev/null
81 ) 92 ) || exit
82 done 93 done
83fi 94fi
84 95
85cat <<EOF >"$DIST"/pango.rc 96cat <<EOF >"$DIST"/pango.rc
86[Pango] 97[Pango]
167 178
168 for (@glob) { 179 for (@glob) {
169 if (-d $_) { 180 if (-d $_) {
170 system "rsync", "-aR", $_, "$ENV{DIST}/pm/."; 181 system "rsync", "-aR", $_, "$ENV{DIST}/pm/.";
171 } else { 182 } else {
172 File::Path::make_path "$ENV{OSDIST}/pm/" . dirname $_; 183 File::Path::mkpath "$ENV{OSDIST}/pm/" . dirname $_;
173 File::Copy::syscopy "$_", "$ENV{OSDIST}/pm/$_" 184 File::Copy::syscopy "$_", "$ENV{OSDIST}/pm/$_"
174 or die "$ENV{OSDIST}/pm/$_: $!"; 185 or die "$ENV{OSDIST}/pm/$_: $!";
175 186
176 if (s/\.pm$//) { 187 if (s/\.pm$//) {
177 $auto = "auto/$_"; 188 $auto = "auto/$_";
178 189
179 for my $glob ("*.'$SO'", "autosplit.ix", "*.al") { 190 for my $glob ("*.'$SO'", "autosplit.ix", "*.al") {
180 for (bsd_glob "$auto/$glob", 0) { 191 for (bsd_glob "$auto/$glob", 0) {
181 File::Path::make_path "$ENV{OSDIST}/pm/" . dirname $_; 192 File::Path::mkpath "$ENV{OSDIST}/pm/" . dirname $_;
182 File::Copy::syscopy "$_", "$ENV{OSDIST}/pm/$_"; 193 File::Copy::syscopy "$_", "$ENV{OSDIST}/pm/$_";
183 } 194 }
184 } 195 }
185 } 196 }
186 } 197 }
234} 245}
235 246
236( 247(
237 cd "$DIST" 248 cd "$DIST"
238 249
239 # # patch braindamaged pango 250 cp -p "$PERL" .
240 if [ "$OS" != windows ]; then
241 perl -pe 's{/u(?=sr/lib(32)?/pango)}{/\x00}g; s{\Q'$PANGO'\E\x00}{y.t.u\x00}g' <$SYSLIB/libpango-1.0.$LIB0 >libpango-1.0.$LIB0
242 chmod 755 libpango-1.0.$LIB0
243 fi
244 251
245 if [ "$OS" = windows ]; then 252 if [ "$OS" = windows ]; then
246 cp -p $SYSLIB/libvorbisfile-3.dll $SYSLIB/mikmod.dll $SYSLIB/libpng12-0.dll . 253 cp -p $SYSLIB/libvorbisfile-3.dll $SYSLIB/mikmod.dll $SYSLIB/libpng12-0.dll .
247 cp /root/src/CFPlus/util/splash.bmp . 254 cp /root/src/CFPlus/util/splash.bmp .
248 chmod -R u+rwX pm/auto 255 chmod -R u+rwX pm/auto
256
257 # convert perl to a non-console-app
258 $PERL -MWin32::Exe -e '$e = new Win32::Exe"perl.exe"; $e->set_subsystem_windows; $e->write'
259
249 else 260 else
261 # patch braindamaged pango
262 perl -pe 's{/u(?=sr/lib(32)?/pango)}{/\x00}g; s{\Q'$PANGO'\E\x00}{y.t.u\x00}g' <$SYSLIB/libpango-1.0.$LIB0 >libpango-1.0.$LIB0
263 chmod 755 libpango-1.0.$LIB0
264
250 for lib in mikmod vorbisfile; do 265 for lib in mikmod vorbisfile; do
251 cp -p $SYSLIB/lib$lib.$LIB0 . 266 cp -p $SYSLIB/lib$lib.$LIB0 .
252 chmod 755 lib$lib.$LIB0 267 chmod 755 lib$lib.$LIB0
253 done 268 done
254 fi 269 fi
255
256 cp -p "$PERL" .
257 270
258 for so in $(find . -name "*.$SO" -o -name "*.$LIBEXT" -o -name "*.$LIB0") perl; do 271 for so in $(find . -name "*.$SO" -o -name "*.$LIBEXT" -o -name "*.$LIB0") perl; do
259 add_deps "$so" 272 add_deps "$so"
260 done 273 done
261 274
313 $STRIP $(find . -name "*.$SO" -o -name "*.$LIBEXT" -o -name "*.$LIB0") perl 326 $STRIP $(find . -name "*.$SO" -o -name "*.$LIBEXT" -o -name "*.$LIB0") perl
314) 327)
315 328
316printf -- urlader$URLADER >"$DIST".urlader 329printf -- urlader$URLADER >"$DIST".urlader
317 330
318echo >"$DIST".genpack genpack deliantra_S-$OS-"$ARCHNAME" '"$EXE_VER"' '"$1"' $GENPACK_ENVVARS./perl run 331echo >"$DIST".genpack genpack deliantra_S-$OS-"$ARCHNAME" '"$EXE_VER"' '"$1"' $GENPACK_ENVVARS ./perl run
319 332
320exit 333exit
321 334
322 335
323tar cf deliantra-gnu-linux-$ARCHNAME.tar deliantra-gnu-linux-$ARCHNAME 336tar cf deliantra-gnu-linux-$ARCHNAME.tar deliantra-gnu-linux-$ARCHNAME

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines