X-Git-Url: http://git.annexia.org/?a=blobdiff_plain;f=configure.ac;h=33c09dbe79bd9ebd5efa3721cd724732c296004a;hb=87e1be8ff3431ac81d721d5f647fc85d02e045dc;hp=58bb80b0c53acaa97784adc9a804cfbe1930b115;hpb=41a77ad946dec661900c0df16faf8d5432c0f38e;p=hivex.git diff --git a/configure.ac b/configure.ac index 58bb80b..33c09db 100644 --- a/configure.ac +++ b/configure.ac @@ -18,7 +18,7 @@ # major/minor/release must be numbers m4_define([hivex_major], [1]) m4_define([hivex_minor], [3]) -m4_define([hivex_release], [1]) +m4_define([hivex_release], [3]) # extra can be any string m4_define([hivex_extra], []) @@ -89,6 +89,9 @@ if test "$gl_gcc_warnings" = yes; then nw="$nw -Wpacked" # Allow attribute((packed)) on structs nw="$nw -Wlong-long" # Allow long long since it's required # by xstrtoll. + nw="$nw -Wsuggest-attribute=pure" # Don't suggest pure functions. +# nw="$nw -Wsuggest-attribute=const" # Don't suggest const functions. +# nw="$nw -Wunsuffixed-float-constants" # Don't care about these. gl_MANYWARN_ALL_GCC([ws]) gl_MANYWARN_COMPLEMENT([ws], [$ws], [$nw]) @@ -131,7 +134,13 @@ dnl Check sizeof long. AC_CHECK_SIZEOF([long]) dnl Headers. -AC_CHECK_HEADERS([endian.h byteswap.h]) +AC_CHECK_HEADERS([byteswap.h endian.h libintl.h]) + +dnl Check for mmap +AC_REPLACE_FUNCS([mmap]) + +dnl Functions. +AC_CHECK_FUNCS([bindtextdomain]) dnl Check for pod2man and pod2text. AC_CHECK_PROG([POD2MAN],[pod2man],[pod2man],[no]) @@ -170,6 +179,10 @@ PKG_CHECK_MODULES([LIBXML2], [libxml-2.0]) AC_SUBST([LIBXML2_CFLAGS]) AC_SUBST([LIBXML2_LIBS]) +dnl hivexsh depends on open_memstream, which is absent on OS X. +AC_CHECK_FUNC([open_memstream]) +AM_CONDITIONAL([HAVE_HIVEXSH],[test "x$ac_cv_func_open_memstream" = "xyes"]) + dnl Check for OCaml (optional, for OCaml bindings). AC_PROG_OCAML AC_PROG_FINDLIB @@ -231,14 +244,23 @@ AM_CONDITIONAL([HAVE_PERL], [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= +PYTHON_INCLUDEDIR= +PYTHON_INSTALLDIR= + +AC_CHECK_PROG([PYTHON],[python],[python],[no]) 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([Python prefix]) + PYTHON_PREFIX=`$PYTHON -c "import sys; print (sys.prefix)"` + AC_MSG_RESULT([$PYTHON_PREFIX]) + + AC_MSG_CHECKING([Python version]) + PYTHON_VERSION_MAJOR=`$PYTHON -c "import sys; print (sys.version_info@<:@0@:>@)"` + PYTHON_VERSION_MINOR=`$PYTHON -c "import sys; print (sys.version_info@<:@1@:>@)"` + PYTHON_VERSION="$PYTHON_VERSION_MAJOR.$PYTHON_VERSION_MINOR" + AC_MSG_RESULT([$PYTHON_VERSION]) AC_MSG_CHECKING([for Python include path]) if test -z "$PYTHON_INCLUDEDIR"; then @@ -248,30 +270,61 @@ if test "x$PYTHON" != "xno"; then 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));"` + AC_ARG_WITH([python-installdir], + [AS_HELP_STRING([--with-python-installdir], + [directory to install python modules @<:@default=check@:>@])], + [PYTHON_INSTALLDIR="$withval" + AC_MSG_NOTICE([Python install dir $PYTHON_INSTALLDIR])], + [PYTHON_INSTALLDIR=check]) + + if test "x$PYTHON_INSTALLDIR" = "xcheck"; then + PYTHON_INSTALLDIR= + AC_MSG_CHECKING([for Python site-packages path]) + if test -z "$PYTHON_INSTALLDIR"; then + PYTHON_INSTALLDIR=`$PYTHON -c "import distutils.sysconfig; \ + print (distutils.sysconfig.get_python_lib(1,0));"` + fi + AC_MSG_RESULT([$PYTHON_INSTALLDIR]) fi - AC_MSG_RESULT([$PYTHON_SITE_PACKAGES]) + dnl Look for libpython and some optional symbols in it. old_LIBS="$LIBS" - LIBS="$LIBS -lpython$PYTHON_VERSION" - AC_CHECK_FUNCS([PyCapsule_New]) + if test "x$PYTHON_VERSION_MAJOR" = "x3"; then + dnl libpython3 is called "libpython3.Xmu.so" + LIBPYTHON="python${PYTHON_VERSION}mu" + else + LIBPYTHON="python$PYTHON_VERSION" + fi + AC_CHECK_LIB([$LIBPYTHON], [PyList_Size], [], + [AC_MSG_FAILURE([$LIBPYTHON is not installed])]) + + AC_CHECK_FUNCS([PyCapsule_New \ + PyString_AsString]) LIBS="$old_LIBS" fi AC_SUBST(PYTHON_PREFIX) AC_SUBST(PYTHON_VERSION) AC_SUBST(PYTHON_INCLUDEDIR) -AC_SUBST(PYTHON_SITE_PACKAGES) +AC_SUBST(PYTHON_INSTALLDIR) AM_CONDITIONAL([HAVE_PYTHON], - [test "x$PYTHON_INCLUDEDIR" != "x" && test "x$PYTHON_SITE_PACKAGES" != "x"]) + [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"])