# $Id: Head.U,v 3.0.1.9 1997/02/28 15:02:09 ram Exp $
#
-# Generated on Sun Jul 25 13:48:34 EET DST 1999 [metaconfig 3.0 PL70]
+# Generated on Sun Jul 25 14:54:07 EET DST 1999 [metaconfig 3.0 PL70]
# (with additional metaconfig patches by perlbug@perl.com)
cat >/tmp/c1$$ <<EOF
: Find the path to the source tree
case "$src" in
'') case "$0" in
- */*) src=`echo $0 | sed -e 's%/[^/][^/]*$%%'`;;
+ */*) src=`echo $0 | sed -e 's%/[^/][^/]*$%%'`
+ case "$src" in
+ /*) ;;
+ *) src=`cd ../$src && pwd` ;;
+ esac
+ ;;
*) src='.';;
esac;;
esac
nopath_ok=''
orig_rp="$rp"
orig_dflt="$dflt"
+case "$gfpth" in
+'') gfpth='.' ;;
+esac
case "$fn" in
*\(*)
'')
case "$type" in
File)
- if test -f "$ansexp"; then
- type=''
- elif test -r "$ansexp" || (test -h "$ansexp") >/dev/null 2>&1
- then
- echo "($value is not a plain file, but that's ok.)"
- type=''
- fi
+ for fp in $gfpth; do
+ if test "X$fp" = X.; then
+ pf="$ansexp"
+ else
+ pf="$fp/$ansexp"
+ fi
+ if test -f "$pf"; then
+ type=''
+ elif test -r "$pf" || (test -h "$pf") >/dev/null 2>&1
+ then
+ echo "($value is not a plain file, but that's ok.)"
+ type=''
+ fi
+ if test X"$type" = X; then
+ value="$pf"
+ break
+ fi
+ done
;;
Directory)
- if test -d "$ansexp"; then
- type=''
- fi
+ for fp in $gfpth; do
+ if test "X$fp" = X.; then
+ pf="$ansexp"
+ else
+ pf="$fp/$ansexp"
+ fi
+ if test -d "$pf"; then
+ type=''
+ value="$pf"
+ break
+ fi
+ done
;;
Locate)
if test -d "$ansexp"; then
rp="$orig_rp"
dflt="$orig_dflt"
rm -f getfile.ok
+test "X$gfpthkeep" != Xy && gfpth=""
EOSC
: determine root of directory hierarchy where package will be installed.
tdir=`pwd`; cd $rsrc; $ls -C $dldir/dl*.xs; cd $tdir
rp="Source file to use for dynamic loading"
fn="fne"
- # XXX This getfile call will fail the existence check if you try
- # building away from $src (this is not supported yet).
+ gfpth="$src"
. ./getfile
usedl="$define"
: emulate basename
# how to tr(anslate) newlines
TRNL = '$trnl'
+# this is where the sources are
+src = $src
+# this is src quoted for use in regexen
+srcqre = `echo $src|sed -e 's@^\.$@\\\.@' -e 's@^\./$@\\\./@' -e 's@^\.\./@\\\.\\\./@g`
+
+# nice makes grok this
+!GROK!THIS!
+if $test X. != X$src; then
+$spitshell >>Makefile <<!GROK!THIS!
+VPATH = .:$src
+!GROK!THIS!
+else
+$spitshell >>Makefile <<!GROK!THIS!
+VPATH = .
!GROK!THIS!
+fi
## In the following dollars and backticks do not need the extra backslash.
$spitshell >>Makefile <<'!NO!SUBS!'
FORCE:
@sh -c true
-miniperlmain$(OBJ_EXT): miniperlmain.c
+miniperlmain$(OBJ_EXT): $(src)/miniperlmain.c
$(CCCMD) $(PLDLFLAGS) $*.c
-perlmain.c: miniperlmain.c config.sh $(FIRSTMAKEFILE)
+perlmain.c: $(src)/miniperlmain.c config.sh $(FIRSTMAKEFILE)
sh writemain $(DYNALOADER) $(static_ext) > writemain.tmp
- sh mv-if-diff writemain.tmp perlmain.c
+ sh $(src)/mv-if-diff writemain.tmp perlmain.c
perlmain$(OBJ_EXT): perlmain.c
$(CCCMD) $(PLDLFLAGS) $*.c
miniperl: $& miniperlmain$(OBJ_EXT) $(LIBPERL)
$(LDLIBPTH) $(CC) $(LARGE) $(CLDFLAGS) -o miniperl miniperlmain$(OBJ_EXT) $(LLIBPERL) $(libs)
- $(LDLIBPTH) ./miniperl -w -Ilib -MExporter -e 0 || $(MAKE) minitest
+ $(LDLIBPTH) ./miniperl -w -Ilib -I$(src)/lib -MExporter -e 0 || $(MAKE) minitest
perl: $& perlmain$(OBJ_EXT) $(LIBPERL) $(DYNALOADER) $(static_ext) ext.libs $(PERLEXPORT)
$(SHRPENV) $(LDLIBPTH) $(CC) $(LARGE) $(CLDFLAGS) $(CCDLFLAGS) -o perl perlmain$(OBJ_EXT) $(DYNALOADER) $(static_ext) $(LLIBPERL) `cat ext.libs` $(libs)
$(CCCMD) -DIAMSUID sperl.c
$(RMS) sperl.c
+lib:
+ @sh ./makedir lib
+
# We have to call our ./makedir because Ultrix 4.3 make can't handle the line
# test -d lib/auto || mkdir lib/auto
#
preplibrary: miniperl lib/Config.pm $(plextract)
@sh ./makedir lib/auto
@echo " AutoSplitting perl library"
- $(LDLIBPTH) ./miniperl -Ilib -e 'use AutoSplit; \
- autosplit_lib_modules(@ARGV)' lib/*.pm lib/*/*.pm
+ $(LDLIBPTH) ./miniperl -Ilib -I$(src)/lib -e 'use AutoSplit; \
+ autosplit_lib_modules(@ARGV)' $(src)/lib/*.pm $(src)/lib/*/*.pm
# Take care to avoid modifying lib/Config.pm without reason
# (If trying to create a new port and having problems with the configpm script,
# try 'make minitest' and/or commenting out the tests at the end of configpm.)
-lib/Config.pm: config.sh miniperl configpm
+lib/Config.pm: lib config.sh miniperl configpm
$(LDLIBPTH) ./miniperl configpm configpm.tmp
- sh mv-if-diff configpm.tmp $@
+ sh $(src)/mv-if-diff configpm.tmp $@
+
+lib/ExtUtils: lib
+ @sh ./makedir lib/ExtUtils
-lib/ExtUtils/Miniperl.pm: miniperlmain.c miniperl minimod.pl lib/Config.pm
+lib/ExtUtils/Miniperl.pm: lib/ExtUtils miniperlmain.c miniperl minimod.pl lib/Config.pm
$(LDLIBPTH) ./miniperl minimod.pl > minimod.tmp
- sh mv-if-diff minimod.tmp $@
+ sh $(src)/mv-if-diff minimod.tmp $@
-lib/re.pm: ext/re/re.pm
+lib/re.pm: lib $(src)/ext/re/re.pm
rm -f $@
- cat ext/re/re.pm > $@
+ cat $(src)/ext/re/re.pm > $@
-$(plextract): miniperl lib/Config.pm lib/re.pm
- $(LDLIBPTH) ./miniperl -Ilib $@.PL
+pod:
+ @sh ./makedir pod
+
+$(plextract): pod miniperl lib/Config.pm lib/re.pm
+ $(LDLIBPTH) ./miniperl -Ilib -I$(src)/lib $(src)/$@.PL
install: all install.perl install.man
chmod 664 vms/perly_c.vms vms/perly_h.vms
perl vms/vms_yfix.pl perly.c perly.h vms/perly_c.vms vms/perly_h.vms
+perly$(OBJ_EXT): $(src)/perly.c
+ $(CCCMD) $(PLDLFLAGS) $(src)/perly.c
+
# We don't want to regenerate perly.c and perly.h, but they might
# appear out-of-date after a patch is applied or a new distribution is
# made.
-perly.c: perly.y
+perly.c: $(src)/perly.y
+ -@sh -c true
+
+perly.h: $(src)/perly.y
+ -@sh -c true
+
+# Both the above and below are needed for an out-of-source experience.
+$(src)/perly.c: $(src)/perly.y
-@sh -c true
-perly.h: perly.y
+$(src)/perly.h: $(src)/perly.y
-@sh -c true
# No compat3.sym here since and including the 5.004_50.
# DynaLoader may be needed for extensions that use Makefile.PL.
$(DYNALOADER): miniperl preplibrary FORCE
- @$(LDLIBPTH) sh ext/util/make_ext static $@ MAKE=$(MAKE) LIBPERL_A=$(LIBPERL)
+ @$(LDLIBPTH) sh $(src)/ext/util/make_ext static $@ MAKE=$(MAKE) LIBPERL_A=$(LIBPERL)
d_dummy $(dynamic_ext): miniperl preplibrary $(DYNALOADER) FORCE
- @$(LDLIBPTH) sh ext/util/make_ext dynamic $@ MAKE=$(MAKE) LIBPERL_A=$(LIBPERL)
+ @$(LDLIBPTH) sh $(src)/ext/util/make_ext dynamic $@ MAKE=$(MAKE) LIBPERL_A=$(LIBPERL)
s_dummy $(static_ext): miniperl preplibrary $(DYNALOADER) FORCE
- @$(LDLIBPTH) sh ext/util/make_ext static $@ MAKE=$(MAKE) LIBPERL_A=$(LIBPERL)
+ @$(LDLIBPTH) sh $(src)/ext/util/make_ext static $@ MAKE=$(MAKE) LIBPERL_A=$(LIBPERL)
n_dummy $(nonxs_ext): miniperl preplibrary $(DYNALOADER) FORCE
- @$(LDLIBPTH) sh ext/util/make_ext nonxs $@ MAKE=$(MAKE) LIBPERL_A=$(LIBPERL)
+ @$(LDLIBPTH) sh $(src)/ext/util/make_ext nonxs $@ MAKE=$(MAKE) LIBPERL_A=$(LIBPERL)
clean: _tidy _mopup
cd x2p; $(MAKE) depend
# Cannot postpone this until $firstmakefile is ready ;-)
-makedepend: makedepend.SH config.sh
- sh ./makedepend.SH
+makedepend: $(src)/makedepend.SH config.sh
+ sh $(src)/makedepend.SH
# Cannot delegate rebuilding of t/perl to make to allow interlaced
# test and minitest
# Please *don't* use this unless all tests pass.
# If you want to report test failures, use "make nok" instead.
ok: utilities
- $(LDLIBPTH) ./perl -Ilib utils/perlbug -ok -s '(UNINSTALLED)'
+ $(LDLIBPTH) ./perl -Ilib -I$(src)/lib utils/perlbug -ok -s '(UNINSTALLED)'
okfile: utilities
- $(LDLIBPTH) ./perl -Ilib utils/perlbug -ok -s '(UNINSTALLED)' -F perl.ok
+ $(LDLIBPTH) ./perl -Ilib -I$(src)/lib utils/perlbug -ok -s '(UNINSTALLED)' -F perl.ok
nok: utilities
- $(LDLIBPTH) ./perl -Ilib utils/perlbug -nok -s '(UNINSTALLED)'
+ $(LDLIBPTH) ./perl -Ilib -I$(src)/lib utils/perlbug -nok -s '(UNINSTALLED)'
clist: $(c)
- echo $(c) | tr ' ' $(TRNL) >.clist
+ echo $(c) | tr ' ' $(TRNL) | sed -e "s@^$(srcqre)/@@" >.clist
hlist: $(h)
- echo $(h) | tr ' ' $(TRNL) >.hlist
+ echo $(h) | tr ' ' $(TRNL) | sed -e "s@^$(srcqre)/@@" >.hlist
shlist: $(sh)
- echo $(sh) | tr ' ' $(TRNL) >.shlist
+ echo $(sh) | tr ' ' $(TRNL) | sed -e "s@^$(srcqre)/@@" >.shlist
pllist: $(pl)
- echo $(pl) | tr ' ' $(TRNL) >.pllist
+ echo $(pl) | tr ' ' $(TRNL) | sed -e "s@^$(srcqre)/@@" >.pllist
Makefile: Makefile.SH ./config.sh
$(SHELL) Makefile.SH
rm -f cflags
$spitshell >cflags <<!GROK!THIS!
$startsh
+src=$src
!GROK!THIS!
: In the following dollars and backticks do not need the extra backslash.
*) echo $n " $file.c $c" ;;
esac
+ : allow for out-of-source experience
+
+ if test "X$src" != X.; then
+ ccflags="$ccflags -I$src -I."
+ fi
+
: allow variables like toke_cflags to be evaluated
if echo $file | grep -v / >/dev/null
#!./miniperl -w
+# File::Spec?
my $config_pm = $ARGV[0] || 'lib/Config.pm';
-my $glossary = $ARGV[1] || 'Porting/Glossary';
+my $src = '.';
+# File::Dirname? File::Spec?
+if ($0 =~ m!^(?:(.+)/)configpm$!) {
+ $src = $1;
+ unshift @INC, "$1/lib";
+}
+# File::Spec?
+my $glossary = $ARGV[1] || "$src/Porting/Glossary";
@ARGV = "./config.sh";
# list names to put first (and hence lookup fastest)
print CONFIG "my \$summary = <<'!END!';\n";
-open(MYCONFIG,"<myconfig.SH") || die "open myconfig.SH failed: $!";
+# File::Spec?
+my $myconfigdotSH =
+ $src eq "." ? "myconfig.SH" : "$src/myconfig.SH";
+
+open(MYCONFIG,"<$myconfigdotSH") || die "open $myconfigdotSH failed: $!";
1 while defined($_ = <MYCONFIG>) && !/^Summary of/;
do { print CONFIG $_ } until !defined($_ = <MYCONFIG>) || /^\s*$/;
close(MYCONFIG);
makeargs=''
makeopts=''
-if test ! -d "ext/$pname"; then
+if test ! -d "$src/ext/$pname"; then
echo " Skipping $extspec (directory does not exist)"
exit 0 # not an error ?
fi
echo " Making $mname ($target)"
+mkdir ext 2>/dev/null
+mkdir ext/$pname 2>/dev/null
+if test ! -f ext/$pname/Makefile.PL; then
+ cat $src/ext/$pname/Makefile.PL > ext/$pname/Makefile.PL
+fi
cd ext/$pname
# check link type and do any preliminaries
esac
if test ! -f $makefile ; then
- test -f Makefile.PL && ../$depth/miniperl -I../$depth/lib Makefile.PL INSTALLDIRS=perl $passthru
+ test -f Makefile.PL && ../$depth/miniperl -I../$depth/lib -I$src/lib Makefile.PL INSTALLDIRS=perl $passthru
fi
if test ! -f $makefile ; then
if test -f Makefile.SH; then
$dir =~ s#[\.\]]#/#g;
$_ = $dir . $name;
}
- autosplit_file("lib/$_", "lib/auto",
+ autosplit_file("$_", "lib/auto",
$Keep, $CheckForAutoloader, $CheckModTime);
}
0;
#
MAKE=$make
trnl='$trnl'
+src=$src
!GROK!THIS!
$spitshell >>makedepend <<'!NO!SUBS!'
# This script should be called with
-# sh ./makedepend MAKE=$(MAKE)
+# sh ./makedepend MAKE=$(MAKE) [src=$(src)]
case "$1" in
- MAKE=*) eval $1 ;;
+ MAKE=*) eval $1 ; shift ;;
esac
export PATH || (echo "OOPS, this isn't sh. Desperation time. I will feed myself to sh."; sh \$0; kill \$\$)
;;
esac
+case "$1" in
+ src=*) eval $1 ; shift ;;
+esac
+
# We need .. when we are in the x2p directory if we are using the
# cppstdin wrapper script.
# Put .. and . first so that we pick up the present cppstdin, not
: might be identical
$test -d UU || mkdir UU
-$MAKE clist || ($echo "Searching for .c files..."; \
- $echo *.c | $tr ' ' $trnl | $egrep -v '\*' >.clist)
-for file in `$cat .clist`; do
+$MAKE clist || (cd $src; $echo "Searching for .c files..."; \
+ $echo *.c | $tr ' ' $trnl | $egrep -v '\*') >.clist
+for base in `$cat .clist`; do
+ case "$src" in
+ .) file="$base" ;;
+ *) if test -f "$base"; then
+ file="$base"
+ elif test -f "$src/$base"; then
+ file="$src/$base"
+ fi
+ ;;
+ esac
# for file in `cat /dev/null`; do
if [ "$osname" = uwin ]; then
uwinfix="-e s,\\\\\\\\,/,g -e s,\\([a-zA-Z]\\):/,/\\1/,g"
fi
fi
case "$file" in
- *.c) filebase=`basename $file .c` ;;
- *.y) filebase=`basename $file .y` ;;
- esac
- case "$file" in
*/*) finc="-I`echo $file | sed 's#/[^/]*$##`" ;;
*) finc= ;;
esac
- $echo "Finding dependencies for $filebase$_o."
+ case "$src" in
+ '') ;;
+ *) finc="-I$src" ;;
+ esac
+ basebase=`basename $base .c`
+ $echo "Finding dependencies for $basebase$_o."
( $echo "#line 1 \"$file\""; \
$sed -n <$file \
-e "/^${filebase}_init(/q" \
-e 's|/\*.*$||' \
-e 's|\\$||' \
-e p \
- -e '}' ) >UU/$file.c
- $cppstdin $finc -I. $cppflags $cppminus <UU/$file.c |
+ -e '}' ) >UU/$base.c
+ $cppstdin $finc -I. $cppflags $cppminus <UU/$base.c |
$sed \
-e '/^#.*<stdin>/d' \
-e '/^#.*"-"/d' \
-e 's#\.[0-9][0-9]*\.c#'"$file.c#" \
-e 's/^[ ]*#[ ]*line/#/' \
-e '/^# *[0-9][0-9]* *[".\/]/!d' \
- -e 's/^.*"\(.*\)".*$/'$filebase'\$(OBJ_EXT): \1/' \
- -e 's/^# *[0-9][0-9]* \(.*\)$/'$filebase'\$(OBJ_EXT): \1/' \
+ -e 's/^.*"\(.*\)".*$/'$base'\$(OBJ_EXT): \1/' \
+ -e 's/^# *[0-9][0-9]* \(.*\)$/'$base'\$(OBJ_EXT): \1/' \
-e 's|: \./|: |' \
-e 's|\.c\.c|.c|' $uwinfix | \
$uniq | $sort | $uniq >> .deptmp
$sed <$mf >$mf.new -e '1,/^# AUTOMATICALLY/!d'
-$MAKE shlist || ($echo "Searching for .SH files..."; \
- $echo *.SH | $tr ' ' $trnl | $egrep -v '\*' >.shlist)
+$MAKE shlist || (cd $src; $echo "Searching for .SH files..."; \
+ $echo *.SH | $tr ' ' $trnl | $egrep -v '\*') >.shlist
# Now extract the dependencies on makedepend.SH and Makefile.SH
# (they should reside in the main Makefile):
$sed 's|^\(.*\$(OBJ_EXT):\) *\(.*/.*\.c\) *$|\1 \2; '"$defrule \2|" .deptmp \
>>$mf.new
else
- $MAKE hlist || ($echo "Searching for .h files..."; \
- $echo *.h | $tr ' ' $trnl | $egrep -v '\*' >.hlist)
+ $MAKE hlist || (cd $src; $echo "Searching for .h files..."; \
+ $echo *.h | $tr ' ' $trnl | $egrep -v '\*') >.hlist
$echo "You don't seem to have a proper C preprocessor. Using grep instead."
$egrep '^#include ' `cat .clist` `cat .hlist` >.deptmp
$echo "Updating $mf..."
use Config;
use File::Basename qw(&basename &dirname);
-use Cwd;
# List explicitly here the variables you want Configure to
# generate. Metaconfig only looks for shell variables, so you
# $startperl
# to ensure Configure will look for $Config{startperl}.
-# This forces PL files to create target in same directory as PL file.
-# This is so that make depend always knows where to find PL derivatives.
-$origdir = cwd;
-chdir dirname($0);
-$file = basename($0, '.PL');
+$file = basename($0);
+$file =~ s/\.PL$//i;
$file .= '.com' if $^O eq 'VMS';
+chdir("pod") or die "Can't chdir to pod: $!";
open OUT,">$file" or die "Can't create $file: $!";
print "Extracting $file (with variable substitutions)\n";
close OUT or die "Can't close $file: $!";
chmod 0755, $file or die "Can't reset permissions for $file: $!\n";
exec("$Config{'eunicefix'} $file") if $Config{'eunicefix'} ne ':';
-chdir $origdir;
+
use Config;
use File::Basename qw(&basename &dirname);
-use Cwd;
# List explicitly here the variables you want Configure to
# generate. Metaconfig only looks for shell variables, so you
# $startperl
# to ensure Configure will look for $Config{startperl}.
-# This forces PL files to create target in same directory as PL file.
-# This is so that make depend always knows where to find PL derivatives.
-$origdir = cwd;
-chdir dirname($0);
-$file = basename($0, '.PL');
+$file = basename($0);
+$file =~ s/\.PL$//i;
$file .= '.com' if $^O eq 'VMS';
+chdir("pod") or die "Can't chdir to pod: $!";
open OUT,">$file" or die "Can't create $file: $!";
print "Extracting $file (with variable substitutions)\n";
close OUT or die "Can't close $file: $!";
chmod 0755, $file or die "Can't reset permissions for $file: $!\n";
exec("$Config{'eunicefix'} $file") if $Config{'eunicefix'} ne ':';
-chdir $origdir;
use Config;
use File::Basename qw(&basename &dirname);
-use Cwd;
# List explicitly here the variables you want Configure to
# generate. Metaconfig only looks for shell variables, so you
# $man3ext
# to ensure Configure will look for $Config{startperl}.
-# This forces PL files to create target in same directory as PL file.
-# This is so that make depend always knows where to find PL derivatives.
-$origdir = cwd;
-chdir dirname($0);
-$file = basename($0, '.PL');
+$file = basename($0);
+$file =~ s/\.PL$//i;
$file .= '.com' if $^O eq 'VMS';
+chdir("pod") or die "Can't chdir to pod: $!";
open OUT,">$file" or die "Can't create $file: $!";
print "Extracting $file (with variable substitutions)\n";
close OUT or die "Can't close $file: $!";
chmod 0755, $file or die "Can't reset permissions for $file: $!\n";
exec("$Config{'eunicefix'} $file") if $Config{'eunicefix'} ne ':';
-chdir $origdir;
use Config;
use File::Basename qw(&basename &dirname);
-use Cwd;
# List explicitly here the variables you want Configure to
# generate. Metaconfig only looks for shell variables, so you
# $startperl
# to ensure Configure will look for $Config{startperl}.
-# This forces PL files to create target in same directory as PL file.
-# This is so that make depend always knows where to find PL derivatives.
-$origdir = cwd;
-chdir dirname($0);
+$file = basename($0);
$file = basename($0, '.PL');
$file .= '.com' if $^O eq 'VMS';
+chdir("pod") or die "Can't chdir to pod: $!";
open OUT,">$file" or die "Can't create $file: $!";
print "Extracting $file (with variable substitutions)\n";
close OUT or die "Can't close $file: $!";
chmod 0755, $file or die "Can't reset permissions for $file: $!\n";
exec("$Config{'eunicefix'} $file") if $Config{'eunicefix'} ne ':';
-chdir $origdir;
# $startperl
# to ensure Configure will look for $Config{startperl}.
-# This forces PL files to create target in same directory as PL file.
-# This is so that make depend always knows where to find PL derivatives.
-chdir(dirname($0));
-($file = basename($0)) =~ s/\.PL$//;
-$file =~ s/\.pl$//
- if ($^O eq 'VMS' or $^O eq 'os2'); # "case-forgiving"
+$file = basename($0);
+$file =~ s/\.PL$//i;
+$file .= '.com' if $^O eq 'VMS';
+chdir("pod") or die "Can't chdir to pod: $!";
open OUT,">$file" or die "Can't create $file: $!";
print "Extracting $file (with variable substitutions)\n";
# $startperl
# to ensure Configure will look for $Config{startperl}.
-# This forces PL files to create target in same directory as PL file.
-# This is so that make depend always knows where to find PL derivatives.
-chdir(dirname($0));
-($file = basename($0)) =~ s/\.PL$//;
-$file =~ s/\.pl$//
- if ($^O eq 'VMS' or $^O eq 'os2'); # "case-forgiving"
+$file = basename($0);
+$file =~ s/\.PL$//i;
+$file .= '.com' if $^O eq 'VMS';
+chdir("pod") or die "Can't chdir to pod: $!";
open OUT,">$file" or die "Can't create $file: $!";
print "Extracting $file (with variable substitutions)\n";
# $startperl
# to ensure Configure will look for $Config{startperl}.
-# This forces PL files to create target in same directory as PL file.
-# This is so that make depend always knows where to find PL derivatives.
-chdir(dirname($0));
-($file = basename($0)) =~ s/\.PL$//;
-$file =~ s/\.pl$//
- if ($^O eq 'VMS' or $^O eq 'os2'); # "case-forgiving"
+$file = basename($0);
+$file =~ s/\.PL$//i;
+$file .= '.com' if $^O eq 'VMS';
+chdir("pod") or die "Can't chdir to pod: $!";
open OUT,">$file" or die "Can't create $file: $!";
print "Extracting $file (with variable substitutions)\n";
rm -f writemain
$spitshell >writemain <<!GROK!THIS!
$startsh
+src=$src
!GROK!THIS!
: In the following dollars and backticks do not need the extra backslash.
done
-sed '/Do not delete this line--writemain depends on it/q' miniperlmain.c
+sed '/Do not delete this line--writemain depends on it/q' $src/miniperlmain.c
if test X"$args" != "X" ; then
-case $CONFIG in
+case $CONFIGDOTSH in
'')
if test -f config.sh; then TOP=.;
elif test -f ../config.sh; then TOP=..;
.SUFFIXES: .c \$(OBJ_EXT)
+# this is where the sources are
+src = $src
+
+# nice makes grok this
+VPATH = .:$src
+
!GROK!THIS!
cat >>Makefile <<'!NO!SUBS!'
addedbyconf = $(shextract) $(plextract)
-h = EXTERN.h INTERN.h ../config.h ../handy.h hash.h a2p.h str.h util.h
+h = EXTERN.h INTERN.h ../config.h handy.h hash.h a2p.h str.h util.h
-c = hash.c $(mallocsrc) str.c util.c walk.c
+c = hash.c str.c util.c walk.c
obj = hash$(OBJ_EXT) $(mallocobj) str$(OBJ_EXT) util$(OBJ_EXT) walk$(OBJ_EXT)
lint $(lintflags) $(defs) $(c) > a2p.fuzz
depend: $(mallocsrc) ../makedepend
- sh ../makedepend MAKE=$(MAKE)
+ sh ../makedepend MAKE=$(MAKE) src=$(src)/x2p
clist:
echo $(c) | tr ' ' $(TRNL) >.clist
-case $CONFIG in
+case $CONFIGDOTSH in
'')
if test -f config.sh; then TOP=.;
elif test -f ../config.sh; then TOP=..;