ruby-changes:15811
From: akr <ko1@a...>
Date: Tue, 11 May 2010 23:10:59 +0900 (JST)
Subject: [ruby-changes:15811] Ruby:r27742 (trunk): * ext/socket/extconf.rb: test IPPROTO_IP and IPPROTO_IPV6 constants.
akr 2010-05-11 23:10:34 +0900 (Tue, 11 May 2010) New Revision: 27742 http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=27742 Log: * ext/socket/extconf.rb: test IPPROTO_IP and IPPROTO_IPV6 constants. * ext/socket/mkconstants.rb: define macros for enum. [ruby-dev:38849] Modified files: trunk/ChangeLog trunk/ext/socket/extconf.rb trunk/ext/socket/mkconstants.rb Index: ChangeLog =================================================================== --- ChangeLog (revision 27741) +++ ChangeLog (revision 27742) @@ -1,3 +1,11 @@ +Tue May 11 23:07:22 2010 Tanaka Akira <akr@f...> + + * ext/socket/extconf.rb: test IPPROTO_IP and IPPROTO_IPV6 constants. + + * ext/socket/mkconstants.rb: define macros for enum. + + [ruby-dev:38849] + Tue May 11 21:53:18 2010 Yusuke Endoh <mame@t...> * test/rake/test_task_arguments.rb: makes ENV empty during tests Index: ext/socket/mkconstants.rb =================================================================== --- ext/socket/mkconstants.rb (revision 27741) +++ ext/socket/mkconstants.rb (revision 27742) @@ -73,11 +73,15 @@ ERB.new(<<'EOS', nil, '%').def_method(Object, "gen_const_decls") % each_const {|guard, make_value, name, default_value| -% if default_value -#ifndef <%=name%> -# define <%=name%> <%=default_value%> +#if !defined(<%=name%>) +# if defined(HAVE_CONST_<%=name.upcase%>) +# define <%=name%> <%=name%> +%if default_value +# else +# define <%=name%> <%=default_value%> +%end +# endif #endif -% end % } EOS Index: ext/socket/extconf.rb =================================================================== --- ext/socket/extconf.rb (revision 27741) +++ ext/socket/extconf.rb (revision 27742) @@ -110,6 +110,13 @@ 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_func("sendmsg") | have_func("recvmsg")) && /64-darwin/ !~ RUBY_PLATFORM # CMSG_ macros are broken on 64bit darwin, because of use of __DARWIN_ALIGN. have_struct_member('struct msghdr', 'msg_control', ['sys/types.h', 'sys/socket.h']) -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/