diff options
author | Peter Powell <petpow@saberuk.com> | 2015-07-19 17:17:29 +0100 |
---|---|---|
committer | Peter Powell <petpow@saberuk.com> | 2015-07-21 23:22:09 +0100 |
commit | 3fbba606c3fbb76a5bc045d4d7717528366ae84e (patch) | |
tree | 13063bf9cc22567922b77b7c16f67e129270bf48 | |
parent | 539abb9e93e9657c136759116379f7182c78ea8c (diff) |
Fix checking whether kqueue is available.
It seems like the newer OS X versions don't put headers into the
system include directories. Switch to using a test file instead.
-rwxr-xr-x | configure | 18 | ||||
-rw-r--r-- | make/check_kqueue.cpp | 26 |
2 files changed, 28 insertions, 16 deletions
@@ -382,22 +382,8 @@ print "yes\n" if $config{HAS_STRLCPY} eq "true"; print "no\n" if $config{HAS_STRLCPY} eq "false"; printf "Checking if kqueue exists... "; -$has_kqueue = 0; -$fail = 0; -open(KQUEUE, "</usr/include/sys/event.h") or $fail = 1; -if (!$fail) { - while (defined(my $line = <KQUEUE>)) { - chomp($line); - # try and find the delcaration of: - # int kqueue(void); - if ($line =~ /int(\0x9|\s)+kqueue/) { - $has_kqueue = 1; - } - } - close(KQUEUE); -} -print "yes\n" if $has_kqueue == 1; -print "no\n" if $has_kqueue == 0; +$has_kqueue = test_compile('kqueue'); +print $has_kqueue ? "yes\n" : "no\n"; printf "Checking for epoll support... "; $has_epoll = test_compile('epoll'); diff --git a/make/check_kqueue.cpp b/make/check_kqueue.cpp new file mode 100644 index 000000000..6034253df --- /dev/null +++ b/make/check_kqueue.cpp @@ -0,0 +1,26 @@ +/* + * InspIRCd -- Internet Relay Chat Daemon + * + * Copyright (C) 2015 Peter Powell <petpow@saberuk.com> + * + * This file is part of InspIRCd. InspIRCd is free software: you can + * redistribute it and/or modify it under the terms of the GNU General Public + * License as published by the Free Software Foundation, version 2. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS + * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more + * details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + */ + + +#include <sys/types.h> +#include <sys/event.h> + +int main() { + int fd = kqueue(); + return (fd < 0); +} |