ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/App-Staticperl/staticperl.sh
(Generate patch)

Comparing App-Staticperl/staticperl.sh (file contents):
Revision 1.49 by root, Sun Jul 10 01:37:56 2011 UTC vs.
Revision 1.72 by root, Tue Feb 15 18:37:34 2022 UTC

8EMAIL="read the documentation <rtfm@example.org>" 8EMAIL="read the documentation <rtfm@example.org>"
9DLCACHE= 9DLCACHE=
10 10
11# perl build variables 11# perl build variables
12MAKE=make 12MAKE=make
13PERL_VERSION=5.12.4 # 5.8.9 is also a good choice 13PERL_VERSION=http://stableperl.schmorp.de/dist/latest.tar.gz # 5.12.5 and 5.8.9 are good choices for small builds
14PERL_CC=cc 14PERL_CC=cc
15PERL_CONFIGURE="" # additional Configure arguments 15PERL_CONFIGURE="" # additional Configure arguments
16PERL_CCFLAGS="-g -DPERL_DISABLE_PMC -DPERL_ARENA_SIZE=16376 -DNO_PERL_MALLOC_ENV -D_GNU_SOURCE -DNDEBUG" 16PERL_CCFLAGS="-g -DPERL_DISABLE_PMC -DPERL_ARENA_SIZE=16376 -DNO_PERL_MALLOC_ENV -D_GNU_SOURCE -DNDEBUG"
17PERL_OPTIMIZE="-Os -ffunction-sections -fdata-sections -finline-limit=8 -ffast-math" 17PERL_OPTIMIZE="-Os" # -Os -ffunction-sections -fdata-sections -finline-limit=8 -ffast-math"
18 18
19ARCH="$(uname -m)" 19ARCH="$(uname -m)"
20 20
21case "$ARCH" in 21#case "$ARCH" in
22 i*86 | x86_64 | amd64 ) 22# i*86 | x86_64 | amd64 )
23 PERL_OPTIMIZE="$PERL_OPTIMIZE -mpush-args -mno-inline-stringops-dynamically -mno-align-stringops -mno-ieee-fp" # x86/amd64 23# PERL_OPTIMIZE="$PERL_OPTIMIZE -mpush-args -mno-inline-stringops-dynamically -mno-align-stringops -mno-ieee-fp" # x86/amd64
24 case "$ARCH" in 24# case "$ARCH" in
25 i*86 ) 25# i*86 )
26 PERL_OPTIMIZE="$PERL_OPTIMIZE -fomit-frame-pointer -march=pentium3 -mtune=i386" # x86 only 26# PERL_OPTIMIZE="$PERL_OPTIMIZE -fomit-frame-pointer -march=pentium3 -mtune=i386" # x86 only
27 ;; 27# ;;
28 esac 28# esac
29 ;; 29# ;;
30esac 30#esac
31 31
32# -Wl,--gc-sections makes it impossible to check for undefined references 32# -Wl,--gc-sections makes it impossible to check for undefined references
33# for some reason so we need to patch away the "-no" after Configure and before make :/ 33# for some reason so we need to patch away the "-no" after Configure and before make :/
34# --allow-multiple-definition exists to work around uclibc's pthread static linking bug 34# --allow-multiple-definition exists to work around uclibc's pthread static linking bug
35#PERL_LDFLAGS="-Wl,--no-gc-sections -Wl,--allow-multiple-definition" 35#PERL_LDFLAGS="-Wl,--no-gc-sections -Wl,--allow-multiple-definition"
43#EV_EXTRA_DEFS='-DEV_FEATURES=4+8+16+64 -DEV_USE_SELECT=0 -DEV_USE_POLL=1 -DEV_USE_EPOLL=1 -DEV_NO_LOOPS -DEV_COMPAT3=0' 43#EV_EXTRA_DEFS='-DEV_FEATURES=4+8+16+64 -DEV_USE_SELECT=0 -DEV_USE_POLL=1 -DEV_USE_EPOLL=1 -DEV_NO_LOOPS -DEV_COMPAT3=0'
44export PERL_MM_USE_DEFAULT PERL_MM_OPT 44export PERL_MM_USE_DEFAULT PERL_MM_OPT
45 45
46# which extra modules to install by default from CPAN that are 46# which extra modules to install by default from CPAN that are
47# required by mkbundle 47# required by mkbundle
48STATICPERL_MODULES="common::sense Pod::Strip PPI::XS Pod::Usage" 48STATICPERL_MODULES="ExtUtils::MakeMaker ExtUtils::CBuilder common::sense Pod::Strip PPI PPI::XS Pod::Usage"
49 49
50# which extra modules you might want to install 50# which extra modules you might want to install
51EXTRA_MODULES="" 51EXTRA_MODULES=""
52 52
53# overridable functions 53# overridable functions
67fi 67fi
68 68
69############################################################################# 69#############################################################################
70# support 70# support
71 71
72# work around ExtUtils::CBuilder and others
73export CC="$PERL_CC"
74export CFLAGS="$PERL_CFLAGS"
75export LD="$PERL_CC"
76export LDFLAGS="$PERL_LDFLAGS"
77unset LIBS
78
72PERL_PREFIX="${PERL_PREFIX:=$STATICPERL/perl}" # where the perl gets installed 79PERL_PREFIX="${PERL_PREFIX:=$STATICPERL/perl}" # where the perl gets installed
73 80
74unset PERL5OPT PERL5LIB PERLLIB PERL_UNICODE PERLIO_DEBUG 81unset PERL5OPT PERL5LIB PERLLIB PERL_UNICODE PERLIO_DEBUG
75unset PERL_MB_OPT 82unset PERL_MB_OPT
76LC_ALL=C; export LC_ALL # just to be on the safe side 83LC_ALL=C; export LC_ALL # just to be on the safe side
79# life easier when working in e.g. "staticperl cpan / look" 86# life easier when working in e.g. "staticperl cpan / look"
80PATH="$PERL_PREFIX/perl/bin:$PATH" 87PATH="$PERL_PREFIX/perl/bin:$PATH"
81 88
82# set version in a way that Makefile.PL can extract 89# set version in a way that Makefile.PL can extract
83VERSION=VERSION; eval \ 90VERSION=VERSION; eval \
84$VERSION="1.31" 91$VERSION="1.46"
85
86BZ2=bz2
87BZIP2=bzip2
88 92
89fatal() { 93fatal() {
90 printf -- "\nFATAL: %s\n\n" "$*" >&2 94 printf -- "\nFATAL: %s\n\n" "$*" >&2
91 exit 1 95 exit 1
92} 96}
138} 142}
139 143
140realclean() { 144realclean() {
141 rm -f "$PERL_PREFIX/staticstamp.postinstall" 145 rm -f "$PERL_PREFIX/staticstamp.postinstall"
142 rm -f "$PERL_PREFIX/staticstamp.install" 146 rm -f "$PERL_PREFIX/staticstamp.install"
143 rm -f "$STATICPERL/src/perl-"*"/staticstamp.configure" 147 rm -f "$STATICPERL/src/perl/staticstamp.configure"
144} 148}
145 149
146fetch() { 150fetch() {
151(
147 rcd "$STATICPERL" 152 rcd "$STATICPERL"
148 153
149 mkdir -p src 154 mkdir -p src
150 rcd src 155 rcd src
151 156
152 if ! [ -d "perl-$PERL_VERSION" ]; then 157 if ! [ -d "perl" ]; then
158 rm -rf unpack
159 mkdir -p unpack
160
161 case "$PERL_VERSION" in
162 *:* )
163 # url
164 PERLURL="$PERL_VERSION"
165 PERLTAR="$(basename "$PERL_VERSION")"
166 ;;
167 /* )
168 # directory
169 verbose "copying $PERL_VERSION"
170 cp -Rp "$PERL_VERSION/." unpack/.
171 chmod -R u+w unpack
172 mv unpack perl
173 return
174 ;;
175 * )
176 PERLURL="$CPAN/src/5.0/perl-$PERL_VERSION.tar.bz2"
153 PERLTAR=perl-$PERL_VERSION.tar.$BZ2 177 PERLTAR=perl-$PERL_VERSION.tar.bz2
178 ;;
179 esac
154 180
155 if ! [ -e $PERLTAR ]; then 181 if ! [ -e "$PERLTAR" ]; then
156 URL="$CPAN/src/5.0/$PERLTAR"
157
158 verblock <<EOF 182 verblock <<EOF
159downloading perl 183downloading perl
184
185trying to download from $PERLURL
186
187you can configure a download cache directory via DLCACHE
188in your .staticperlrc to avoid repeated downloads.
189
160to manually download perl yourself, place 190to manually download perl yourself, place a suitable tarball in
161perl-$PERL_VERSION.tar.$BZ2 in $STATICPERL 191$DLCACHE/$PERLTAR
162trying $URL
163 192
164either curl or wget is required for automatic download. 193either curl or wget is required for automatic download.
165curl is tried first, then wget. 194curl is tried first, then wget.
166
167you can configure a download cache directory via DLCACHE
168in your .staticperlrc to avoid repeated downloads.
169EOF 195EOF
170 196
171 rm -f $PERLTAR~ # just to be on the safe side 197 rm -f $PERLTAR~ # just to be on the safe side
172 { [ "$DLCACHE" ] && cp "$DLCACHE"/$PERLTAR $PERLTAR~ >/dev/null 2>&1; } \ 198 { [ "$DLCACHE" ] && cp "$DLCACHE"/$PERLTAR $PERLTAR~ >/dev/null 2>&1; } \
173 || wget -O $PERLTAR~ "$URL" \ 199 || wget -O $PERLTAR~ "$PERLURL" \
174 || curl -f >$PERLTAR~ "$URL" \ 200 || curl -f >$PERLTAR~ "$PERLURL" \
175 || fatal "$URL: unable to download" 201 || fatal "$URL: unable to download"
176 rm -f $PERLTAR 202 rm -f $PERLTAR
177 mv $PERLTAR~ $PERLTAR 203 mv $PERLTAR~ $PERLTAR
178 if [ "$DLCACHE" ]; then 204 if [ "$DLCACHE" ]; then
179 mkdir -p "$DLCACHE" 205 mkdir -p "$DLCACHE"
180 cp $PERLTAR "$DLCACHE"/$PERLTAR~ && \ 206 cp $PERLTAR "$DLCACHE"/$PERLTAR~$$~ && \
181 mv "$DLCACHE"/$PERLTAR~ "$DLCACHE"/$PERLTAR 207 mv "$DLCACHE"/$PERLTAR~$$~ "$DLCACHE"/$PERLTAR
182 fi 208 fi
183 fi 209 fi
184 210
185 verblock <<EOF 211 verblock <<EOF
186unpacking perl 212unpacking perl
187EOF 213EOF
188 214
189 mkdir -p unpack 215 case "$PERLTAR" in
190 rm -rf unpack/perl-$PERL_VERSION 216 *.xz ) UNCOMPRESS="xz -d" ;;
217 *.lzma ) UNCOMPRESS="lzma -d" ;;
218 *.bz2 ) UNCOMPRESS="bzip2 -d" ;;
219 *.gz ) UNCOMPRESS="gzip -d" ;;
220 *.tar ) UNCOMPRESS="cat" ;;
221 * )
222 fatal "don't know hot to uncompress $PERLTAR,\nonly tar, tar.gz, tar.bz2, tar.lzma and tar.xz are supported."
223 exit 1
224 ;;
225 esac
226
191 $BZIP2 -d <$PERLTAR | ( cd unpack && tar xf - ) \ 227 <"$PERLTAR" $UNCOMPRESS -d | ( cd unpack && tar xf - ) \
192 || fatal "$PERLTAR: error during unpacking" 228 || fatal "$PERLTAR: error during unpacking"
193 chmod -R u+w unpack/perl-$PERL_VERSION 229
194 mv unpack/perl-$PERL_VERSION perl-$PERL_VERSION 230 if [ -d unpack/*/ ]; then
231 chmod -R u+w unpack/*/
232 mv unpack/*/ perl
195 rmdir -p unpack 233 rmdir -p unpack
234 else
235 fatal "unpacking $PERLTAR did not result in a single directory, don't know how to handle this"
236 fi
237
238 rm "$PERLTAR"
196 fi 239 fi
240) || exit
197} 241}
198 242
199# similar to GNU-sed -i or perl -pi 243# similar to GNU-sed -i or perl -pi
200sedreplace() { 244sedreplace() {
201 sed -e "$1" <"$2" > "$2~" || fatal "error while running sed" 245 sed -e "$1" <"$2" > "$2~" || fatal "error while running sed"
228EOF 272EOF
229 exit 1 273 exit 1
230} 274}
231 275
232configure() { 276configure() {
277(
233 fetch 278 fetch
234 279
235 rcd "$STATICPERL/src/perl-$PERL_VERSION" 280 rcd "$STATICPERL/src/perl"
236 281
237 [ -e staticstamp.configure ] && return 282 [ -e staticstamp.configure ] && return
238 283
239 verblock <<EOF 284 verblock <<EOF
240configuring $STATICPERL/src/perl-$PERL_VERSION 285configuring $STATICPERL/src/perl
241EOF 286EOF
242 287
243 rm -f "$PERL_PREFIX/staticstamp.install" 288 rm -f "$PERL_PREFIX/staticstamp.install"
244 289
245 "$MAKE" distclean >/dev/null 2>&1 290 "$MAKE" distclean >/dev/null 2>&1
287 -Demail="$EMAIL" \ 332 -Demail="$EMAIL" \
288 -Dcf_email="$EMAIL" \ 333 -Dcf_email="$EMAIL" \
289 -Dcf_by="$EMAIL" \ 334 -Dcf_by="$EMAIL" \
290 $PERL_CONFIGURE \ 335 $PERL_CONFIGURE \
291 -Duseperlio \ 336 -Duseperlio \
337 -Uversiononly \
292 -dE || configure_failure 338 -dE || configure_failure
293 339
294 sedreplace ' 340 sedreplace '
295 s/-Wl,--no-gc-sections/-Wl,--gc-sections/g 341 s/-Wl,--no-gc-sections/-Wl,--gc-sections/g
296 s/ *-fno-stack-protector */ /g 342 s/ *-fno-stack-protector */ /g
301 sh Configure -S || fatal "Configure -S failed" 347 sh Configure -S || fatal "Configure -S failed"
302 348
303 postconfigure || fatal "postconfigure hook failed" 349 postconfigure || fatal "postconfigure hook failed"
304 350
305 : > staticstamp.configure 351 : > staticstamp.configure
352) || exit
306} 353}
307 354
308write_shellscript() { 355write_shellscript() {
309 { 356 {
310 echo "#!/bin/sh" 357 echo "#!/bin/sh"
315 } >"$PERL_PREFIX/bin/$1" 362 } >"$PERL_PREFIX/bin/$1"
316 chmod 755 "$PERL_PREFIX/bin/$1" 363 chmod 755 "$PERL_PREFIX/bin/$1"
317} 364}
318 365
319build() { 366build() {
367(
320 configure 368 configure
321 369
322 rcd "$STATICPERL/src/perl-$PERL_VERSION" 370 rcd "$STATICPERL/src/perl"
323 371
324 verblock <<EOF 372 verblock <<EOF
325building $STATICPERL/src/perl-$PERL_VERSION 373building $STATICPERL/src/perl
326EOF 374EOF
327 375
328 rm -f "$PERL_PREFIX/staticstamp.install" 376 rm -f "$PERL_PREFIX/staticstamp.install"
329 377
330 "$MAKE" || fatal "make: error while building perl" 378 "$MAKE" || fatal "make: error while building perl"
331 379
332 postbuild || fatal "postbuild hook failed" 380 postbuild || fatal "postbuild hook failed"
381) || exit
333} 382}
334 383
335_postinstall() { 384_postinstall() {
336 if ! [ -e "$PERL_PREFIX/staticstamp.postinstall" ]; then 385 if ! [ -e "$PERL_PREFIX/staticstamp.postinstall" ]; then
337 NOCHECK_INSTALL=+ 386 NOCHECK_INSTALL=+
338 instcpan $STATICPERL_MODULES 387 instcpan $STATICPERL_MODULES
339 [ $EXTRA_MODULES ] && instcpan $EXTRA_MODULES 388 [ "$EXTRA_MODULES" ] && instcpan $EXTRA_MODULES
340 389
341 postinstall || fatal "postinstall hook failed" 390 postinstall || fatal "postinstall hook failed"
342 391
343 : > "$PERL_PREFIX/staticstamp.postinstall" 392 : > "$PERL_PREFIX/staticstamp.postinstall"
344 fi 393 fi
345} 394}
346 395
347install() { 396install() {
397(
348 if ! [ -e "$PERL_PREFIX/staticstamp.install" ]; then 398 if ! [ -e "$PERL_PREFIX/staticstamp.install" ]; then
349 build 399 build
350 400
351 verblock <<EOF 401 verblock <<EOF
352installing $STATICPERL/src/perl-$PERL_VERSION 402installing $STATICPERL/src/perl
353to $PERL_PREFIX 403to $PERL_PREFIX
354EOF 404EOF
355 405
356 ln -sf "perl/bin/" "$STATICPERL/bin" 406 ln -sf "perl/bin/" "$STATICPERL/bin"
357 ln -sf "perl/lib/" "$STATICPERL/lib" 407 ln -sf "perl/lib/" "$STATICPERL/lib"
359 mkdir "$STATICPERL/patched" 409 mkdir "$STATICPERL/patched"
360 410
361 ln -sf "$PERL_PREFIX" "$STATICPERL/perl" # might get overwritten 411 ln -sf "$PERL_PREFIX" "$STATICPERL/perl" # might get overwritten
362 rm -rf "$PERL_PREFIX" # by this rm -rf 412 rm -rf "$PERL_PREFIX" # by this rm -rf
363 413
414 rcd "$STATICPERL/src/perl"
415
364 "$MAKE" install || fatal "make install: error while installing" 416 "$MAKE" install || fatal "make install: error while installing"
365 417
366 rcd "$PERL_PREFIX" 418 rcd "$PERL_PREFIX"
367 419
368 # create a "make install" replacement for CPAN 420 # create a "make install" replacement for CPAN
369 write_shellscript SP-make-install-make <<'EOF' 421 write_shellscript SP-make-make <<'end_of_make'
422#CAT make-make.sh
423end_of_make
424
425 # create a "make install" replacement for CPAN
426 write_shellscript SP-make-install-make <<'end_of_make_install_make'
370#CAT make-install-make.sh 427#CAT make-install-make.sh
371EOF 428end_of_make_install_make
372 429
373 # create a "patch modules" helper 430 # create a "patch modules" helper
374 write_shellscript SP-patch-postinstall <<'EOF' 431 write_shellscript SP-patch-postinstall <<'end_of_patch_postinstall'
375#CAT patch-postinstall.sh 432#CAT patch-postinstall.sh
376EOF 433end_of_patch_postinstall
377 434
435 # immediately use it
378 "$PERL_PREFIX/bin/SP-patch-postinstall" 436 "$PERL_PREFIX/bin/SP-patch-postinstall"
379 437
380 # help to trick CPAN into avoiding ~/.cpan completely 438 # help to trick CPAN into avoiding ~/.cpan completely
381 echo 1 >"$PERL_PREFIX/lib/CPAN/MyConfig.pm" 439 echo 1 >"$PERL_PREFIX/lib/CPAN/MyConfig.pm"
382 440
390 CPAN::Shell->o (conf => q<cpan_home>, "'"$STATICPERL"'/cpan"); 448 CPAN::Shell->o (conf => q<cpan_home>, "'"$STATICPERL"'/cpan");
391 CPAN::Shell->o (conf => q<build_dir>, "'"$STATICPERL"'/cpan/build"); 449 CPAN::Shell->o (conf => q<build_dir>, "'"$STATICPERL"'/cpan/build");
392 CPAN::Shell->o (conf => q<prefs_dir>, "'"$STATICPERL"'/cpan/prefs"); 450 CPAN::Shell->o (conf => q<prefs_dir>, "'"$STATICPERL"'/cpan/prefs");
393 CPAN::Shell->o (conf => q<histfile> , "'"$STATICPERL"'/cpan/histfile"); 451 CPAN::Shell->o (conf => q<histfile> , "'"$STATICPERL"'/cpan/histfile");
394 CPAN::Shell->o (conf => q<keep_source_where>, "'"$STATICPERL"'/cpan/sources"); 452 CPAN::Shell->o (conf => q<keep_source_where>, "'"$STATICPERL"'/cpan/sources");
453 CPAN::Shell->o (conf => q<makepl_arg>, "MAP_TARGET=perl");
454 CPAN::Shell->o (conf => q<make>, "'"$PERL_PREFIX"'/bin/SP-make-make");
395 CPAN::Shell->o (conf => q<make_install_make_command>, "'"$PERL_PREFIX"'/bin/SP-make-install-make"); 455 CPAN::Shell->o (conf => q<make_install_make_command>, "'"$PERL_PREFIX"'/bin/SP-make-install-make");
396 CPAN::Shell->o (conf => q<prerequisites_policy>, q<follow>); 456 CPAN::Shell->o (conf => q<prerequisites_policy>, q<follow>);
397 CPAN::Shell->o (conf => q<build_requires_install_policy>, q<no>); 457 CPAN::Shell->o (conf => q<build_requires_install_policy>, q<yes>);
458 CPAN::Shell->o (conf => q<recommends_policy>, q<0>);
459 CPAN::Shell->o (conf => q<suggests_policy>, q<0>);
398 CPAN::Shell->o (conf => q<prefer_installer>, "EUMM"); 460 CPAN::Shell->o (conf => q<prefer_installer>, q<EUMM>);
399 CPAN::Shell->o (conf => q<commit>); 461 CPAN::Shell->o (conf => q<commit>);
400 ' || fatal "error while initialising CPAN" 462 ' || fatal "error while initialising CPAN"
401 463
402 : > "$PERL_PREFIX/staticstamp.install" 464 : > "$PERL_PREFIX/staticstamp.install"
403 fi 465 fi
404 466
405 _postinstall 467 _postinstall
468) || exit
406} 469}
407 470
408import() { 471import() {
472(
409 IMPORT="$1" 473 IMPORT="$1"
410 474
411 rcd "$STATICPERL" 475 rcd "$STATICPERL"
412 476
413 if ! [ -e "$PERL_PREFIX/staticstamp.install" ]; then 477 if ! [ -e "$PERL_PREFIX/staticstamp.install" ]; then
418 rm -rf bin cpan lib patched perl src 482 rm -rf bin cpan lib patched perl src
419 mkdir -m 755 perl perl/bin 483 mkdir -m 755 perl perl/bin
420 ln -s perl/bin/ bin 484 ln -s perl/bin/ bin
421 ln -s "$IMPORT" perl/bin/ 485 ln -s "$IMPORT" perl/bin/
422 486
487 echo "$IMPORT" > "$PERL_PREFIX/.import"
488
423 : > "$PERL_PREFIX/staticstamp.install" 489 : > "$PERL_PREFIX/staticstamp.install"
424 fi 490 fi
425 491
426 _postinstall 492 _postinstall
493) || exit
427} 494}
428 495
429############################################################################# 496#############################################################################
430# install a module from CPAN 497# install a module from CPAN
431 498
432instcpan() { 499instcpan() {
433 [ $NOCHECK_INSTALL ] || install 500 [ $NOCHECK_INSTALL ] || install
434 501
435 verblock <<EOF 502 verblock <<EOF
436installing modules from CPAN 503installing modules from CPAN
437$@ 504$*
438EOF 505EOF
439 506
440 #"$PERL_PREFIX"/bin/perl -MCPAN::MyConfig -MCPAN -e 'notest install $_ for @ARGV' -- "$@" | tee "$STATICPERL/instcpan.log" 507 MYCONFIG=
508 [ -e "$PERL_PREFIX/.import" ] || MYCONFIG=-MCPAN::MyConfig
509
441 "$PERL_PREFIX"/bin/perl -MCPAN -e 'notest install $_ for @ARGV' -- "$@" | tee "$STATICPERL/instcpan.log" 510 "$PERL_PREFIX"/bin/perl $MYCONFIG -MCPAN -e 'notest (install => $_) for @ARGV' -- "$@" | tee "$STATICPERL/instcpan.log"
442 511
443 if grep -q " -- NOT OK\$" "$STATICPERL/instcpan.log"; then 512 if grep -q " -- NOT OK\$" "$STATICPERL/instcpan.log"; then
444 fatal "failure while installing modules from CPAN ($@)" 513 fatal "failure while installing modules from CPAN ($*)"
445 fi 514 fi
446 rm -f "$STATICPERL/instcpan.log" 515 rm -f "$STATICPERL/instcpan.log"
447} 516}
448 517
449############################################################################# 518#############################################################################
452instsrc() { 521instsrc() {
453 [ $NOCHECK_INSTALL ] || install 522 [ $NOCHECK_INSTALL ] || install
454 523
455 verblock <<EOF 524 verblock <<EOF
456installing modules from source 525installing modules from source
457$@ 526$*
458EOF 527EOF
459 528
460 for mod in "$@"; do 529 for mod in "$@"; do
461 echo 530 echo
462 echo $mod 531 echo $mod
500catmkbundle() { 569catmkbundle() {
501 { 570 {
502 read dummy 571 read dummy
503 echo "#!$PERL_PREFIX/bin/perl" 572 echo "#!$PERL_PREFIX/bin/perl"
504 cat 573 cat
505 } <<'MKBUNDLE' 574 } <<'end_of_mkbundle'
506#CAT mkbundle 575#CAT mkbundle
507MKBUNDLE 576end_of_mkbundle
508} 577}
509 578
510bundle() { 579bundle() {
511 MKBUNDLE="${MKBUNDLE:=$PERL_PREFIX/bin/SP-mkbundle}" 580 MKBUNDLE="${MKBUNDLE:=$PERL_PREFIX/bin/SP-mkbundle}"
512 catmkbundle >"$MKBUNDLE~" || fatal "$MKBUNDLE~: cannot create" 581 catmkbundle >"$MKBUNDLE~" || fatal "$MKBUNDLE~: cannot create"

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines