In perl.git, the branch smoke-me/Makefile-norecurse has been created
<http://perl5.git.perl.org/perl.git/commitdiff/a9dd7e561eefb9082f4cbbb078ff66adcbdadf40?hp=0000000000000000000000000000000000000000>
at a9dd7e561eefb9082f4cbbb078ff66adcbdadf40 (commit)
- Log -----------------------------------------------------------------
commit a9dd7e561eefb9082f4cbbb078ff66adcbdadf40
Author: Nicholas Clark <[email protected]>
Date: Wed Apr 25 22:00:09 2012 +0200
Don't call CPAN to install any "extra" modules for the install-notify
target.
Previously the Makefile's install-notify target built extra.install just
like
the other 5 install targets. However, the other 5 actually install perl,
whereas install-notify (a.k.a. no-install) runs installperl and installman
with the --notify option (formerly -n), to cause them to print what they
would
do but take no action. Hence if -Dextras was used, make no-install would
actually install the extra modules, but nothing else. This is inconsistent.
M Makefile.SH
commit 78557122d522a9ac26fb599c263e6cc2e5dbc136
Author: Nicholas Clark <[email protected]>
Date: Wed Apr 25 20:04:08 2012 +0200
Inline the Makefile rule for extra.install into all 6 targets which use it.
This eliminates 6 recursive calls from Makefile to itself. As five of these
are generated from a loop in Makefile.SH, this isn't massive code
duplication. It's not obvious how to merge the sixth without increasing the
code complexity.
Additionally, if the user has specified extra modules to download and build
from CPAN using Configure's -Dextra, this avoids building perl, the non-XS
modules and the CPAN modules twice on make install.
M Makefile.SH
commit 55f27663f38ceaed24d75b22790f9dea8a8308c8
Author: Nicholas Clark <[email protected]>
Date: Wed Apr 25 18:28:39 2012 +0200
Refactor Makefile.SH to generate the install-* targets in a loop.
This slightly reduces the line count, merges five-fold duplication into one,
and works toward removing 5 recursive calls from Makefile to itself.
M Makefile.SH
commit b1358e9794a7e0d8b8f6fffb67bf42b40dcc8c5c
Author: Nicholas Clark <[email protected]>
Date: Wed Apr 25 18:05:24 2012 +0200
In Makefile.SH, use the long names for options passed to install{perl,man}
This makes it clearer what is going on, and enables a simplifying
refactoring.
M Makefile.SH
commit 9404c14446d1311218a0090d951b42aef02a3354
Author: Nicholas Clark <[email protected]>
Date: Tue Apr 24 18:41:47 2012 +0200
Refactor the Makefile so that the install target depends on install-all.
Also, add targets install_notify and install-notify, as synonyms for
no_install and no-install. Previously install, install-all and install_all
were all generated by the same rule.
These changes make future refactoring easier.
M Makefile.SH
commit e98046e2b32cff13753952cf8fa7c5832ad86683
Author: Nicholas Clark <[email protected]>
Date: Wed Apr 25 15:48:33 2012 +0200
Add a no-op option --strip to installman.
This intentionally does nothing.
--strip for installperl instructs it to strip the installed binaries. Hence
by permitting installman to accept --strip without error Makefile.SH can be
simplified, as it's possible to pass identical flags to both install
scripts.
M installman
commit 9ee62835b8e851eed707828eda5708531a62a1d8
Author: Nicholas Clark <[email protected]>
Date: Wed Apr 25 15:21:54 2012 +0200
Refactor installman's option handling to use Getopt::Long's "multiple
names".
Previously installman specified synonyms for options as distinct
options, and then used explicit code to merge them.
Also add -h and -? as synonyms for --help.
M installman
commit 4a75d2b664d458878df44fbecc6e5c5295b986bc
Author: Nicholas Clark <[email protected]>
Date: Wed Apr 25 14:38:00 2012 +0200
Convert installperl to use Getopt::Long.
This requires some special handling for the +v option. Fortunately, we can
cheat, because we know that no other non-options are acceptable. This does
change the behaviour slightly from before:
* single letter options now also have long names
* invalid options are now rejected
* command line arguments that are not options are now rejected
However, the behaviour for all valid documented invocations is unchanged.
Also, add a --help option to display the usage message.
M installperl
commit 23a50cf63dac6efc9478e8ba661845724b4fb4c9
Author: Nicholas Clark <[email protected]>
Date: Wed Apr 25 16:57:22 2012 +0200
In installperl rename $opt{dostrip} to $opt{strip}.
This will provide a more meaningful long option name once installperl is
converted to Getopt::Long.
M installperl
commit b01d07d7fc786da516c84b80eb8fd2ed1b4f5f55
Author: Nicholas Clark <[email protected]>
Date: Wed Apr 25 13:17:41 2012 +0200
In installperl, record the state of options in %opts instead of lexicals.
Replace all lexicals used to track the state of command line options with
entries in the hash %opts. Make an exception for $versiononly, as it is
controlled by 2 different command line options, and accessed in
significantly
more places than the state of any other command line option.
M installperl
commit cf4e5e3db9a5fd35b85b0f4c945d3539beacc65b
Author: Nicholas Clark <[email protected]>
Date: Wed Apr 25 12:47:53 2012 +0200
In installperl, invert the sense of the variable used for the -o option.
Previously it was $otherperls, and had to have its default of 1 explicitly
set. Change it to $skip_otherperls, and the default default of undef is
perfect.
M installperl
commit 5b755da6262c09f2727d34a15f4bb1f52db7875e
Author: Nicholas Clark <[email protected]>
Date: Wed Apr 25 12:06:26 2012 +0200
Remove dead code from installperl, related to a 5.000->5.001 change.
5.000 installed autosplit files into archlib. 5.001 and later install into
privlib. archlib is earlier in @INC. It wasn't until 5.005 that perl put the
version number into the paths used for privlib and archlib, hence without
special treatment, the files installed by 5.001 would not be found, because
those from 5.000 would be earlier in @INC.
See commit a841533b5cf319b3 (Oct 2009) which removes similar special casing
code dealing with perldiag.pod confusion between 5.003 and 5.004
All this code became redundant when 5.005 added the version number to
library paths. (strictly, commit bfb7748a896459cc in Jul 1998)
M installperl
-----------------------------------------------------------------------
--
Perl5 Master Repository