#!/bin/sh if ! ./scripts/checkperl.sh then exit 1 fi perl -e ' use strict; $|=1; sub check_gcc { my $f = shift; my $s = shift; my $r = 0; print "Checking for GNU G++ $f.$s\n"; if ( `g++ -v 2> g++.version && tail -n 1 g++.version` =~ / $f\.$s/ ) { `echo $f.$s >> g++.version`; `echo g++ >> g++.version`; $r = 1; } else { if (`g++$f$s -v 2> g++.version && tail -n 1 g++.version` =~ / $f\.$s/) { `echo $f.$s >> g++.version`; `echo g++$f$s >> g++.version`; $r = 1; } } print "No " if $r == 0; print "GNU G++ $f.$s found!\n"; return $r; } sub check_make { print "Checking for GNU make\n"; my $err = "No GNU make found.\nPlease install a version of GNU make!\n"; my $make; if (`which gmake`) { $make = "gmake"; } elsif ( `which make` ) { $make = "make"; } else { print $err; exit(1); } `sh -c "$make -v > make.version 2>/dev/null"`; if ( `cat make.version` =~ /GNU Make/ ) { `echo $make >> make.version`; } else { print $err; exit(1); } } &check_make; print "Checking compiler version\n"; # Accept any GNU g++ (the original check only accepted g++ 3.x; modern GCC # works fine with the legacy-C++ fixes applied). Write g++.version as # "\ng++\n" - src/configure reads the last line as the compiler. my $ver = `g++ -dumpversion 2>/dev/null`; chomp $ver; if ( $ver eq "" ) { print "No GNU g++ compiler found!\nPlease install GNU G++!\n"; exit(1); } `echo $ver > g++.version`; `echo g++ >> g++.version`; print "GNU G++ $ver found!\n"; # -I. : scripts/config.pl does "use scripts::modules::file", which needs # "." on @INC. Perl 5.26+ dropped "." from the default @INC, so this # silently BEGIN-failed on modern Perl (the "yes" answer was never even # read - it happened to be harmless only because the committed glob.h # defaults were already correct). system("perl -I. \"scripts/config.pl\""); chdir("src"); system("./configure ".join(" ", @ARGV)); chdir(".."); exit(0); ' `echo "$*" | sed "s/-//g"` if test -f err then rm -f err else echo You are ready to type gmake now! fi