summaryrefslogtreecommitdiff
path: root/ext/io/wait/extconf.rb
blob: e63c046187318794a9ce50de259158386819a76a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# frozen_string_literal: false
require 'mkmf'

if RUBY_VERSION < "2.6"
  File.write("Makefile", dummy_makefile($srcdir).join(""))
else
  target = "io/wait"
  have_func("rb_io_wait")
  have_func("rb_io_descriptor")
  unless macro_defined?("DOSISH", "#include <ruby.h>")
    have_header(ioctl_h = "sys/ioctl.h") or ioctl_h = nil
    fionread = %w[sys/ioctl.h sys/filio.h sys/socket.h].find do |h|
      have_macro("FIONREAD", [h, ioctl_h].compact)
    end
    if fionread
      $defs << "-DFIONREAD_HEADER=\"<#{fionread}>\""
      create_makefile(target)
    end
  else
    if have_func("rb_w32_ioctlsocket", "ruby.h")
      have_func("rb_w32_is_socket", "ruby.h")
      create_makefile(target)
    end
  end
end