perl 5.002_01: [patch re-organisation and introduction]
Charles Bailey [Thu, 21 Mar 1996 00:00:00 +0000 (00:00 +0000)]
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]

os2/diff.Makefile [deleted file]
os2/diff.c2ph [deleted file]
os2/diff.installman [deleted file]
os2/diff.installperl [deleted file]
os2/diff.mkdep [deleted file]
os2/diff.rest [deleted file]
os2/diff.x2pMakefile [deleted file]
vms/ext/MM_VMS.pm [deleted file]
vms/ext/Stdio/Makefile.PL [moved from vms/ext/stdio/Makefile.PL with 100% similarity]
vms/ext/Stdio/Stdio.pm [moved from vms/ext/stdio/stdio.pm with 100% similarity]
vms/ext/Stdio/Stdio.xs [moved from vms/ext/stdio/stdio.xs with 100% similarity]

diff --git a/os2/diff.Makefile b/os2/diff.Makefile
deleted file mode 100644 (file)
index fdce070..0000000
+++ /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 (file)
index a3fb6c6..0000000
+++ /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 (file)
index 036cf90..0000000
+++ /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 (file)
index 710ee91..0000000
+++ /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 (file)
index 86d3e0c..0000000
+++ /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 (file)
index 7c44334..0000000
+++ /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 (file)
index 46fdedb..0000000
+++ /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 (file)
index a74881f..0000000
+++ /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__