In perl.git, the branch blead has been updated <http://perl5.git.perl.org/perl.git/commitdiff/056c263b7eda0e9f899103c5f2bbef70ff44e9b8?hp=88e241815c36fd7e2e0db73c93ff2ec458cddd7c>
- Log ----------------------------------------------------------------- commit 056c263b7eda0e9f899103c5f2bbef70ff44e9b8 Author: Daniel Dragan <bul...@hotmail.com> Date: Sun Nov 9 22:57:08 2014 -0500 dont run extension building make twice on a fresh src tree On a fresh source tree, "[*]make config" then "[*]make all" are executed. The "make config" is redundant in this case, and launching make process twice, plus make's I/O calls is inefficient. On a dirty source tree, this would break since the makefile will regenerate. If "make all" fails the first time (presumably because because the makefile was regened, other failures just run/print twice), run the "make all" more time. Dirty trees still run make twice, clean trees drop from running make twice to just once. ----------------------------------------------------------------------- Summary of changes: make_ext.pl | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/make_ext.pl b/make_ext.pl index dbef0d5..e900874 100644 --- a/make_ext.pl +++ b/make_ext.pl @@ -554,16 +554,13 @@ EOS ); } - if (!$target or $target !~ /clean$/) { - # Give makefile an opportunity to rewrite itself. - # reassure users that life goes on... - my @args = ('config', @$pass_through); - system(@make, @args) and print "@make @args failed, continuing anyway...\n"; - } my @targ = ($target, @$pass_through); print "Making $target in $ext_dir\n@make @targ\n" if $verbose; local $ENV{PERL_INSTALL_QUIET} = 1; my $code = system(@make, @targ); + if($code >> 8 != 0){ # probably cleaned itself, try again once more time + $code = system(@make, @targ); + } die "Unsuccessful make($ext_dir): code=$code" if $code != 0; chdir $return_dir || die "Cannot cd to $return_dir: $!"; -- Perl5 Master Repository