summaryrefslogtreecommitdiff
path: root/utils
diff options
context:
space:
mode:
authorNicholas Clark <nick@ccl4.org>2013-07-03 22:50:08 +0200
committerNicholas Clark <nick@ccl4.org>2013-07-07 12:42:02 +0200
commit0827416ddd18f3894cff2e82930c4f441b56e4a8 (patch)
tree89276cff41763b241f151daf97dccb6bc47b723d /utils
parent145bbcacfa5da244463c1a32e9230278dd2eff31 (diff)
downloadperl-0827416ddd18f3894cff2e82930c4f441b56e4a8.tar.gz
Generate utils/Makefile from utils/Makefile.PL, and remove it at clean time.
Add rules to the Win32 Makefiles to call utils/Makefile.PL to generate utils/Makefile, and rules to both them and the *nix Makefile to delete the generated file as part of the cleanup targets. VMS continues to do its own thing, rather than using utils/Makefile.
Diffstat (limited to 'utils')
-rw-r--r--utils/Makefile81
-rw-r--r--utils/Makefile.PL14
2 files changed, 8 insertions, 87 deletions
diff --git a/utils/Makefile b/utils/Makefile
deleted file mode 100644
index f8934e8623..0000000000
--- a/utils/Makefile
+++ /dev/null
@@ -1,81 +0,0 @@
-# Generated from utils/Makefile.SH. The generated file is
-# shipped with the source kit for systems such as win32
-# which don't do .SH extraction.
-
-PERL = ../miniperl
-REALPERL = ../perl
-RUN = # Used mainly cross-compilation setups.
-
-
-# Files to be built with variable substitution after miniperl is
-# available. Dependencies handled manually below (for now).
-
-pl = c2ph.PL config_data.PL corelist.PL cpan.PL h2ph.PL h2xs.PL instmodsh.PL json_pp.PL perlbug.PL perldoc.PL perlivp.PL pl2pm.PL prove.PL ptar.PL ptardiff.PL ptargrep.PL shasum.PL splain.PL libnetcfg.PL piconv.PL enc2xs.PL xsubpp.PL pod2html.PL zipdetails.PL
-plextract = c2ph config_data corelist cpan h2ph h2xs instmodsh json_pp perlbug perldoc perlivp pl2pm prove ptar ptardiff ptargrep shasum splain libnetcfg piconv enc2xs xsubpp pod2html zipdetails
-plextractexe = ./c2ph ./config_data ./corelist ./cpan ./h2ph ./h2xs ./json_pp ./instmodsh ./perlbug ./perldoc ./perlivp ./pl2pm ./prove ./ptar ./ptardiff ./ptargrep ./shasum ./splain ./libnetcfg ./piconv ./enc2xs ./xsubpp ./pod2html ./zipdetails
-
-all: $(plextract)
-
-$(plextract):
- $(RUN) $(PERL) -I../lib $@.PL
-
-c2ph: c2ph.PL ../config.sh
-
-cpan: cpan.PL ../config.sh
-
-config_data: config_data.PL ../config.sh
-
-corelist: corelist.PL ../config.sh
-
-h2ph: h2ph.PL ../config.sh
-
-h2xs: h2xs.PL ../config.sh
-
-instmodsh: instmodsh.PL ../config.sh
-
-json_pp: json_pp.PL ../config.sh
-
-perlbug: perlbug.PL ../config.sh ../patchlevel.h
-
-perldoc: perldoc.PL ../config.sh
-
-perlivp: perlivp.PL ../config.sh
-
-prove: prove.PL ../config.sh
-
-ptar: ptar.PL ../config.sh
-
-ptardiff: ptardiff.PL ../config.sh
-
-ptargrep: ptargrep.PL ../config.sh
-
-pl2pm: pl2pm.PL ../config.sh
-
-shasum: shasum.PL ../config.sh
-
-splain: splain.PL ../config.sh ../lib/diagnostics.pm
-
-libnetcfg: libnetcfg.PL ../config.sh
-
-piconv: piconv.PL ../config.sh
-
-enc2xs: enc2xs.PL ../config.sh
-
-xsubpp: xsubpp.PL ../config.sh
-
-zipdetails: zipdetails.PL ../config.sh
-
-pod2html: pod2html.PL ../config.sh ../ext/Pod-Html/bin/pod2html
-
-clean:
-
-realclean:
- rm -rf $(plextract) pstruct $(plextractexe)
- rm -f ../t/_h2ph_pre.ph
-
-clobber: realclean
-
-distclean: clobber
-
-veryclean: distclean
- -rm -f *~ *.org
diff --git a/utils/Makefile.PL b/utils/Makefile.PL
index 7e33806034..c5e3694b8a 100644
--- a/utils/Makefile.PL
+++ b/utils/Makefile.PL
@@ -7,21 +7,23 @@ if (@ARGV) {
chdir $dir or die "Can't chdir '$dir': $!";
}
+# Note, the generated utils/Makefile isn't used by VMS yet.
+# The next step on cleaning this is up is probably to work to reduce the size
+# of the "problem" in both this file and vms/descrip_mms.template by
+# attempting to move the work from them to the extension directories and
+# ExtUtils::MakeMaker.
+
require 'regen/regen_lib.pl';
my $target = 'utils/Makefile';
print "Extracting $target (with variable substitutions)\n";
-my $fh = open_new($target, undef, undef, 1);
+my $fh = open_new($target, undef, {by => $0}, 1);
# These use the Cwd extension. For statically-built perls, we
# need perl, not just miniperl.
my $perl = defined $Config{usedl} ? '../miniperl' : '../perl';
print $fh <<"EOT";
-# Generated from utils/Makefile.SH. The generated file is
-# shipped with the source kit for systems such as win32
-# which don't do .SH extraction.
-
PERL = $perl
REALPERL = ../perl
RUN = $Config{run} # Used mainly cross-compilation setups.
@@ -104,4 +106,4 @@ veryclean: distclean
-rm -f *~ *.org
EOT
-close_and_rename($fh);
+read_only_bottom_close_and_rename($fh);