summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCharles Bailey <bailey@genetics.upenn.edu>1996-03-21 00:00:00 +0000
committerCharles Bailey <bailey@genetics.upenn.edu>1996-03-21 00:00:00 +0000
commitea8ae489b8bf21511451c0ae78ebd48b717da772 (patch)
tree0559832b0950e342afa306c0cbaa80318ae48eb6
parenta5f75d667838e8e7bb037880391f5c44476d33b4 (diff)
downloadperl-ea8ae489b8bf21511451c0ae78ebd48b717da772.tar.gz
perl 5.002_01: [patch re-organisation and introduction]
This is my patch _01 to perl 5.002. The bulk of this patch consists of VMS and OS/2 updates, and the conversion to use EMBED as the default when building Perl. It also includes miscellaneous bugfixes, corrections to the pods, and minor additions, notably the new $^E and $^O variables. [editor's note: the changes between this and the perl-5.002_01 tag are the individual changes in the patch set]
-rw-r--r--os2/diff.Makefile415
-rw-r--r--os2/diff.c2ph19
-rw-r--r--os2/diff.installman76
-rw-r--r--os2/diff.installperl228
-rw-r--r--os2/diff.mkdep131
-rw-r--r--os2/diff.rest12
-rw-r--r--os2/diff.x2pMakefile136
-rw-r--r--vms/ext/MM_VMS.pm1846
-rw-r--r--vms/ext/Stdio/Makefile.PL (renamed from vms/ext/stdio/Makefile.PL)0
-rw-r--r--vms/ext/Stdio/Stdio.pm (renamed from vms/ext/stdio/stdio.pm)0
-rw-r--r--vms/ext/Stdio/Stdio.xs (renamed from vms/ext/stdio/stdio.xs)0
11 files changed, 0 insertions, 2863 deletions
diff --git a/os2/diff.Makefile b/os2/diff.Makefile
deleted file mode 100644
index fdce070977..0000000000
--- a/os2/diff.Makefile
+++ /dev/null
@@ -1,415 +0,0 @@
-*** Makefile.SH.orig Fri Feb 02 16:38:32 1996
---- Makefile.SH Sat Feb 03 14:40:28 1996
-***************
-*** 31,43 ****
- *[0-9]) plibsuf=.$so.$patchlevel;;
- *) plibsuf=.$so;;
- esac
- case "$shrpdir" in
- /usr/lib) ;;
- "") ;;
- *) shrpenv="env LD_RUN_PATH=$shrpdir";;
- esac
- pldlflags="$cccdlflags";;
-! *) plibsuf=.a
- pldlflags="";;
- esac
-
---- 31,44 ----
- *[0-9]) plibsuf=.$so.$patchlevel;;
- *) plibsuf=.$so;;
- esac
-+ if test "x$plibext" != "x" ; then plibsuf=$plibext d_shrplib=custom ; fi
- case "$shrpdir" in
- /usr/lib) ;;
- "") ;;
- *) shrpenv="env LD_RUN_PATH=$shrpdir";;
- esac
- pldlflags="$cccdlflags";;
-! *) plibsuf=$lib_ext
- pldlflags="";;
- esac
-
-***************
-*** 53,59 ****
- static_ai_list=' '
- for f in $static_ext; do
- base=`echo "$f" | sed 's/.*\///'`
-! static_list="$static_list lib/auto/$f/$base.a"
- if test -f ext/$f/AutoInit.c; then
- static_ai_list="$static_ai_list ext/$f/AutoInit.c"
- fi
---- 54,60 ----
- static_ai_list=' '
- for f in $static_ext; do
- base=`echo "$f" | sed 's/.*\///'`
-! static_list="$static_list lib/auto/$f/$base\$(LIB_EXT)"
- if test -f ext/$f/AutoInit.c; then
- static_ai_list="$static_ai_list ext/$f/AutoInit.c"
- fi
-***************
-*** 115,122 ****
- static_ext = $static_list
- ext = \$(dynamic_ext) \$(static_ext)
- static_ext_autoinit = $static_ai_list
-! DYNALOADER = lib/auto/DynaLoader/DynaLoader.a
-!
-
- libs = $libs $cryptlib
-
---- 116,122 ----
- static_ext = $static_list
- ext = \$(dynamic_ext) \$(static_ext)
- static_ext_autoinit = $static_ai_list
-! DYNALOADER = lib/auto/DynaLoader/DynaLoader\$(LIB_EXT)
-
- libs = $libs $cryptlib
-
-***************
-*** 140,145 ****
---- 140,147 ----
- # Any special object files needed by this architecture, e.g. os2/os2.obj
- ARCHOBJS = $archobjs
-
-+ .SUFFIXES: .c \$(OBJ_EXT)
-+
- !GROK!THIS!
-
- ## In the following dollars and backticks do not need the extra backslash.
-***************
-*** 178,188 ****
-
- c = $(c1) $(c2) $(c3) miniperlmain.c perlmain.c
-
-! obj1 = $(mallocobj) gv.o toke.o perly.o op.o regcomp.o dump.o util.o mg.o
-! obj2 = hv.o av.o run.o pp_hot.o sv.o pp.o scope.o pp_ctl.o pp_sys.o
-! obj3 = doop.o doio.o regexec.o taint.o deb.o globals.o
-!
-!
- obj = $(obj1) $(obj2) $(obj3) $(ARCHOBJS)
-
- # Once perl has been Configure'd and built ok you build different
---- 180,189 ----
-
- c = $(c1) $(c2) $(c3) miniperlmain.c perlmain.c
-
-! obj1 = $(mallocobj) gv$(OBJ_EXT) toke$(OBJ_EXT) perly$(OBJ_EXT) op$(OBJ_EXT) regcomp$(OBJ_EXT) dump$(OBJ_EXT) util$(OBJ_EXT) mg$(OBJ_EXT)
-! obj2 = hv$(OBJ_EXT) av$(OBJ_EXT) run$(OBJ_EXT) pp_hot$(OBJ_EXT) sv$(OBJ_EXT) pp$(OBJ_EXT) scope$(OBJ_EXT) pp_ctl$(OBJ_EXT) pp_sys$(OBJ_EXT)
-! obj3 = doop$(OBJ_EXT) doio$(OBJ_EXT) regexec$(OBJ_EXT) taint$(OBJ_EXT) deb$(OBJ_EXT) globals$(OBJ_EXT)
-!
- obj = $(obj1) $(obj2) $(obj3) $(ARCHOBJS)
-
- # Once perl has been Configure'd and built ok you build different
-***************
-*** 201,207 ****
- # grrr
- SHELL = /bin/sh
-
-! .c.o:
- $(CCCMD) $(PLDLFLAGS) $*.c
-
- all: makefile miniperl $(private) $(plextract) $(public) $(dynamic_ext)
---- 202,208 ----
- # grrr
- SHELL = /bin/sh
-
-! .c$(OBJ_EXT):
- $(CCCMD) $(PLDLFLAGS) $*.c
-
- all: makefile miniperl $(private) $(plextract) $(public) $(dynamic_ext)
-***************
-*** 230,247 ****
- # build problems but that's not obvious to the novice.
- # The Module used here must not depend on Config or any extensions.
-
-! miniperl: $& miniperlmain.o $(perllib)
-! $(CC) $(LARGE) $(CLDFLAGS) -o miniperl miniperlmain.o $(perllib) $(libs)
- @./miniperl -w -Ilib -MExporter -e 0 || $(MAKE) minitest
-
-! miniperlmain.o: miniperlmain.c
- $(CCCMD) $(PLDLFLAGS) $*.c
-
- perlmain.c: miniperlmain.c config.sh makefile $(static_ext_autoinit)
- sh writemain $(DYNALOADER) $(static_ext) > tmp
- sh mv-if-diff tmp perlmain.c
-
-! perlmain.o: perlmain.c
- $(CCCMD) $(PLDLFLAGS) $*.c
-
- # The file ext.libs is a list of libraries that must be linked in
---- 231,248 ----
- # build problems but that's not obvious to the novice.
- # The Module used here must not depend on Config or any extensions.
-
-! miniperl: $& miniperlmain$(OBJ_EXT) $(perllib)
-! $(CC) $(LARGE) $(CLDFLAGS) -o miniperl miniperlmain$(OBJ_EXT) $(perllib) $(libs)
- @./miniperl -w -Ilib -MExporter -e 0 || $(MAKE) minitest
-
-! miniperlmain$(OBJ_EXT): miniperlmain.c
- $(CCCMD) $(PLDLFLAGS) $*.c
-
- perlmain.c: miniperlmain.c config.sh makefile $(static_ext_autoinit)
- sh writemain $(DYNALOADER) $(static_ext) > tmp
- sh mv-if-diff tmp perlmain.c
-
-! perlmain$(OBJ_EXT): perlmain.c
- $(CCCMD) $(PLDLFLAGS) $*.c
-
- # The file ext.libs is a list of libraries that must be linked in
-***************
-*** 250,277 ****
- ext.libs: $(static_ext)
- -@test -f ext.libs || touch ext.libs
-
-! perl: $& perlmain.o $(perllib) $(DYNALOADER) $(static_ext) ext.libs
-! $(SHRPENV) $(CC) $(LARGE) $(CLDFLAGS) $(CCDLFLAGS) -o perl perlmain.o $(perllib) $(DYNALOADER) $(static_ext) `cat ext.libs` $(libs)
-
-! pureperl: $& perlmain.o $(perllib) $(DYNALOADER) $(static_ext) ext.libs
-! purify $(CC) $(LARGE) $(CLDFLAGS) $(CCDLFLAGS) -o pureperl perlmain.o $(perllib) $(DYNALOADER) $(static_ext) `cat ext.libs` $(libs)
-
-! quantperl: $& perlmain.o $(perllib) $(DYNALOADER) $(static_ext) ext.libs
-! quantify $(CC) $(LARGE) $(CLDFLAGS) $(CCDLFLAGS) -o quantperl perlmain.o $(perllib) $(DYNALOADER) $(static_ext) `cat ext.libs` $(libs)
-
-! $(perllib): $& perl.o $(obj)
- !NO!SUBS!
-
- case "$d_shrplib" in
- *define*)
- $spitshell >>Makefile <<'!NO!SUBS!'
-! $(LD) $(LDDLFLAGS) -o $@ perl.o $(obj)
- !NO!SUBS!
- ;;
- *)
- $spitshell >>Makefile <<'!NO!SUBS!'
- rm -f $(perllib)
-! $(AR) rcu $(perllib) perl.o $(obj)
- @$(ranlib) $(perllib)
- !NO!SUBS!
- ;;
---- 251,290 ----
- ext.libs: $(static_ext)
- -@test -f ext.libs || touch ext.libs
-
-! perl: $& perlmain$(OBJ_EXT) $(perllib) $(DYNALOADER) $(static_ext) ext.libs
-! $(SHRPENV) $(CC) $(LARGE) $(CLDFLAGS) $(CCDLFLAGS) -o perl perlmain$(OBJ_EXT) $(perllib) $(DYNALOADER) $(static_ext) `cat ext.libs` $(libs)
-
-! pureperl: $& perlmain$(OBJ_EXT) $(perllib) $(DYNALOADER) $(static_ext) ext.libs
-! purify $(CC) $(LARGE) $(CLDFLAGS) $(CCDLFLAGS) -o pureperl perlmain$(OBJ_EXT) $(perllib) $(DYNALOADER) $(static_ext) `cat ext.libs` $(libs)
-
-! quantperl: $& perlmain$(OBJ_EXT) $(perllib) $(DYNALOADER) $(static_ext) ext.libs
-! quantify $(CC) $(LARGE) $(CLDFLAGS) $(CCDLFLAGS) -o quantperl perlmain$(OBJ_EXT) $(perllib) $(DYNALOADER) $(static_ext) `cat ext.libs` $(libs)
-
-! $(perllib): $& perl$(OBJ_EXT) $(obj)
- !NO!SUBS!
-
- case "$d_shrplib" in
- *define*)
- $spitshell >>Makefile <<'!NO!SUBS!'
-! $(LD) $(LDDLFLAGS) -o $@ perl$(OBJ_EXT) $(obj)
- !NO!SUBS!
- ;;
-+ custom)
-+ if test -r $osname/Makefile.SHs ; then
-+ . $osname/Makefile.SHs
-+ $spitshell >>Makefile <<!GROK!THIS!
-+
-+ Makefile: $osname/Makefile.SHs
-+
-+ !GROK!THIS!
-+ else
-+ echo "Could not find $osname/Makefile.SH! Skipping target \$(perllib) in Makefile!"
-+ fi
-+ ;;
- *)
- $spitshell >>Makefile <<'!NO!SUBS!'
- rm -f $(perllib)
-! $(AR) rcu $(perllib) perl$(OBJ_EXT) $(obj)
- @$(ranlib) $(perllib)
- !NO!SUBS!
- ;;
-***************
-*** 284,293 ****
- # checks as well as the special code to validate that the script in question
- # has been invoked correctly.
-
-! suidperl: $& sperl.o perlmain.o $(perllib) $(DYNALOADER) $(static_ext) ext.libs
-! $(CC) $(LARGE) $(CLDFLAGS) $(CCDLFLAGS) -o suidperl perlmain.o sperl.o $(perllib) $(DYNALOADER) $(static_ext) `cat ext.libs` $(libs)
-
-! sperl.o: perl.c perly.h patchlevel.h $(h)
- $(RMS) sperl.c
- $(LNS) perl.c sperl.c
- $(CCCMD) -DIAMSUID sperl.c
---- 297,306 ----
- # checks as well as the special code to validate that the script in question
- # has been invoked correctly.
-
-! suidperl: $& sperl$(OBJ_EXT) perlmain$(OBJ_EXT) $(perllib) $(DYNALOADER) $(static_ext) ext.libs
-! $(CC) $(LARGE) $(CLDFLAGS) $(CCDLFLAGS) -o suidperl perlmain$(OBJ_EXT) sperl$(OBJ_EXT) $(perllib) $(DYNALOADER) $(static_ext) `cat ext.libs` $(libs)
-
-! sperl$(OBJ_EXT): perl.c perly.h patchlevel.h $(h)
- $(RMS) sperl.c
- $(LNS) perl.c sperl.c
- $(CCCMD) -DIAMSUID sperl.c
-***************
-*** 297,303 ****
- # test -d lib/auto || mkdir lib/auto
- #
- preplibrary: miniperl lib/Config.pm $(plextract)
-! @./makedir lib/auto
- @echo " AutoSplitting perl library"
- @./miniperl -Ilib -e 'use AutoSplit; \
- autosplit_lib_modules(@ARGV)' lib/*.pm lib/*/*.pm
---- 310,316 ----
- # test -d lib/auto || mkdir lib/auto
- #
- preplibrary: miniperl lib/Config.pm $(plextract)
-! @sh ./makedir lib/auto
- @echo " AutoSplitting perl library"
- @./miniperl -Ilib -e 'use AutoSplit; \
- autosplit_lib_modules(@ARGV)' lib/*.pm lib/*/*.pm
-***************
-*** 315,328 ****
-
- install: all install.perl install.man
-
-! install.perl: all
- ./perl installperl
-
-! install.man: all
- ./perl installman
-
- # Not implemented yet.
-! #install.html: all
- # ./perl installhtml
-
- # I now supply perly.c with the kits, so the following section is
---- 328,341 ----
-
- install: all install.perl install.man
-
-! install.perl: all installperl
- ./perl installperl
-
-! install.man: all installman
- ./perl installman
-
- # Not implemented yet.
-! #install.html: all installhtml
- # ./perl installhtml
-
- # I now supply perly.c with the kits, so the following section is
-***************
-*** 382,389 ****
- @sh ext/util/make_ext static $@ LIBPERL_A=$(perllib)
-
- clean:
-! rm -f *.o *.a all perlmain.c
- rm -f perl.exp ext.libs
- -cd pod; $(MAKE) clean
- -cd utils; $(MAKE) clean
- -cd x2p; $(MAKE) clean
---- 395,403 ----
- @sh ext/util/make_ext static $@ LIBPERL_A=$(perllib)
-
- clean:
-! rm -f *$(OBJ_EXT) *$(LIB_EXT) all perlmain.c
- rm -f perl.exp ext.libs
-+ -rm perl.export perl.dll perl.libexp perl.map perl.def
- -cd pod; $(MAKE) clean
- -cd utils; $(MAKE) clean
- -cd x2p; $(MAKE) clean
-***************
-*** 402,408 ****
- done
- rm -f *.orig */*.orig *~ */*~ core t/core t/c t/perl
- rm -rf $(addedbyconf)
-! rm -f makefile makefile.old
- rm -f $(private)
- rm -rf lib/auto
- rm -f lib/.exists
---- 416,422 ----
- done
- rm -f *.orig */*.orig *~ */*~ core t/core t/c t/perl
- rm -rf $(addedbyconf)
-! rm -f $(FIRSTMAKEFILE) $(FIRSTMAKEFILE).old
- rm -f $(private)
- rm -rf lib/auto
- rm -f lib/.exists
-***************
-*** 423,447 ****
- lint: perly.c $(c)
- lint $(lintflags) $(defs) perly.c $(c) > perl.fuzz
-
-! makefile: Makefile
-! $(MAKE) depend
-
- config.h: config.sh
- /bin/sh config_h.SH
-
- # When done, touch perlmain.c so that it doesn't get remade each time.
- depend: makedepend
-! ./makedepend
- - test -s perlmain.c && touch perlmain.c
- cd x2p; $(MAKE) depend
-
- test: miniperl perl preplibrary $(dynamic_ext)
- - cd t && chmod +x TEST */*.t
-! - cd t && (rm -f perl; $(LNS) ../perl perl) && ./perl TEST </dev/tty
-
- minitest: miniperl
- - cd t && chmod +x TEST */*.t
-! - cd t && (rm -f perl; $(LNS) ../miniperl perl) \
- && ./perl TEST base/*.t comp/*.t cmd/*.t io/*.t op/*.t </dev/tty
-
- clist: $(c)
---- 437,469 ----
- lint: perly.c $(c)
- lint $(lintflags) $(defs) perly.c $(c) > perl.fuzz
-
-! # Need to unset during recursion to go out of loop
-!
-! MAKEDEPEND = makedepend
-!
-! $(FIRSTMAKEFILE): Makefile $(MAKEDEPEND)
-! $(MAKE) depend MAKEDEPEND=
-
- config.h: config.sh
- /bin/sh config_h.SH
-
- # When done, touch perlmain.c so that it doesn't get remade each time.
- depend: makedepend
-! sh ./makedepend
- - test -s perlmain.c && touch perlmain.c
- cd x2p; $(MAKE) depend
-
-+ # Cannot postpone this until $firstmakefile is ready ;-)
-+ makedepend: makedepend.SH config.sh
-+ sh ./makedepend.SH
-+
- test: miniperl perl preplibrary $(dynamic_ext)
- - cd t && chmod +x TEST */*.t
-! - cd t && (rm -f perl$(EXE_EXT); $(LNS) ../perl$(EXE_EXT) perl$(EXE_EXT)) && ./perl TEST </dev/tty
-
- minitest: miniperl
- - cd t && chmod +x TEST */*.t
-! - cd t && (rm -f perl$(EXE_EXT); $(LNS) ../miniperl$(EXE_EXT) perl$(EXE_EXT)) \
- && ./perl TEST base/*.t comp/*.t cmd/*.t io/*.t op/*.t </dev/tty
-
- clist: $(c)
-***************
-*** 464,470 ****
- case `pwd` in
- *SH)
- $rm -f ../Makefile
-! ln Makefile ../Makefile
- ;;
- esac
-! rm -f makefile
---- 486,492 ----
- case `pwd` in
- *SH)
- $rm -f ../Makefile
-! $ln Makefile ../Makefile
- ;;
- esac
-! $rm -f $firstmakefile
diff --git a/os2/diff.c2ph b/os2/diff.c2ph
deleted file mode 100644
index a3fb6c625f..0000000000
--- a/os2/diff.c2ph
+++ /dev/null
@@ -1,19 +0,0 @@
-*** c2ph.PL~ Mon Nov 20 09:36:16 1995
---- utils/c2ph.PL Thu Dec 07 15:24:10 1995
-***************
-*** 1180,1184 ****
- close OUT or die "Can't close $file: $!";
- chmod 0755, $file or die "Can't reset permissions for $file: $!\n";
- unlink 'pstruct';
-! link c2ph, pstruct;
- exec("$Config{'eunicefix'} $file") if $Config{'eunicefix'} ne ':';
---- 1180,1188 ----
- close OUT or die "Can't close $file: $!";
- chmod 0755, $file or die "Can't reset permissions for $file: $!\n";
- unlink 'pstruct';
-! if (defined $Config{d_link}) {
-! link 'c2ph', 'pstruct';
-! } else {
-! system $Config{cp}, 'c2ph', 'pstruct';
-! }
- exec("$Config{'eunicefix'} $file") if $Config{'eunicefix'} ne ':';
diff --git a/os2/diff.installman b/os2/diff.installman
deleted file mode 100644
index 036cf908bf..0000000000
--- a/os2/diff.installman
+++ /dev/null
@@ -1,76 +0,0 @@
-*** installman.orig Thu Jun 22 10:42:40 1995
---- installman Thu Nov 02 04:07:38 1995
-***************
-*** 6,11 ****
---- 6,12 ----
- require Cwd;
-
- umask 022;
-+ $ENV{SHELL} = 'sh' if $Config{osname} eq 'os2';
-
- $ver = $];
- $release = substr($ver,0,3); # Not used presently.
-***************
-*** 38,48 ****
-
- #Sanity checks
-
-! -x "./perl" || warn "./perl not found! Have you run make?\n";
- -d $Config{'installprivlib'}
- || warn "Perl library directory $Config{'installprivlib'} not found.
- Have you run make install?. (Installing anyway.)\n";
-! -x 't/TEST' || warn "WARNING: You've never run 'make test'!!!",
- " (Installing anyway.)\n";
-
- # Install the main pod pages.
---- 39,50 ----
-
- #Sanity checks
-
-! -x "./perl$Config{exe_ext}"
-! or warn "./perl$Config{exe_ext} not found! Have you run make?\n";
- -d $Config{'installprivlib'}
- || warn "Perl library directory $Config{'installprivlib'} not found.
- Have you run make install?. (Installing anyway.)\n";
-! -x "t/perl$Config{exe_ext}" || warn "WARNING: You've never run 'make test'!!!",
- " (Installing anyway.)\n";
-
- # Install the main pod pages.
-***************
-*** 66,72 ****
- # are enhancements or changes from previous installed versions.
- # The error message doesn't include the '..' because the user
- # won't be aware that we've chdir to $poddir.
-! -x "../pod/pod2man" || die "Executable pod/pod2man not found.\n";
-
- # We want to be sure to use the current perl. We can't rely on
- # the installed perl because it might not be actually installed
---- 68,74 ----
- # are enhancements or changes from previous installed versions.
- # The error message doesn't include the '..' because the user
- # won't be aware that we've chdir to $poddir.
-! -r "../pod/pod2man" || die "Executable pod/pod2man not found.\n";
-
- # We want to be sure to use the current perl. We can't rely on
- # the installed perl because it might not be actually installed
-***************
-*** 86,92 ****
- # Convert name from File/Basename.pm to File::Basename.3 format,
- # if necessary.
- $manpage =~ s#\.p(m|od)$##;
-! $manpage =~ s#/#::#g;
- $manpage = "${mandir}/${manpage}.${manext}";
- # Print $release $patchlevel stuff? or should pod2man do that?
- &cmd("$pod2man $mod > $manpage");
---- 88,98 ----
- # Convert name from File/Basename.pm to File::Basename.3 format,
- # if necessary.
- $manpage =~ s#\.p(m|od)$##;
-! if ($Config{osname} eq "os2") {
-! $manpage =~ s#/#.#g;
-! } else {
-! $manpage =~ s#/#::#g;
-! }
- $manpage = "${mandir}/${manpage}.${manext}";
- # Print $release $patchlevel stuff? or should pod2man do that?
- &cmd("$pod2man $mod > $manpage");
diff --git a/os2/diff.installperl b/os2/diff.installperl
deleted file mode 100644
index 710ee918b3..0000000000
--- a/os2/diff.installperl
+++ /dev/null
@@ -1,228 +0,0 @@
-*** installperl.orig Mon Nov 20 09:55:08 1995
---- installperl Wed Nov 22 02:29:34 1995
-***************
-*** 4,9 ****
---- 4,10 ----
- use Config;
-
- $mainperldir = "/usr/bin";
-+ $exe_ext = $Config{exe_ext};
-
- while (@ARGV) {
- $nonono = 1 if $ARGV[0] eq '-n';
-***************
-*** 61,68 ****
- -w $installbin || die "$installbin is not writable by you\n"
- unless $installbin =~ m#^/afs/# || $nonono;
-
-! -x 'perl' || die "perl isn't executable!\n";
-! -x 'suidperl' || die "suidperl isn't executable!\n" if $d_dosuid;
-
- -x 't/TEST' || warn "WARNING: You've never run 'make test'!!!",
- " (Installing anyway.)\n";
---- 62,69 ----
- -w $installbin || die "$installbin is not writable by you\n"
- unless $installbin =~ m#^/afs/# || $nonono;
-
-! -x 'perl' . $exe_ext || die "perl isn't executable!\n";
-! -x 'suidperl' . $exe_ext|| die "suidperl isn't executable!\n" if $d_dosuid;
-
- -x 't/TEST' || warn "WARNING: You've never run 'make test'!!!",
- " (Installing anyway.)\n";
-***************
-*** 80,92 ****
-
- # First we install the version-numbered executables.
-
-! &safe_unlink("$installbin/perl$ver");
-! &cmd("cp perl $installbin/perl$ver");
-
-! &safe_unlink("$installbin/sperl$ver");
- if ($d_dosuid) {
-! &cmd("cp suidperl $installbin/sperl$ver");
-! &chmod(04711, "$installbin/sperl$ver");
- }
-
- exit 0 if $versiononly;
---- 81,93 ----
-
- # First we install the version-numbered executables.
-
-! &safe_unlink("$installbin/perl$ver$exe_ext");
-! &cmd("cp perl$exe_ext $installbin/perl$ver$exe_ext");
-
-! &safe_unlink("$installbin/sperl$ver$exe_ext");
- if ($d_dosuid) {
-! &cmd("cp suidperl$exe_ext $installbin/sperl$ver$exe_ext");
-! &chmod(04711, "$installbin/sperl$ver$exe_ext");
- }
-
- exit 0 if $versiononly;
-***************
-*** 94,108 ****
- # Make links to ordinary names if installbin directory isn't current directory.
-
- if (! &samepath($installbin, '.')) {
-! &safe_unlink("$installbin/perl", "$installbin/suidperl");
-! &link("$installbin/perl$ver", "$installbin/perl");
-! &link("$installbin/sperl$ver", "$installbin/suidperl") if $d_dosuid;
- }
-
- if (! &samepath($installbin, 'x2p')) {
-! &safe_unlink("$installbin/a2p");
-! &cmd("cp x2p/a2p $installbin/a2p");
-! &chmod(0755, "$installbin/a2p");
- }
-
- # Install scripts.
---- 95,110 ----
- # Make links to ordinary names if installbin directory isn't current directory.
-
- if (! &samepath($installbin, '.')) {
-! &safe_unlink("$installbin/perl$exe_ext", "$installbin/suidperl$exe_ext");
-! &link("$installbin/perl$ver$exe_ext", "$installbin/perl$exe_ext");
-! &link("$installbin/sperl$ver$exe_ext", "$installbin/suidperl$exe_ext")
-! if $d_dosuid;
- }
-
- if (! &samepath($installbin, 'x2p')) {
-! &safe_unlink("$installbin/a2p$exe_ext");
-! &cmd("cp x2p/a2p$exe_ext $installbin/a2p$exe_ext");
-! &chmod(0755, "$installbin/a2p$exe_ext");
- }
-
- # Install scripts.
-***************
-*** 188,201 ****
- if (-w $mainperldir && ! &samepath($mainperldir, $installbin) && !$nonono) {
- # First make sure $mainperldir/perl is not already the same as
- # the perl we just installed
-! if (-x "$mainperldir/perl") {
- # Try to be clever about mainperl being a symbolic link
- # to binexp/perl if binexp and installbin are different.
- $mainperl_is_instperl =
-! &samepath("$mainperldir/perl", "$installbin/perl") ||
- (($binexp ne $installbin) &&
-! (-l "$mainperldir/perl") &&
-! ((readlink "$mainperldir/perl") eq "$binexp/perl"));
- }
- if ((! $mainperl_is_instperl) &&
- (&yn("Many scripts expect perl to be installed as " .
---- 190,203 ----
- if (-w $mainperldir && ! &samepath($mainperldir, $installbin) && !$nonono) {
- # First make sure $mainperldir/perl is not already the same as
- # the perl we just installed
-! if (-x "$mainperldir/perl$exe_ext") {
- # Try to be clever about mainperl being a symbolic link
- # to binexp/perl if binexp and installbin are different.
- $mainperl_is_instperl =
-! &samepath("$mainperldir/perl$exe_ext", "$installbin/perl$exe_ext") ||
- (($binexp ne $installbin) &&
-! (-l "$mainperldir/perl$exe_ext") &&
-! ((readlink "$mainperldir/perl$exe_ext") eq "$binexp/perl$exe_ext"));
- }
- if ((! $mainperl_is_instperl) &&
- (&yn("Many scripts expect perl to be installed as " .
-***************
-*** 203,212 ****
- "Do you wish to have $mainperldir/perl be the same as\n" .
- "$binexp/perl? [y] ")))
- {
-! unlink("$mainperldir/perl");
-! eval 'link("$installbin/perl", "$mainperldir/perl")' ||
-! eval 'symlink("$binexp/perl", "$mainperldir/perl")' ||
-! &cmd("cp $installbin/perl $mainperldir");
- $mainperl_is_instperl = 1;
- }
- }
---- 205,214 ----
- "Do you wish to have $mainperldir/perl be the same as\n" .
- "$binexp/perl? [y] ")))
- {
-! unlink("$mainperldir/perl$exe_ext");
-! eval 'link("$installbin/perl$exe_ext", "$mainperldir/perl$exe_ext")' ||
-! eval 'symlink("$binexp/perl$exe_ext", "$mainperldir/perl$exe_ext")' ||
-! &cmd("cp $installbin/perl$exe_ext $mainperldir$exe_ext");
- $mainperl_is_instperl = 1;
- }
- }
-***************
-*** 217,223 ****
- # Also skip $mainperl if the user opted to have it be a link to the
- # installed perl.
-
-! @path = split(/:/, $ENV{"PATH"});
- @otherperls = ();
- for (@path) {
- next unless m,^/,;
---- 219,227 ----
- # Also skip $mainperl if the user opted to have it be a link to the
- # installed perl.
-
-! $dirsep = ($osname =~ m:^os/?2$:i) ? ';' : ':' ;
-! ($path = $ENV{"PATH"}) =~ s:\\:/:g ;
-! @path = split(/$dirsep/, $path);
- @otherperls = ();
- for (@path) {
- next unless m,^/,;
-***************
-*** 225,231 ****
- # Use &samepath here because some systems have other dirs linked
- # to $mainperldir (like SunOS)
- next if ($mainperl_is_instperl && &samepath($_, $mainperldir));
-! push(@otherperls, "$_/perl") if (-x "$_/perl" && ! -d "$_/perl");
- }
- if (@otherperls) {
- print STDERR "\nWarning: perl appears in your path in the following " .
---- 229,236 ----
- # Use &samepath here because some systems have other dirs linked
- # to $mainperldir (like SunOS)
- next if ($mainperl_is_instperl && &samepath($_, $mainperldir));
-! push(@otherperls, "$_/perl$exe_ext")
-! if (-x "$_/perl$exe_ext" && ! -d "$_/perl$exe_ext");
- }
- if (@otherperls) {
- print STDERR "\nWarning: perl appears in your path in the following " .
-***************
-*** 258,263 ****
---- 263,269 ----
- foreach $name (@names) {
- next unless -e $name;
- print STDERR " unlink $name\n";
-+ chmod 0777, $name if $osname =~ m:^os/?2$:i ;
- unlink($name) || warn "Couldn't unlink $name: $!\n" unless $nonono;
- }
- }
-***************
-*** 269,274 ****
---- 275,281 ----
- next unless -e $name;
- print STDERR " unlink $name\n";
- next if $nonono;
-+ chmod 0777, $name if $osname =~ m:^os/?2$:i ;
- next if unlink($name);
- warn "Couldn't unlink $name: $!\n";
- if ($! =~ /busy/i) {
-***************
-*** 304,310 ****
- local($from,$to) = @_;
-
- print STDERR " ln $from $to\n";
-! link($from,$to) || warn "Couldn't link $from to $to: $!\n" unless $nonono;
- }
-
- sub chmod {
---- 311,323 ----
- local($from,$to) = @_;
-
- print STDERR " ln $from $to\n";
-! eval {
-! link($from,$to) || warn "Couldn't link $from to $to: $!\n" unless $nonono;
-! };
-! if ($@) {
-! system( $cp, $from, $to )
-! && warn "Couldn't copy $from to $to: $!\n" unless $nonono;
-! }
- }
-
- sub chmod {
diff --git a/os2/diff.mkdep b/os2/diff.mkdep
deleted file mode 100644
index 86d3e0c0a2..0000000000
--- a/os2/diff.mkdep
+++ /dev/null
@@ -1,131 +0,0 @@
-*** makedepend.SH.orig Wed Aug 30 19:55:44 1995
---- makedepend.SH Sun Nov 26 14:59:34 1995
-***************
-*** 53,69 ****
- $cat /dev/null >.deptmp
- $rm -f *.c.c c/*.c.c
- if test -f Makefile; then
-! cp Makefile makefile
- fi
-! mf=makefile
- if test -f $mf; then
- defrule=`<$mf sed -n \
-! -e '/^\.c\.o:.*;/{' \
- -e 's/\$\*\.c//' \
- -e 's/^[^;]*;[ ]*//p' \
- -e q \
- -e '}' \
-! -e '/^\.c\.o: *$/{' \
- -e N \
- -e 's/\$\*\.c//' \
- -e 's/^.*\n[ ]*//p' \
---- 53,69 ----
- $cat /dev/null >.deptmp
- $rm -f *.c.c c/*.c.c
- if test -f Makefile; then
-! cp Makefile $firstmakefile
- fi
-! mf=$firstmakefile
- if test -f $mf; then
- defrule=`<$mf sed -n \
-! -e '/^\.c\(\$(OBJ_EXT)\|\.o\):.*;/{' \
- -e 's/\$\*\.c//' \
- -e 's/^[^;]*;[ ]*//p' \
- -e q \
- -e '}' \
-! -e '/^\.c\(\$(OBJ_EXT)\|\.o\): *$/{' \
- -e N \
- -e 's/\$\*\.c//' \
- -e 's/^.*\n[ ]*//p' \
-***************
-*** 91,97 ****
- */*) finc="-I`echo $file | sed 's#/[^/]*$##`" ;;
- *) finc= ;;
- esac
-! $echo "Finding dependencies for $filebase.o."
- ( $echo "#line 1 \"$file\""; \
- $sed -n <$file \
- -e "/^${filebase}_init(/q" \
---- 91,97 ----
- */*) finc="-I`echo $file | sed 's#/[^/]*$##`" ;;
- *) finc= ;;
- esac
-! $echo "Finding dependencies for $filebase$obj_ext."
- ( $echo "#line 1 \"$file\""; \
- $sed -n <$file \
- -e "/^${filebase}_init(/q" \
-***************
-*** 107,114 ****
- -e 's#\.[0-9][0-9]*\.c#'"$file.c#" \
- -e 's/^[ ]*#[ ]*line/#/' \
- -e '/^# *[0-9][0-9]* *[".\/]/!d' \
-! -e 's/^.*"\(.*\)".*$/'$filebase'.o: \1/' \
-! -e 's/^# *[0-9][0-9]* \(.*\)$/'$filebase'.o: \1/' \
- -e 's|: \./|: |' \
- -e 's|\.c\.c|.c|' | \
- $uniq | $sort | $uniq >> .deptmp
---- 107,114 ----
- -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|: \./|: |' \
- -e 's|\.c\.c|.c|' | \
- $uniq | $sort | $uniq >> .deptmp
-***************
-*** 118,123 ****
---- 118,130 ----
-
- $MAKE shlist || ($echo "Searching for .SH files..."; \
- $echo *.SH | $tr ' ' '\012' | $egrep -v '\*' >.shlist)
-+
-+ # Now extract the dependency on makedepend.SH
-+ # (it should reside in the main Makefile):
-+ mv .shlist .shlist.old
-+ $egrep -v '^makedepend\.SH' <.shlist.old >.shlist
-+ rm .shlist.old
-+
- if $test -s .deptmp; then
- for file in `cat .shlist`; do
- $echo `$expr X$file : 'X\(.*\).SH'`: $file $TOP/config.sh \; \
-***************
-*** 126,132 ****
- $echo "Updating $mf..."
- $echo "# If this runs make out of memory, delete /usr/include lines." \
- >> $mf.new
-! $sed 's|^\(.*\.o:\) *\(.*/.*\.c\) *$|\1 \2; '"$defrule \2|" .deptmp \
- >>$mf.new
- else
- $MAKE hlist || ($echo "Searching for .h files..."; \
---- 133,139 ----
- $echo "Updating $mf..."
- $echo "# If this runs make out of memory, delete /usr/include lines." \
- >> $mf.new
-! $sed 's|^\(.*\(\$(OBJ_EXT)\|\.o\):\) *\(.*/.*\.c\) *$|\1 \3; '"$defrule \2|" .deptmp \
- >>$mf.new
- else
- $MAKE hlist || ($echo "Searching for .h files..."; \
-***************
-*** 136,145 ****
- $echo "Updating $mf..."
- <.clist $sed -n \
- -e '/\//{' \
-! -e 's|^\(.*\)/\(.*\)\.c|\2.o: \1/\2.c; '"$defrule \1/\2.c|p" \
- -e d \
- -e '}' \
-! -e 's|^\(.*\)\.c|\1.o: \1.c|p' >> $mf.new
- <.hlist $sed -n 's|\(.*/\)\(.*\)|s= \2= \1\2=|p' >.hsed
- <.deptmp $sed -n 's|c:#include "\(.*\)".*$|o: \1|p' | \
- $sed 's|^[^;]*/||' | \
---- 143,152 ----
- $echo "Updating $mf..."
- <.clist $sed -n \
- -e '/\//{' \
-! -e 's|^\(.*\)/\(.*\)\.c|\2\$(OBJ_EXT): \1/\2.c; '"$defrule \1/\2.c|p" \
- -e d \
- -e '}' \
-! -e 's|^\(.*\)\.c|\1\$(OBJ_EXT): \1.c|p' >> $mf.new
- <.hlist $sed -n 's|\(.*/\)\(.*\)|s= \2= \1\2=|p' >.hsed
- <.deptmp $sed -n 's|c:#include "\(.*\)".*$|o: \1|p' | \
- $sed 's|^[^;]*/||' | \
diff --git a/os2/diff.rest b/os2/diff.rest
deleted file mode 100644
index 7c44334da3..0000000000
--- a/os2/diff.rest
+++ /dev/null
@@ -1,12 +0,0 @@
-*** t/TEST~ Tue Nov 14 08:22:08 1995
---- t/TEST Wed Nov 22 02:04:22 1995
-***************
-*** 31,36 ****
---- 31,37 ----
- last;
- }
- }
-+ $sharpbang = 0 if $ENV{OS2_SHELL}; # OS/2
- $bad = 0;
- $good = 0;
- $total = @ARGV;
diff --git a/os2/diff.x2pMakefile b/os2/diff.x2pMakefile
deleted file mode 100644
index 46fdedb8d2..0000000000
--- a/os2/diff.x2pMakefile
+++ /dev/null
@@ -1,136 +0,0 @@
-*** x2p/Makefile.SH.orig Sun Nov 19 20:17:38 1995
---- x2p/Makefile.SH Wed Nov 22 20:18:08 1995
-***************
-*** 34,39 ****
---- 34,52 ----
- shellflags = $shellflags
-
- libs = $libs
-+
-+ # These variables will be used in a future version to make
-+ # the make file more portable to non-unix systems.
-+ AR = $ar
-+ EXE_EXT = $exe_ext
-+ LIB_EXT = $lib_ext
-+ OBJ_EXT = $obj_ext
-+ PATH_SEP = $path_sep
-+
-+ FIRSTMAKEFILE = $firstmakefile
-+
-+ .SUFFIXES: .c \$(OBJ_EXT)
-+
- !GROK!THIS!
-
- cat >>Makefile <<'!NO!SUBS!'
-***************
-*** 60,80 ****
-
- c = hash.c $(mallocsrc) str.c util.c walk.c
-
-! obj = hash.o $(mallocobj) str.o util.o walk.o
-
- lintflags = -phbvxac
-
- # grrr
- SHELL = /bin/sh
-
-! .c.o:
- $(CCCMD) $*.c
-
- all: $(public) $(private) $(util)
- touch all
-
-! a2p: $(obj) a2p.o
-! $(CC) $(LDFLAGS) $(obj) a2p.o $(libs) -o a2p
-
- # I now supply a2p.c with the kits, so the following section is
- # used only if you force byacc to run by saying
---- 73,93 ----
-
- c = hash.c $(mallocsrc) str.c util.c walk.c
-
-! obj = hash$(OBJ_EXT) $(mallocobj) str$(OBJ_EXT) util$(OBJ_EXT) walk$(OBJ_EXT)
-
- lintflags = -phbvxac
-
- # grrr
- SHELL = /bin/sh
-
-! .c$(OBJ_EXT):
- $(CCCMD) $*.c
-
- all: $(public) $(private) $(util)
- touch all
-
-! a2p: $(obj) a2p$(OBJ_EXT)
-! $(CC) $(LDFLAGS) $(obj) a2p$(OBJ_EXT) $(libs) -o a2p
-
- # I now supply a2p.c with the kits, so the following section is
- # used only if you force byacc to run by saying
-***************
-*** 90,104 ****
- a2p.c: a2p.y
- -@touch a2p.c
-
-! a2p.o: a2p.c a2py.c a2p.h EXTERN.h util.h INTERN.h handy.h ../config.h str.h hash.h
- $(CCCMD) $(LARGE) a2p.c
-
- clean:
-! rm -f a2p *.o
-
- realclean: clean
- rm -f *.orig core $(addedbyconf) all malloc.c
-! rm -f makefile makefile.old
-
- # The following lint has practically everything turned on. Unfortunately,
- # you have to wade through a lot of mumbo jumbo that can't be suppressed.
---- 103,117 ----
- a2p.c: a2p.y
- -@touch a2p.c
-
-! a2p$(OBJ_EXT): a2p.c a2py.c a2p.h EXTERN.h util.h INTERN.h handy.h ../config.h str.h hash.h
- $(CCCMD) $(LARGE) a2p.c
-
- clean:
-! rm -f a2p *$(OBJ_EXT)
-
- realclean: clean
- rm -f *.orig core $(addedbyconf) all malloc.c
-! rm -f $(FIRSTMAKEFILE) $(FIRSTMAKEFILE).old
-
- # The following lint has practically everything turned on. Unfortunately,
- # you have to wade through a lot of mumbo jumbo that can't be suppressed.
-***************
-*** 109,115 ****
- lint $(lintflags) $(defs) $(c) > a2p.fuzz
-
- depend: $(mallocsrc) ../makedepend
-! ../makedepend
-
- clist:
- echo $(c) | tr ' ' '\012' >.clist
---- 122,128 ----
- lint $(lintflags) $(defs) $(c) > a2p.fuzz
-
- depend: $(mallocsrc) ../makedepend
-! sh ../makedepend
-
- clist:
- echo $(c) | tr ' ' '\012' >.clist
-***************
-*** 140,146 ****
- case `pwd` in
- *SH)
- $rm -f ../Makefile
-! ln Makefile ../Makefile
- ;;
- esac
-! rm -f makefile
---- 153,159 ----
- case `pwd` in
- *SH)
- $rm -f ../Makefile
-! $ln Makefile ../Makefile
- ;;
- esac
-! rm -f $firstmakefile
diff --git a/vms/ext/MM_VMS.pm b/vms/ext/MM_VMS.pm
deleted file mode 100644
index a74881f117..0000000000
--- a/vms/ext/MM_VMS.pm
+++ /dev/null
@@ -1,1846 +0,0 @@
-# MM_VMS.pm
-# MakeMaker default methods for VMS
-# This package is inserted into @ISA of MakeMaker's MM before the
-# built-in MM_Unix methods if MakeMaker.pm is run under VMS.
-#
-# Version: 5.12
-# Author: Charles Bailey bailey@genetics.upenn.edu
-# Revised: 12-Dec-1995
-
-package ExtUtils::MM_VMS;
-
-use Config;
-require Exporter;
-use VMS::Filespec;
-use File::Basename;
-
-Exporter::import('ExtUtils::MakeMaker', '$Verbose', '&neatvalue');
-
-
-sub eliminate_macros {
- my($self,$path) = @_;
- unless (ref $self){
- ExtUtils::MakeMaker::TieAtt::warndirectuse((caller(0))[3]);
- $self = $ExtUtils::MakeMaker::Parent[-1];
- }
- unless ($path) {
- print "eliminate_macros('') = ||\n" if $Verbose >= 3;
- return '';
- }
- my($npath) = unixify($path);
- my($head,$macro,$tail);
-
- # perform m##g in scalar context so it acts as an iterator
- while ($npath =~ m#(.*?)\$\((\S+?)\)(.*)#g) {
- if ($self->{$2}) {
- ($head,$macro,$tail) = ($1,$2,$3);
- ($macro = unixify($self->{$macro})) =~ s#/$##;
- $npath = "$head$macro$tail";
- }
- }
- print "eliminate_macros($path) = |$npath|\n" if $Verbose >= 3;
- $npath;
-}
-
-# Catchall routine to clean up problem macros. Expands macros in any directory
-# specification, and expands expressions which are all macro, so that we can
-# tell how long the expansion is, and avoid overrunning DCL's command buffer
-# when MM[KS] is running.
-sub fixpath {
- my($self,$path,$force_path) = @_;
- unless (ref $self){
- ExtUtils::MakeMaker::TieAtt::warndirectuse((caller(0))[3]);
- $self = $ExtUtils::MakeMaker::Parent[-1];
- }
- unless ($path) {
- print "eliminate_macros('') = ||\n" if $Verbose >= 3;
- return '';
- }
- my($fixedpath,$prefix,$name);
-
- if ($path =~ m#^\$\(.+\)$# || $path =~ m#[/:>\]]#) {
- if ($force_path or $path =~ /(?:DIR\)|\])$/) {
- $fixedpath = vmspath($self->eliminate_macros($path));
- }
- else {
- $fixedpath = vmsify($self->eliminate_macros($path));
- }
- }
- elsif ((($prefix,$name) = ($path =~ m#^\$\(([^\)]+)\)(.+)#)) && $self->{$prefix}) {
- my($vmspre) = vmspath($self->{$prefix}) || ''; # is it a dir or just a name?
- $fixedpath = ($vmspre ? $vmspre : $self->{$prefix}) . $name;
- $fixedpath = vmspath($fixedpath) if $force_path;
- }
- else {
- $fixedpath = $path;
- $fixedpath = vmspath($fixedpath) if $force_path;
- }
- # Convert names without directory or type to paths
- if (!$force_path and $fixedpath !~ /[:>(.\]]/) { $fixedpath = vmspath($fixedpath); }
- print "fixpath($path) = |$fixedpath|\n" if $Verbose >= 3;
- $fixedpath;
-}
-
-sub catdir {
- my($self,@dirs) = @_;
- unless (ref $self){
- ExtUtils::MakeMaker::TieAtt::warndirectuse((caller(0))[3]);
- $self = $ExtUtils::MakeMaker::Parent[-1];
- }
- my($dir) = pop @dirs;
- my($path) = (@dirs == 1 ? $dirs[0] : $self->catdir(@dirs));
- my($spath,$sdir) = ($path,$dir);
- $spath =~ s/.dir$//; $sdir =~ s/.dir$//;
- $sdir = $self->eliminate_macros($sdir) unless $sdir =~ /^[\w\-]+$/;
- my($rslt);
-
- $rslt = vmspath($self->eliminate_macros($spath)."/$sdir");
- print "catdir($path,$dir) = |$rslt|\n" if $Verbose >= 3;
- $rslt;
-}
-
-sub catfile {
- my($self,@files) = @_;
- unless (ref $self){
- ExtUtils::MakeMaker::TieAtt::warndirectuse((caller(0))[3]);
- $self = $ExtUtils::MakeMaker::Parent[-1];
- }
- my($file) = pop @files;
- my($path) = (@files == 1 ? $files[0] : $self->catdir(@files));
- my($spath) = $path;
- $spath =~ s/.dir$//;
- my($rslt);
- if ( $spath =~ /^[^\)\]\/:>]+\)$/ && basename($file) eq $file) { $rslt = "$spath$file"; }
- else { $rslt = vmsify($self->eliminate_macros($spath).'/'.unixify($file)); }
- print "catfile($path,$file) = |$rslt|\n" if $Verbose >= 3;
- $rslt;
-}
-
-
-# Default name is taken from the directory name if it's not passed in.
-# Since VMS filenames are case-insensitive, we actually look in the
-# extension files to find the Mixed-case name
-sub guess_name {
- my($self) = @_;
- unless (ref $self){
- ExtUtils::MakeMaker::TieAtt::warndirectuse((caller(0))[3]);
- $self = $ExtUtils::MakeMaker::Parent[-1];
- }
- my($defname,$defpm);
- local *PM;
-
- $defname = $ENV{'DEFAULT'};
- $defname =~ s:.*?([^.\]]+)\]:$1:
- unless ($defname =~ s:.*[.\[]ext\.(.*)\]:$1:i);
- $defname =~ s#[.\]]#::#g;
- ($defpm = $defname) =~ s/.*:://;
- if (open(PM,"${defpm}.pm")){
- while (<PM>) {
- if (/^\s*package\s+([^;]+)/i) {
- $defname = $1;
- last;
- }
- }
- print STDOUT "Warning (non-fatal): Couldn't find package name in ${defpm}.pm;\n\t",
- "defaulting package name to $defname\n"
- if eof(PM);
- close PM;
- }
- else {
- print STDOUT "Warning (non-fatal): Couldn't find ${defpm}.pm;\n\t",
- "defaulting package name to $defname\n";
- }
- $defname =~ s#[\-_][\d.\-]+$##;
- $defname;
-}
-
-
-sub find_perl{
- my($self, $ver, $names, $dirs, $trace) = @_;
- unless (ref $self){
- ExtUtils::MakeMaker::TieAtt::warndirectuse((caller(0))[3]);
- $self = $ExtUtils::MakeMaker::Parent[-1];
- }
- my($name, $dir,$vmsfile,@cand);
- if ($trace){
- print "Looking for perl $ver by these names:\n";
- print "\t@$names,\n";
- print "in these dirs:\n";
- print "\t@$dirs\n";
- }
- foreach $dir (@$dirs){
- next unless defined $dir; # $self->{PERL_SRC} may be undefined
- foreach $name (@$names){
- if ($name !~ m![/:>\]]!) { push(@cand,$self->catfile($dir,$name)); }
- else { push(@cand,$self->fixpath($name)); }
- }
- }
- foreach $name (sort { length($a) <=> length($b) } @cand) {
- print "Checking $name\n" if ($trace >= 2);
- next unless $vmsfile = $self->maybe_command($name);
- print "Executing $vmsfile\n" if ($trace >= 2);
- if (`MCR $vmsfile -e "require $ver; print ""VER_OK\n"""` =~ /VER_OK/) {
- print "Using PERL=MCR $vmsfile\n" if $trace;
- return "MCR $vmsfile"
- }
- }
- print STDOUT "Unable to find a perl $ver (by these names: @$names, in these dirs: @$dirs)\n";
- 0; # false and not empty
-}
-
-
-sub maybe_command {
- my($self,$file) = @_;
- return $file if -x $file && ! -d _;
- return "$file.exe" if -x "$file.exe";
- if ($file !~ m![/:>\]]!) {
- my($shrfile) = 'Sys$Share:' . $file;
- return $file if -x $shrfile && ! -d _;
- return "$file.exe" if -x "$shrfile.exe";
- }
- return 0;
-}
-
-
-sub maybe_command_in_dirs { # $ver is optional argument if looking for perl
- my($self, $names, $dirs, $trace, $ver) = @_;
- my($name, $dir);
- foreach $dir (@$dirs){
- next unless defined $dir; # $self->{PERL_SRC} may be undefined
- foreach $name (@$names){
- my($abs,$tryabs);
- if ($self->file_name_is_absolute($name)) {
- $abs = $name;
- } else {
- $abs = $self->catfile($dir, $name);
- }
- print "Checking $abs for $name\n" if ($trace >= 2);
- next unless $tryabs = $self->maybe_command($abs);
- print "Substituting $tryabs instead of $abs\n"
- if ($trace >= 2 and $tryabs ne $abs);
- $abs = $tryabs;
- if (defined $ver) {
- print "Executing $abs\n" if ($trace >= 2);
- if (`$abs -e 'require $ver; print "VER_OK\n" ' 2>&1` =~ /VER_OK/) {
- print "Using PERL=$abs\n" if $trace;
- return $abs;
- }
- } else { # Do not look for perl
- return $abs;
- }
- }
- }
-}
-
-
-sub perl_script {
- my($self,$file) = @_;
- return $file if -r $file && ! -d _;
- return "$file.pl" if -r "$file.pl" && ! -d _;
- return '';
-}
-
-sub file_name_is_absolute {
- my($sefl,$file);
- $file =~ m!^/! or $file =~ m![:<\[][^.]!;
-}
-
-
-sub replace_manpage_separator {
- my($self,$man) = @_;
- $man = unixify($man);
- $man =~ s#/+#__#g;
- $man;
-}
-
-
-sub init_others {
- my($self) = @_;
- unless (ref $self){
- ExtUtils::MakeMaker::TieAtt::warndirectuse((caller(0))[3]);
- $self = $ExtUtils::MakeMaker::Parent[-1];
- }
-
- $self->{NOOP} = "\t@ Continue";
- $self->{FIRST_MAKEFILE} ||= 'Descrip.MMS';
- $self->{MAKEFILE} ||= $self->{FIRST_MAKEFILE};
- $self->{RM_F} = '$(PERL) -e "foreach (@ARGV) { 1 while ( -d $_ ? rmdir $_ : unlink $_)}"';
- $self->{RM_RF} = '$(PERL) -e "use File::Path; @dirs = map(VMS::Filespec::unixify($_),@ARGV); rmtree(\@dirs,0,0)"';
- $self->{TOUCH} = '$(PERL) -e "$t=time; foreach (@ARGV) { -e $_ ? utime($t,$t,@ARGV) : (open(F,qq(>$_)),close F)}"';
- $self->{CHMOD} = '$(PERL) -e "chmod @ARGV"'; # expect Unix syntax from MakeMaker
- $self->{CP} = 'Copy/NoConfirm';
- $self->{MV} = 'Rename/NoConfirm';
- $self->{UMASK_NULL} = "\t!";
- &MM_Unix::init_others;
-}
-
-sub constants {
- my($self) = @_;
- unless (ref $self){
- ExtUtils::MakeMaker::TieAtt::warndirectuse((caller(0))[3]);
- $self = $ExtUtils::MakeMaker::Parent[-1];
- }
- my(@m,$def);
- push @m, "
-NAME = $self->{NAME}
-DISTNAME = $self->{DISTNAME}
-NAME_SYM = $self->{NAME_SYM}
-VERSION = $self->{VERSION}
-VERSION_SYM = $self->{VERSION_SYM}
-VERSION_MACRO = VERSION
-DEFINE_VERSION = ",'"$(VERSION_MACRO)=""$(VERSION)"""',"
-# XS_VERSION = $self->{XS_VERSION}
-# XS_VERSION_MACRO = XS_VERSION
-# XS_DEFINE_VERSION = ",'"$(XS_VERSION_MACRO)=""$(XS_VERSION)"""',"
-
-# In which library should we install this extension?
-# This is typically the same as PERL_LIB.
-# (also see INST_LIBDIR and relationship to ROOTEXT)
-INST_LIB = ",$self->fixpath($self->{INST_LIB},1),"
-INST_ARCHLIB = ",$self->fixpath($self->{INST_ARCHLIB},1),"
-INST_EXE = ",$self->fixpath($self->{INST_EXE},1),"
-
-# AFS users will want to set the installation directories for
-# the final 'make install' early without setting INST_LIB,
-# INST_ARCHLIB, and INST_EXE for the testing phase
-INSTALLPRIVLIB = ",$self->fixpath($self->{INSTALLPRIVLIB},1),'
-INSTALLARCHLIB = ',$self->fixpath($self->{INSTALLARCHLIB},1),'
-INSTALLBIN = ',$self->fixpath($self->{INSTALLBIN},1),'
-
-# Perl library to use when building the extension
-PERL_LIB = ',$self->fixpath($self->{PERL_LIB},1),'
-PERL_ARCHLIB = ',$self->fixpath($self->{PERL_ARCHLIB},1),'
-LIBPERL_A = ',$self->fixpath($self->{LIBPERL_A}),'
-
-MAKEMAKER = ',$self->catfile($self->{PERL_LIB},'ExtUtils','MakeMaker.pm'),"
-MM_VERSION = $ExtUtils::MakeMaker::VERSION
-FIRST_MAKEFILE = ",$self->fixpath($self->{FIRST_MAKEFILE}),'
-MAKE_APERL_FILE = ',$self->fixpath($self->{MAKE_APERL_FILE}),"
-
-PERLMAINCC = $self->{PERLMAINCC}
-";
-
- if ($self->{PERL_SRC}) {
- push @m, "
-# Where is the perl source code located?
-PERL_SRC = ",$self->fixpath($self->{PERL_SRC},1);
- push @m, "
-PERL_VMS = ",$self->catdir($self->{PERL_SRC},q(VMS));
- }
- push @m,"
-# Perl header files (will eventually be under PERL_LIB)
-PERL_INC = ",$self->fixpath($self->{PERL_INC},1),"
-# Perl binaries
-PERL = $self->{PERL}
-FULLPERL = $self->{FULLPERL}
-
-# FULLEXT = Pathname for extension directory (eg DBD/Oracle).
-# BASEEXT = Basename part of FULLEXT. May be just equal FULLEXT.
-# ROOTEXT = Directory part of FULLEXT with leading slash (e.g /DBD)
-FULLEXT = ",$self->fixpath($self->{FULLEXT},1),"
-BASEEXT = $self->{BASEEXT}
-ROOTEXT = ",($self->{ROOTEXT} eq '') ? '[]' : $self->fixpath($self->{ROOTEXT},1),"
-DLBASE = $self->{DLBASE}
-INC = ";
-
- if ($self->{'INC'}) {
- push @m,'/Include=(';
- my(@includes) = split(/\s+/,$self->{INC});
- my($plural);
- foreach (@includes) {
- s/^-I//;
- push @m,', ' if $plural++;
- push @m,$self->fixpath($_,1);
- }
- push @m, ")\n";
- }
-
- if ($self->{DEFINE} ne '') {
- my(@defs) = split(/\s+/,$self->{DEFINE});
- foreach $def (@defs) {
- next unless $def;
- $def =~ s/^-D//;
- $def = "\"$def\"" if $def =~ /=/;
- }
- $self->{DEFINE} = join ',',@defs;
- }
-
- if ($self->{OBJECT} =~ /\s/) {
- $self->{OBJECT} =~ s/(\\)?\n+\s+/ /g;
- $self->{OBJECT} = map($self->fixpath($_),split(/,?\s+/,$self->{OBJECT}));
- }
- $self->{LDFROM} = join(' ',map($self->fixpath($_),split(/,?\s+/,$self->{LDFROM})));
-
- push @m,"
-DEFINE = $self->{DEFINE}
-OBJECT = $self->{OBJECT}
-LDFROM = $self->{LDFROM}
-LINKTYPE = $self->{LINKTYPE}
-
-# Handy lists of source code files:
-XS_FILES = ",join(', ', sort keys %{$self->{XS}}),'
-C_FILES = ',join(', ', @{$self->{C}}),'
-O_FILES = ',join(', ', @{$self->{O_FILES}} ),'
-H_FILES = ',join(', ', @{$self->{H}}),'
-MAN1PODS = ',join(" \\\n\t", sort keys %{$self->{MAN1PODS}}),'
-MAN3PODS = ',join(" \\\n\t", sort keys %{$self->{MAN3PODS}}),'
-
-# Man installation stuff:
-INST_MAN1DIR = ',$self->fixpath($self->{INST_MAN1DIR},1),'
-INSTALLMAN1DIR = ',$self->fixpath($self->{INSTALLMAN1DIR},1),"
-MAN1EXT = $self->{MAN1EXT}
-
-INST_MAN3DIR = ",$self->fixpath($self->{INST_MAN3DIR},1),'
-INSTALLMAN3DIR = ',$self->fixpath($self->{INSTALLMAN3DIR},1),"
-MAN3EXT = $self->{MAN3EXT}
-
-
-.SUFFIXES : .xs .c \$(OBJ_EXT)
-
-# This extension may link to it's own library (see SDBM_File)";
- push @m,"
-MYEXTLIB = ",$self->fixpath($self->{MYEXTLIB}),"
-
-# Here is the Config.pm that we are using/depend on
-CONFIGDEP = \$(PERL_ARCHLIB)Config.pm, \$(PERL_INC)config.h
-
-# Where to put things:
-INST_LIBDIR = ",($self->{'INST_LIBDIR'} = $self->catdir($self->{INST_LIB},$self->{ROOTEXT})),"
-INST_ARCHLIBDIR = ",($self->{'INST_ARCHLIBDIR'} = $self->catdir($self->{INST_ARCHLIB},$self->{ROOTEXT})),"
-
-INST_AUTODIR = ",($self->{'INST_AUTODIR'} = $self->catdir($self->{INST_LIB},'auto',$self->{FULLEXT})),'
-INST_ARCHAUTODIR = ',($self->{'INST_ARCHAUTODIR'} = $self->catdir($self->{INST_ARCHLIB},'auto',$self->{FULLEXT})),'
-';
-
- if ($self->has_link_code()) {
- push @m,'
-INST_STATIC = $(INST_ARCHAUTODIR)$(BASEEXT)$(LIB_EXT)
-INST_DYNAMIC = $(INST_ARCHAUTODIR)$(BASEEXT).$(DLEXT)
-INST_BOOT = $(INST_ARCHAUTODIR)$(BASEEXT).bs
-';
- } else {
- push @m,'
-INST_STATIC =
-INST_DYNAMIC =
-INST_BOOT =
-';
- }
-
- push @m,'
-INST_PM = ',join(', ',map($self->fixpath($_),sort values %{$self->{PM}})),'
-';
-
- join('',@m);
-}
-
-
-sub const_loadlibs{
- my($self) = @_;
- unless (ref $self){
- ExtUtils::MakeMaker::TieAtt::warndirectuse((caller(0))[3]);
- $self = $ExtUtils::MakeMaker::Parent[-1];
- }
- my (@m);
- push @m, "
-# $self->{NAME} might depend on some other libraries.
-# (These comments may need revising:)
-#
-# Dependent libraries can be linked in one of three ways:
-#
-# 1. (For static extensions) by the ld command when the perl binary
-# is linked with the extension library. See EXTRALIBS below.
-#
-# 2. (For dynamic extensions) by the ld command when the shared
-# object is built/linked. See LDLOADLIBS below.
-#
-# 3. (For dynamic extensions) by the DynaLoader when the shared
-# object is loaded. See BSLOADLIBS below.
-#
-# EXTRALIBS = List of libraries that need to be linked with when
-# linking a perl binary which includes this extension
-# Only those libraries that actually exist are included.
-# These are written to a file and used when linking perl.
-#
-# LDLOADLIBS = List of those libraries which can or must be linked into
-# the shared library when created using ld. These may be
-# static or dynamic libraries.
-# LD_RUN_PATH is a colon separated list of the directories
-# in LDLOADLIBS. It is passed as an environment variable to
-# the process that links the shared library.
-#
-# BSLOADLIBS = List of those libraries that are needed but can be
-# linked in dynamically at run time on this platform.
-# SunOS/Solaris does not need this because ld records
-# the information (from LDLOADLIBS) into the object file.
-# This list is used to create a .bs (bootstrap) file.
-#
-EXTRALIBS = ",map($self->fixpath($_) . ' ',$self->{'EXTRALIBS'}),"
-BSLOADLIBS = ",map($self->fixpath($_) . ' ',$self->{'BSLOADLIBS'}),"
-LDLOADLIBS = ",map($self->fixpath($_) . ' ',$self->{'LDLOADLIBS'}),"\n";
-
- join('',@m);
-}
-
-
-sub const_cccmd {
- my($self,$libperl) = @_;
- unless (ref $self){
- ExtUtils::MakeMaker::TieAtt::warndirectuse((caller(0))[3]);
- $self = $ExtUtils::MakeMaker::Parent[-1];
- }
- my($cmd) = $Config{'cc'};
- my($name,$sys,@m);
-
- ( $name = $self->{NAME} . "_cflags" ) =~ s/:/_/g ;
- print STDOUT "Unix shell script ".$Config{"$self->{'BASEEXT'}_cflags"}.
- " required to modify CC command for $self->{'BASEEXT'}\n"
- if ($Config{$name});
-
- # Deal with $self->{DEFINE} here since some C compilers pay attention
- # to only one /Define clause on command line, so we have to
- # conflate the ones from $Config{'cc'} and $self->{DEFINE}
- if ($cmd =~ m:(.*)/define=\(?([^\(\/\)\s]+)\)?(.*)?:i) {
- $cmd = "$1/Define=($2," . ($self->{DEFINE} ? "$self->{DEFINE}," : '') .
- "\$(DEFINE_VERSION))$3";
-# "\$(DEFINE_VERSION),\$(XS_DEFINE_VERSION))$3";
- }
- else {
- $cmd .= '/Define=(' . ($self->{DEFINE} ? "$self->{DEFINE}," : '') .
- '$(DEFINE_VERSION))';
-# '$(DEFINE_VERSION),$(XS_DEFINE_VERSION))';
- }
-
- $libperl or $libperl = $self->{LIBPERL_A} || "libperl.olb";
- if ($libperl =~ /libperl(\w+)\./i) {
- my($type) = uc $1;
- my(%map) = ( 'D' => 'DEBUGGING', 'E' => 'EMBED', 'M' => 'MULTIPLICITY',
- 'DE' => 'DEBUGGING,EMBED', 'DM' => 'DEBUGGING,MULTIPLICITY',
- 'EM' => 'EMBED,MULTIPLICITY', 'DEM' => 'DEBUGGING,EMBED,MULTIPLICITY' );
- $cmd =~ s:/define=\(([^\)]+)\):/Define=($1,$map{$type}):i
- }
-
- # Likewise with $self->{INC} and /Include
- my($incstr) = '/Include=($(PERL_INC)';
- if ($self->{'INC'}) {
- my(@includes) = split(/\s+/,$self->{INC});
- foreach (@includes) {
- s/^-I//;
- $incstr .= ', '.$self->fixpath($_,1);
- }
- }
- if ($cmd =~ m:(.*)/include=\(?([^\(\/\)\s]+)\)?(.*):i) {
- $cmd = "$1$incstr,$2)$3";
- }
- else { $cmd .= "$incstr)"; }
-
-
- if ($Config{'vms_cc_type'} ne 'decc') {
- push @m,'
-.FIRST
- @ If F$TrnLnm("Sys").eqs."" Then Define/NoLog SYS ',
- ($Config{'vms_cc_type'} eq 'gcc' ? 'GNU_CC_Include:[VMS]'
- : 'Sys$Library'),'
-
-';
- }
- push(@m, "CCCMD = $cmd\n");
-
- $self->{CONST_CCCMD} = join('',@m);
-}
-
-
-# --- Tool Sections ---
-
-sub tool_autosplit{
- my($self, %attribs) = @_;
- unless (ref $self){
- ExtUtils::MakeMaker::TieAtt::warndirectuse((caller(0))[3]);
- $self = $ExtUtils::MakeMaker::Parent[-1];
- }
- my($asl) = "";
- $asl = "\$AutoSplit::Maxlen=$attribs{MAXLEN};" if $attribs{MAXLEN};
- q{
-# Usage: $(AUTOSPLITFILE) FileToSplit AutoDirToSplitInto
-AUTOSPLITFILE = $(PERL) "-I$(PERL_ARCHLIB)" "-I$(PERL_LIB)" -e "use AutoSplit;}.$asl.q{ AutoSplit::autosplit($ARGV[0], $ARGV[1], 0, 1, 1) ;"
-};
-}
-
-sub tool_xsubpp{
- my($self) = @_;
- unless (ref $self){
- ExtUtils::MakeMaker::TieAtt::warndirectuse((caller(0))[3]);
- $self = $ExtUtils::MakeMaker::Parent[-1];
- }
- my($xsdir) = $self->catdir($self->{PERL_LIB},'ExtUtils');
- # drop back to old location if xsubpp is not in new location yet
- $xsdir = $self->catdir($self->{PERL_SRC},'ext') unless (-f $self->catfile($xsdir,'xsubpp'));
- my(@tmdeps) = '$(XSUBPPDIR)typemap';
- if( $self->{TYPEMAPS} ){
- my $typemap;
- foreach $typemap (@{$self->{TYPEMAPS}}){
- if( ! -f $typemap ){
- warn "Typemap $typemap not found.\n";
- }
- else{
- push(@tmdeps, $self->fixpath($typemap));
- }
- }
- }
- push(@tmdeps, "typemap") if -f "typemap";
- my(@tmargs) = map("-typemap $_", @tmdeps);
- if( exists $self->{XSOPT} ){
- unshift( @tmargs, $self->{XSOPT} );
- }
-
- my $xsubpp_version = $self->xsubpp_version($self->catfile($xsdir,'xsubpp'));
-
- # What are the correct thresholds for version 1 && 2 Paul?
- if ( $xsubpp_version > 1.923 ){
- $self->{XSPROTOARG} = '' unless defined $self->{XSPROTOARG};
- } else {
- if (defined $self->{XSPROTOARG} && $self->{XSPROTOARG} =~ /\-prototypes/) {
- print STDOUT qq{Warning: This extension wants to pass the switch "-prototypes" to xsubpp.
- Your version of xsubpp is $xsubpp_version and cannot handle this.
- Please upgrade to a more recent version of xsubpp.
-};
- } else {
- $self->{XSPROTOARG} = "";
- }
- }
-
- "
-XSUBPPDIR = ".$self->fixpath($xsdir,1)."
-XSUBPP = \$(PERL) \"-I\$(PERL_ARCHLIB)\" \"-I\$(PERL_LIB)\" \$(XSUBPPDIR)xsubpp
-XSPROTOARG = $self->{XSPROTOARG}
-XSUBPPDEPS = @tmdeps
-XSUBPPARGS = @tmargs
-";
-}
-
-
-sub xsubpp_version
-{
- my($self,$xsubpp) = @_;
- my ($version) ;
-
- # try to figure out the version number of the xsubpp on the system
-
- # first try the -v flag, introduced in 1.921 & 2.000a2
-
- my $command = "$self->{PERL} $xsubpp -v";
- print "Running: $command\n" if $Verbose;
- $version = `$command` ;
- warn "Running '$command' exits with status " . $? unless ($? & 1);
- chop $version ;
-
- return $1 if $version =~ /^xsubpp version (.*)/ ;
-
- # nope, then try something else
-
- my $counter = '000';
- my ($file) = 'temp' ;
- $counter++ while -e "$file$counter"; # don't overwrite anything
- $file .= $counter;
-
- local(*F);
- open(F, ">$file") or die "Cannot open file '$file': $!\n" ;
- print F <<EOM ;
-MODULE = fred PACKAGE = fred
-
-int
-fred(a)
- int a;
-EOM
-
- close F ;
-
- $command = "$self->{PERL} $xsubpp $file";
- print "Running: $command\n" if $Verbose;
- my $text = `$command` ;
- warn "Running '$command' exits with status " . $? unless ($? & 1);
- unlink $file ;
-
- # gets 1.2 -> 1.92 and 2.000a1
- return $1 if $text =~ /automatically by xsubpp version ([\S]+)\s*/ ;
-
- # it is either 1.0 or 1.1
- return 1.1 if $text =~ /^Warning: ignored semicolon/ ;
-
- # none of the above, so 1.0
- return "1.0" ;
-}
-
-
-sub tools_other {
- my($self) = @_;
- unless (ref $self){
- ExtUtils::MakeMaker::TieAtt::warndirectuse((caller(0))[3]);
- $self = $ExtUtils::MakeMaker::Parent[-1];
- }
- "
-# Assumes \$(MMS) invokes MMS or MMK
-# (It is assumed in some cases later that the default makefile name
-# (Descrip.MMS for MM[SK]) is used.)
-USEMAKEFILE = /Descrip=
-USEMACROS = /Macro=(
-MACROEND = )
-MAKEFILE = Descrip.MMS
-SHELL = Posix
-LD = $self->{LD}
-TOUCH = $self->{TOUCH}
-CHMOD = $self->{CHMOD}
-CP = $self->{CP}
-MV = $self->{MV}
-RM_F = $self->{RM_F}
-RM_RF = $self->{RM_RF}
-UMASK_NULL = $self->{UMASK_NULL}
-MKPATH = Create/Directory
-";
-}
-
-
-sub dist {
- my($self, %attribs) = @_;
- unless (ref $self){
- ExtUtils::MakeMaker::TieAtt::warndirectuse((caller(0))[3]);
- $self = $ExtUtils::MakeMaker::Parent[-1];
- }
- # VERSION should be sanitised before use as a file name
- my($name) = $attribs{NAME} || '$(DISTVNAME)';
- my($zip) = $attribs{ZIP} || 'zip';
- my($zipflags) = $attribs{ZIPFLAGS} || '-Vu';
- my($suffix) = $attribs{SUFFIX} || '';
- my($shar) = $attribs{SHAR} || 'vms_share';
- my($preop) = $attribs{PREOP} || '!'; # e.g., update MANIFEST
- my($postop) = $attribs{POSTOP} || '!';
- my($dist_cp) = $attribs{DIST_CP} || 'best';
- my($dist_default) = $attribs{DIST_DEFAULT} || 'zipdist';
-
- my($src) = $name;
- $src = "[.$src]" unless $src =~ /\[/;
- $src =~ s#\]#...]#;
- $src .= '*.*' if $src =~ /\]$/;
- $suffix =~ s#\.#_#g;
-"
-DISTVNAME = \$(DISTNAME)-\$(VERSION_SYM)
-SRC = $src
-ZIP = $zip
-ZIPFLAGS = $zipflags
-SUFFIX = $suffix
-SHARE = $shar
-PREOP = $preop
-POSTOP = $postop
-DIST_CP = $dist_cp
-DIST_DEFAULT = $dist_default
-";
-}
-
-
-# --- Translation Sections ---
-
-sub c_o {
- my($self) = @_;
- unless (ref $self){
- ExtUtils::MakeMaker::TieAtt::warndirectuse((caller(0))[3]);
- $self = $ExtUtils::MakeMaker::Parent[-1];
- }
- return '' unless $self->needs_linking();
- '
-.c$(OBJ_EXT) :
- $(CCCMD) $(CCCDLFLAGS) $(MMS$TARGET_NAME).c
-';
-}
-
-sub xs_c {
- my($self) = @_;
- unless (ref $self){
- ExtUtils::MakeMaker::TieAtt::warndirectuse((caller(0))[3]);
- $self = $ExtUtils::MakeMaker::Parent[-1];
- }
- return '' unless $self->needs_linking();
- '
-.xs.c :
- $(XSUBPP) $(XSPROTOARG) $(XSUBPPARGS) $(MMS$TARGET_NAME).xs >$(MMS$TARGET)
-';
-}
-
-sub xs_o { # many makes are too dumb to use xs_c then c_o
- my($self) = @_;
- unless (ref $self){
- ExtUtils::MakeMaker::TieAtt::warndirectuse((caller(0))[3]);
- $self = $ExtUtils::MakeMaker::Parent[-1];
- }
- return '' unless $self->needs_linking();
- '
-.xs$(OBJ_EXT) :
- $(XSUBPP) $(XSPROTOARG) $(XSUBPPARGS) $(MMS$TARGET_NAME).xs >$(MMS$TARGET_NAME).c
- $(CCCMD) $(CCCDLFLAGS) $(MMS$TARGET_NAME).c
-';
-}
-
-
-# --- Target Sections ---
-
-
-sub top_targets {
- my($self) = shift;
- unless (ref $self){
- ExtUtils::MakeMaker::TieAtt::warndirectuse((caller(0))[3]);
- $self = $ExtUtils::MakeMaker::Parent[-1];
- }
- my(@m);
- push @m, '
-all :: config $(INST_PM) subdirs linkext manifypods
- $(NOOP)
-
-subdirs :: $(MYEXTLIB)
- $(NOOP)
-
-config :: $(MAKEFILE) $(INST_LIBDIR).exists
-
-config :: $(INST_ARCHAUTODIR).exists Version_check
-
-config :: $(INST_AUTODIR).exists
-';
-
-
- push @m, $self->dir_target(qw[$(INST_AUTODIR) $(INST_LIBDIR) $(INST_ARCHAUTODIR)]);
- if (%{$self->{MAN1PODS}}) {
- push @m, q[
-config :: $(INST_MAN1DIR)/.exists
-];
- push @m, $self->dir_target(qw[$(INST_MAN1DIR)]);
- }
- if (%{$self->{MAN3PODS}}) {
- push @m, q[
-config :: $(INST_MAN3DIR).exists
-];
- push @m, $self->dir_target(qw[$(INST_MAN3DIR)]);
- }
-
- push @m, '
-$(O_FILES) : $(H_FILES)
-' if @{$self->{O_FILES} || []} && @{$self->{H} || []};
-
- push @m, q{
-help :
- perldoc ExtUtils::MakeMaker
-};
-
- push @m, q{
-Version_check :
- @ $(PERL) "-I$(PERL_ARCHLIB)" "-I$(PERL_LIB)" -
- -e "use ExtUtils::MakeMaker qw($Version &Version_check);" -
- -e "&Version_check('$(MM_VERSION)')"
-};
-
- join('',@m);
-}
-
-
-sub dlsyms {
- my($self,%attribs) = @_;
- unless (ref $self){
- ExtUtils::MakeMaker::TieAtt::warndirectuse((caller(0))[3]);
- $self = $ExtUtils::MakeMaker::Parent[-1];
- }
- my($funcs) = $attribs{DL_FUNCS} || $self->{DL_FUNCS} || {};
- my($vars) = $attribs{DL_VARS} || $self->{DL_VARS} || [];
- my(@m);
-
- push(@m,'
-dynamic :: rtls.opt $(INST_ARCHAUTODIR)$(BASEEXT).opt
- $(NOOP)
-
-# rtls.opt is built in the same step as $(BASEEXT).opt
-rtls.opt : $(BASEEXT).opt
- $(TOUCH) $(MMS$TARGET)
-') unless $self->{SKIPHASH}{'dynamic'};
-
- push(@m,'
-static :: $(INST_ARCHAUTODIR)$(BASEEXT).opt
- $(NOOP)
-') unless $self->{SKIPHASH}{'static'};
-
- push(@m,'
-$(INST_ARCHAUTODIR)$(BASEEXT).opt : $(BASEEXT).opt
- $(CP) $(MMS$SOURCE) $(MMS$TARGET)
- @ $(PERL) -e "open F,\'>>$(INST_ARCHAUTODIR).packlist\';print F qq[$(MMS$TARGET)\n];close F;"
-
-$(BASEEXT).opt : makefile.PL
- $(PERL) "-I$(PERL_ARCHLIB)" "-I$(PERL_LIB)" -e "use ExtUtils::MakeMaker qw(&mksymlists);" -
- -e "MM->new()->mksymlists({DL_FUNCS => ',neatvalue($self->{DL_FUNCS}),', DL_VARS => ',neatvalue($self->{DL_VARS}),',NAME => \'',$self->{NAME},'\'})"
- $(PERL) -e "open OPT,\'>>$(MMS$TARGET)\'; print OPT ""$(INST_STATIC)/Include=$(BASEEXT)\n$(INST_STATIC)/Library\n"";close OPT"
-');
-
- join('',@m);
-}
-
-
-# --- Dynamic Loading Sections ---
-
-sub dynamic_lib {
- my($self, %attribs) = @_;
- unless (ref $self){
- ExtUtils::MakeMaker::TieAtt::warndirectuse((caller(0))[3]);
- $self = $ExtUtils::MakeMaker::Parent[-1];
- }
- return '' unless $self->needs_linking(); #might be because of a subdir
-
-
- return '
-$(INST_DYNAMIC) :
- $(NOOP)
-' unless ($self->{OBJECT} or @{$self->{C} || []} or $self->{MYEXTLIB});
-
- ($otherldflags) = $attribs{OTHERLDFLAGS} || "";
- my(@m);
- push @m,"
-
-OTHERLDFLAGS = $otherldflags
-
-";
- push @m, '
-$(INST_DYNAMIC) : $(INST_STATIC) $(PERL_INC)perlshr_attr.opt rtls.opt $(BASEEXT).opt $(INST_ARCHAUTODIR).exists
- @ $(MKPATH) $(INST_ARCHAUTODIR)
- Link $(LDFLAGS) /Shareable=$(MMS$TARGET)$(OTHERLDFLAGS) $(BASEEXT).opt/Option,rtls.opt/Option,$(PERL_INC)perlshr_attr.opt/Option
- @ $(PERL) -e "open F,\'>>$(INST_ARCHAUTODIR).packlist\';print F qq[$(MMS$TARGET)\n];close F;"
-';
-
- push @m, $self->dir_target('$(INST_ARCHAUTODIR)');
- join('',@m);
-}
-
-sub dynamic_bs {
- my($self, %attribs) = @_;
- unless (ref $self){
- ExtUtils::MakeMaker::TieAtt::warndirectuse((caller(0))[3]);
- $self = $ExtUtils::MakeMaker::Parent[-1];
- }
- return '' unless $self->needs_linking();
- '
-BOOTSTRAP = '."$self->{BASEEXT}.bs".'
-
-# As MakeMaker mkbootstrap might not write a file (if none is required)
-# we use touch to prevent make continually trying to remake it.
-# The DynaLoader only reads a non-empty file.
-$(BOOTSTRAP) : $(MAKEFILE) '."$self->{BOOTDEP}".'
- @ Write Sys$Output "Running mkbootstrap for $(NAME) ($(BSLOADLIBS))"
- @ $(PERL) "-I$(PERL_ARCHLIB)" "-I$(PERL_LIB)" -
- -e "use ExtUtils::Mkbootstrap; Mkbootstrap(\'$(BASEEXT)\',\'$(BSLOADLIBS)\');"
- @ $(TOUCH) $(MMS$TARGET)
- @ $(PERL) -e "open F,\'>>$(INST_ARCHAUTODIR).packlist\';print F qq[$(MMS$TARGET)\n];close F;"
-
-$(INST_BOOT) : $(BOOTSTRAP)
- @ $(RM_RF) $(INST_BOOT)
- - $(CP) $(BOOTSTRAP) $(INST_BOOT)
- @ $(PERL) -e "open F,\'>>$(INST_ARCHAUTODIR).packlist\';print F qq[$(MMS$TARGET)\n];close F;"
-';
-}
-# --- Static Loading Sections ---
-
-sub static_lib {
- my($self) = @_;
- unless (ref $self){
- ExtUtils::MakeMaker::TieAtt::warndirectuse((caller(0))[3]);
- $self = $ExtUtils::MakeMaker::Parent[-1];
- }
- return '' unless $self->needs_linking();
-
- return '
-$(INST_STATIC) :
- $(NOOP)
-' unless ($self->{OBJECT} or @{$self->{C} || []} or $self->{MYEXTLIB});
-
- my(@m);
- push @m,'
-# Rely on suffix rule for update action
-$(OBJECT) : $(INST_ARCHAUTODIR).exists
-
-$(INST_STATIC) : $(OBJECT) $(MYEXTLIB)
-';
- # If this extension has it's own library (eg SDBM_File)
- # then copy that to $(INST_STATIC) and add $(OBJECT) into it.
- push(@m, ' $(CP) $(MYEXTLIB) $(MMS$TARGET)',"\n") if $self->{MYEXTLIB};
-
- push(@m,'
- If F$Search("$(MMS$TARGET)").eqs."" Then Library/Object/Create $(MMS$TARGET)
- Library/Object/Replace $(MMS$TARGET) $(MMS$SOURCE_LIST)
- @ $(PERL) -e "open F,\'>>$(INST_ARCHAUTODIR)extralibs.ld\';print F qq[$(EXTRALIBS)\n];close F;"
- @ $(PERL) -e "open F,\'>>$(INST_ARCHAUTODIR).packlist\';print F qq[$(MMS$TARGET)\n];close F;"
-');
- push @m, $self->dir_target('$(INST_ARCHAUTODIR)');
- join('',@m);
-}
-
-
-sub installpm_x { # called by installpm perl file
- my($self, $dist, $inst, $splitlib) = @_;
- unless (ref $self){
- ExtUtils::MakeMaker::TieAtt::warndirectuse((caller(0))[3]);
- $self = $ExtUtils::MakeMaker::Parent[-1];
- }
- warn "Warning: Most probably 'make' will have problems processing this file: $inst\n"
- if $inst =~ m!#!;
- $inst = $self->fixpath($inst);
- $dist = $self->fixpath($dist);
- my($instdir) = $inst =~ /([^\)]+\))[^\)]*$/ ? $1 : dirname($inst);
- my(@m);
-
- push(@m, "
-$inst : $dist \$(MAKEFILE) ${instdir}.exists
-",' @ $(RM_F) $(MMS$TARGET)
- @ $(CP) ',"$dist $inst",'
- $(CHMOD) 644 $(MMS$TARGET)
- @ $(PERL) -e "open F,\'>>$(INST_ARCHAUTODIR).packlist\';print F qq[$(MMS$TARGET)\n];close F;"
-');
- push(@m, ' $(AUTOSPLITFILE) $(MMS$TARGET) ',
- $self->catdir($splitlib,'auto')."\n\n")
- if ($splitlib and $inst =~ /\.pm$/);
- push(@m,$self->dir_target($instdir));
-
- join('',@m);
-}
-
-
-sub manifypods {
- my($self, %attribs) = @_;
- unless (ref $self){
- ExtUtils::MakeMaker::TieAtt::warndirectuse((caller(0))[3]);
- $self = $ExtUtils::MakeMaker::Parent[-1];
- }
- return "\nmanifypods :\n\t\$(NOOP)\n" unless %{$self->{MAN3PODS}};
- my($dist);
- my($pod2man_exe,$found_pod2man);
- if (defined $self->{PERL_SRC}) {
- $pod2man_exe = $self->catfile($self->{PERL_SRC},'pod','pod2man');
- } else {
- $pod2man_exe = $self->catfile($Config{bin},'pod2man');
- }
- if ($pod2man_exe = $self->perl_script($pod2man_exe)) { $found_pod2man = 1; }
- else {
- # No pod2man but some MAN3PODS to be installed
- print <<END;
-
-Warning: I could not locate your pod2man program. As a last choice,
- I will look for the file to which the logical name POD2MAN
- points when MMK is invoked.
-
-END
- $pod2man_exe = "pod2man";
- }
- my(@m);
- push @m,
-qq[POD2MAN_EXE = $pod2man_exe\n],
-q[POD2MAN = $(PERL) -we "%m=@ARGV;for (keys %m){" -
--e "system(""$(PERL) $(POD2MAN_EXE) $_ >$m{$_}"");}"
-];
- push @m, "\nmanifypods : ";
- push @m, join " ", keys %{$self->{MAN1PODS}}, keys %{$self->{MAN3PODS}};
- push(@m,"\n");
- if (%{$self->{MAN1PODS}} || %{$self->{MAN3PODS}}) {
- my($pod);
- foreach $pod (sort keys %{$self->{MAN1PODS}}) {
- push @m, qq[\t\@- If F\$Search("\$(POD2MAN_EXE)").nes."" Then \$(POD2MAN) ];
- push @m, "$pod $self->{MAN1PODS}{$pod}\n";
- }
- foreach $pod (sort keys %{$self->{MAN3PODS}}) {
- push @m, qq[\t\@- If F\$Search("\$(POD2MAN_EXE)").nes."" Then \$(POD2MAN) ];
- push @m, "$pod $self->{MAN3PODS}{$pod}\n";
- }
- }
- join('', @m);
-}
-
-
-sub processPL {
- my($self) = @_;
- unless (ref $self){
- ExtUtils::MakeMaker::TieAtt::warndirectuse((caller(0))[3]);
- $self = $ExtUtils::MakeMaker::Parent[-1];
- }
- return "" unless $self->{PL_FILES};
- my(@m, $plfile);
- foreach $plfile (sort keys %{$self->{PL_FILES}}) {
- push @m, "
-all :: $self->{PL_FILES}->{$plfile}
- \$(NOOP)
-
-$self->{PL_FILES}->{$plfile} :: $plfile
-",' $(PERL) "-I$(INST_ARCHLIB)" "-I$(INST_LIB)" "-I$(PERL_ARCHLIB)" "-I$(PERL_LIB)" '," $plfile
-";
- }
- join "", @m;
-}
-
-
-sub installbin {
- my($self) = @_;
- unless (ref $self){
- ExtUtils::MakeMaker::TieAtt::warndirectuse((caller(0))[3]);
- $self = $ExtUtils::MakeMaker::Parent[-1];
- }
- return '' unless $self->{EXE_FILES} && ref $self->{EXE_FILES} eq "ARRAY";
- return '' unless @{$self->{EXE_FILES}};
- my(@m, $from, $to, %fromto, @to, $line);
- for $from (@{$self->{EXE_FILES}}) {
- my($path) = '$(INST_EXE)' . basename($from);
- local($_) = $path; # backward compatibility
- $to = $self->exescan($path);
- print "exescan($from) => '$to'\n" if ($Verbose >=2);
- $fromto{$from}=$to;
- }
- @to = values %fromto;
- push @m, "
-EXE_FILES = @{$self->{EXE_FILES}}
-
-all :: @to
- \$(NOOP)
-
-realclean ::
-";
- $line = ''; #avoid unitialized var warning
- foreach $to (@to) {
- if (length($line) + length($to) > 80) {
- push @m, "\t\$(RM_F) $line\n";
- $line = $to;
- }
- else { $line .= " $to"; }
- }
- push @m, "\t\$(RM_F) $line\n\n";
-
- while (($from,$to) = each %fromto) {
- my $todir;
- if ($to =~ m#[/>:\]]#) { $todir = dirname($to); }
- else { ($todir = $to) =~ s/[^\)]+$//; }
- $todir = $self->fixpath($todir,1);
- push @m, "
-$to : $from \$(MAKEFILE) ${todir}.exists
- \$(CP) $from $to
-
-", $self->dir_target($todir);
- }
- join "", @m;
-}
-
-
-# --- Sub-directory Sections ---
-
-sub pasthru {
- my($self) = @_;
- unless (ref $self){
- ExtUtils::MakeMaker::TieAtt::warndirectuse((caller(0))[3]);
- $self = $ExtUtils::MakeMaker::Parent[-1];
- }
- my(@m,$key);
- my(@pasthru);
-
- foreach $key (qw(INSTALLPRIVLIB INSTALLARCHLIB INSTALLBIN
- INSTALLMAN1DIR INSTALLMAN3DIR LIBPERL_A LINKTYPE)){
- push @pasthru, "$key=\"$self->{$key}\"";
- }
-
- push @m, "\nPASTHRU = \\\n ", join (",\\\n ", @pasthru), "\n";
- join "", @m;
-}
-
-
-sub subdir_x {
- my($self, $subdir) = @_;
- unless (ref $self){
- ExtUtils::MakeMaker::TieAtt::warndirectuse((caller(0))[3]);
- $self = $ExtUtils::MakeMaker::Parent[-1];
- }
- my(@m,$key);
- $subdir = $self->fixpath($subdir,1);
- push @m, '
-
-subdirs ::
- olddef = F$Environment("Default")
- Set Default ',$subdir,'
- - $(MMS) all $(USEMACROS)$(PASTHRU)$(MACROEND)
- Set Default \'olddef\'
-';
- join('',@m);
-}
-
-
-# --- Cleanup and Distribution Sections ---
-
-sub clean {
- my($self, %attribs) = @_;
- unless (ref $self){
- ExtUtils::MakeMaker::TieAtt::warndirectuse((caller(0))[3]);
- $self = $ExtUtils::MakeMaker::Parent[-1];
- }
- my(@m,$dir);
- push @m, '
-# Delete temporary files but do not touch installed files. We don\'t delete
-# the Descrip.MMS here so that a later make realclean still has it to use.
-clean ::
-';
- foreach $dir (@{$self->{DIR}}) { # clean subdirectories first
- my($vmsdir) = $self->fixpath($dir,1);
- push( @m, ' If F$Search("'.$vmsdir.'$(MAKEFILE)") Then \\',"\n\t",
- '$(PERL) -e "chdir ',"'$vmsdir'",'; print `$(MMS) clean`;"',"\n");
- }
- push @m, ' $(RM_F) *.Map *.lis *.cpp *$(OBJ_EXT) *$(LIB_EXT) *.Opt $(BOOTSTRAP) $(BASEEXT).bso
-';
-
- my(@otherfiles) = values %{$self->{XS}}; # .c files from *.xs files
- push(@otherfiles, $attribs{FILES}) if $attribs{FILES};
- push(@otherfiles, 'blib.dir', 'Makeaperl.MMS', 'extralibs.ld', 'perlmain.c');
- push(@otherfiles,$self->catfile('$(INST_ARCHAUTODIR)','extralibs.all'));
- my($file,$line);
- $line = ''; #avoid unitialized var warning
- foreach $file (@otherfiles) {
- $file = $self->fixpath($file);
- if (length($line) + length($file) > 80) {
- push @m, "\t\$(RM_RF) $line\n";
- $line = "$file";
- }
- else { $line .= " $file"; }
- }
- push @m, "\t\$(RM_RF) $line\n\n";
- push(@m, " $attribs{POSTOP}\n") if $attribs{POSTOP};
- join('', @m);
-}
-
-
-sub realclean {
- my($self, %attribs) = @_;
- unless (ref $self){
- ExtUtils::MakeMaker::TieAtt::warndirectuse((caller(0))[3]);
- $self = $ExtUtils::MakeMaker::Parent[-1];
- }
- my(@m);
- push(@m,'
-# Delete temporary files (via clean) and also delete installed files
-realclean :: clean
-');
- foreach(@{$self->{DIR}}){
- my($vmsdir) = $self->fixpath($_,1);
- push(@m, ' If F$Search("'."$vmsdir".'$(MAKEFILE)").nes."" Then \\',"\n\t",
- '$(PERL) -e "chdir ',"'$vmsdir'",'; print `$(MMS) realclean`;"',"\n");
- }
- push @m,' $(RM_RF) $(INST_AUTODIR) $(INST_ARCHAUTODIR)
-';
- # We can't expand several of the MMS macros here, since they don't have
- # corresponding %$self keys (i.e. they're defined in Descrip.MMS as a
- # combination of macros). In order to stay below DCL's 255 char limit,
- # we put only 2 on a line.
- my($file,$line,$fcnt);
- my(@files) = qw{ *.Opt $(INST_DYNAMIC) $(INST_STATIC) $(INST_BOOT) $(INST_PM) $(OBJECT) $(MAKEFILE) $(MAKEFILE)_old };
- $line = ''; #avoid unitialized var warning
- foreach $file (@files) {
- $file = $self->fixpath($file);
- if (length($line) + length($file) > 80 || ++$fcnt >= 2) {
- push @m, "\t\$(RM_F) $line\n";
- $line = "$file";
- $fcnt = 0;
- }
- else { $line .= " $file"; }
- }
- push @m, "\t\$(RM_F) $line\n";
- if ($attribs{FILES} && ref $attribs{FILES} eq 'ARRAY') {
- $line = '';
- foreach $file (@{$attribs{'FILES'}}) {
- $file = $self->fixpath($file);
- if (length($line) + length($file) > 80) {
- push @m, "\t\$(RM_RF) $line\n";
- $line = "$file";
- }
- else { $line .= " $file"; }
- }
- push @m, "\t\$(RM_RF) $line\n";
- }
- push(@m, " $attribs{POSTOP}\n") if $attribs{POSTOP};
- join('', @m);
-}
-
-
-sub dist_basics {
- my($self) = @_;
- unless (ref $self){
- ExtUtils::MakeMaker::TieAtt::warndirectuse((caller(0))[3]);
- $self = $ExtUtils::MakeMaker::Parent[-1];
- }
-'
-distclean :: realclean distcheck
- $(NOOP)
-
-distcheck :
- $(PERL) "-I$(PERL_ARCHLIB)" "-I$(PERL_LIB)" -e "use ExtUtils::Manifest \'&fullcheck\'; fullcheck()"
-
-skipcheck :
- $(PERL) "-I$(PERL_ARCHLIB)" "-I$(PERL_LIB)" -e "use ExtUtils::Manifest \'&fullcheck\'; skipcheck()"
-
-manifest :
- $(PERL) "-I$(PERL_ARCHLIB)" "-I$(PERL_LIB)" -e "use ExtUtils::Manifest \'&mkmanifest\'; mkmanifest()"
-';
-}
-
-
-sub dist_core {
- my($self) = @_;
- unless (ref $self){
- ExtUtils::MakeMaker::TieAtt::warndirectuse((caller(0))[3]);
- $self = $ExtUtils::MakeMaker::Parent[-1];
- }
-'
-dist : $(DIST_DEFAULT)
- $(NOOP)
-
-zipdist : $(DISTVNAME).zip$(SUFFIX)
- $(NOOP)
-
-$(DISTVNAME).zip$(SUFFIX) : distdir
- $(PREOP)
- $(ZIP) "$(ZIPFLAGS)" $(MMS$TARGET) $(SRC)
- $(RM_RF) $(DISTVNAME)
- $(POSTOP)
-
-shdist : distdir
- $(PREOP)
- $(SHARE) $(SRC) $(DISTVNAME).share$(SUFFIX)
- $(RM_RF) $(DISTVNAME)
- $(POSTOP)
-';
-}
-
-
-sub dist_dir {
- my($self) = @_;
- unless (ref $self){
- ExtUtils::MakeMaker::TieAtt::warndirectuse((caller(0))[3]);
- $self = $ExtUtils::MakeMaker::Parent[-1];
- }
-q{
-distdir :
- $(RM_RF) $(DISTVNAME)
- $(PERL) "-I$(PERL_ARCHLIB)" "-I$(PERL_LIB)" -e "use ExtUtils::Manifest '/mani/';" \\
- -e "manicopy(maniread(),'$(DISTVNAME)','$(DIST_CP)');"
-};
-}
-
-
-sub dist_test {
- my($self) = @_;
- unless (ref $self){
- ExtUtils::MakeMaker::TieAtt::warndirectuse((caller(0))[3]);
- $self = $ExtUtils::MakeMaker::Parent[-1];
- }
-q{
-disttest : distdir
- startdir = F$Environment("Default")
- Set Default [.$(DISTVNAME)]
- $(PERL) "-I$(PERL_ARCHLIB)" "-I$(PERL_LIB)" Makefile.PL
- $(MMS)
- $(MMS) test
- Set Default 'startdir'
-};
-}
-
-sub dist_ci {
- my($self) = @_;
- unless (ref $self){
- ExtUtils::MakeMaker::TieAtt::warndirectuse((caller(0))[3]);
- $self = $ExtUtils::MakeMaker::Parent[-1];
- }
-'';
-}
-
-
-# --- Test and Installation Sections ---
-
-
-
-sub install {
- my($self, %attribs) = @_;
- unless (ref $self){
- ExtUtils::MakeMaker::TieAtt::warndirectuse((caller(0))[3]);
- $self = $ExtUtils::MakeMaker::Parent[-1];
- }
- my(@m);
- push @m, q{
-doc_install ::
- @ Write Sys$Output "Appending installation info to $(INST_ARCHLIB)perllocal.pod"
- @ $(PERL) "-I$(PERL_LIB)" "-I$(PERL_ARCHLIB)" \\
- -e "use ExtUtils::MakeMaker; MY->new({})->writedoc('Module', '$(NAME)', \\
- 'LINKTYPE=$(LINKTYPE)', 'VERSION=$(VERSION)', 'EXE_FILES=$(EXE_FILES)')" \\
- >>$(INSTALLARCHLIB)perllocal.pod
-};
-
- push(@m, "
-install :: pure_install doc_install
- \$(NOOP)
-
-# Interim solution for VMS; assumes directory tree of same structure under
-# both \$(INST_LIB) and \$(INSTALLPRIVLIB). This operation will be assumed
-# into MakeMaker in a (near) future version.
-pure_install :: all
-");
-# # install subdirectories first
-# foreach(@{$self->{DIR}}){
-# my($vmsdir) = $self->fixpath($_,1);
-# push(@m, ' If F$Search("',$vmsdir,'$(MAKEFILE)").nes."" Then $(PERL) -e "chdir ',"'$vmsdir'",
-# '; print `$(MMS) install`"'."\n");
-# }
-#
-# push(@m, ' @ $(PERL) "-I$(PERL_LIB)" -e "use File::Path; mkpath(\@ARGV)" $(INSTALLPRIVLIB) $(INSTALLARCHLIB)
-# @ $(PERL) -e "die qq{You do not have permissions to install into $ARGV[0]\n} unless -w VMS::Filespec::fileify($ARGV[0])" $(INSTALLPRIVLIB)
-# @ $(PERL) -e "die qq{You do not have permissions to install into $ARGV[0]\n} unless -w VMS::Filespec::fileify($ARGV[0])" $(INSTALLARCHLIB)',"
-# # Can't install manpages here -- INST_MAN%DIR macros make line >255 chars
-# \$(MMS) \$(USEMACROS)INST_LIB=$self->{INSTALLPRIVLIB},INST_ARCHLIB=$self->{INSTALLARCHLIB},INST_EXE=$self->{INSTALLBIN}\$(MACROEND)",'
-# @ $(PERL) -i_bak -lne "print unless $seen{$_}++" $(INST_ARCHAUTODIR).packlist
-#');
-
- my($curtop,$insttop);
- ($curtop = $self->fixpath($self->{INST_LIB},1)) =~ s/]$//;
- ($insttop = $self->fixpath($self->{INSTALLPRIVLIB},1)) =~ s/]$//;
- push(@m," Backup/Log ${curtop}...]*.*; ${insttop}...]/New_Version/By_Owner=Parent\n");
-
- push @m, '
-##### UNINSTALL IS STILL EXPERIMENTAL ####
-uninstall ::
-';
- foreach(@{$self->{DIR}}){
- my($vmsdir) = $self->fixpath($_,1);
- push(@m, ' If F$Search("',$vmsdir,'$(MAKEFILE)").nes."" Then $(PERL) -e "chdir ',"'$vmsdir'",
- '; print `$(MMS) uninstall`"'."\n");
- }
- push @m, "\t".'$(PERL) -le "use File::Path; foreach (<>) {s/',"$curtop/$insttop/;",'rmtree($_,1,0);}" <$(INST_ARCHAUTODIR).packlist
-';
-
- join("",@m);
-}
-
-
-sub perldepend {
- my($self) = @_;
- unless (ref $self){
- ExtUtils::MakeMaker::TieAtt::warndirectuse((caller(0))[3]);
- $self = $ExtUtils::MakeMaker::Parent[-1];
- }
- my(@m);
-
- push @m, '
-$(OBJECT) : $(PERL_INC)EXTERN.h, $(PERL_INC)INTERN.h, $(PERL_INC)XSUB.h, $(PERL_INC)av.h
-$(OBJECT) : $(PERL_INC)cop.h, $(PERL_INC)cv.h, $(PERL_INC)embed.h, $(PERL_INC)form.h
-$(OBJECT) : $(PERL_INC)gv.h, $(PERL_INC)handy.h, $(PERL_INC)hv.h, $(PERL_INC)keywords.h
-$(OBJECT) : $(PERL_INC)mg.h, $(PERL_INC)op.h, $(PERL_INC)opcode.h, $(PERL_INC)patchlevel.h
-$(OBJECT) : $(PERL_INC)perl.h, $(PERL_INC)perly.h, $(PERL_INC)pp.h, $(PERL_INC)proto.h
-$(OBJECT) : $(PERL_INC)regcomp.h, $(PERL_INC)regexp.h, $(PERL_INC)scope.h, $(PERL_INC)sv.h
-$(OBJECT) : $(PERL_INC)vmsish.h, $(PERL_INC)util.h, $(PERL_INC)config.h
-
-' if $self->{OBJECT};
-
- push(@m,'
-# Check for unpropagated config.sh changes. Should never happen.
-# We do NOT just update config.h because that is not sufficient.
-# An out of date config.h is not fatal but complains loudly!
-#$(PERL_INC)config.h : $(PERL_SRC)config.sh
-$(PERL_INC)config.h : $(PERL_VMS)config.vms
- @ Write Sys$Error "Warning: $(PERL_INC)config.h out of date with $(PERL_VMS)config.vms"
-
-#$(PERL_ARCHLIB)Config.pm : $(PERL_SRC)config.sh
-$(PERL_ARCHLIB)Config.pm : $(PERL_VMS)config.vms $(PERL_VMS)genconfig.pl
- @ Write Sys$Error "$(PERL_ARCHLIB)Config.pm may be out of date with config.vms or genconfig.pl"
- olddef = F$Environment("Default")
- Set Default $(PERL_SRC)
- $(MMS) $(USEMAKEFILE)[.VMS]$(MAKEFILE) [.lib.',$Config{'arch'},']config.pm
- Set Default \'olddef\'
-') if $self->{PERL_SRC};
-
- push(@m, join(" ", map($self->fixpath($_),values %{$self->{XS}}))." : \$(XSUBPPDEPS)\n")
- if %{$self->{XS}};
-
- join('',@m);
-}
-
-sub makefile {
- my($self) = @_;
- unless (ref $self){
- ExtUtils::MakeMaker::TieAtt::warndirectuse((caller(0))[3]);
- $self = $ExtUtils::MakeMaker::Parent[-1];
- }
- my(@m,@cmd);
- # We do not know what target was originally specified so we
- # must force a manual rerun to be sure. But as it should only
- # happen very rarely it is not a significant problem.
- push @m, '
-$(OBJECT) : $(FIRST_MAKEFILE)
-' if $self->{OBJECT};
-
- push @m,'
-# We take a very conservative approach here, but it\'s worth it.
-# We move $(MAKEFILE) to $(MAKEFILE)_old here to avoid gnu make looping.
-$(MAKEFILE) : Makefile.PL $(CONFIGDEP)
- @ Write Sys$Output "$(MAKEFILE) out-of-date with respect to $(MMS$SOURCE_LIST)"
- @ Write Sys$Output "Cleaning current config before rebuilding $(MAKEFILE) ..."
- - $(MV) $(MAKEFILE) $(MAKEFILE)_old
- - $(MMS) $(USEMAKEFILE)$(MAKEFILE)_old clean
- $(PERL) "-I$(PERL_ARCHLIB)" "-I$(PERL_LIB)" Makefile.PL ',join(' ',@ARGV),'
- @ Write Sys$Output "$(MAKEFILE) has been rebuilt."
- @ Write Sys$Output "Please run $(MMS) to build the extension."
-';
-
- join('',@m);
-}
-
-
-sub test {
- my($self, %attribs) = @_;
- unless (ref $self){
- ExtUtils::MakeMaker::TieAtt::warndirectuse((caller(0))[3]);
- $self = $ExtUtils::MakeMaker::Parent[-1];
- }
- my($tests) = $attribs{TESTS} || ( -d 't' ? 't/*.t' : '');
- my(@m);
- push @m,"
-TEST_VERBOSE = 0
-TEST_TYPE=test_\$(LINKTYPE)
-
-test : \$(TEST_TYPE)
- \$(NOOP)
-";
- foreach(@{$self->{DIR}}){
- my($vmsdir) = $self->fixpath($_,1);
- push(@m, ' If F$Search("',$vmsdir,'$(MAKEFILE)").nes."" Then $(PERL) -e "chdir ',"'$vmsdir'",
- '; print `$(MMS) $(PASTHRU2) test`'."\n");
- }
- push(@m, "\t\@ Write Sys\$Output 'No tests defined for \$(NAME) extension.'\n")
- unless $tests or -f "test.pl" or @{$self->{DIR}};
- push(@m, "\n");
-
- push(@m, "test_dynamic :: all\n");
- push(@m, $self->test_via_harness('$(FULLPERL)', $tests)) if $tests;
- push(@m, $self->test_via_script('$(FULLPERL)', 'test.pl')) if -f "test.pl";
- push(@m, "\n");
-
- # Occasionally we may face this degenerate target:
- push @m, "test_ : test_dynamic\n\n";
-
- if ($self->needs_linking()) {
- push(@m, "test_static :: all \$(MAP_TARGET)\n");
- push(@m, $self->test_via_harness('$(MAP_TARGET)', $tests)) if $tests;
- push(@m, $self->test_via_script('$(MAP_TARGET)', 'test.pl')) if -f "test.pl";
- push(@m, "\n");
- }
- else {
- push @m, "test_static :: test_dynamic\n";
- }
-
- join('',@m);
-}
-
-
-sub test_via_harness {
- my($self,$perl,$tests) = @_;
- unless (ref $self){
- ExtUtils::MakeMaker::TieAtt::warndirectuse((caller(0))[3]);
- $self = $ExtUtils::MakeMaker::Parent[-1];
- }
- " $perl".' "-I$(INST_ARCHLIB)" "-I$(INST_LIB)" "-I$(PERL_LIB)" "-I$(PERL_ARCHLIB)" \\'."\n\t".
- '-e "use Test::Harness qw(&runtests $verbose); $verbose=$(TEST_VERBOSE); runtests @ARGV;" \\'."\n\t$tests\n";
-}
-
-
-sub test_via_script {
- my($self,$perl,$script) = @_;
- unless (ref $self){
- ExtUtils::MakeMaker::TieAtt::warndirectuse((caller(0))[3]);
- $self = $ExtUtils::MakeMaker::Parent[-1];
- }
- " $perl".' "-I$(INST_ARCHLIB)" "-I$(INST_LIB)" "-I$(PERL_ARCHLIB)" "-I$(PERL_LIB)" test.pl
-';
-}
-
-
-sub makeaperl {
- my($self, %attribs) = @_;
- unless (ref $self){
- ExtUtils::MakeMaker::TieAtt::warndirectuse((caller(0))[3]);
- $self = $ExtUtils::MakeMaker::Parent[-1];
- }
- my($makefilename, $searchdirs, $static, $extra, $perlinc, $target, $tmp, $libperl) =
- @attribs{qw(MAKE DIRS STAT EXTRA INCL TARGET TMP LIBPERL)};
- my(@m);
- push @m, "
-# --- MakeMaker makeaperl section ---
-MAP_TARGET = $target
-FULLPERL = $self->{FULLPERL}
-";
- return join '', @m if $self->{PARENT};
-
- my($dir) = join ":", @{$self->{DIR}};
-
- unless ($self->{MAKEAPERL}) {
- push @m, q{
-$(MAP_TARGET) :: $(MAKE_APERL_FILE)
- $(MMS)$(USEMAKEFILE)$(MAKE_APERL_FILE) static $(MMS$TARGET)
-
-$(MAKE_APERL_FILE) : $(FIRST_MAKEFILE)
- @ Write Sys$Output "Writing ""$(MMS$TARGET)"" for this $(MAP_TARGET)"
- @ $(PERL) "-I$(INST_ARCHLIB)" "-I$(INST_LIB)" "-I$(PERL_ARCHLIB)" "-I$(PERL_LIB)" \
- Makefile.PL DIR=}, $dir, q{ \
- MAKEFILE=$(MAKE_APERL_FILE) LINKTYPE=static \
- MAKEAPERL=1 NORECURS=1};
-
- push @m, map( " \\\n\t\t$_", @ARGV );
- push @m, "\n";
-
- return join '', @m;
- }
-
-
- my($linkcmd,@staticopts,@staticpkgs,$extralist,$target,$targdir,$libperldir);
-
- # The front matter of the linkcommand...
- $linkcmd = join ' ', $Config{'ld'},
- grep($_, @Config{qw(large split ldflags ccdlflags)});
- $linkcmd =~ s/\s+/ /g;
-
- # Which *.olb files could we make use of...
- local(%olbs);
- $olbs{$self->{INST_ARCHAUTODIR}} = "$self->{BASEEXT}\$(LIB_EXT)";
- File::Find::find(sub {
- return unless m/\Q$self->{LIB_EXT}\E$/;
- return if m/^libperl/;
- $olbs{$ENV{DEFAULT}} = $_;
- }, grep( -d $_, @{$searchdirs || []}));
-
- # We trust that what has been handed in as argument will be buildable
- $static = [] unless $static;
- @olbs{@{$static}} = (1) x @{$static};
-
- $extra = [] unless $extra && ref $extra eq 'ARRAY';
- # Sort the object libraries in inverse order of
- # filespec length to try to insure that dependent extensions
- # will appear before their parents, so the linker will
- # search the parent library to resolve references.
- # (e.g. Intuit::DWIM will precede Intuit, so unresolved
- # references from [.intuit.dwim]dwim.obj can be found
- # in [.intuit]intuit.olb).
- for (sort keys %olbs) {
- next unless $olbs{$_} =~ /\Q$self->{LIB_EXT}\E$/;
- my($dir) = $self->fixpath($_,1);
- my($extralibs) = $dir . "extralibs.ld";
- my($extopt) = $dir . $olbs{$_};
- $extopt =~ s/$self->{LIB_EXT}$/.opt/;
- if (-f $extralibs ) {
- open LIST,$extralibs or warn $!,next;
- push @$extra, <LIST>;
- close LIST;
- }
- if (-f $extopt) {
- open OPT,$extopt or die $!;
- while (<OPT>) {
- next unless /(?:UNIVERSAL|VECTOR)=boot_([\w_]+)/;
- # ExtUtils::Miniperl expects Unix paths
- (my($pkg) = "$1_$1$self->{LIB_EXT}") =~ s#_*#/#g;
- push @staticpkgs,$pkg;
- }
- push @staticopts, $extopt;
- }
- }
-
- $target = "Perl.Exe" unless $target;
- ($shrtarget,$targdir) = fileparse($target);
- $shrtarget =~ s/^([^.]*)/$1Shr/;
- $shrtarget = $targdir . $shrtarget;
- $target = "Perlshr.$Config{'dlext'}" unless $target;
- $tmp = "[]" unless $tmp;
- $tmp = $self->fixpath($tmp,1);
- if (@$extra) {
- $extralist = join(' ',@$extra);
- $extralist =~ s/[,\s\n]+/, /g;
- }
- else { $extralist = ''; }
- if ($libperl) {
- unless (-f $libperl || -f ($libperl = $self->catfile($Config{'installarchlib'},'CORE',$libperl))) {
- print STDOUT "Warning: $libperl not found\n";
- undef $libperl;
- }
- }
- unless ($libperl) {
- if (defined $self->{PERL_SRC}) {
- $libperl = $self->catfile($self->{PERL_SRC},"libperl$self->{LIB_EXT}");
- } elsif (-f ($libperl = $self->catfile($Config{'installarchlib'},'CORE',"libperl$self->{LIB_EXT}")) ) {
- } else {
- print STDOUT "Warning: $libperl not found
- If you're going to build a static perl binary, make sure perl is installed
- otherwise ignore this warning\n";
- }
- }
- $libperldir = $self->fixpath((fileparse($libperl))[1],1);
-
- push @m, '
-# Fill in the target you want to produce if it\'s not perl
-MAP_TARGET = ',$self->fixpath($target),'
-MAP_SHRTARGET = ',$self->fixpath($shrtarget),"
-MAP_LINKCMD = $linkcmd
-MAP_PERLINC = ", $perlinc ? map('"$_" ',@{$perlinc}) : '','
-# We use the linker options files created with each extension, rather than
-#specifying the object files directly on the command line.
-MAP_STATIC = ',@staticopts ? join(' ', @staticopts) : '','
-MAP_OPTS = ',@staticopts ? ','.join(',', map($_.'/Option', @staticopts)) : '',"
-MAP_EXTRA = $extralist
-MAP_LIBPERL = ",$self->fixpath($libperl),'
-';
-
-
- push @m,'
-$(MAP_SHRTARGET) : $(MAP_LIBPERL) $(MAP_STATIC) ',"${libperldir}Perlshr_Attr.Opt",'
- $(MAP_LINKCMD)/Shareable=$(MMS$TARGET) $(MAP_OPTS), $(MAP_EXTRA), $(MAP_LIBPERL) ',"${libperldir}Perlshr_Attr.Opt",'
-$(MAP_TARGET) : $(MAP_SHRTARGET) ',"${tmp}perlmain\$(OBJ_EXT) ${tmp}PerlShr.Opt",'
- $(MAP_LINKCMD) ',"${tmp}perlmain\$(OBJ_EXT)",', PerlShr.Opt/Option
- @ Write Sys$Output "To install the new ""$(MAP_TARGET)"" binary, say"
- @ Write Sys$Output " $(MMS)$(USEMAKEFILE)$(MAKEFILE) inst_perl $(USEMACROS)MAP_TARGET=$(MAP_TARGET)$(ENDMACRO)"
- @ Write Sys$Output "To remove the intermediate files, say
- @ Write Sys$Output " $(MMS)$(USEMAKEFILE)$(MAKEFILE) map_clean"
-';
- push @m,'
-',"${tmp}perlmain.c",' : $(MAKEFILE)
- @ $(PERL) $(MAP_PERLINC) -e "use ExtUtils::Miniperl; writemain(qw|',@staticpkgs,'|)" >$(MMS$TARGET)
-';
-
- push @m, q{
-doc_inst_perl :
- @ $(PERL) -e "use ExtUtils::MakeMaker; MY->new()->writedoc('Perl binary','$(MAP_TARGET)','MAP_STATIC=$(MAP_STATIC)','MAP_EXTRA=$(MAP_EXTRA)','MAP_LIBPERL=$(MAP_LIBPERL)')"
-};
-
- push @m, "
-inst_perl : pure_inst_perl doc_inst_perl
- \$(NOOP)
-
-pure_inst_perl : \$(MAP_TARGET)
- $self->{CP} \$(MAP_SHRTARGET) ",$self->fixpath($Config{'installbin'},1),"
- $self->{CP} \$(MAP_TARGET) ",$self->fixpath($Config{'installbin'},1),"
-
-clean :: map_clean
- \$(NOOP)
-
-map_clean :
- \$(RM_F) ${tmp}perlmain\$(OBJ_EXT) ${tmp}perlmain.c \$(MAKEFILE)
- \$(RM_F) ${tmp}PerlShr.Opt \$(MAP_TARGET)
-";
-
- join '', @m;
-}
-
-sub extliblist {
- my($self) = @_;
- unless (ref $self){
- ExtUtils::MakeMaker::TieAtt::warndirectuse((caller(0))[3]);
- $self = $ExtUtils::MakeMaker::Parent[-1];
- }
- '','','';
-}
-
-
-sub mksymlists {
- my($self,%attribs) = @_;
- unless (ref $self){
- ExtUtils::MakeMaker::TieAtt::warndirectuse((caller(0))[3]);
- $self = $ExtUtils::MakeMaker::Parent[-1];
- }
-
- my($vars) = $attribs{DL_VARS} || $self->{DL_VARS} || [];
- my($procs) = $attribs{DL_FUNCS} || $self->{DL_FUNCS};
- my($package,$packprefix,$sym,$optname);
- local(*OPT);
-
- if (!$procs) {
- $package = $self->{NAME};
- $package =~ s/\W/_/g;
- $procs = { $package => ["boot_$package"] };
- }
- my($isvax) = $Config{'arch'} =~ /VAX/i;
-
- # Options file declaring universal symbols
- # Used when linking shareable image for dynamic extension,
- # or when linking PerlShr into which we've added this package
- # as a static extension
- # We don't do anything to preserve order, so we won't relax
- # the GSMATCH criteria for a dynamic extension
-
- # BASEEXT is not available when mksymlists is run, so we
- # create the options file name directly from NAME
- # May cause trouble if Makefile.PL author specifies NAME
- # and BASEEXT directly as unrelated strings.
- ($optname = $self->{NAME}) =~ s/.*:://;
- open OPT, ">$optname.opt";
- foreach $package (keys %$procs) {
- ($packprefix = $package) =~ s/\W/_/g;
- foreach $sym (@{$$procs{$package}}) {
- $sym = "XS_${packprefix}_$sym" unless $sym =~ /^boot_/;
- if ($isvax) { print OPT "UNIVERSAL=$sym\n" }
- else { print OPT "SYMBOL_VECTOR=($sym=PROCEDURE)\n"; }
- }
- }
- foreach $sym (@$vars) {
- print OPT "PSECT_ATTR=${sym},PIC,OVR,RD,NOEXE,WRT,NOSHR\n";
- if ($isvax) { print OPT "UNIVERSAL=$sym\n" }
- else { print OPT "SYMBOL_VECTOR=($sym=DATA)\n"; }
- }
- close OPT;
-
- # Options file specifying RTLs to which this extension must be linked.
- # Eventually, the list of libraries will be supplied by a working
- # extliblist routine.
- open OPT,'>rtls.opt';
- print OPT "PerlShr/Share\n";
- foreach $rtl (split(/\s+/,$Config{'libs'})) { print OPT "$rtl\n"; }
- close OPT;
-}
-
-
-# --- Make-Directories section (internal method) ---
-# dir_target(@array) returns a Makefile entry for the file .exists in each
-# named directory. Returns nothing, if the entry has already been processed.
-# We're helpless though, if the same directory comes as $(FOO) _and_ as "bar".
-# Both of them get an entry, that's why we use "::". I chose '$(PERL)' as the
-# prerequisite, because there has to be one, something that doesn't change
-# too often :)
-
-sub dir_target {
- my($self,@dirs) = @_;
- unless (ref $self){
- ExtUtils::MakeMaker::TieAtt::warndirectuse((caller(0))[3]);
- $self = $ExtUtils::MakeMaker::Parent[-1];
- }
- my(@m,$dir);
- foreach $dir (@dirs) {
- next if $self->{DIR_TARGET}{$self}{$dir}++;
- my($vmsdir) = $self->fixpath($dir,1);
- push @m, "
-${vmsdir}.exists :: \$(PERL_INC)perl.h
- \@ \$(MKPATH) $vmsdir
- \@ \$(TOUCH) ${vmsdir}.exists
-";
- }
- join "", @m;
-}
-
-
-# --- Output postprocessing section ---
-
-sub nicetext {
- # Insure that colons marking targets are preceded by space -
- # most Unix Makes don't need this, but it's necessary under VMS
- # to distinguish the target delimiter from a colon appearing as
- # part of a filespec.
-
- my($self,$text) = @_;
- unless (ref $self){
- ExtUtils::MakeMaker::TieAtt::warndirectuse((caller(0))[3]);
- $self = $ExtUtils::MakeMaker::Parent[-1];
- }
- $text =~ s/([^\s:])(:+\s)/$1 $2/gs;
- $text;
-}
-
-1;
-
-__END__
diff --git a/vms/ext/stdio/Makefile.PL b/vms/ext/Stdio/Makefile.PL
index d6683b4af6..d6683b4af6 100644
--- a/vms/ext/stdio/Makefile.PL
+++ b/vms/ext/Stdio/Makefile.PL
diff --git a/vms/ext/stdio/stdio.pm b/vms/ext/Stdio/Stdio.pm
index d8b4ec21ec..d8b4ec21ec 100644
--- a/vms/ext/stdio/stdio.pm
+++ b/vms/ext/Stdio/Stdio.pm
diff --git a/vms/ext/stdio/stdio.xs b/vms/ext/Stdio/Stdio.xs
index 737229fe0b..737229fe0b 100644
--- a/vms/ext/stdio/stdio.xs
+++ b/vms/ext/Stdio/Stdio.xs