From: Nicholas Clark Date: Mon, 14 Apr 2008 14:38:34 +0000 (+0000) Subject: Move all the logic to print the "Changed" message into regen_lib.pl, X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=commitdiff_plain;h=523b30316ccbf7957aa8da41729ba68b3a5f47b5;p=p5sagit%2Fp5-mst-13.2.git Move all the logic to print the "Changed" message into regen_lib.pl, which removes the need for any checksums. Arrange for regen.pl to run autodoc.pl last, as it wants to open files generated by reentr.pl. p4raw-id: //depot/perl@33675 --- diff --git a/regen.pl b/regen.pl index 1a479cb..6670e17 100644 --- a/regen.pl +++ b/regen.pl @@ -15,6 +15,9 @@ my $perl = $^X; # changes. Um, what ? # safer_unlink ("warnings.h", "lib/warnings.pm"); +# We no longer need the values on this mapping, as the "changed" message is +# now generated by regen_lib.pl, so should we just drop them? + my %gen = ( 'autodoc.pl' => [qw[pod/perlapi.pod pod/perlintern.pod]], 'embed.pl' => [qw[proto.h embed.h embedvar.h global.sym @@ -43,20 +46,9 @@ sub do_cksum { return %cksum; } -foreach my $pl (keys %gen) { +# this puts autodoc.pl last, which can be useful as it reads reentr.c +foreach my $pl (reverse sort keys %gen) { my @command = ($^X, $pl, @ARGV); print "@command\n"; - my %cksum0; - %cksum0 = do_cksum($pl) unless $pl eq 'warnings.pl'; # the files were removed system @command; - next if $pl eq 'warnings.pl'; # the files were removed - my %cksum1 = do_cksum($pl); - my @chg; - for my $f (@{ $gen{$pl} }) { - push(@chg, $f) - if !defined($cksum0{$f}) || - !defined($cksum1{$f}) || - $cksum0{$f} ne $cksum1{$f}; - } - print "Changed: @chg\n" if @chg; } diff --git a/regen_lib.pl b/regen_lib.pl index 89ac3f9..6735bb9 100644 --- a/regen_lib.pl +++ b/regen_lib.pl @@ -1,6 +1,7 @@ #!/usr/bin/perl -w use strict; -use vars qw($Is_W32 $Is_OS2 $Is_Cygwin $Is_NetWare $Needs_Write $Verbose); +use vars qw($Is_W32 $Is_OS2 $Is_Cygwin $Is_NetWare $Needs_Write $Verbose + @Changed); use Config; # Remember, this is running using an existing perl use File::Compare; use Symbol; @@ -17,7 +18,13 @@ if ($Is_NetWare) { $Needs_Write = $Is_OS2 || $Is_W32 || $Is_Cygwin || $Is_NetWare; -@ARGV = grep { not($_ eq '-v' and $Verbose = 1) } @ARGV; +$Verbose = 0; +@ARGV = grep { not($_ eq '-q' and $Verbose = -1) } + grep { not($_ eq '-v' and $Verbose = 1) } @ARGV; + +END { + print STDOUT "Changed: @Changed\n" if @Changed; +} sub safer_unlink { my @names = @_; @@ -46,11 +53,12 @@ sub rename_if_different { my ($from, $to) = @_; if (compare($from, $to) == 0) { - warn "no changes between '$from' & '$to'\n" if $Verbose; + warn "no changes between '$from' & '$to'\n" if $Verbose > 0; safer_unlink($from); return; } - warn "changed '$from' to '$to'\n"; + warn "changed '$from' to '$to'\n" if $Verbose > 0; + push @Changed, $to unless $Verbose < 0; safer_rename_silent($from, $to) or die "renaming $from to $to: $!"; }