Метод have_library
имеет возвращаемое значение:
Возвращает, может ли указанная точка входа func
быть найдена в lib
.
Так что вы должны быть в состоянии сделать это:
$defs.push('-DUSE_RUBY_UUID') if !have_library('uuid')
create_makefile("identifier")
И затем настроить ваш C на использование libuuid , если USE_RUBY_UUID
не определен, и вызвать вБиблиотека Ruby UUID, если она определена.
Как ни странно, методы have_header
и have_func
в mkmf.rb
добавляют макросы для вас:
# File mkmf.rb, line 840
def have_header(header, preheaders = nil, &b)
checking_for header do
if try_header(cpp_include(preheaders)+cpp_include(header), &b)
$defs.push(format("-DHAVE_%s", header.tr_cpp))
true
else
false
end
end
end
но have_library
заставляет вас делать это самостоятельно.