diff options
Diffstat (limited to 'ext/io/wait/extconf.rb')
-rw-r--r-- | ext/io/wait/extconf.rb | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/ext/io/wait/extconf.rb b/ext/io/wait/extconf.rb new file mode 100644 index 0000000000..0c1a870474 --- /dev/null +++ b/ext/io/wait/extconf.rb @@ -0,0 +1,28 @@ +require 'mkmf' +target = "io/wait" +unless defined?(checking_for) + def checking_for(msg) + STDOUT.print "checking for ", msg, "..." + STDOUT.flush + STDOUT.puts((r = yield) ? "yes" : "no") + r + end +end +unless defined?(macro_defined?) + def macro_defined?(macro, src, opt="") + try_cpp(src + <<"SRC", opt) +#ifndef #{macro} +# error +#endif +SRC + end +end + +unless /djgpp|mswin|mingw|human/ =~ RUBY_PLATFORM + fionread = %w[sys/ioctl.h sys/filio.h].find do |h| + checking_for("FIONREAD") {macro_defined?("FIONREAD", "#include <#{h}>\n")} + end + exit 1 unless fionread + $defs << "-DFIONREAD_HEADER=\"<#{fionread}>\"" + create_makefile(target) +end |