* lib/mkmf.rb (try_func): check function pointer first and macro next.

* lib/mkmf.rb (have_type): simplified with typedef and sizeof.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@11037 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
nobu 2006-09-26 16:05:52 +00:00
parent f3846ac51b
commit 4f6f0b1066
2 changed files with 10 additions and 13 deletions

View File

@ -1,3 +1,9 @@
Wed Sep 27 01:04:49 2006 Nobuyoshi Nakada <nobu@ruby-lang.org>
* lib/mkmf.rb (try_func): check function pointer first and macro next.
* lib/mkmf.rb (have_type): simplified with typedef and sizeof.
Tue Sep 26 23:57:03 2006 Nobuyoshi Nakada <nobu@ruby-lang.org> Tue Sep 26 23:57:03 2006 Nobuyoshi Nakada <nobu@ruby-lang.org>
* lib/optparse.rb (OptionParser#getopts): use strings as key. * lib/optparse.rb (OptionParser#getopts): use strings as key.

View File

@ -410,12 +410,7 @@ end
def try_func(func, libs, headers = nil, &b) def try_func(func, libs, headers = nil, &b)
headers = cpp_include(headers) headers = cpp_include(headers)
try_link(<<"SRC", libs, &b) or try_link(<<"SRC", libs, &b) try_link(<<"SRC", libs, &b) or macro_defined?(func, COMMON_HEADERS+headers, &b)
#{headers}
/*top*/
int main() { return 0; }
int t() { #{func}(); return 0; }
SRC
#{COMMON_HEADERS} #{COMMON_HEADERS}
#{headers} #{headers}
/*top*/ /*top*/
@ -758,16 +753,12 @@ end
def have_type(type, headers = nil, opt = "", &b) def have_type(type, headers = nil, opt = "", &b)
checking_for checking_message(type, headers, opt) do checking_for checking_message(type, headers, opt) do
headers = cpp_include(headers) headers = cpp_include(headers)
if try_compile(<<"SRC", opt, &b) or (/\A\w+\z/n =~ type && try_compile(<<"SRC", opt, &b)) if try_compile(<<"SRC", opt, &b)
#{COMMON_HEADERS} #{COMMON_HEADERS}
#{headers} #{headers}
/*top*/ /*top*/
static #{type} t; typedef #{type} conftest_type;
SRC static conftest_type conftestval[sizeof(conftest_type)?1:-1];
#{COMMON_HEADERS}
#{headers}
/*top*/
static #{type} *t;
SRC SRC
$defs.push(format("-DHAVE_TYPE_%s", type.strip.upcase.tr_s("^A-Z0-9_", "_"))) $defs.push(format("-DHAVE_TYPE_%s", type.strip.upcase.tr_s("^A-Z0-9_", "_")))
true true