Move Ruby-related checks from autoconf to extconf.rb; add extra check for rb_alloc_func_t

Ruby ships its own config.h which may or may not define the same
relevant constants as our autoconf-generated config.h. Instead of
trying to specify the exact path to the wanted header file we may just
as well simply use Ruby's autoconf-inspired checks and macros.
This commit is contained in:
Hilko Bengen
2013-03-07 19:59:26 +01:00
committed by Richard W.M. Jones
parent 3a895ba794
commit 0ee24ccf8a
3 changed files with 7 additions and 8 deletions

View File

@@ -1168,14 +1168,6 @@ AS_IF([test "x$enable_ruby" != "xno"],[
AC_MSG_RESULT([-l$libruby])
AC_CHECK_LIB([$libruby],[ruby_init],
[have_libruby=1],[have_libruby=])
dnl Symbols that we substitute when missing.
AS_IF([test -n "$have_libruby"],[
old_LIBS="$LIBS"
LIBS="$LIBS -l$libruby"
AC_CHECK_FUNCS([rb_hash_lookup])
LIBS="$old_LIBS"
])
],[
AC_MSG_RESULT([not found])
])

View File

@@ -700,6 +700,9 @@ Init__guestfs (void)
e_Error = rb_define_class_under (m_guestfs, \"Error\", rb_eStandardError);
#ifdef HAVE_RB_DEFINE_ALLOC_FUNC
#ifndef HAVE_TYPE_RB_ALLOC_FUNC_T
#define rb_alloc_func_t void*
#endif
rb_define_alloc_func (c_guestfs, (rb_alloc_func_t) ruby_guestfs_create);
#endif

View File

@@ -29,6 +29,10 @@ unless have_library("guestfs", "guestfs_create", "guestfs.h")
raise "libguestfs not found"
end
have_func("rb_hash_lookup")
have_func("rb_define_alloc_func")
have_type("rb_alloc_func_t")
$CFLAGS =
"#{$CFLAGS} @CFLAGS@ -DGUESTFS_PRIVATE=1 " <<
"@WARN_CFLAGS@ @WERROR_CFLAGS@"