| #!/usr/bin/perl -w |
| |
| use strict; |
| no strict 'refs'; |
| |
| |
| my %vars = (); |
| |
| foreach (@ARGV) { |
| my ($n, $v) = split('=', $_); |
| $vars{$n} = $v; |
| } |
| |
| my @checks = qw( |
| PERL CC AUTOMAKE AUTOCONF LIBTOOL |
| ); |
| |
| foreach my $check (@checks) { |
| my @check = &{"check_$check"}; |
| $check = sprintf("% 10s %s %s", $check, shift(@check), shift(@check)); |
| $check .= sprintf(" (%s)", join('; ', @check)) if @check; |
| $check .= "\n"; |
| print $check; |
| } |
| |
| |
| sub check_PERL { |
| my @meta; |
| |
| my $pl = $vars{'PERL_BIN'} || ''; |
| $pl = '' if $pl eq 'this'; |
| $pl ||= $vars{'PERL'} || "perl"; |
| $pl = (split(/\s+/, $pl))[0]; |
| |
| my @plver = split(/\s+/, `$pl --version 2>&1` || ''); |
| my $plver; |
| if($plver[4] ne 'version') { |
| $plver = $plver[4]; |
| $plver =~ s/^v//; |
| } else { |
| $plver = sprintf("%i.%i.%i", split(/[._]/, $plver[5]), 0); |
| } |
| |
| push(@meta, 'override') if $vars{'PERL'} and $pl ne $vars{'PERL'}; |
| return($pl, $plver, @meta); |
| } |
| |
| sub check_CC { |
| my @meta; |
| my $cc = $vars{'CC'} || "cc"; |
| |
| my $ccver = (`$cc --version 2>&1`)[0] || 0; |
| chomp($ccver); |
| my $gnucc = grep("gnu", `$cc --help 2>&1` || ''); |
| |
| push(@meta, 'gnu') if $gnucc; |
| return($cc, $ccver, @meta); |
| } |
| |
| sub check_LIBC { |
| my @meta; |
| my $lc = grep(/libc/, (`ldd /bin/sh 2>&1`)); |
| $lc = (split(/\s+/, $lc))[3]; |
| |
| return($lc, 0, @meta); |
| } |
| |
| sub check_LDD { |
| my @meta; |
| |
| } |
| |
| sub check_AUTOMAKE { |
| my @meta; |
| my $am = $vars{'AUTOMAKE'} || "automake"; |
| |
| my @amver = split(/\s+/, `$am --version 2>&1` || ''); |
| my $gnuam = $amver[1] =~ /GNU/i; |
| my $amver = $gnuam ? $amver[3] : 0; |
| |
| push(@meta, 'gnu') if $gnuam; |
| return($am, $amver, @meta); |
| } |
| |
| sub check_AUTOCONF { |
| my @meta; |
| my $ac = $vars{'AUTOCONF'} || "autoconf"; |
| |
| my @acver = split(/\s+/, `$ac --version 2>&1` || ''); |
| my $gnuac = $acver[1] =~ /GNU/i; |
| my $acver = $gnuac ? $acver[3] : 0; |
| |
| push(@meta, 'gnu') if $gnuac; |
| return($ac, $acver, @meta); |
| } |
| |
| sub check_LIBTOOL { |
| my @meta; |
| my $lt = $vars{'LIBTOOL'} || "libtool"; |
| |
| my @ltver = split(/\s+/, `$lt --version 2>&1` || ''); |
| my $gnult = $ltver[1] =~ /GNU/i; |
| my $ltver = $gnult ? $ltver[3] : 0; |
| |
| push(@meta, 'gnu') if $gnult; |
| return($lt, $ltver, @meta); |
| } |