X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=configure;h=7d16af9a309b4318233be49262fb5531cdca2811;hb=f09f2e193039d64795f0c2fac6114dc109bd40ab;hp=371093bd55742be64775facc6f2d4d9d719fd745;hpb=b6dbd6caab62bc2c0d11ce5a45d511611eb9c2ef;p=user%2Fhenk%2Fcode%2Finspircd.git diff --git a/configure b/configure index 371093bd5..7d16af9a3 100755 --- a/configure +++ b/configure @@ -531,6 +531,15 @@ sub svnupdate exit; } +sub test_compile { + my $feature = shift; + my $fail = 0; + $fail ||= system "$config{CC} -o test_$feature make/check_$feature.cpp >/dev/null 2>&1"; + $fail ||= system "./test_$feature"; + unlink "test_$feature"; + return !$fail; +} + print "Running non-interactive configure...\n" unless $interactive; print "Checking for cache from previous configure... "; print ((!getcache()) ? "not found\n" : "found\n"); @@ -584,69 +593,13 @@ if (!$fail) { print "yes\n" if $has_kqueue == 1; print "no\n" if $has_kqueue == 0; -printf "Checking if epoll exists... "; -$has_epoll = 0; -$fail = 0; -open(EPOLL, ")) - { - chomp($line); - if ($line =~ /GNU C Library .* version (.*?) /) - { - $libcv = $1; - $libcv =~ /(\d+\.\d+)/; - $libcv = $1; - } - elsif ($line =~ /Compiled on a Linux (.*?\..*?)\.* system/) - { - $kernelv = $1; - # Fix for some retarded libc builds, strip off >> and << etc. - $kernelv =~ /(\d+\.\d+)/; - $kernelv = $1; - } - } - close FH; - if ($libcv < 2.3) - { - $has_epoll = 0; - printf "libc too old: $libcv... "; - } - if ($kernelv < 2.6) - { - $has_epoll = 0; - printf "libc built against older kernel $kernelv... "; - } - } - } -} -print "yes\n" if $has_epoll == 1; -print "no\n" if $has_epoll == 0; +printf "Checking for epoll support... "; +$has_epoll = test_compile('epoll'); +print $has_epoll ? "yes\n" : "no\n"; + +printf "Checking for eventfd support... "; +$config{HAS_EVENTFD} = test_compile('eventfd') ? 'true' : 'false'; +print $config{HAS_EVENTFD} eq 'true' ? "yes\n" : "no\n"; printf "Checking if Solaris I/O completion ports are available... "; $has_ports = 0; @@ -1230,6 +1183,9 @@ print FILEHANDLE "#define MAXBUF " . ($config{MAXBUF}+2) . "\n"; if ($config{SUPPORT_IP6LINKS} =~ /y/i) { print FILEHANDLE "#define SUPPORT_IP6LINKS\n"; } + if ($config{HAS_EVENTFD} eq 'true') { + print FILEHANDLE "#define HAS_EVENTFD\n"; + } my $use_hiperf = 0; if (($has_kqueue) && ($config{USE_KQUEUE} eq "y")) { print FILEHANDLE "#define USE_KQUEUE\n";