X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=make%2Fconfigure.pm;h=a89e139c9f2a71bf737a722cc17ed9a1aca34218;hb=4e9af81504de220aee3fc41df9e405faa1b92738;hp=8653edaac2c14b962be8fd9aa381c3e6163c5710;hpb=9b99c5ad31eb8de222d2b3aa1daa9412f0b25857;p=user%2Fhenk%2Fcode%2Finspircd.git diff --git a/make/configure.pm b/make/configure.pm index 8653edaac..a89e139c9 100644 --- a/make/configure.pm +++ b/make/configure.pm @@ -93,6 +93,13 @@ sub __get_template_settings($$$) { return %settings; } +sub __test_compiler($) { + my $compiler = shift; + return 0 unless run_test("`$compiler`", !system "$compiler -v >/dev/null 2>&1"); + return 0 unless run_test("`$compiler`", test_file($compiler, 'compiler.cpp'), 'compatible'); + return 1; +} + sub cmd_clean { unlink CONFIGURE_CACHE_FILE; } @@ -177,9 +184,10 @@ sub cmd_update { exit 0; } -sub run_test($$) { - my ($what, $result) = @_; - print_format "Checking whether <|GREEN $what|> is available ... "; +sub run_test($$;$) { + my ($what, $result, $adjective) = @_; + $adjective ||= 'available'; + print_format "Checking whether <|GREEN $what|> is $adjective ... "; print_format $result ? "<|GREEN yes|>\n" : "<|RED no|>\n"; return $result; } @@ -244,10 +252,8 @@ sub get_compiler_info($) { sub find_compiler { my @compilers = qw(c++ g++ clang++ icpc); foreach my $compiler (shift || @compilers) { - return $compiler if run_test "`$compiler`", test_file $compiler, 'compiler.cpp'; - if ($^O eq 'darwin') { - return $compiler if run_test "`xcrun $compiler`", test_file "xcrun $compiler", 'compiler.cpp'; - } + return $compiler if __test_compiler $compiler; + return "xcrun $compiler" if $^O eq 'darwin' && __test_compiler "xcrun $compiler"; } }