extconf: detect inotify_init1 in libc
[sleepy_penguin.git] / ext / sleepy_penguin / extconf.rb
blobeda7fcddb85f3cf47ce20af09dd310479c85e179
1 require 'mkmf'
2 have_header('sys/epoll.h')
3 dir_config('kqueue')
4 if have_header('sys/event.h')
5   have_library('kqueue')
6 end
7 have_header('sys/mount.h')
8 have_header('sys/eventfd.h')
10 # it's impossible to use signalfd reliably with Ruby since Ruby currently
11 # manages # (and overrides) all signal handling
12 # have_header('sys/signalfd.h')
14 have_header('sys/timerfd.h')
15 have_header('sys/inotify.h')
16 have_header('ruby/io.h') and have_struct_member('rb_io_t', 'fd', 'ruby/io.h')
17 unless have_macro('CLOCK_MONOTONIC', 'time.h')
18   have_func('CLOCK_MONOTONIC', 'time.h')
19 end
20 have_type('clockid_t', 'time.h')
21 have_func('clock_gettime', 'time.h')
22 have_func('epoll_create1', %w(sys/epoll.h))
23 have_func('inotify_init1', %w(sys/inotify.h))
24 have_func('rb_thread_call_without_gvl')
25 have_func('rb_thread_blocking_region')
26 have_func('rb_thread_io_blocking_region')
27 have_func('rb_thread_fd_close')
28 have_func('rb_update_max_fd')
29 have_func('rb_fd_fix_cloexec')
30 have_func('rb_io_get_io')
31 create_makefile('sleepy_penguin_ext')