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 | |
3 | STRIP="strip" |
7 | STRIP="strip" |
4 | LIBEXT=so |
8 | LIBEXT=so |
5 | LIB0=so.? |
9 | LIB0=so.? |
6 | SO=so |
10 | SO=so |
7 | SYSLIB=/usr/lib |
11 | SYSLIB=/usr/lib |
8 | MAKE=make |
12 | MAKE=make |
9 | ARCHNAME=x86 |
13 | ARCHNAME=x86 |
10 | GENPACK_ENVVARS= |
14 | GENPACK_ENVVARS="LD_LIBRARY_PATH=." |
11 | |
15 | |
12 | umask 022 |
16 | umask 022 |
13 | |
17 | |
14 | if [ "$(uname -s)" = CYGWIN_NT-5.0 ]; then |
18 | if [ "$(uname -s)" = CYGWIN_NT-5.0 ]; then |
15 | . ~/.setenv |
19 | . ~/.setenv |
16 | |
20 | |
17 | OS=windows |
21 | OS=windows |
18 | URLADER=.exe |
22 | URLADER=windowx-x86 |
19 | unset PANGO |
23 | unset PANGO |
20 | PERL=/c/perl/bin/perl |
24 | PERL=/c/perl/bin/perl |
21 | MAKE=nmake |
25 | MAKE=nmake |
22 | SYSLIB=/c/gtk/bin |
26 | SYSLIB=/c/gtk/bin |
23 | LIBEXT=dll |
27 | LIBEXT=dll |
… | |
… | |
33 | /c/gtk/bin/pango-querymodules # empty output usually |
37 | /c/gtk/bin/pango-querymodules # empty output usually |
34 | } |
38 | } |
35 | |
39 | |
36 | elif [ "$(uname -s)" = Darwin ]; then |
40 | elif [ "$(uname -s)" = Darwin ]; then |
37 | OS=darwin |
41 | OS=darwin |
38 | URLADER=-osx105 |
42 | URLADER=darwin-x86 |
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" |
46 | elif [ $(arch) = i686 ]; then |
51 | elif [ $(arch) = i686 ]; then |
47 | OS=linux |
52 | OS=linux |
48 | URLADER=-x86 |
53 | URLADER=linux-x86 |
49 | PANGO=1.5.0 |
54 | PANGO=1.5.0 |
50 | PERL=/usr/bin/perl |
55 | PERL=/usr/bin/perl |
51 | else |
56 | else |
52 | OS=linux |
57 | OS=linux |
53 | URLADER=-amd64 |
58 | URLADER=linux-amd64 |
54 | PANGO=1.5.0 |
59 | PANGO=1.5.0 |
55 | PERL=/usr/bin/perl |
60 | PERL=/usr/bin/perl |
56 | ARCHNAME=amd64 |
61 | ARCHNAME=amd64 |
57 | fi |
62 | fi |
58 | |
63 | |
… | |
… | |
67 | export EV_EVENTFD=0 |
72 | export EV_EVENTFD=0 |
68 | export EV_INOTIFY=0 |
73 | export EV_INOTIFY=0 |
69 | export EV_SIGNALFD=0 |
74 | export EV_SIGNALFD=0 |
70 | |
75 | |
71 | if true; then |
76 | if true; then |
72 | for mod in Deliantra CFPlus; do |
77 | for mod in deliantra/Deliantra deliantra/Deliantra-Client; do |
73 | # 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 |
74 | # for mod in CFPlus; do |
79 | # for mod in CFPlus; do |
75 | ( |
80 | ( |
76 | cd /root/src/$mod |
81 | cd /root/src/$mod || exit |
77 | cvs update -qAdP |
82 | cvs update -AdP |
|
|
83 | rm -rf blib |
78 | $PERL Makefile.PL </dev/null >/dev/null |
84 | $PERL Makefile.PL </dev/null >/dev/null |
79 | $MAKE clean >/dev/null |
85 | $MAKE clean >/dev/null |
80 | $PERL Makefile.PL </dev/null >/dev/null |
86 | $PERL Makefile.PL </dev/null >/dev/null |
81 | if ! $MAKE install >log 2>&1; then |
87 | if ! $MAKE install >log 2>&1; then |
|
|
88 | echo |
|
|
89 | echo error while building $mod |
82 | cat log |
90 | cat log |
83 | exit |
91 | exit |
84 | fi |
92 | fi |
85 | rm -f log |
93 | rm -f log |
86 | $MAKE clean >/dev/null |
94 | $MAKE clean >/dev/null |
87 | ) |
95 | ) || exit |
88 | done |
96 | done |
89 | fi |
97 | fi |
90 | |
98 | |
91 | cat <<EOF >"$DIST"/pango.rc |
99 | cat <<EOF >"$DIST"/pango.rc |
92 | [Pango] |
100 | [Pango] |
… | |
… | |
251 | |
259 | |
252 | # convert perl to a non-console-app |
260 | # convert perl to a non-console-app |
253 | $PERL -MWin32::Exe -e '$e = new Win32::Exe"perl.exe"; $e->set_subsystem_windows; $e->write' |
261 | $PERL -MWin32::Exe -e '$e = new Win32::Exe"perl.exe"; $e->set_subsystem_windows; $e->write' |
254 | |
262 | |
255 | else |
263 | else |
256 | # patch braindamaged pango |
|
|
257 | 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 |
|
|
258 | chmod 755 libpango-1.0.$LIB0 |
|
|
259 | |
|
|
260 | for lib in mikmod vorbisfile; do |
264 | for lib in mikmod vorbisfile; do |
261 | cp -p $SYSLIB/lib$lib.$LIB0 . |
265 | cp -p $SYSLIB/lib$lib.$LIB0 . |
262 | chmod 755 lib$lib.$LIB0 |
266 | chmod 755 lib$lib.$LIB0 |
263 | done |
267 | done |
264 | fi |
268 | fi |
… | |
… | |
272 | for lib in \ |
276 | for lib in \ |
273 | dl c m rt pthread nsl crypt \ |
277 | dl c m rt pthread nsl crypt \ |
274 | X11 Xext Xau Xdmcp ICE SM Xrandr Xrender Xxf86vm drm GL \ |
278 | X11 Xext Xau Xdmcp ICE SM Xrandr Xrender Xxf86vm drm GL \ |
275 | z |
279 | z |
276 | do |
280 | do |
277 | rm -f lib"$lib".$SO0 |
281 | rm -f lib"$lib".$LIB0 |
278 | done |
282 | done |
|
|
283 | |
|
|
284 | if [ "$OS" != windows ]; then |
|
|
285 | # patch braindamaged pango |
|
|
286 | set libpango-1.0.$LIB0 |
|
|
287 | perl -pe 's{/u(?=sr/lib(32)?/pango)}{/\x00}g; s{\Q'$PANGO'\E\x00}{y.t.u\x00}g' <"$1" >"$1~" && mv "$1~" "$1" |
|
|
288 | chmod 755 "$1" |
|
|
289 | fi |
279 | |
290 | |
280 | if [ "$OS" = darwin ]; then |
291 | if [ "$OS" = darwin ]; then |
281 | # "dll hell" is most severe on os x, because apple |
292 | # "dll hell" is most severe on os x, because apple |
282 | # does not generally give a shit for backwards compatibility, |
293 | # does not generally give a shit for backwards compatibility, |
283 | # alwayss ships outdated libraries and often provides libraries |
294 | # alwayss ships outdated libraries and often provides libraries |
… | |
… | |
319 | |
330 | |
320 | [ "$OS" = linux ] && chrpath -d perl # debian perls have an rpath. really. |
331 | [ "$OS" = linux ] && chrpath -d perl # debian perls have an rpath. really. |
321 | $STRIP $(find . -name "*.$SO" -o -name "*.$LIBEXT" -o -name "*.$LIB0") perl |
332 | $STRIP $(find . -name "*.$SO" -o -name "*.$LIBEXT" -o -name "*.$LIB0") perl |
322 | ) |
333 | ) |
323 | |
334 | |
324 | printf -- urlader$URLADER >"$DIST".urlader |
335 | cat >"$DIST".vars <<EOF |
|
|
336 | G_URLADER="$URLADER" |
|
|
337 | G_OS="$OS" |
|
|
338 | G_ARCHNAME="$ARCHNAME" |
|
|
339 | G_ENVVARS="$GENPACK_ENVVARS" |
|
|
340 | G_ARGS="./perl run" |
|
|
341 | EOF |
325 | |
342 | |
326 | echo >"$DIST".genpack genpack deliantra_S-$OS-"$ARCHNAME" '"$EXE_VER"' '"$1"' $GENPACK_ENVVARS ./perl run |
|
|
327 | |
|
|
328 | exit |
|
|
329 | |
|
|
330 | |
|
|
331 | tar cf deliantra-gnu-linux-$ARCHNAME.tar deliantra-gnu-linux-$ARCHNAME |
|
|
332 | gzip -9vf deliantra-gnu-linux-$ARCHNAME.tar |
|
|
333 | todata deliantra-gnu-linux-$ARCHNAME.tar.gz |
|
|
334 | |
|
|