[前][次][番号順一覧][スレッド一覧]

ruby-changes:15815

From: usa <ko1@a...>
Date: Wed, 12 May 2010 11:40:25 +0900 (JST)
Subject: [ruby-changes:15815] Ruby:r27746 (trunk): * ext/socket/extconf.rb: test all IPPROTO_* constants for recent Win32

usa	2010-05-12 11:40:09 +0900 (Wed, 12 May 2010)

  New Revision: 27746

  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=27746

  Log:
    * ext/socket/extconf.rb: test all IPPROTO_* constants for recent Win32
      SDK.

  Modified files:
    trunk/ChangeLog
    trunk/ext/socket/extconf.rb

Index: ChangeLog
===================================================================
--- ChangeLog	(revision 27745)
+++ ChangeLog	(revision 27746)
@@ -1,3 +1,8 @@
+Wed May 12 11:39:10 2010  NAKAMURA Usaku  <usa@r...>
+
+	* ext/socket/extconf.rb: test all IPPROTO_* constants for recent Win32
+	  SDK.
+
 Wed May 12 10:57:04 2010  Nobuyoshi Nakada  <nobu@r...>
 
 	* numeric.c (flo_to_s): make minimum string representation.
Index: ext/socket/extconf.rb
===================================================================
--- ext/socket/extconf.rb	(revision 27745)
+++ ext/socket/extconf.rb	(revision 27746)
@@ -110,12 +110,11 @@
 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_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.*"
 

--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml/

[前][次][番号順一覧][スレッド一覧]