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]
|
||