In perl.git, the branch blead has been updated <http://perl5.git.perl.org/perl.git/commitdiff/d3bc6aa63a6a5b0edf9948f07d2571be8049339c?hp=2c3d1f01b5371329bf99858414b5a2c0e891bce1>
- Log ----------------------------------------------------------------- commit d3bc6aa63a6a5b0edf9948f07d2571be8049339c Author: Nicholas Clark <[email protected]> Date: Tue Oct 5 19:30:59 2010 +0100 Generate the core-only Makefile.PL for podlators using make_ext. Using make_ext to generate it uses less code than committing a special core-only Makefile.PL to the repository, and is no more complex. M MANIFEST M Porting/Maintainers.pl D cpan/podlators/Makefile.PL M make_ext.pl commit ce41b7f24c1dd8024fc3b77f9c85f8b0d85908ef Author: Nicholas Clark <[email protected]> Date: Tue Oct 5 17:39:01 2010 +0100 Moving all pod/*.PL files to ext/ (and cpan/) is now done. M pod/perltodo.pod ----------------------------------------------------------------------- Summary of changes: Cross/Makefile-cross-SH | 21 +----- MANIFEST | 31 ++++---- Makefile.SH | 22 +----- Porting/Maintainers.pl | 28 +------ {pod => cpan/Pod-LaTeX}/pod2latex.PL | 0 {pod => cpan/Pod-Parser/scripts}/pod2usage.PL | 0 {pod => cpan/Pod-Parser/scripts}/podchecker.PL | 0 {pod => cpan/Pod-Parser/scripts}/podselect.PL | 0 cpan/podlators/Makefile.PL | 7 -- {pod => cpan/podlators/scripts}/pod2man.PL | 0 {pod => cpan/podlators/scripts}/pod2text.PL | 0 {lib/Pod => ext/Pod-Html}/Html.pm | 0 {pod => ext/Pod-Html}/pod2html.PL | 0 {lib/Pod => ext/Pod-Html}/t/htmlescp.pod | 0 {lib/Pod => ext/Pod-Html}/t/htmlescp.t | 5 +- {lib/Pod => ext/Pod-Html}/t/htmllink.pod | 0 {lib/Pod => ext/Pod-Html}/t/htmllink.t | 5 +- {lib/Pod => ext/Pod-Html}/t/htmlview.pod | 0 {lib/Pod => ext/Pod-Html}/t/htmlview.t | 5 +- {lib/Pod => ext/Pod-Html}/t/pod2html-lib.pl | 5 +- make_ext.pl | 91 ++++++++++++++++++------ pod/Makefile.SH | 72 ++++++------------- pod/perltodo.pod | 8 -- t/porting/dual-life.t | 23 +++++- utils.lst | 14 ++-- vms/descrip_mms.template | 39 +---------- win32/Makefile | 12 +--- win32/Makefile.ce | 5 -- win32/makefile.mk | 12 +--- win32/pod.mak | 60 +++++----------- 30 files changed, 167 insertions(+), 298 deletions(-) rename {pod => cpan/Pod-LaTeX}/pod2latex.PL (100%) rename {pod => cpan/Pod-Parser/scripts}/pod2usage.PL (100%) rename {pod => cpan/Pod-Parser/scripts}/podchecker.PL (100%) rename {pod => cpan/Pod-Parser/scripts}/podselect.PL (100%) delete mode 100644 cpan/podlators/Makefile.PL rename {pod => cpan/podlators/scripts}/pod2man.PL (100%) rename {pod => cpan/podlators/scripts}/pod2text.PL (100%) rename {lib/Pod => ext/Pod-Html}/Html.pm (100%) rename {pod => ext/Pod-Html}/pod2html.PL (100%) rename {lib/Pod => ext/Pod-Html}/t/htmlescp.pod (100%) rename {lib/Pod => ext/Pod-Html}/t/htmlescp.t (91%) rename {lib/Pod => ext/Pod-Html}/t/htmllink.pod (100%) rename {lib/Pod => ext/Pod-Html}/t/htmllink.t (96%) rename {lib/Pod => ext/Pod-Html}/t/htmlview.pod (100%) rename {lib/Pod => ext/Pod-Html}/t/htmlview.t (97%) rename {lib/Pod => ext/Pod-Html}/t/pod2html-lib.pl (91%) diff --git a/Cross/Makefile-cross-SH b/Cross/Makefile-cross-SH index 1a232a1..9b45943 100644 --- a/Cross/Makefile-cross-SH +++ b/Cross/Makefile-cross-SH @@ -329,17 +329,7 @@ private = preplibrary $(CONFIGPM) $(CROSS_LIB)/Config.pod shextract = Makefile cflags config.h makeaperl makedepend \ makedir myconfig writemain pod/Makefile -# Files to be built with variable substitution after miniperl is -# available. Dependencies handled manually below (for now). - -pl = pod/pod2html.PL pod/pod2latex.PL pod/pod2man.PL pod/pod2text.PL \ - pod/pod2usage.PL pod/podchecker.PL pod/podselect.PL - -# lib/lib.pm is not listed here because it has a rule of its own. -plextract = pod/pod2html pod/pod2latex pod/pod2man pod/pod2text \ - pod/pod2usage pod/podchecker pod/podselect - -addedbyconf = UU $(shextract) $(plextract) lib/lib.pm pstruct +addedbyconf = UU $(shextract) lib/lib.pm pstruct # Unicode data files generated by mktables unidatafiles = lib/unicore/Decomposition.pl lib/unicore/TestProp.pl \ @@ -744,10 +734,6 @@ lib/re.pm: ext/re/re.pm @-rm -f $@ cp ext/re/re.pm lib/re.pm -$(plextract): miniperl $(CONFIGPM) x2p/s2p - @-rm -f $@ - $(LDLIBPTH) ./miniperl -I`pwd`/lib [email protected] - lib/lib.pm: miniperl $(CONFIGPM) @-rm -f $@ $(LDLIBPTH) ./miniperl -Ilib -MCross lib/lib_pm.PL @@ -1252,7 +1238,7 @@ noknack: utilities nokfilenack: utilities $(LDLIBPTH) ./perl -Ilib utils/perlbug -nok -s '(UNINSTALLED)' -F perl.nok -A -.PHONY: clist hlist shlist pllist +.PHONY: clist hlist shlist clist: $(c) echo $(c) | tr ' ' $(TRNL) >.clist @@ -1263,9 +1249,6 @@ hlist: $(h) shlist: $(sh) echo $(sh) | tr ' ' $(TRNL) >.shlist -pllist: $(pl) - echo $(pl) | tr ' ' $(TRNL) >.pllist - Makefile: Makefile.SH ./config.sh $(SHELL) Makefile.SH diff --git a/MANIFEST b/MANIFEST index 6ab6a86..cf55abf 100644 --- a/MANIFEST +++ b/MANIFEST @@ -1635,6 +1635,7 @@ cpan/Pod-Escapes/t/01_about_verbose.t test Pod::Escapes cpan/Pod-Escapes/t/10_main.t test Pod::Escapes cpan/Pod-Escapes/t/15_name2charnum.t test Pod::Escapes cpan/Pod-LaTeX/LaTeX.pm Convert POD data to LaTeX +cpan/Pod-LaTeX/pod2latex.PL Precursor for translator to turn pod into LaTeX cpan/Pod-LaTeX/t/pod2latex.t See if Pod::LaTeX works cpan/Pod-LaTeX/t/user.t See if Pod::LaTeX works cpan/podlators/lib/Pod/Man.pm Convert POD data to *roff @@ -1643,7 +1644,8 @@ cpan/podlators/lib/Pod/Text/Color.pm Convert POD data to color ASCII text cpan/podlators/lib/Pod/Text/Overstrike.pm Convert POD data to formatted overstrike text cpan/podlators/lib/Pod/Text.pm Pod-Parser - convert POD data to formatted ASCII text cpan/podlators/lib/Pod/Text/Termcap.pm Convert POD data to ASCII text with format escapes -cpan/podlators/Makefile.PL +cpan/podlators/scripts/pod2man.PL Precursor for translator to turn pod into manpage +cpan/podlators/scripts/pod2text.PL Precursor for translator to turn pod into text cpan/podlators/t/basic.cap podlators test cpan/podlators/t/basic.clr podlators test cpan/podlators/t/basic.man podlators test @@ -1677,6 +1679,9 @@ cpan/Pod-Parser/lib/Pod/ParseUtils.pm Pod-Parser - pod utility functions cpan/Pod-Parser/lib/Pod/PlainText.pm Convert POD data to formatted ASCII text cpan/Pod-Parser/lib/Pod/Select.pm Pod-Parser - select portions of POD docs cpan/Pod-Parser/lib/Pod/Usage.pm Pod-Parser - print usage messages +cpan/Pod-Parser/scripts/pod2usage.PL Pod-Parser - print usage messages from POD docs +cpan/Pod-Parser/scripts/podchecker.PL Pod-Parser - Pod::Checker::podchecker() CLI +cpan/Pod-Parser/scripts/podselect.PL Pod-Parser - Pod::Select::podselect() CLI cpan/Pod-Parser/t/pod/contains_bad_pod.xr Pod-Parser test file cpan/Pod-Parser/t/pod/contains_pod.t Pod-Parser test cpan/Pod-Parser/t/pod/contains_pod.xr Pod-Parser test file @@ -3240,6 +3245,15 @@ ext/PerlIO-via/hints/aix.pl Hint for PerlIO::via for named architecture ext/PerlIO-via/t/via.t See if PerlIO::via works ext/PerlIO-via/via.pm PerlIO layer for layers in perl ext/PerlIO-via/via.xs PerlIO layer for layers in perl +ext/Pod-Html/Html.pm Convert POD data to HTML +ext/Pod-Html/pod2html.PL Precursor for translator to turn pod into HTML +ext/Pod-Html/t/htmlescp.pod pod2html escape test input data +ext/Pod-Html/t/htmlescp.t pod2html escape test +ext/Pod-Html/t/htmllink.pod pod2html link test input data +ext/Pod-Html/t/htmllink.t pod2html link test +ext/Pod-Html/t/htmlview.pod pod2html render test input data +ext/Pod-Html/t/htmlview.t pod2html render test +ext/Pod-Html/t/pod2html-lib.pl pod2html testing library ext/POSIX/hints/bsdos.pl Hint for POSIX for named architecture ext/POSIX/hints/dynixptx.pl Hint for POSIX for named architecture ext/POSIX/hints/freebsd.pl Hint for POSIX for named architecture @@ -3668,17 +3682,9 @@ lib/perl5db/t/symbol-table-bug Tests for the Perl debugger lib/perl5db/t/taint Tests for the Perl debugger lib/PerlIO.pm PerlIO support module lib/Pod/Functions.pm used by pod/splitpod -lib/Pod/Html.pm Convert POD data to HTML lib/Pod/t/eol.t end of line agnosticism lib/Pod/t/Functions.t See if Pod::Functions works -lib/Pod/t/htmlescp.pod pod2html escape test input data -lib/Pod/t/htmlescp.t pod2html escape test -lib/Pod/t/htmllink.pod pod2html link test input data -lib/Pod/t/htmllink.t pod2html link test -lib/Pod/t/htmlview.pod pod2html render test input data -lib/Pod/t/htmlview.t pod2html render test lib/Pod/t/InputObjects.t See if Pod::InputObjects works -lib/Pod/t/pod2html-lib.pl pod2html testing library lib/Pod/t/Select.t See if Pod::Select works lib/Pod/t/Usage.t See if Pod::Usage works lib/Pod/t/utils.t Test for Pod::ParseUtils @@ -4138,13 +4144,6 @@ pod/perlvar.pod Perl predefined variables pod/perlvms.pod Perl notes for VMS pod/perlxs.pod Perl XS application programming interface pod/perlxstut.pod Perl XS tutorial -pod/pod2html.PL Precursor for translator to turn pod into HTML -pod/pod2latex.PL Precursor for translator to turn pod into LaTeX -pod/pod2man.PL Precursor for translator to turn pod into manpage -pod/pod2text.PL Precursor for translator to turn pod into text -pod/pod2usage.PL Pod-Parser - print usage messages from POD docs -pod/podchecker.PL Pod-Parser - Pod::Checker::podchecker() CLI -pod/podselect.PL Pod-Parser - Pod::Select::podselect() CLI pod/roffitall troff the whole man page set pod/rofftoc Generate a table of contents in troff format pod/splitman Splits perlfunc into multiple man pages diff --git a/Makefile.SH b/Makefile.SH index 45ee6ec..f886564 100755 --- a/Makefile.SH +++ b/Makefile.SH @@ -440,16 +440,7 @@ sh = Makefile.SH cflags.SH config_h.SH makeaperl.SH makedepend.SH \ shextract = Makefile cflags config.h makeaperl makedepend \ makedir myconfig writemain pod/Makefile -# Files to be built with variable substitution after miniperl is -# available. Dependencies handled manually below (for now). - -pl = pod/pod2html.PL pod/pod2latex.PL pod/pod2man.PL pod/pod2text.PL \ - pod/pod2usage.PL pod/podchecker.PL pod/podselect.PL - -plextract = pod/pod2html pod/pod2latex pod/pod2man pod/pod2text \ - pod/pod2usage pod/podchecker pod/podselect - -addedbyconf = UU $(shextract) $(plextract) pstruct +addedbyconf = UU $(shextract) pstruct # Unicode data files generated by mktables unidatafiles = lib/unicore/Decomposition.pl lib/unicore/TestProp.pl \ @@ -577,7 +568,7 @@ translators: $(MINIPERL_EXE) $(CONFIGPM) $(dynamic_ext) FORCE !NO!SUBS! $spitshell >>$Makefile <<!GROK!THIS! -utilities: \$(MINIPERL_EXE) \$(CONFIGPM) \$(plextract) FORCE lib/auto/Cwd/Cwd.$dlext +utilities: \$(MINIPERL_EXE) \$(CONFIGPM) FORCE lib/auto/Cwd/Cwd.$dlext @echo " "; echo " Making utilities"; cd utils; \$(LDLIBPTH) \$(MAKE) all !GROK!THIS! @@ -1000,10 +991,6 @@ lib/re.pm: ext/re/re.pm @-rm -f $@ cp ext/re/re.pm lib/re.pm -$(plextract): $(MINIPERL_EXE) $(CONFIGPM) x2p/s2p $(dynamic_ext) - @-rm -f $@ - $(MINIPERL) [email protected] - x2p/s2p: $(MINIPERL_EXE) $(CONFIGPM) $(dynamic_ext) x2p/s2p.PL cd x2p; $(LDLIBPTH) $(MAKE) s2p @@ -1532,7 +1519,7 @@ noknack: utilities nokfilenack: utilities $(RUN_PERL) -Ilib utils/perlbug -nok -s '(UNINSTALLED)' -F perl.nok -A -.PHONY: clist hlist shlist pllist +.PHONY: clist hlist shlist clist: $(c) echo $(c) | tr ' ' $(TRNL) >.clist @@ -1543,9 +1530,6 @@ hlist: $(h) shlist: $(sh) echo $(sh) | tr ' ' $(TRNL) >.shlist -pllist: $(pl) - echo $(pl) | tr ' ' $(TRNL) >.pllist - Makefile: Makefile.SH ./config.sh $(SHELL) Makefile.SH diff --git a/Porting/Maintainers.pl b/Porting/Maintainers.pl index e8243c4..3fd6a98 100755 --- a/Porting/Maintainers.pl +++ b/Porting/Maintainers.pl @@ -1148,13 +1148,8 @@ use File::Glob qw(:case); { 'MAINTAINER' => 'tjenness', 'DISTRIBUTION' => 'TJENNESS/Pod-LaTeX-0.58.tar.gz', - 'FILES' => q[cpan/Pod-LaTeX - pod/pod2latex.PL - ], + 'FILES' => q[cpan/Pod-LaTeX], 'EXCLUDED' => [ qw( t/require.t ) ], - 'MAP' => { '' => 'cpan/Pod-LaTeX/', - 'pod2latex.PL' => 'pod/pod2latex.PL', - }, 'UPSTREAM' => undef, }, @@ -1165,12 +1160,7 @@ use File::Glob qw(:case); # version 1.37! 'DISTRIBUTION' => 'MAREKR/Pod-Parser-1.38.tar.gz', - 'FILES' => q[cpan/Pod-Parser - pod/pod{2usage,checker,select}.PL - ], - 'MAP' => { '' => 'cpan/Pod-Parser/', - 'scripts/' => 'pod/', - }, + 'FILES' => q[cpan/Pod-Parser], 'UPSTREAM' => undef, }, @@ -1212,15 +1202,7 @@ use File::Glob qw(:case); { 'MAINTAINER' => 'rra', 'DISTRIBUTION' => 'RRA/podlators-2.3.1.tar.gz', - 'FILES' => q[cpan/podlators - pod/pod2man.PL - pod/pod2text.PL - ], - 'EXCLUDED' => [ qw{ Makefile.PL } ], - 'CUSTOMIZED' => [ qw{ Makefile.PL } ], - 'MAP' => { '' => 'cpan/podlators/', - 'scripts/' => 'pod/', - }, + 'FILES' => q[cpan/podlators], 'UPSTREAM' => 'cpan', }, @@ -1687,6 +1669,7 @@ use File::Glob qw(:case); ext/ODBM_File/ ext/Opcode/ ext/POSIX/ + ext/Pod-Html/ ext/PerlIO-encoding/ ext/PerlIO-scalar/ ext/PerlIO-via/ @@ -1739,14 +1722,11 @@ use File::Glob qw(:case); lib/Net/servent.{pm,t} lib/PerlIO.pm lib/Pod/Functions.pm - lib/Pod/Html.pm lib/Pod/t/Functions.t lib/Pod/t/InputObjects.t lib/Pod/t/Select.t lib/Pod/t/Usage.t lib/Pod/t/eol.t - lib/Pod/t/html* - lib/Pod/t/pod2html-lib.pl lib/Pod/t/utils.t lib/Search/Dict.{pm,t} lib/SelectSaver.{pm,t} diff --git a/pod/pod2latex.PL b/cpan/Pod-LaTeX/pod2latex.PL similarity index 100% rename from pod/pod2latex.PL rename to cpan/Pod-LaTeX/pod2latex.PL diff --git a/pod/pod2usage.PL b/cpan/Pod-Parser/scripts/pod2usage.PL similarity index 100% rename from pod/pod2usage.PL rename to cpan/Pod-Parser/scripts/pod2usage.PL diff --git a/pod/podchecker.PL b/cpan/Pod-Parser/scripts/podchecker.PL similarity index 100% rename from pod/podchecker.PL rename to cpan/Pod-Parser/scripts/podchecker.PL diff --git a/pod/podselect.PL b/cpan/Pod-Parser/scripts/podselect.PL similarity index 100% rename from pod/podselect.PL rename to cpan/Pod-Parser/scripts/podselect.PL diff --git a/cpan/podlators/Makefile.PL b/cpan/podlators/Makefile.PL deleted file mode 100644 index fb80c34..0000000 --- a/cpan/podlators/Makefile.PL +++ /dev/null @@ -1,7 +0,0 @@ -# core-only Makefile.PL -use ExtUtils::MakeMaker; -WriteMakefile ( - NAME => 'Pod', - DISTNAME => 'podlators', - VERSION_FROM => 'VERSION', -); diff --git a/pod/pod2man.PL b/cpan/podlators/scripts/pod2man.PL similarity index 100% rename from pod/pod2man.PL rename to cpan/podlators/scripts/pod2man.PL diff --git a/pod/pod2text.PL b/cpan/podlators/scripts/pod2text.PL similarity index 100% rename from pod/pod2text.PL rename to cpan/podlators/scripts/pod2text.PL diff --git a/lib/Pod/Html.pm b/ext/Pod-Html/Html.pm similarity index 100% rename from lib/Pod/Html.pm rename to ext/Pod-Html/Html.pm diff --git a/pod/pod2html.PL b/ext/Pod-Html/pod2html.PL similarity index 100% rename from pod/pod2html.PL rename to ext/Pod-Html/pod2html.PL diff --git a/lib/Pod/t/htmlescp.pod b/ext/Pod-Html/t/htmlescp.pod similarity index 100% rename from lib/Pod/t/htmlescp.pod rename to ext/Pod-Html/t/htmlescp.pod diff --git a/lib/Pod/t/htmlescp.t b/ext/Pod-Html/t/htmlescp.t similarity index 91% rename from lib/Pod/t/htmlescp.t rename to ext/Pod-Html/t/htmlescp.t index 95942cd..3314829 100644 --- a/lib/Pod/t/htmlescp.t +++ b/ext/Pod-Html/t/htmlescp.t @@ -1,10 +1,7 @@ #!/usr/bin/perl -w # -*- perl -*- BEGIN { - chdir 't' if -d 't'; - unshift @INC, '../lib'; - unshift @INC, '../lib/Pod/t'; - require "pod2html-lib.pl"; + require "t/pod2html-lib.pl"; } use strict; diff --git a/lib/Pod/t/htmllink.pod b/ext/Pod-Html/t/htmllink.pod similarity index 100% rename from lib/Pod/t/htmllink.pod rename to ext/Pod-Html/t/htmllink.pod diff --git a/lib/Pod/t/htmllink.t b/ext/Pod-Html/t/htmllink.t similarity index 96% rename from lib/Pod/t/htmllink.t rename to ext/Pod-Html/t/htmllink.t index ab11796..592fef3 100644 --- a/lib/Pod/t/htmllink.t +++ b/ext/Pod-Html/t/htmllink.t @@ -1,10 +1,7 @@ #!/usr/bin/perl -w # -*- perl -*- BEGIN { - chdir 't' if -d 't'; - unshift @INC, '../lib'; - unshift @INC, '../lib/Pod/t'; - require "pod2html-lib.pl"; + require "t/pod2html-lib.pl"; } use strict; diff --git a/lib/Pod/t/htmlview.pod b/ext/Pod-Html/t/htmlview.pod similarity index 100% rename from lib/Pod/t/htmlview.pod rename to ext/Pod-Html/t/htmlview.pod diff --git a/lib/Pod/t/htmlview.t b/ext/Pod-Html/t/htmlview.t similarity index 97% rename from lib/Pod/t/htmlview.t rename to ext/Pod-Html/t/htmlview.t index 03fe6e5..dc15c6b 100644 --- a/lib/Pod/t/htmlview.t +++ b/ext/Pod-Html/t/htmlview.t @@ -1,10 +1,7 @@ #!/usr/bin/perl -w # -*- perl -*- BEGIN { - chdir 't' if -d 't'; - unshift @INC, '../lib'; - unshift @INC, '../lib/Pod/t'; - require "pod2html-lib.pl"; + require "t/pod2html-lib.pl"; } use strict; diff --git a/lib/Pod/t/pod2html-lib.pl b/ext/Pod-Html/t/pod2html-lib.pl similarity index 91% rename from lib/Pod/t/pod2html-lib.pl rename to ext/Pod-Html/t/pod2html-lib.pl index db33f7d..2259d45 100644 --- a/lib/Pod/t/pod2html-lib.pl +++ b/ext/Pod-Html/t/pod2html-lib.pl @@ -7,14 +7,13 @@ sub convert_n_test { my($podfile, $testname) = @_; my $cwd = Cwd::cwd(); - my $base_dir = catdir $cwd, updir(), "lib", "Pod"; - my $new_dir = catdir $base_dir, "t"; + my $new_dir = catdir $cwd, "t"; my $infile = catfile $new_dir, "$podfile.pod"; my $outfile = catfile $new_dir, "$podfile.html"; Pod::Html::pod2html( "--podpath=t", - "--podroot=$base_dir", + "--podroot=$cwd", "--htmlroot=/", "--infile=$infile", "--outfile=$outfile" diff --git a/make_ext.pl b/make_ext.pl index 11f1194..8f3e6db 100644 --- a/make_ext.pl +++ b/make_ext.pl @@ -321,42 +321,87 @@ sub build_extension { if (!-f $makefile) { if (!-f 'Makefile.PL') { print "\nCreating Makefile.PL in $ext_dir for $mname\n"; - # We need to cope well with various possible layouts - my @dirs = split /::/, $mname; - my $leaf = pop @dirs; - my $leafname = "$leaf.pm"; - my $pathname = join '/', @dirs, $leafname; - my @locations = ($leafname, $pathname, "lib/$pathname"); - my $fromname; - foreach (@locations) { - if (-f $_) { - $fromname = $_; - last; + my ($fromname, $key, $value); + if ($mname eq 'podlators') { + # We need to special case this somewhere, and this is fewer + # lines of code than a core-only Makefile.PL, and no more + # complex + $fromname = 'VERSION'; + $key = 'DISTNAME'; + $value = 'podlators'; + $mname = 'Pod'; + } else { + $key = 'ABSTRACT_FROM'; + # We need to cope well with various possible layouts + my @dirs = split /::/, $mname; + my $leaf = pop @dirs; + my $leafname = "$leaf.pm"; + my $pathname = join '/', @dirs, $leafname; + my @locations = ($leafname, $pathname, "lib/$pathname"); + foreach (@locations) { + if (-f $_) { + $fromname = $_; + last; + } } - } - unless ($fromname) { - die "For $mname tried @locations in in $ext_dir but can't find source"; + unless ($fromname) { + die "For $mname tried @locations in in $ext_dir but can't find source"; + } + ($value = $fromname) =~ s/\.pm\z/.pod/; + $value = $fromname unless -e $value; } - my $pod_name; - ($pod_name = $fromname) =~ s/\.pm\z/.pod/; - $pod_name = $fromname unless -e $pod_name; open my $fh, '>', 'Makefile.PL' or die "Can't open Makefile.PL for writing: $!"; - print $fh <<"EOM"; + printf $fh <<'EOM', $0, $mname, $fromname, $key, $value; #-*- buffer-read-only: t -*- -# This Makefile.PL was written by $0. +# This Makefile.PL was written by %s. # It will be deleted automatically by make realclean use strict; use ExtUtils::MakeMaker; +# This is what the .PL extracts to. Not the ultimate file that is installed. +# (ie Win32 runs pl2bat after this) + +# Doing this here avoids all sort of quoting issues that would come from +# attempting to write out perl source with literals to generate the arrays and +# hash. +my @temps = 'Makefile.PL'; +foreach (glob('scripts/pod*.PL')) { + # The various pod*.PL extrators change directory. Doing that with relative + # paths in @INC breaks. It seems the lesser of two evils to copy (to avoid) + # the chdir doing anything, than to attempt to convert lib paths to + # absolute, and potentially run into problems with quoting special + # characters in the path to our build dir (such as spaces) + require File::Copy; + + my $temp = $_; + $temp =~ s!scripts/!!; + File::Copy::copy($_, $temp) or die "Can't copy $temp to $_: $!"; + push @temps, $temp; +} + +my $script_ext = $^O eq 'VMS' ? '.com' : ''; +my %%pod_scripts; +foreach (glob('pod*.PL')) { + my $script = $_; + s/.PL$/$script_ext/; + $pod_scripts{$script} = $_; +} +my @exe_files = values %%pod_scripts; + WriteMakefile( - NAME => '$mname', - VERSION_FROM => '$fromname', - ABSTRACT_FROM => '$pod_name', - realclean => {FILES => 'Makefile.PL'}, + NAME => '%s', + VERSION_FROM => '%s', + %-13s => '%s', + realclean => { FILES => "@temps" }, + (%%pod_scripts ? ( + PL_FILES => \%%pod_scripts, + EXE_FILES => \...@exe_files, + clean => { FILES => "@exe_files" }, + ) : ()), ); # ex: set ro: diff --git a/pod/Makefile.SH b/pod/Makefile.SH index 1d53de7..d970c86 100644 --- a/pod/Makefile.SH +++ b/pod/Makefile.SH @@ -54,28 +54,26 @@ LDLIBPTH = $ldlibpth ## In the following dollars and backticks do not need the extra backslash. $spitshell >>Makefile <<'!NO!SUBS!' -CONVERTERS = pod2html pod2latex pod2man pod2text \ - pod2usage podchecker podselect - HTMLROOT = / # Change this to fix cross-references in HTML -POD2HTML = pod2html \ - --htmlroot=$(HTMLROOT) \ +POD2HTML_ARGS = --htmlroot=$(HTMLROOT) \ --podroot=.. --podpath=pod:lib:ext:vms \ --libpods=perlfunc:perlguts:perlvar:perlrun:perlop +POD2HTML = ../ext/Pod-Html/pod2html +POD2MAN = ../cpan/podlators/pod2man +POD2LATEX = ../cpan/Pod-LaTeX/pod2latex +PODCHECKER = ../cpan/Pod-Parser/podchecker PERL = ../miniperl PERLILIB = $(PERL) -I../lib REALPERL = ../perl -all: $(CONVERTERS) man - -converters: $(CONVERTERS) +all: man -man: pod2man $(MAN) +man: $(POD2MAN) $(MAN) -html: pod2html $(HTML) +html: $(POD2HTML) $(HTML) -tex: pod2latex $(TEX) +tex: $(POD2LATEX) $(TEX) toc perltoc.pod: buildtoc $(PERLILIB) buildtoc --build-toc @@ -84,27 +82,27 @@ toc perltoc.pod: buildtoc .SUFFIXES: .man -.pm.man: pod2man - $(REALPERL) -I../lib pod2man $*.pm >$*.man +.pm.man: $(POD2MAN) + $(REALPERL) -I../lib $(POD2MAN) $*.pm >$*.man -.pod.man: pod2man - $(REALPERL) -I../lib pod2man $*.pod >$*.man +.pod.man: $(POD2MAN) + $(REALPERL) -I../lib $(POD2MAN) $*.pod >$*.man .SUFFIXES: .html -.pm.html: pod2html - $(PERL) -I../lib $(POD2HTML) --infile=$*.pm --outfile=$*.html +.pm.html: $(POD2HTML) + $(PERL) -I../lib $(POD2HTML) $(POD2HTML_ARGS) --infile=$*.pm --outfile=$*.html -.pod.html: pod2html - $(PERL) -I../lib $(POD2HTML) --infile=$*.pod --outfile=$*.html +.pod.html: $(POD2HTML) + $(PERL) -I../lib $(POD2HTML) $(POD2HTML_ARGS) --infile=$*.pod --outfile=$*.html .SUFFIXES: .tex -.pm.tex: pod2latex - $(PERL) -I../lib pod2latex $*.pm +.pm.tex: $(POD2LATEX) + $(PERL) -I../lib $(POD2LATEX) $*.pm -.pod.tex: pod2latex - $(PERL) -I../lib pod2latex $*.pod +.pod.tex: $(POD2LATEX) + $(PERL) -I../lib $(POD2LATEX) $*.pod clean: rm -f $(MAN) @@ -114,37 +112,13 @@ clean: rm -f *.aux *.log *.exe realclean: clean - rm -f $(CONVERTERS) distclean: realclean veryclean: distclean -rm -f *~ *.orig -check: podchecker +check: $(PODCHECKER) @echo "checking..."; \ - $(PERL) -I../lib podchecker $(POD) - -# Dependencies. -pod2latex: pod2latex.PL ../lib/Config.pm - $(LDLIBPTH) $(PERL) -I../lib pod2latex.PL - -pod2html: pod2html.PL ../lib/Config.pm - $(LDLIBPTH) $(PERL) -I ../lib pod2html.PL - -pod2man: pod2man.PL ../lib/Config.pm - $(LDLIBPTH) $(PERL) -I ../lib pod2man.PL - -pod2text: pod2text.PL ../lib/Config.pm - $(LDLIBPTH) $(PERL) -I ../lib pod2text.PL - -pod2usage: pod2usage.PL ../lib/Config.pm - $(PERL) -I ../lib pod2usage.PL - -podchecker: podchecker.PL ../lib/Config.pm - $(PERL) -I ../lib podchecker.PL - -podselect: podselect.PL ../lib/Config.pm - $(PERL) -I ../lib podselect.PL - + $(PERL) -I../lib $(PODCHECKER) $(POD) !NO!SUBS! diff --git a/pod/perltodo.pod b/pod/perltodo.pod index 8ac0165..df8a4b9 100644 --- a/pod/perltodo.pod +++ b/pod/perltodo.pod @@ -146,14 +146,6 @@ do so. Test it with older perl releases, and fix the problems you find. To make a minimal perl distribution, it's useful to look at F<t/lib/commonsense.t>. -=head2 Move dual-life pod/*.PL into ext - -Nearly all the dual-life modules have been moved to F<ext>. However, we -still need to move F<pod/*.PL> into their respective directories -in F<ext/>. They're referenced by (at least) C<plextract> in F<Makefile.SH> -and C<utils> in F<win32/Makefile> and F<win32/makefile.ml>, and listed -explicitly in F<win32/pod.mak>, F<vms/descrip_mms.template> and F<utils.lst> - =head2 POSIX memory footprint Ilya observed that use POSIX; eats memory like there's no tomorrow, and at diff --git a/t/porting/dual-life.t b/t/porting/dual-life.t index 9fb7802..5d4c45e 100644 --- a/t/porting/dual-life.t +++ b/t/porting/dual-life.t @@ -16,13 +16,23 @@ use File::Spec::Functions; # Exceptions are found in dual-life bin dirs but aren't # installed by default -my @exceptions = qw( +my @not_installed = qw( ../cpan/Encode/bin/ucm2table ../cpan/Encode/bin/ucmlint ../cpan/Encode/bin/ucmsort ../cpan/Encode/bin/unidump ); +my %dist_dir_exe; + +foreach (qw (podchecker podselect pod2usage)) { + $dist_dir_exe{lc "$_.PL"} = "../cpan/Pod-Parser/$_"; +}; +foreach (qw (pod2man pod2text)) { + $dist_dir_exe{lc "$_.PL"} = "../cpan/podlators/$_"; +}; +$dist_dir_exe{'pod2html.pl'} = '../ext/Pod-Html'; + my @programs; find( @@ -36,11 +46,16 @@ find( qw( ../cpan ../dist ../ext ), ); +my $ext = $^O eq 'VMS' ? '.com' : ''; + for my $f ( @programs ) { $f =~ s/\.\z// if $^O eq 'VMS'; - next if qr/(?i:$f)/ ~~ @exceptions; + next if qr/(?i:$f)/ ~~ @not_installed; $f = basename($f); - $f .= '.com' if $^O eq 'VMS'; - ok( -f catfile('..', 'utils', $f), "$f" ); + if(qr/\A(?i:$f)\z/ ~~ %dist_dir_exe) { + ok( -f "$dist_dir_exe{lc $f}$ext", "$f$ext"); + } else { + ok( -f catfile('..', 'utils', "$f$ext"), "$f$ext" ); + } } diff --git a/utils.lst b/utils.lst index b92c513..308c0c7 100644 --- a/utils.lst +++ b/utils.lst @@ -1,10 +1,10 @@ -pod/pod2html -pod/pod2latex -pod/pod2man -pod/pod2text -pod/pod2usage -pod/podchecker -pod/podselect +ext/Pod-Html/blib/script/pod2html +cpan/Pod-LaTeX/blib/script/pod2latex +cpan/podlators/blib/script/pod2man +cpan/podlators/blib/script/pod2text +cpan/Pod-Parser/blib/script/pod2usage +cpan/Pod-Parser/blib/script/podchecker +cpan/Pod-Parser/blib/script/podselect utils/c2ph # link = utils/pstruct utils/cpan utils/config_data diff --git a/vms/descrip_mms.template b/vms/descrip_mms.template index 43a9fe2..98b592d 100644 --- a/vms/descrip_mms.template +++ b/vms/descrip_mms.template @@ -388,14 +388,12 @@ git_version.h : $(MINIPERL_EXE) make_patchnum.pl base : miniperl git_version.h nonxsext perl @ $(NOOP) -extras : dynext libmods utils podxform extra.pods +extras : dynext libmods utils extra.pods @ $(NOOP) libmods : $(LIBPREREQ) @ $(NOOP) utils : $(utils1) $(utils2) $(utils3) $(utils4) $(utils5) @ $(NOOP) -podxform : [.lib.pods]pod2text.com [.lib.pods]pod2html.com [.lib.pods]pod2latex.com [.lib.pods]pod2man.com [.lib.pods]podchecker.com [.lib.pods]pod2usage.com [.lib.pods]podselect.com - @ $(NOOP) x2p : [.x2p]$(DBG)a2p$(E) [.x2p]s2p.com [.x2p]find2perl.com @ $(NOOP) extra.pods : miniperl @@ -694,41 +692,6 @@ nonxsext : $(LIBPREREQ) preplibrary $(MINIPERL_EXE) $(CC) $(X2PCFLAGS) /Include=[.x2p] $(MMS$SOURCE) .endif -[.lib.pods]pod2html.com : [.pod]pod2html.PL $(ARCHDIR)Config.pm - @ If F$Search("[.lib]pods.dir").eqs."" Then Create/Directory [.lib.pods] - $(MINIPERL) -"I[-.lib]" $(MMS$SOURCE) - Copy/NoConfirm/Log [.pod]pod2html.com [.lib.pods] - -[.lib.pods]pod2latex.com : [.pod]pod2latex.PL $(ARCHDIR)Config.pm - @ If F$Search("[.lib]pods.dir").eqs."" Then Create/Directory [.lib.pods] - $(MINIPERL) -"I[-.lib]" $(MMS$SOURCE) - Copy/NoConfirm/Log [.pod]pod2latex.com [.lib.pods] - -[.lib.pods]pod2man.com : [.pod]pod2man.PL $(ARCHDIR)Config.pm - @ If F$Search("[.lib]pods.dir").eqs."" Then Create/Directory [.lib.pods] - $(MINIPERL) -"I[-.lib]" $(MMS$SOURCE) - Copy/NoConfirm/Log [.pod]pod2man.com [.lib.pods] - -[.lib.pods]pod2text.com : [.pod]pod2text.PL $(ARCHDIR)Config.pm - @ If F$Search("[.lib]pods.dir").eqs."" Then Create/Directory [.lib.pods] - $(MINIPERL) -"I[-.lib]" $(MMS$SOURCE) - Copy/NoConfirm/Log [.pod]pod2text.com [.lib.pods] - -[.lib.pods]podchecker.com : [.pod]podchecker.PL $(ARCHDIR)Config.pm - @ If F$Search("[.lib]pods.dir").eqs."" Then Create/Directory [.lib.pods] - $(MINIPERL) -"I[-.lib]" $(MMS$SOURCE) - Copy/NoConfirm/Log [.pod]podchecker.com [.lib.pods] - -[.lib.pods]pod2usage.com : [.pod]pod2usage.PL $(ARCHDIR)Config.pm - @ If F$Search("[.lib]pods.dir").eqs."" Then Create/Directory [.lib.pods] - $(MINIPERL) -"I[-.lib]" $(MMS$SOURCE) - Copy/NoConfirm/Log [.pod]pod2usage.com [.lib.pods] - -[.lib.pods]podselect.com : [.pod]podselect.PL $(ARCHDIR)Config.pm - @ If F$Search("[.lib]pods.dir").eqs."" Then Create/Directory [.lib.pods] - $(MINIPERL) -"I[-.lib]" $(MMS$SOURCE) - Copy/NoConfirm/Log [.pod]podselect.com [.lib.pods] - preplibrary : $(MINIPERL_EXE) $(LIBPREREQ) makeppport : $(MINIPERL_EXE) $(ARCHDIR)Config.pm nonxsext diff --git a/win32/Makefile b/win32/Makefile index ab32dbc..00bf322 100644 --- a/win32/Makefile +++ b/win32/Makefile @@ -612,13 +612,6 @@ UTILS = \ ..\utils\cpan2dist \ ..\utils\shasum \ ..\utils\instmodsh \ - ..\pod\pod2html \ - ..\pod\pod2latex \ - ..\pod\pod2man \ - ..\pod\pod2text \ - ..\pod\pod2usage \ - ..\pod\podchecker \ - ..\pod\podselect \ ..\x2p\find2perl \ ..\x2p\psed \ ..\x2p\s2p \ @@ -1101,7 +1094,6 @@ utils: $(PERLEXE) $(X2P) copy ..\README.vos ..\pod\perlvos.pod copy ..\README.win32 ..\pod\perlwin32.pod copy ..\pod\perldelta.pod ..\pod\perl5136delta.pod - $(MAKE) -f ..\win32\pod.mak converters cd ..\win32 $(PERLEXE) $(PL2BAT) $(UTILS) $(PERLEXE) $(ICWD) ..\autodoc.pl .. @@ -1202,9 +1194,7 @@ distclean: realclean perlos390.pod perlos400.pod perlplan9.pod perlqnx.pod \ perlriscos.pod perlsolaris.pod perlsymbian.pod perltoc.pod \ perltru64.pod perltw.pod perluniprops.pod perluts.pod \ - perlvmesa.pod perlvos.pod perlwin32.pod \ - pod2html pod2latex pod2man pod2text pod2usage \ - podchecker podselect + perlvmesa.pod perlvos.pod perlwin32.pod -cd ..\utils && del /f h2ph splain perlbug pl2pm c2ph pstruct h2xs \ perldoc perlivp dprofpp libnetcfg enc2xs piconv cpan *.bat \ xsubpp instmodsh prove ptar ptardiff cpanp-run-perl cpanp cpan2dist shasum corelist config_data diff --git a/win32/Makefile.ce b/win32/Makefile.ce index 8283d2e..1a5df3d 100644 --- a/win32/Makefile.ce +++ b/win32/Makefile.ce @@ -667,11 +667,6 @@ ERRNO_PM = $(LIBDIR)\Errno.pm EXTENSION_PM = \ $(ERRNO_PM) -POD2HTML = $(PODDIR)\pod2html -POD2MAN = $(PODDIR)\pod2man -POD2LATEX = $(PODDIR)\pod2latex -POD2TEXT = $(PODDIR)\pod2text - CFG_VARS = \ "INST_DRV=$(INST_DRV)" \ "INST_TOP=$(INST_TOP)" \ diff --git a/win32/makefile.mk b/win32/makefile.mk index a541260..72d1d1a 100644 --- a/win32/makefile.mk +++ b/win32/makefile.mk @@ -776,13 +776,6 @@ UTILS = \ ..\utils\cpan2dist \ ..\utils\shasum \ ..\utils\instmodsh \ - ..\pod\pod2html \ - ..\pod\pod2latex \ - ..\pod\pod2man \ - ..\pod\pod2text \ - ..\pod\pod2usage \ - ..\pod\podchecker \ - ..\pod\podselect \ ..\x2p\find2perl \ ..\x2p\psed \ ..\x2p\s2p \ @@ -1466,7 +1459,6 @@ utils: $(PERLEXE) $(X2P) copy ..\README.vos ..\pod\perlvos.pod copy ..\README.win32 ..\pod\perlwin32.pod copy ..\pod\perldelta.pod ..\pod\perl5136delta.pod - cd ..\pod && $(MAKE) -f ..\win32\pod.mak converters $(PERLEXE) $(PL2BAT) $(UTILS) $(PERLEXE) $(ICWD) ..\autodoc.pl .. $(PERLEXE) $(ICWD) ..\pod\perlmodlib.pl -q @@ -1566,9 +1558,7 @@ distclean: realclean perlos390.pod perlos400.pod perlplan9.pod perlqnx.pod \ perlriscos.pod perlsolaris.pod perlsymbian.pod perltoc.pod \ perltru64.pod perltw.pod perluniprops.pod perluts.pod \ - perlvmesa.pod perlvos.pod perlwin32.pod \ - pod2html pod2latex pod2man pod2text pod2usage \ - podchecker podselect + perlvmesa.pod perlvos.pod perlwin32.pod -cd ..\utils && del /f h2ph splain perlbug pl2pm c2ph pstruct h2xs \ perldoc perlivp dprofpp libnetcfg enc2xs piconv cpan *.bat \ xsubpp instmodsh prove ptar ptardiff cpanp-run-perl cpanp cpan2dist shasum corelist config_data diff --git a/win32/pod.mak b/win32/pod.mak index 716fe1d..9168385 100644 --- a/win32/pod.mak +++ b/win32/pod.mak @@ -1,15 +1,14 @@ -CONVERTERS = pod2html pod2latex pod2man pod2text \ - pod2usage podchecker podselect - HTMLROOT = / # Change this to fix cross-references in HTML -POD2HTML = pod2html \ - --htmlroot=$(HTMLROOT) \ +POD2HTML_ARGS = --htmlroot=$(HTMLROOT) \ --podroot=.. --podpath=pod:lib:ext:vms \ --libpods=perlfunc:perlguts:perlvar:perlrun:perlop +POD2HTML = ../ext/Pod-Html/pod2html +POD2MAN = ../cpan/podlators/pod2man +POD2TEXT = ../cpan/podlators/pod2text +POD2LATEX = ../cpan/Pod-LaTeX/pod2latex +PODCHECKER = ../cpan/Pod-Parser/podchecker -all: $(CONVERTERS) html - -converters: $(CONVERTERS) +all: html PERL = ..\miniperl.exe REALPERL = ..\perl.exe @@ -584,11 +583,11 @@ TEX = \ perlxs.tex \ perlxstut.tex -man: pod2man $(MAN) +man: $(POD2MAN) $(MAN) -html: pod2html $(HTML) +html: $(POD2HTML) $(HTML) -tex: pod2latex $(TEX) +tex: $(POD2LATEX) $(TEX) toc: $(PERL) -I../lib buildtoc >perltoc.pod @@ -598,26 +597,26 @@ toc: .SUFFIXES: .man .pm.man: - $(PERL) -I../lib pod2man $*.pm >$*.man + $(PERL) -I../lib $(POD2MAN) $*.pm >$*.man .pod.man: - $(PERL) -I../lib pod2man $*.pod >$*.man + $(PERL) -I../lib $(POD2MAN) $*.pod >$*.man .SUFFIXES: .html .pm.html: - $(PERL) -I../lib $(POD2HTML) --infile=$*.pm --outfile=$*.html + $(PERL) -I../lib $(POD2HTML) $(POD2HTML_ARGS) --infile=$*.pm --outfile=$*.html .pod.html: - $(PERL) -I../lib $(POD2HTML) --infile=$*.pod --outfile=$*.html + $(PERL) -I../lib $(POD2HTML) $(POD2HTML_ARGS) --infile=$*.pod --outfile=$*.html .SUFFIXES: .tex .pm.tex: - $(PERL) -I../lib pod2latex $*.pm + $(PERL) -I../lib $(POD2LATEX) $*.pm .pod.tex: - $(PERL) -I../lib pod2latex $*.pod + $(PERL) -I../lib $(POD2LATEX) $*.pod clean: rm -f $(MAN) @@ -627,32 +626,9 @@ clean: rm -f *.aux *.log *.exe realclean: clean - rm -f $(CONVERTERS) distclean: realclean -check: podchecker +check: $(PODCHECKER) @echo "checking..."; \ - $(PERL) -I../lib podchecker $(POD) - -# Dependencies. -pod2latex: pod2latex.PL ../lib/Config.pm - $(PERL) -I../lib $(ICWD) pod2latex.PL - -pod2html: pod2html.PL ../lib/Config.pm - $(PERL) -I ../lib $(ICWD) pod2html.PL - -pod2man: pod2man.PL ../lib/Config.pm - $(PERL) -I ../lib $(ICWD) pod2man.PL - -pod2text: pod2text.PL ../lib/Config.pm - $(PERL) -I ../lib $(ICWD) pod2text.PL - -pod2usage: pod2usage.PL ../lib/Config.pm - $(PERL) -I ../lib $(ICWD) pod2usage.PL - -podchecker: podchecker.PL ../lib/Config.pm - $(PERL) -I ../lib $(ICWD) podchecker.PL - -podselect: podselect.PL ../lib/Config.pm - $(PERL) -I ../lib $(ICWD) podselect.PL + $(PERL) -I../lib $(PODCHECKER) $(POD) -- Perl5 Master Repository
