 ffdf98b204
			
		
	
	ffdf98b204
	
	
	
		
			
			Having the build time written on stderr make it appear with V=w
although it is not an error or warning. Just write the time on stdout
to have it part of the build log like all the rest, but not clutter
the output when only warnings and errors should be shown.
Signed-off-by: Alban Bedel <albeu@free.fr>
(cherry picked from commit 340df72e07)
		
	
		
			
				
	
	
		
			66 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Perl
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			66 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Perl
		
	
	
		
			Executable File
		
	
	
	
	
| #!/usr/bin/env perl
 | |
| 
 | |
| use strict;
 | |
| use warnings;
 | |
| use Config;
 | |
| 
 | |
| if (@ARGV < 2) {
 | |
| 	die "Usage: $0 <prefix> <command...>\n";
 | |
| }
 | |
| 
 | |
| sub gettime {
 | |
| 	my ($sec, $usec);
 | |
| 
 | |
| 	eval {
 | |
| 		require Time::HiRes;
 | |
| 		($sec, $usec) = Time::HiRes::gettimeofday();
 | |
| 	};
 | |
| 
 | |
| 	unless (defined($sec) && defined($usec)) {
 | |
| 		my $tv_t = ($Config{'longsize'} == 8) ? 'qq' : 'll';
 | |
| 		my $tv = pack $tv_t, 0, 0;
 | |
| 
 | |
| 		eval {
 | |
| 			require 'syscall.ph';
 | |
| 			syscall(SYS_gettimeofday(), $tv, 0);
 | |
| 		};
 | |
| 
 | |
| 		($sec, $usec) = unpack $tv_t, $tv;
 | |
| 	}
 | |
| 
 | |
| 	return ($sec, $usec);
 | |
| }
 | |
| 
 | |
| my ($prefix, @cmd) = @ARGV;
 | |
| my ($sec, $usec) = gettime();
 | |
| my $pid = fork();
 | |
| 
 | |
| if (!defined($pid)) {
 | |
| 	die "$0: Failure to fork(): $!\n";
 | |
| }
 | |
| elsif ($pid == 0) {
 | |
| 	exec(@cmd);
 | |
| 	die "$0: Failure to exec(): $!\n";
 | |
| }
 | |
| else {
 | |
| 	$SIG{'INT'} = 'IGNORE';
 | |
| 	$SIG{'QUIT'} = 'IGNORE';
 | |
| 
 | |
| 	if (waitpid($pid, 0) == -1) {
 | |
| 		die "$0: Failure to waitpid(): $!\n";
 | |
| 	}
 | |
| 
 | |
| 	my $exitcode = $? >> 8;
 | |
| 	my ($sec2, $usec2) = gettime();
 | |
| 	my (undef, undef, $cuser, $csystem) = times();
 | |
| 
 | |
| 	printf STDOUT "%s#%.2f#%.2f#%.2f\n",
 | |
| 		$prefix, $cuser, $csystem,
 | |
| 		($sec2 - $sec) + ($usec2 - $usec) / 1000000;
 | |
| 
 | |
| 	$SIG{'INT'} = 'DEFAULT';
 | |
| 	$SIG{'QUIT'} = 'DEFAULT';
 | |
| 
 | |
| 	exit $exitcode;
 | |
| }
 |