From 851a023843ac4db27c3fb4dc2c4e1a523e0d3831 Mon Sep 17 00:00:00 2001 From: usa Date: Wed, 12 May 2010 02:40:09 +0000 Subject: * ext/socket/extconf.rb: test all IPPROTO_* constants for recent Win32 SDK. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@27746 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ext/socket/extconf.rb | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) (limited to 'ext/socket') diff --git a/ext/socket/extconf.rb b/ext/socket/extconf.rb index 9125ec1ec3..71deaa218d 100644 --- a/ext/socket/extconf.rb +++ b/ext/socket/extconf.rb @@ -110,12 +110,11 @@ end have_header("netinet/tcp.h") if /cygwin/ !~ RUBY_PLATFORM # for cygwin 1.1.5 have_header("netinet/udp.h") -%w[ - IPPROTO_IP - IPPROTO_IPV6 -].each {|name| - have_const(name, headers) -} +if !have_macro("IPPROTO_IPV6", headers) && have_const("IPPROTO_IPV6", headers) + IO.read(File.join(File.dirname(__FILE__), "mkconstants.rb")).sub(/\A.*^__END__$/m, '').split(/\r?\n/).grep(/\AIPPROTO_\w*/){$&}.each {|name| + have_const(name, headers) unless $defs.include?("-DHAVE_CONST_#{name.upcase}") + } +end if (have_func("sendmsg") | have_func("recvmsg")) && /64-darwin/ !~ RUBY_PLATFORM # CMSG_ macros are broken on 64bit darwin, because of use of __DARWIN_ALIGN. @@ -342,7 +341,7 @@ have_header("ucred.h", headers) have_func("getpeerucred") # workaround for recent Windows SDK -$defs << "-DIPPROTO_IPV6=IPPROTO_IPV6" if have_const("IPPROTO_IPV6") && !have_macro("IPPROTO_IPV6") +$defs << "-DIPPROTO_IPV6=IPPROTO_IPV6" if $defs.include?("-DHAVE_CONST_IPPROTO_IPV6") && !have_macro("IPPROTO_IPV6") $distcleanfiles << "constants.h" << "constdefs.*" -- cgit v1.2.3