… | |
… | |
10 | SO=so |
10 | SO=so |
11 | SYSLIB=/usr/lib |
11 | SYSLIB=/usr/lib |
12 | MAKE=make |
12 | MAKE=make |
13 | ARCHNAME=x86 |
13 | ARCHNAME=x86 |
14 | GENPACK_ENVVARS="LD_LIBRARY_PATH=." |
14 | GENPACK_ENVVARS="LD_LIBRARY_PATH=." |
|
|
15 | EXTRA_EXTRACT= |
15 | |
16 | |
16 | umask 022 |
17 | umask 022 |
17 | |
18 | |
18 | if [ "$(uname -s)" = CYGWIN_NT-5.0 ]; then |
19 | if [ "$(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 |
62 | fi |
64 | fi |
63 | |
65 | |
64 | export DIST="$(pwd)/dist/$OS-$ARCHNAME" |
66 | DISTf="dist/$OS-$ARCHNAME" |
|
|
67 | export DIST="$(pwd)/$DISTf" |
65 | |
68 | |
66 | rm -rf "$DIST" |
69 | eval $("$PERL" -V:sitebinexp:) |
67 | mkdir -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 \ |
72 | export EV_EVENTFD=0 |
74 | --copy "$DISTf" |
73 | export EV_INOTIFY=0 |
|
|
74 | export EV_SIGNALFD=0 |
|
|
75 | |
|
|
76 | if 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 |
|
|
97 | fi |
|
|
98 | |
75 | |
99 | cat <<EOF >"$DIST"/pango.rc |
76 | cat <<EOF >"$DIST"/pango.rc |
100 | [Pango] |
77 | [Pango] |
101 | ModuleFiles = pango.modules |
78 | ModuleFiles = pango.modules |
102 | EOF |
79 | EOF |
… | |
… | |
118 | eval $($PERL -V:sitebinexp -V:sitearchexp -V:sitelib -V:vendorarchexp -V:vendorlibexp -V:archlibexp -V:privlibexp) |
95 | eval $($PERL -V:sitebinexp -V:sitearchexp -V:sitelib -V:vendorarchexp -V:vendorlibexp -V:archlibexp -V:privlibexp) |
119 | |
96 | |
120 | mkdir -p "$DIST"/pm/bin |
97 | mkdir -p "$DIST"/pm/bin |
121 | cp "$sitebinexp"/deliantra "$DIST"/pm/bin/ |
98 | cp "$sitebinexp"/deliantra "$DIST"/pm/bin/ |
122 | cp -p util/run "$DIST" |
99 | cp -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 | |
215 | if [ "$OS" = windows ]; then |
103 | if [ "$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 |