Bug #18000 » no-static-no-shared.diff
lib/mkmf.rb | ||
---|---|---|
# [+headers+] a String or an Array of strings which contains names of header
|
||
# files.
|
||
def try_func(func, libs, headers = nil, opt = "", &b)
|
||
_try_func(:try_link, func, libs, headers, opt, &b)
|
||
end
|
||
private def _try_func(try_method, func, libs, headers = nil, opt = "", &b)
|
||
headers = cpp_include(headers)
|
||
case func
|
||
when /^&/
|
||
... | ... | |
else
|
||
opt = libs
|
||
end
|
||
decltype && try_link(<<"SRC", opt, &b) or
|
||
decltype && send(try_method, <<"SRC", opt, &b) or
|
||
#{headers}
|
||
/*top*/
|
||
extern int t(void);
|
||
#{MAIN_DOES_NOTHING 't'}
|
||
int t(void) { #{decltype["volatile p"]}; p = (#{decltype[]})#{func}; return !p; }
|
||
SRC
|
||
call && try_link(<<"SRC", opt, &b)
|
||
try_method == :try_link && call && try_link(<<"SRC", opt, &b)
|
||
#{headers}
|
||
/*top*/
|
||
extern int t(void);
|
||
... | ... | |
#
|
||
def have_func(func, headers = nil, opt = "", &b)
|
||
checking_for checking_message(func.funcall_style, headers, opt) do
|
||
if try_func(func, $libs, headers, opt, &b)
|
||
try_method = if RbConfig::CONFIG["LIBRUBYARG"].include?('-lruby')
|
||
:try_link
|
||
else
|
||
:try_compile
|
||
end
|
||
if _try_func(try_method, func, $libs, headers, opt, &b)
|
||
$defs << "-DHAVE_#{func.sans_arguments.tr_cpp}"
|
||
true
|
||
else
|
tool/mkconfig.rb | ||
---|---|---|
install_name = nil
|
||
so_name = nil
|
||
platform = nil
|
||
disable_install_static_library = nil
|
||
File.foreach "config.status" do |line|
|
||
next if /^#/ =~ line
|
||
name = nil
|
||
... | ... | |
eq = win32 && vars[name] ? '<< "\n"' : '='
|
||
vars[name] = val
|
||
if name == "configure_args"
|
||
if val.include?('--disable-install-static-library')
|
||
disable_install_static_library = true
|
||
end
|
||
val.gsub!(/--with-out-ext/, "--without-ext")
|
||
end
|
||
val = val.gsub(/\$(?:\$|\{?(\w+)\}?)/) {$1 ? "$(#{$1})" : $&}.dump
|
||
... | ... | |
end
|
||
when /^includedir$/
|
||
val = '"$(SDKROOT)"'+val if /darwin/ =~ arch
|
||
when /^LIBRUBYARG_STATIC$/
|
||
if disable_install_static_library
|
||
val.sub!('-l$(RUBY_SO_NAME)-static ', '')
|
||
end
|
||
end
|
||
v = " CONFIG[\"#{name}\"] #{eq} #{val}\n"
|
||
if fast[name]
|