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.8 by root, Wed Jan 4 09:16:40 2012 UTC vs.
Revision 1.14 by root, Fri Jan 27 23:13:38 2012 UTC

10SO=so 10SO=so
11SYSLIB=/usr/lib 11SYSLIB=/usr/lib
12MAKE=make 12MAKE=make
13ARCHNAME=x86 13ARCHNAME=x86
14GENPACK_ENVVARS="LD_LIBRARY_PATH=." 14GENPACK_ENVVARS="LD_LIBRARY_PATH=."
15EXTRA_EXTRACT=
15 16
16umask 022 17umask 022
17 18
18if [ "$(uname -s)" = CYGWIN_NT-5.0 ]; then 19if [ "$(uname -s)" = CYGWIN_NT-5.0 ]; then
19 . ~/.setenv 20 . ~/.setenv
26 SYSLIB=/c/gtk/bin 27 SYSLIB=/c/gtk/bin
27 LIBEXT=dll 28 LIBEXT=dll
28 LIB0=dll 29 LIB0=dll
29 SO=dll 30 SO=dll
30 STRIP=":" # stripping the perl library kills it, and apparently, everythignis always stripped 31 STRIP=":" # stripping the perl library kills it, and apparently, everythignis always stripped
32 EXTRA_EXTRACT="-MWin32::GUI::SplashScreen"
31 33
32 # fontconfig apparently ignores env vars and always looks at ./etc/fonts/fonts.conf, 34 # fontconfig apparently ignores env vars and always looks at ./etc/fonts/fonts.conf,
33 # but only if . isn't actually called bin or lib. hope for the best. 35 # but only if . isn't actually called bin or lib. hope for the best.
34 GENPACK_ENVVARS="FONTCONFIG_PATH=pm/Deliantra/Client/private/resources/fonts FONTCONFIG_FILE=fonts.conf" 36 GENPACK_ENVVARS="FONTCONFIG_PATH=pm/Deliantra/Client/private/resources/fonts FONTCONFIG_FILE=fonts.conf"
35 37
59 PANGO=1.5.0 61 PANGO=1.5.0
60 PERL=/usr/bin/perl 62 PERL=/usr/bin/perl
61 ARCHNAME=amd64 63 ARCHNAME=amd64
62fi 64fi
63 65
64export DIST="$(pwd)/dist/$OS-$ARCHNAME" 66DISTf="dist/$OS-$ARCHNAME"
67export DIST="$(pwd)/$DISTf"
65 68
66rm -rf "$DIST" 69eval $("$PERL" -V:sitebinexp:)
67mkdir -p "$DIST"
68 70
69#PERL=/opt/perl 71"$PERL" "$sitebinexp"/perl-libextractor --exedir . --dlldir . --bindir pm/bin --libdir pm \
70#PANGO=1.6.0 72 --perl --core-support --script deliantra $EXTRA_EXTRACT \
71 73 --runtime-only \
72export EV_EVENTFD=0 74 --copy "$DISTf"
73export EV_INOTIFY=0
74export EV_SIGNALFD=0
75
76if true; then
77 for mod in Coro IO/AIO AnyEvent EV Urlader deliantra/Deliantra deliantra/Deliantra-Client; do
78# for mod in common-sense AnyEvent EV JSON-XS deliantra/Deliantra Compress-LZF BDB Guard deliantra/Deliantra-Client; do
79# for mod in CFPlus; do
80 (
81 cd /root/src/$mod || exit
82 cvs update -AdP
83 rm -rf blib
84 $PERL Makefile.PL </dev/null >/dev/null
85 $MAKE clean >/dev/null
86 $PERL Makefile.PL </dev/null >/dev/null
87 if ! $MAKE install >log 2>&1; then
88 echo
89 echo error while building $mod
90 cat log
91 exit
92 fi
93 rm -f log
94 $MAKE clean >/dev/null
95 ) || exit
96 done
97fi
98 75
99cat <<EOF >"$DIST"/pango.rc 76cat <<EOF >"$DIST"/pango.rc
100[Pango] 77[Pango]
101ModuleFiles = pango.modules 78ModuleFiles = pango.modules
102EOF 79EOF
118eval $($PERL -V:sitebinexp -V:sitearchexp -V:sitelib -V:vendorarchexp -V:vendorlibexp -V:archlibexp -V:privlibexp) 95eval $($PERL -V:sitebinexp -V:sitearchexp -V:sitelib -V:vendorarchexp -V:vendorlibexp -V:archlibexp -V:privlibexp)
119 96
120mkdir -p "$DIST"/pm/bin 97mkdir -p "$DIST"/pm/bin
121cp "$sitebinexp"/deliantra "$DIST"/pm/bin/ 98cp "$sitebinexp"/deliantra "$DIST"/pm/bin/
122cp -p util/run "$DIST" 99cp -p util/run "$DIST"
123
124(
125 exec <util/modules.dep
126
127# while read type name; do
128# if [ "$type" = d ]; then
129# # not implemented
130# dir=$(echo "$name" | sed -e s%::%/%g)
131# for lib in "$sitearchexp" "$sitelib" "$vendorarchexp" "$vendorlibexp" "$archlibexp" "$privlibexp"; do
132# if [ -e "$lib/auto/$dir/.packlist" ]; then
133# cat "$lib/auto/$dir/.packlist"
134# fi
135# echo "x $lib $dir"
136# done
137# elif [ $type = m ]; then
138# :
139# else
140# echo "unknown type $type ($name)"
141# exit 1
142# fi
143# done
144 mkdir -p "$DIST"/pm
145
146 export OSDIST="$DIST"
147 [ "$OS" = windows ] && OSDIST=$(cygpath -w "$OSDIST")
148
149 $PERL -e '
150 use Config;
151 use File::Glob qw(:glob);
152 use File::Copy;
153 use File::Path;
154 use File::Basename;
155
156 my @path = do {
157 my %seen;
158 grep !$seen{$_}++, grep length, map $Config{$_}, qw(
159 sitearchexp
160 sitelib
161 vendorarchexp
162 vendorlibexp
163 archlibexp
164 privlibexp
165 )
166 };
167
168 while (<>) {
169 s/\015?\012$//;
170 next if /^(#|$)/;
171 s/\.dynob$/.'$SO'/;
172
173 my $found;
174 for my $lib (@path) {
175 chdir $lib || next;
176
177 my @glob = File::Glob::bsd_glob $_, 0; # explicit 0 needed
178
179 if (@glob) {
180 ++$found;
181
182 for (@glob) {
183 if (-d $_) {
184 system "rsync", "-aR", $_, "$ENV{DIST}/pm/.";
185 } else {
186 File::Path::mkpath "$ENV{OSDIST}/pm/" . dirname $_;
187 File::Copy::syscopy "$_", "$ENV{OSDIST}/pm/$_"
188 or die "$ENV{OSDIST}/pm/$_: $!";
189
190 if (s/\.pm$//) {
191 $auto = "auto/$_";
192
193 for my $glob ("*.'$SO'", "autosplit.ix", "*.al") {
194 for (bsd_glob "$auto/$glob", 0) {
195 File::Path::mkpath "$ENV{OSDIST}/pm/" . dirname $_;
196 File::Copy::syscopy "$_", "$ENV{OSDIST}/pm/$_";
197 }
198 }
199 }
200 }
201 }
202
203 last;
204 }
205 }
206
207 warn "$_: not found\n"
208 unless $found;
209 }
210 '
211) || exit
212 100
213############################################################################# 101#############################################################################
214 102
215if [ "$OS" = windows ]; then 103if [ "$OS" = windows ]; then
216 libdeps() { 104 libdeps() {
248} 136}
249 137
250( 138(
251 cd "$DIST" 139 cd "$DIST"
252 140
253 cp -p "$PERL" .
254
255 if [ "$OS" = windows ]; then 141 if [ "$OS" = windows ]; then
256 cp -p $SYSLIB/libvorbisfile-3.dll $SYSLIB/mikmod.dll $SYSLIB/libpng12-0.dll . 142 cp -p $SYSLIB/libvorbisfile-3.dll $SYSLIB/mikmod.dll $SYSLIB/libpng12-0.dll .
257 cp /root/src/CFPlus/util/splash.bmp . 143 cp /root/src/CFPlus/util/splash.bmp .
258 chmod -R u+rwX pm/auto 144 chmod -R u+rwX pm/auto
259 145
282 done 168 done
283 169
284 if [ "$OS" != windows ]; then 170 if [ "$OS" != windows ]; then
285 # patch braindamaged pango 171 # patch braindamaged pango
286 172
287 if [ "$OS" = darwin ]; then 173 if [ "$OS" != darwin ]; then
288 set libdeliantra-pango-1.0.0.dylib 174 set libpango-1.0.$LIB0
289 perl -pe 's{/o(?opt/local/.../pango)}{.\x00}g; s{\Q'$PANGO'\E\x00}{y.t.u\x00}g' <"$1" >"$1~" && mv "$1~" "$1" 175 perl -pe 's{/u(?=sr/lib(32)?/pango)}{.\x00}g;' <"$1" >"$1~" && mv "$1~" "$1"
290 else 176 else
291 set libpango-1.0.$LIB0 177 set lib*pango-1.0.0.dylib
292 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" 178 perl -pe 's{/o(?=pt/local/.../pango)}{.\x00}g;' <"$1" >"$1~" && mv "$1~" "$1"
293 fi 179 fi
294 chmod 755 "$1" 180 chmod 755 "$1"
295 fi 181 fi
296 182
297 if [ "$OS" = darwin ]; then 183 if [ "$OS" = darwin ]; then

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines