# major/minor/release must be numbers
m4_define([hivex_major], [1])
-m4_define([hivex_minor], [0])
-m4_define([hivex_release], [75])
+m4_define([hivex_minor], [2])
+m4_define([hivex_release], [2])
# extra can be any string
m4_define([hivex_extra], [])
AM_PROG_CC_C_O
+dnl Work out how to specify the linker script to the linker.
+VERSION_SCRIPT_FLAGS=-Wl,--version-script=
+`/usr/bin/ld --help 2>&1 | grep -- --version-script >/dev/null` || \
+ VERSION_SCRIPT_FLAGS="-Wl,-M -Wl,"
+AC_SUBST(VERSION_SCRIPT_FLAGS)
+
dnl Check support for 64 bit file offsets.
AC_SYS_LARGEFILE
LIBREADLINE=
AS_IF([test "x$with_readline" != xno],
[AC_CHECK_LIB([readline], [main],
- [AC_SUBST([LIBREADLINE], ["-lreadline -lncurses"])
+ [AC_SUBST([LIBREADLINE], ["-lreadline"])
AC_DEFINE([HAVE_LIBREADLINE], [1],
[Define if you have libreadline])
],
AC_MSG_FAILURE(
[--with-readline was given, but test for readline failed])
fi
- ], -lncurses)])
+ ])])
dnl For i18n.
AM_GNU_GETTEXT([external])
AC_PROG_FINDLIB
AM_CONDITIONAL([HAVE_OCAML],[test "x$OCAMLC" != "xno" -a "x$OCAMLFIND" != "xno"])
+if test "x$OCAMLC" != "xno"; then
+ dnl Check if we have caml/unixsupport.h header (OCaml bindings only).
+ old_CFLAGS="$CFLAGS"
+ CFLAGS="$CFLAGS -I$OCAMLLIB"
+ AC_CHECK_HEADERS([caml/unixsupport.h],[],[],
+ [
+ #include <caml/config.h>
+ #include <caml/mlvalues.h>
+ ])
+ CFLAGS="$old_CFLAGS"
+
+ dnl Do we have function caml_raise_with_args?
+ f=caml_raise_with_args
+ AC_MSG_CHECKING([for function $f])
+ 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
+ AC_DEFINE([HAVE_CAML_RAISE_WITH_ARGS],[1],
+ [Defined if function caml_raise_with_args exists.])
+ AC_MSG_RESULT([found])
+ else
+ AC_MSG_RESULT([not found])
+ fi
+ rm -f conftest conftest.* conftest_ml.*
+fi
+
dnl Check for Perl (optional, for Perl bindings).
dnl XXX This isn't quite right, we should check for Perl devel library.
AC_CHECK_PROG([PERL],[perl],[perl],[no])
dnl Check for Perl modules that must be present to compile and
dnl test the Perl bindings.
missing_perl_modules=no
-for pm in Test::More Test::Pod Test::Pod::Coverage ExtUtils::MakeMaker; do
+for pm in Test::More ExtUtils::MakeMaker IO::Stringy; do
AC_MSG_CHECKING([for $pm])
if ! perl -M$pm -e1 >/dev/null 2>&1; then
AC_MSG_RESULT([no])
AM_CONDITIONAL([HAVE_PERL],
[test "x$PERL" != "xno" -a "x$missing_perl_modules" != "xyes"])
-dnl Check for Python (optional, for Python bindings).
-AC_CHECK_PROG([PYTHON],[python],[python],[no])
-
-PYTHON_PREFIX=
-PYTHON_VERSION=
-PYTHON_INCLUDEDIR=
-PYTHON_SITE_PACKAGES=
-
-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]]"`
- for d in \
- $PYTHON_PREFIX/include/python$PYTHON_VERSION \
- /usr/include/python$PYTHON_VERSION \
- /usr/local/include/python$PYTHON_VERSION
- do
- AC_MSG_CHECKING([Python.h in $d])
- if test -r "$d/Python.h"; then
- AC_MSG_RESULT([found])
- PYTHON_INCLUDEDIR=$d
- break
- fi
- AC_MSG_RESULT([not found])
- done
- for d in \
- $PYTHON_PREFIX/lib64/python$PYTHON_VERSION/site-packages \
- $PYTHON_PREFIX/lib/python$PYTHON_VERSION/site-packages \
- /usr/lib64/python$PYTHON_VERSION/site-packages \
- /usr/lib/python$PYTHON_VERSION/site-packages \
- /usr/local/lib/python$PYTHON_VERSION/site-packages
- do
- AC_MSG_CHECKING([for $d])
- if test -d "$d"; then
- AC_MSG_RESULT([found])
- PYTHON_SITE_PACKAGES=$d
- break
- fi
- AC_MSG_RESULT([not found])
- done
-fi
-
-AC_SUBST(PYTHON_PREFIX)
-AC_SUBST(PYTHON_VERSION)
-AC_SUBST(PYTHON_INCLUDEDIR)
-AC_SUBST(PYTHON_SITE_PACKAGES)
-
-AM_CONDITIONAL([HAVE_PYTHON],
- [test "x$PYTHON_INCLUDEDIR" != "x" -a "x$PYTHON_SITE_PACKAGES" != "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])
-
-AM_CONDITIONAL([HAVE_RUBY],
- [test "x$RAKE" != "xno" -a -n "$HAVE_LIBRUBY"])
-
-dnl Check for Java.
-AC_ARG_WITH(java_home,
- [AS_HELP_STRING([--with-java-home],
- [specify path to JDK directory @<:@default=check@:>@])],
- [],
- [with_java_home=check])
-
-if test "x$with_java_home" != "xno"; then
- if test "x$with_java_home" != "xyes" -a "x$with_java_home" != "xcheck"
- then
- # Reject unsafe characters in $JAVA_HOME
- jh_lf='
-'
- case $JAVA_HOME in
- *[\\\"\#\$\&\'\`$jh_lf\ \ ]*)
- AC_MSG_FAILURE([unsafe \$JAVA_HOME directory (use --with-java-home=no to disable Java support)]);;
- esac
- if test -d "$with_java_home"; then
- JAVA_HOME="$with_java_home"
- else
- AC_MSG_FAILURE([$with_java_home is not a directory (use --with-java-home=no to disable Java support)])
- fi
- fi
-
- if test "x$JAVA_HOME" = "x"; then
- # Look for Java in some likely locations.
- for d in \
- /usr/lib/jvm/java \
- /usr/lib/jvm/java-6-openjdk
- do
- if test -d $d -a -f $d/bin/java; then
- JAVA_HOME=$d
- break
- fi
- done
- fi
-
- if test "x$JAVA_HOME" != "x"; then
- AC_MSG_CHECKING(for JDK in $JAVA_HOME)
- if test ! -x "$JAVA_HOME/bin/java"; then
- AC_MSG_ERROR([missing $JAVA_HOME/bin/java binary (use --with-java-home=no to disable Java support)])
- else
- JAVA="$JAVA_HOME/bin/java"
- fi
- if test ! -x "$JAVA_HOME/bin/javac"; then
- AC_MSG_ERROR([missing $JAVA_HOME/bin/javac binary])
- else
- JAVAC="$JAVA_HOME/bin/javac"
- fi
- if test ! -x "$JAVA_HOME/bin/javah"; then
- AC_MSG_ERROR([missing $JAVA_HOME/bin/javah binary])
- else
- JAVAH="$JAVA_HOME/bin/javah"
- fi
- if test ! -x "$JAVA_HOME/bin/javadoc"; then
- AC_MSG_ERROR([missing $JAVA_HOME/bin/javadoc binary])
- else
- JAVADOC="$JAVA_HOME/bin/javadoc"
- fi
- if test ! -x "$JAVA_HOME/bin/jar"; then
- AC_MSG_ERROR([missing $JAVA_HOME/bin/jar binary])
- else
- JAR="$JAVA_HOME/bin/jar"
- fi
- java_version=`$JAVA -version 2>&1 | grep "java version"`
- AC_MSG_RESULT(found $java_version in $JAVA_HOME)
-
- dnl Find jni.h.
- AC_MSG_CHECKING([for jni.h])
- if test -f "$JAVA_HOME/include/jni.h"; then
- JNI_CFLAGS="-I$JAVA_HOME/include"
- else
- if test "`find $JAVA_HOME -name jni.h`" != ""; then
- head=`find $JAVA_HOME -name jni.h | tail -1`
- dir=`dirname "$head"`
- JNI_CFLAGS="-I$dir"
- else
- AC_MSG_FAILURE([missing jni.h header file])
- fi
- fi
- AC_MSG_RESULT([$JNI_CFLAGS])
-
- dnl Find jni_md.h.
- AC_MSG_CHECKING([for jni_md.h])
- case "$build_os" in
- *linux*) system="linux" ;;
- *SunOS*) system="solaris" ;;
- *cygwin*) system="win32" ;;
- *) system="$build_os" ;;
- esac
- if test -f "$JAVA_HOME/include/$system/jni_md.h"; then
- JNI_CFLAGS="$JNI_CFLAGS -I$JAVA_HOME/include/$system"
- else
- if test "`find $JAVA_HOME -name jni_md.h`" != ""; then
- head=`find $JAVA_HOME -name jni_md.h | tail -1`
- dir=`dirname "$head"`
- JNI_CFLAGS="$JNI_CFLAGS -I$dir"
- else
- AC_MSG_FAILURE([missing jni_md.h header file])
- fi
- fi
- AC_MSG_RESULT([$JNI_CFLAGS])
-
- dnl Need extra version flag?
- AC_MSG_CHECKING([extra javac flags])
- JAVAC_FLAGS=
- javac_version=`$JAVAC -version 2>&1`
- case "$javac_version" in
- *Eclipse*)
- JAVAC_FLAGS="-source 1.5" ;;
- esac
- AC_MSG_RESULT([$JAVAC_FLAGS])
-
- dnl Where to install jarfiles.
- dnl XXX How to make it configurable?
- JAR_INSTALL_DIR=\${prefix}/share/java
- JNI_INSTALL_DIR=\${libdir}
-
- dnl JNI version.
- jni_major_version=`echo "$VERSION" | awk -F. '{print $1}'`
- jni_minor_version=`echo "$VERSION" | awk -F. '{print $2}'`
- jni_micro_version=`echo "$VERSION" | awk -F. '{print $3}'`
- JNI_VERSION_INFO=`expr "$jni_major_version" + "$jni_minor_version"`":$jni_micro_version:$jni_minor_version"
- fi
-fi
-
-AC_SUBST(JAVA_HOME)
-AC_SUBST(JAVA)
-AC_SUBST(JAVAC)
-AC_SUBST(JAVAH)
-AC_SUBST(JAVADOC)
-AC_SUBST(JAR)
-AC_SUBST(JNI_CFLAGS)
-AC_SUBST(JAVAC_FLAGS)
-AC_SUBST(JAR_INSTALL_DIR)
-AC_SUBST(JNI_INSTALL_DIR)
-AC_SUBST(JNI_VERSION_INFO)
-
-AM_CONDITIONAL([HAVE_JAVA],[test -n "$JAVAC"])
-
-dnl Check for Haskell (GHC).
-AC_CHECK_PROG([GHC],[ghc],[ghc],[no])
-
-AM_CONDITIONAL([HAVE_HASKELL],
- [test "x$GHC" != "xno"])
+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
+
+dnl AC_SUBST(PYTHON_PREFIX)
+dnl AC_SUBST(PYTHON_VERSION)
+dnl AC_SUBST(PYTHON_INCLUDEDIR)
+dnl AC_SUBST(PYTHON_SITE_PACKAGES)
+
+dnl AM_CONDITIONAL([HAVE_PYTHON],
+dnl [test "x$PYTHON_INCLUDEDIR" != "x" -a "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 AM_CONDITIONAL([HAVE_RUBY],
+dnl [test "x$RAKE" != "xno" -a -n "$HAVE_LIBRUBY"])
+
+dnl dnl Check for Java.
+dnl AC_ARG_WITH(java_home,
+dnl [AS_HELP_STRING([--with-java-home],
+dnl [specify path to JDK directory @<:@default=check@:>@])],
+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 then
+dnl # Reject unsafe characters in $JAVA_HOME
+dnl jh_lf='
+dnl '
+dnl case $JAVA_HOME in
+dnl *[\\\"\#\$\&\'\`$jh_lf\ \ ]*)
+dnl AC_MSG_FAILURE([unsafe \$JAVA_HOME directory (use --with-java-home=no to disable Java support)]);;
+dnl esac
+dnl if test -d "$with_java_home"; then
+dnl JAVA_HOME="$with_java_home"
+dnl else
+dnl AC_MSG_FAILURE([$with_java_home is not a directory (use --with-java-home=no to disable Java support)])
+dnl fi
+dnl fi
+
+dnl if test "x$JAVA_HOME" = "x"; then
+dnl # Look for Java in some likely locations.
+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 JAVA_HOME=$d
+dnl break
+dnl fi
+dnl done
+dnl fi
+
+dnl if test "x$JAVA_HOME" != "x"; then
+dnl AC_MSG_CHECKING(for JDK in $JAVA_HOME)
+dnl if test ! -x "$JAVA_HOME/bin/java"; then
+dnl AC_MSG_ERROR([missing $JAVA_HOME/bin/java binary (use --with-java-home=no to disable Java support)])
+dnl else
+dnl JAVA="$JAVA_HOME/bin/java"
+dnl fi
+dnl if test ! -x "$JAVA_HOME/bin/javac"; then
+dnl AC_MSG_ERROR([missing $JAVA_HOME/bin/javac binary])
+dnl else
+dnl JAVAC="$JAVA_HOME/bin/javac"
+dnl fi
+dnl if test ! -x "$JAVA_HOME/bin/javah"; then
+dnl AC_MSG_ERROR([missing $JAVA_HOME/bin/javah binary])
+dnl else
+dnl JAVAH="$JAVA_HOME/bin/javah"
+dnl fi
+dnl if test ! -x "$JAVA_HOME/bin/javadoc"; then
+dnl AC_MSG_ERROR([missing $JAVA_HOME/bin/javadoc binary])
+dnl else
+dnl JAVADOC="$JAVA_HOME/bin/javadoc"
+dnl fi
+dnl if test ! -x "$JAVA_HOME/bin/jar"; then
+dnl AC_MSG_ERROR([missing $JAVA_HOME/bin/jar binary])
+dnl else
+dnl JAR="$JAVA_HOME/bin/jar"
+dnl fi
+dnl java_version=`$JAVA -version 2>&1 | grep "java version"`
+dnl AC_MSG_RESULT(found $java_version in $JAVA_HOME)
+
+dnl dnl Find jni.h.
+dnl AC_MSG_CHECKING([for jni.h])
+dnl if test -f "$JAVA_HOME/include/jni.h"; then
+dnl JNI_CFLAGS="-I$JAVA_HOME/include"
+dnl else
+dnl if test "`find $JAVA_HOME -name jni.h`" != ""; then
+dnl head=`find $JAVA_HOME -name jni.h | tail -1`
+dnl dir=`dirname "$head"`
+dnl JNI_CFLAGS="-I$dir"
+dnl else
+dnl AC_MSG_FAILURE([missing jni.h header file])
+dnl fi
+dnl fi
+dnl AC_MSG_RESULT([$JNI_CFLAGS])
+
+dnl dnl Find jni_md.h.
+dnl AC_MSG_CHECKING([for jni_md.h])
+dnl case "$build_os" in
+dnl *linux*) system="linux" ;;
+dnl *SunOS*) system="solaris" ;;
+dnl *cygwin*) system="win32" ;;
+dnl *) system="$build_os" ;;
+dnl esac
+dnl if test -f "$JAVA_HOME/include/$system/jni_md.h"; then
+dnl JNI_CFLAGS="$JNI_CFLAGS -I$JAVA_HOME/include/$system"
+dnl else
+dnl if test "`find $JAVA_HOME -name jni_md.h`" != ""; then
+dnl head=`find $JAVA_HOME -name jni_md.h | tail -1`
+dnl dir=`dirname "$head"`
+dnl JNI_CFLAGS="$JNI_CFLAGS -I$dir"
+dnl else
+dnl AC_MSG_FAILURE([missing jni_md.h header file])
+dnl fi
+dnl fi
+dnl AC_MSG_RESULT([$JNI_CFLAGS])
+
+dnl dnl Need extra version flag?
+dnl AC_MSG_CHECKING([extra javac flags])
+dnl JAVAC_FLAGS=
+dnl javac_version=`$JAVAC -version 2>&1`
+dnl case "$javac_version" in
+dnl *Eclipse*)
+dnl JAVAC_FLAGS="-source 1.5" ;;
+dnl esac
+dnl AC_MSG_RESULT([$JAVAC_FLAGS])
+
+dnl dnl Where to install jarfiles.
+dnl dnl XXX How to make it configurable?
+dnl JAR_INSTALL_DIR=\${prefix}/share/java
+dnl JNI_INSTALL_DIR=\${libdir}
+
+dnl dnl JNI version.
+dnl jni_major_version=`echo "$VERSION" | awk -F. '{print $1}'`
+dnl jni_minor_version=`echo "$VERSION" | awk -F. '{print $2}'`
+dnl jni_micro_version=`echo "$VERSION" | awk -F. '{print $3}'`
+dnl JNI_VERSION_INFO=`expr "$jni_major_version" + "$jni_minor_version"`":$jni_micro_version:$jni_minor_version"
+dnl fi
+dnl fi
+
+dnl AC_SUBST(JAVA_HOME)
+dnl AC_SUBST(JAVA)
+dnl AC_SUBST(JAVAC)
+dnl AC_SUBST(JAVAH)
+dnl AC_SUBST(JAVADOC)
+dnl AC_SUBST(JAR)
+dnl AC_SUBST(JNI_CFLAGS)
+dnl AC_SUBST(JAVAC_FLAGS)
+dnl AC_SUBST(JAR_INSTALL_DIR)
+dnl AC_SUBST(JNI_INSTALL_DIR)
+dnl AC_SUBST(JNI_VERSION_INFO)
+
+dnl AM_CONDITIONAL([HAVE_JAVA],[test -n "$JAVAC"])
+
+dnl dnl Check for Haskell (GHC).
+dnl AC_CHECK_PROG([GHC],[ghc],[ghc],[no])
+
+dnl AM_CONDITIONAL([HAVE_HASKELL],
+dnl [test "x$GHC" != "xno"])
dnl Produce output files.
AC_CONFIG_HEADERS([config.h])
gnulib/lib/Makefile
gnulib/tests/Makefile
hivex.pc
- hivex/Makefile
- hivex/t/Makefile
- hivex/tools/Makefile
- po/Makefile.in])
+ images/Makefile
+ lib/Makefile
+ lib/tools/Makefile
+ ocaml/Makefile ocaml/META
+ perl/Makefile perl/Makefile.PL
+ po/Makefile.in
+ regedit/Makefile
+ sh/Makefile
+ xml/Makefile])
AC_OUTPUT
dnl Produce summary.
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
-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
-echo -n "Java bindings ....................... "
-if test "x$HAVE_JAVA_TRUE" = "x"; then echo "yes"; else echo "no"; fi
-echo -n "Haskell bindings .................... "
-if test "x$HAVE_HASKELL" = "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
+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 .................... "
+dnl if test "x$HAVE_HASKELL" = "x"; then echo "yes"; else echo "no"; fi
echo
echo "If any optional component is configured 'no' when you expected 'yes'"
echo "then you should check the preceeding messages."