[test "x$PYTHON" != "xno" && test "x$PYTHON_INCLUDEDIR" != "x" && test "x$PYTHON_INSTALLDIR" != "x"])
dnl Check for Ruby and rake (optional, for Ruby bindings).
-AC_CHECK_LIB([ruby],[ruby_init],[HAVE_LIBRUBY=1],[HAVE_LIBRUBY=0])
-AC_CHECK_PROG([RAKE],[rake],[rake],[no])
+AC_ARG_ENABLE([ruby],
+ AS_HELP_STRING([--disable-ruby], [Disable Ruby language bindings]),
+ [],
+ [enable_ruby=yes])
+AS_IF([test "x$enable_ruby" != "xno"],
+ [
+ AC_CHECK_PROG([RUBY],[ruby],[ruby],[no])
+ AC_CHECK_PROG([RAKE],[rake],[rake],[no])
+ AC_CHECK_LIB([ruby],[ruby_init],[HAVE_LIBRUBY=1],[HAVE_LIBRUBY=0])
+ AC_SUBST(RAKE)
+ ])
+AM_CONDITIONAL([HAVE_RUBY],
+ [test "x$RAKE" != "xno" && test -n "$HAVE_LIBRUBY"])
AM_CONDITIONAL([HAVE_RUBY],
[test "x$RAKE" != "xno" && test -n "$HAVE_LIBRUBY"])
#define RARRAY_LEN(r) (RARRAY((r))->len)
#endif
+#ifndef RSTRING_LEN
+#define RSTRING_LEN(r) (RSTRING((r))->len)
+#endif
+
+#ifndef RSTRING_PTR
+#define RSTRING_PTR(r) (RSTRING((r))->ptr)
+#endif
+
static VALUE m_hivex; /* hivex module */
static VALUE c_hivex; /* hive_h handle */
static VALUE e_Error; /* used for all errors */
val->key = StringValueCStr (key);
val->t = NUM2ULL (type);
- val->len = RSTRING (value)->len;
- val->value = RSTRING (value)->ptr;
+ val->len = RSTRING_LEN (value);
+ val->value = RSTRING_PTR (value);
}
static hive_set_value *
TESTS = run-ruby-tests
TESTS_ENVIRONMENT = \
- LD_LIBRARY_PATH=$(top_builddir)/src/.libs
+ LD_LIBRARY_PATH=$(top_builddir)/src/.libs \
+ RUBY=$(RUBY) RAKE=$(RAKE)
all:
- rake build
- rake rdoc
+ $(RAKE) build
+ $(RAKE) rdoc
-RUBY_SITELIB := $(shell ruby -rrbconfig -e "puts Config::CONFIG['sitelibdir']")
-RUBY_SITEARCH := $(shell ruby -rrbconfig -e "puts Config::CONFIG['sitearchdir']")
+RUBY_SITELIB := $(shell $(RUBY) -rrbconfig -e "puts Config::CONFIG['sitelibdir']")
+RUBY_SITEARCH := $(shell $(RUBY) -rrbconfig -e "puts Config::CONFIG['sitearchdir']")
install:
$(MKDIR_P) $(DESTDIR)$(RUBY_SITELIB)
# Build locally
file MAKEFILE => EXT_CONF do |t|
- unless sh "top_srcdir=$(pwd)/@top_srcdir@; top_builddir=$(pwd)/@top_builddir@; export ARCHFLAGS=\"-arch $(uname -m)\"; mkdir -p @builddir@/ext/hivex; cd @builddir@/ext/hivex; ruby #{EXT_CONF} --with-_hivex-include=$top_srcdir/lib --with-_hivex-lib=$top_builddir/lib/.libs"
+ unless sh "top_srcdir=$(pwd)/@top_srcdir@; top_builddir=$(pwd)/@top_builddir@; export ARCHFLAGS=\"-arch $(uname -m)\"; mkdir -p @builddir@/ext/hivex; cd @builddir@/ext/hivex; @RUBY@ #{EXT_CONF} --with-_hivex-include=$top_srcdir/lib --with-_hivex-lib=$top_builddir/lib/.libs"
$stderr.puts "Failed to run extconf"
break
end
# is bound to fail because they all use a single test image file).
for f in tests/tc_*.rb; do
- echo rake test "$@" TEST="$f"
- rake test "$@" TEST="$f"
+ echo $RAKE test "$@" TEST="$f"
+ $RAKE test "$@" TEST="$f"
done