ruby: Test against locally built library.
[hivex.git] / configure.ac
index 7c599e9..fc11b07 100644 (file)
@@ -1,5 +1,5 @@
 # hivex
-# Copyright (C) 2009-2010 Red Hat Inc.
+# Copyright (C) 2009-2011 Red Hat Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -17,8 +17,8 @@
 
 # major/minor/release must be numbers
 m4_define([hivex_major],   [1])
-m4_define([hivex_minor],   [2])
-m4_define([hivex_release], [2])
+m4_define([hivex_minor],   [3])
+m4_define([hivex_release], [0])
 # extra can be any string
 m4_define([hivex_extra],   [])
 
@@ -40,7 +40,7 @@ AC_DEFINE([PACKAGE_VERSION_EXTRA],["hivex_extra"],[Extra version string])
 gl_EARLY
 gl_INIT
 
-AC_PROG_LIBTOOL
+AM_PROG_LIBTOOL
 
 dnl Check for basic C environment.
 AC_PROG_CC_STDC
@@ -173,7 +173,10 @@ AC_SUBST([LIBXML2_LIBS])
 dnl Check for OCaml (optional, for OCaml bindings).
 AC_PROG_OCAML
 AC_PROG_FINDLIB
-AM_CONDITIONAL([HAVE_OCAML],[test "x$OCAMLC" != "xno" -a "x$OCAMLFIND" != "xno"])
+AM_CONDITIONAL([HAVE_OCAML],
+    [test "x$OCAMLC" != "xno" && test "x$OCAMLFIND" != "xno"])
+AM_CONDITIONAL([HAVE_OCAMLOPT],
+    [test "x$OCAMLOPT" != "xno" && test "x$OCAMLFIND" != "xno"])
 
 if test "x$OCAMLC" != "xno"; then
     dnl Check if we have caml/unixsupport.h header (OCaml bindings only).
@@ -192,9 +195,9 @@ if test "x$OCAMLC" != "xno"; then
     echo "char $f (); char foo() { return $f (); }" > conftest.c
     rm -f conftest_ml.ml
     touch conftest_ml.ml
-    if $OCAMLOPT -c conftest.c 2>/dev/null && \
-       $OCAMLOPT -c conftest_ml.ml 2>/dev/null && \
-       $OCAMLOPT conftest.o conftest_ml.cmx -o conftest 2>/dev/null ; then
+    if $OCAMLC -c conftest.c 2>/dev/null && \
+       $OCAMLC -c conftest_ml.ml 2>/dev/null && \
+       $OCAMLC conftest.o conftest_ml.cmo -o conftest 2>/dev/null ; then
         AC_DEFINE([HAVE_CAML_RAISE_WITH_ARGS],[1],
                   [Defined if function caml_raise_with_args exists.])
         AC_MSG_RESULT([found])
@@ -225,63 +228,53 @@ if test "x$missing_perl_modules" = "xyes"; then
 fi
 
 AM_CONDITIONAL([HAVE_PERL],
-    [test "x$PERL" != "xno" -a "x$missing_perl_modules" != "xyes"])
-
-dnl dnl Check for Python (optional, for Python bindings).
-dnl AC_CHECK_PROG([PYTHON],[python],[python],[no])
-
-dnl PYTHON_PREFIX=
-dnl PYTHON_VERSION=
-dnl PYTHON_INCLUDEDIR=
-dnl PYTHON_SITE_PACKAGES=
-
-dnl if test "x$PYTHON" != "xno"; then
-dnl     PYTHON_PREFIX=`$PYTHON -c "import sys; print sys.prefix"`
-dnl     PYTHON_VERSION=`$PYTHON -c "import sys; print sys.version[[0:3]]"`
-dnl     for d in \
-dnl         $PYTHON_PREFIX/include/python$PYTHON_VERSION \
-dnl         /usr/include/python$PYTHON_VERSION \
-dnl         /usr/local/include/python$PYTHON_VERSION
-dnl     do
-dnl         AC_MSG_CHECKING([Python.h in $d])
-dnl         if test -r "$d/Python.h"; then
-dnl             AC_MSG_RESULT([found])
-dnl             PYTHON_INCLUDEDIR=$d
-dnl             break
-dnl         fi
-dnl         AC_MSG_RESULT([not found])
-dnl     done
-dnl     for d in \
-dnl         $PYTHON_PREFIX/lib64/python$PYTHON_VERSION/site-packages \
-dnl         $PYTHON_PREFIX/lib/python$PYTHON_VERSION/site-packages \
-dnl         /usr/lib64/python$PYTHON_VERSION/site-packages \
-dnl         /usr/lib/python$PYTHON_VERSION/site-packages \
-dnl         /usr/local/lib/python$PYTHON_VERSION/site-packages
-dnl     do
-dnl         AC_MSG_CHECKING([for $d])
-dnl         if test -d "$d"; then
-dnl             AC_MSG_RESULT([found])
-dnl             PYTHON_SITE_PACKAGES=$d
-dnl             break
-dnl         fi
-dnl         AC_MSG_RESULT([not found])
-dnl     done
-dnl fi
+    [test "x$PERL" != "xno" && test "x$missing_perl_modules" != "xyes"])
+
+dnl Check for Python (optional, for Python bindings).
+AC_CHECK_PROG([PYTHON],[python],[python],[no])
+
+PYTHON_PREFIX=
+PYTHON_VERSION=
+
+if test "x$PYTHON" != "xno"; then
+    PYTHON_PREFIX=`$PYTHON -c "import sys; print sys.prefix"`
+    PYTHON_VERSION=`$PYTHON -c "import sys; print sys.version[[0:3]]"`
+
+    AC_MSG_CHECKING([for Python include path])
+    if test -z "$PYTHON_INCLUDEDIR"; then
+        python_path=`$PYTHON -c "import distutils.sysconfig; \
+                                 print (distutils.sysconfig.get_python_inc ());"`
+        PYTHON_INCLUDEDIR=$python_path
+    fi
+    AC_MSG_RESULT([$PYTHON_INCLUDEDIR])
+
+    AC_MSG_CHECKING([for Python site-packages path])
+    if test -z "$PYTHON_SITE_PACKAGES"; then
+        PYTHON_SITE_PACKAGES=`$PYTHON -c "import distutils.sysconfig; \
+                print (distutils.sysconfig.get_python_lib(1,0));"`
+    fi
+    AC_MSG_RESULT([$PYTHON_SITE_PACKAGES])
+
+    old_LIBS="$LIBS"
+    LIBS="$LIBS -lpython$PYTHON_VERSION"
+    AC_CHECK_FUNCS([PyCapsule_New])
+    LIBS="$old_LIBS"
+fi
 
-dnl AC_SUBST(PYTHON_PREFIX)
-dnl AC_SUBST(PYTHON_VERSION)
-dnl AC_SUBST(PYTHON_INCLUDEDIR)
-dnl AC_SUBST(PYTHON_SITE_PACKAGES)
+AC_SUBST(PYTHON_PREFIX)
+AC_SUBST(PYTHON_VERSION)
+AC_SUBST(PYTHON_INCLUDEDIR)
+AC_SUBST(PYTHON_SITE_PACKAGES)
 
-dnl AM_CONDITIONAL([HAVE_PYTHON],
-dnl     [test "x$PYTHON_INCLUDEDIR" != "x" -a "x$PYTHON_SITE_PACKAGES" != "x"])
+AM_CONDITIONAL([HAVE_PYTHON],
+    [test "x$PYTHON_INCLUDEDIR" != "x" && test "x$PYTHON_SITE_PACKAGES" != "x"])
 
-dnl dnl Check for Ruby and rake (optional, for Ruby bindings).
-dnl AC_CHECK_LIB([ruby],[ruby_init],[HAVE_LIBRUBY=1],[HAVE_LIBRUBY=0])
-dnl AC_CHECK_PROG([RAKE],[rake],[rake],[no])
+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])
 
-dnl AM_CONDITIONAL([HAVE_RUBY],
-dnl     [test "x$RAKE" != "xno" -a -n "$HAVE_LIBRUBY"])
+AM_CONDITIONAL([HAVE_RUBY],
+    [test "x$RAKE" != "xno" && test -n "$HAVE_LIBRUBY"])
 
 dnl dnl Check for Java.
 dnl AC_ARG_WITH(java_home,
@@ -291,7 +284,7 @@ dnl     [],
 dnl     [with_java_home=check])
 
 dnl if test "x$with_java_home" != "xno"; then
-dnl     if test "x$with_java_home" != "xyes" -a "x$with_java_home" != "xcheck"
+dnl     if test "x$with_java_home" != "xyes" && test "x$with_java_home" != "xcheck"
 dnl     then
 dnl         # Reject unsafe characters in $JAVA_HOME
 dnl         jh_lf='
@@ -313,7 +306,7 @@ dnl         for d in \
 dnl             /usr/lib/jvm/java \
 dnl             /usr/lib/jvm/java-6-openjdk
 dnl         do
-dnl             if test -d $d -a -f $d/bin/java; then
+dnl             if test -d $d && test -f $d/bin/java; then
 dnl                 JAVA_HOME=$d
 dnl                 break
 dnl             fi
@@ -432,6 +425,7 @@ dnl     [test "x$GHC" != "xno"])
 dnl Produce output files.
 AC_CONFIG_HEADERS([config.h])
 AC_CONFIG_FILES([Makefile
+                 generator/Makefile
                  gnulib/lib/Makefile
                  gnulib/tests/Makefile
                  hivex.pc
@@ -440,10 +434,13 @@ AC_CONFIG_FILES([Makefile
                  lib/tools/Makefile
                  ocaml/Makefile ocaml/META
                  perl/Makefile perl/Makefile.PL
+                 python/Makefile
                  po/Makefile.in
                  regedit/Makefile
+                 ruby/Makefile ruby/Rakefile
                  sh/Makefile
                  xml/Makefile])
+AC_CONFIG_FILES([python/run-python-tests], [chmod +x python/run-python-tests])
 AC_OUTPUT
 
 dnl Produce summary.
@@ -458,10 +455,10 @@ echo -n "OCaml bindings ...................... "
 if test "x$HAVE_OCAML_TRUE" = "x"; then echo "yes"; else echo "no"; fi
 echo -n "Perl bindings ....................... "
 if test "x$HAVE_PERL_TRUE" = "x"; then echo "yes"; else echo "no"; fi
-dnl echo -n "Python bindings ..................... "
-dnl if test "x$HAVE_PYTHON_TRUE" = "x"; then echo "yes"; else echo "no"; fi
-dnl echo -n "Ruby bindings ....................... "
-dnl if test "x$HAVE_RUBY_TRUE" = "x"; then echo "yes"; else echo "no"; fi
+echo -n "Python bindings ..................... "
+if test "x$HAVE_PYTHON_TRUE" = "x"; then echo "yes"; else echo "no"; fi
+echo -n "Ruby bindings ....................... "
+if test "x$HAVE_RUBY_TRUE" = "x"; then echo "yes"; else echo "no"; fi
 dnl echo -n "Java bindings ....................... "
 dnl if test "x$HAVE_JAVA_TRUE" = "x"; then echo "yes"; else echo "no"; fi
 dnl echo -n "Haskell bindings .................... "