1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00
ruby--ruby/ext/io/console/extconf.rb
nobu 12a2e17a34 io/console: fix gem build failure on Windows
* ext/io/console/extconf.rb: fix gem build failure on Windows.
  only win32_vk.inc is included in the gem and no dependencies for
  the header, so that gperf will not be mandatory.
  [ruby-core:72453] [Bug #11866]
* ext/io/console/io-console.gemspec: include depend file and
  win32_vk header.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53266 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-23 15:26:08 +00:00

27 lines
725 B
Ruby

# frozen_string_literal: false
require 'mkmf'
ok = true
hdr = nil
case
when macro_defined?("_WIN32", "")
# rb_w32_map_errno: 1.8.7
vk_header = File.exist?("#$srcdir/win32_vk.list") ? "chksum" : "inc"
vk_header = "#{'{$(srcdir)}' if $nmake == ?m}win32_vk.#{vk_header}"
when hdr = %w"termios.h termio.h".find {|h| have_header(h)}
have_func("cfmakeraw", hdr)
when have_header(hdr = "sgtty.h")
%w"stty gtty".each {|f| have_func(f, hdr)}
else
ok = false
end
if ok
have_header("sys/ioctl.h") if hdr
# rb_check_hash_type: 1.9.3
# rb_io_get_write_io: 1.9.1
# rb_cloexec_open: 2.0.0
$defs << "-D""ENABLE_IO_GETPASS=1"
create_makefile("io/console") {|conf|
conf << "\n""VK_HEADER = #{vk_header}\n"
}
end