зеркало из https://github.com/github/ruby.git
* lib/mkmf.rb (find_type): new method.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12868 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
Родитель
3322974196
Коммит
f3a1a4a4ba
|
@ -1,9 +1,11 @@
|
|||
Fri Aug 3 06:40:04 2007 Nobuyoshi Nakada <nobu@ruby-lang.org>
|
||||
Fri Aug 3 07:09:05 2007 Nobuyoshi Nakada <nobu@ruby-lang.org>
|
||||
|
||||
* lib/mkmf.rb: more verbose message. [ruby-Bugs-12766]
|
||||
|
||||
* lib/mkmf.rb (have_type): suppress a warning with -Wall.
|
||||
|
||||
* lib/mkmf.rb (find_type): new method.
|
||||
|
||||
Fri Aug 3 00:00:20 2007 Nobuyoshi Nakada <nobu@ruby-lang.org>
|
||||
|
||||
* bignum.c (big2str_table): base cannot be 0 or 1.
|
||||
|
|
47
lib/mkmf.rb
47
lib/mkmf.rb
|
@ -772,6 +772,21 @@ SRC
|
|||
end
|
||||
end
|
||||
|
||||
def try_type(type, headers = nil, opt = "", &b)
|
||||
if try_compile(<<"SRC", opt, &b)
|
||||
#{COMMON_HEADERS}
|
||||
#{cpp_include(headers)}
|
||||
/*top*/
|
||||
typedef #{type} conftest_type;
|
||||
int conftestval[sizeof(conftest_type)?1:-1];
|
||||
SRC
|
||||
$defs.push(format("-DHAVE_TYPE_%s", type.strip.upcase.tr_s("^A-Z0-9_", "_")))
|
||||
true
|
||||
else
|
||||
false
|
||||
end
|
||||
end
|
||||
|
||||
# Returns whether or not the static type +type+ is defined. You may
|
||||
# optionally pass additional +headers+ to check against in addition to the
|
||||
# common header files.
|
||||
|
@ -787,18 +802,26 @@ end
|
|||
#
|
||||
def have_type(type, headers = nil, opt = "", &b)
|
||||
checking_for checking_message(type, headers, opt) do
|
||||
headers = cpp_include(headers)
|
||||
if try_compile(<<"SRC", opt, &b)
|
||||
#{COMMON_HEADERS}
|
||||
#{headers}
|
||||
/*top*/
|
||||
typedef #{type} conftest_type;
|
||||
int conftestval[sizeof(conftest_type)?1:-1];
|
||||
SRC
|
||||
$defs.push(format("-DHAVE_TYPE_%s", type.strip.upcase.tr_s("^A-Z0-9_", "_")))
|
||||
true
|
||||
else
|
||||
false
|
||||
try_type(type, headers, opt, &b)
|
||||
end
|
||||
end
|
||||
|
||||
# Returns where the static type +type+ is defined.
|
||||
#
|
||||
# You may also pass additional flags to +opt+ which are then passed along to
|
||||
# the compiler.
|
||||
#
|
||||
# See also +have_type+.
|
||||
#
|
||||
def find_type(type, opt, *headers, &b)
|
||||
opt ||= ""
|
||||
fmt = "not found"
|
||||
def fmt.%(x)
|
||||
x ? x.respond_to?(:join) ? x.join(",") : x : self
|
||||
end
|
||||
checking_for checking_message(type, nil, opt), fmt do
|
||||
headers.find do |h|
|
||||
try_type(type, h, opt, &b)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
Загрузка…
Ссылка в новой задаче