diff options
Diffstat (limited to 'yhttpd/configure')
| -rwxr-xr-x | yhttpd/configure | 77 |
1 files changed, 77 insertions, 0 deletions
diff --git a/yhttpd/configure b/yhttpd/configure new file mode 100755 index 0000000..9aab971 --- /dev/null +++ b/yhttpd/configure @@ -0,0 +1,77 @@ +#!/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"; + my $r = 0; + for (my $i = 4; $i > 0 && $r == 0; --$i ) { + $r = &check_gcc(3,$i); + } + if ($r == 0) { + print "No suitable g++ compiler found!\n"; + print "Please install a right version of GNU G++!\n"; + exit(1); + } + + system("perl \"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 |
