AC_INIT([MUMmer], [4.0.0beta1], [gmarcais@umd.edu]) AC_CANONICAL_HOST AC_CONFIG_MACRO_DIR([m4]) AM_INIT_AUTOMAKE([subdir-objects foreign parallel-tests color-tests]) AM_SILENT_RULES([yes]) AC_CONFIG_SRCDIR([.]) AC_CONFIG_HEADERS([config.h]) AC_PROG_LIBTOOL # Check for compiler and flags AS_IF([test -z "$CXXFLAGS"], [cxxflags_given=no], [cxxflags_given=yes]) AC_LANG(C++) AC_PROG_CXX AC_PROG_CC AC_PATH_PROG(ENV_PROG, [env]) # Add -std=c++0x always. Add -DNDEBUG only if CXXFLAGS is not given on command line CXXFLAGS="-std=c++0x $CXXFLAGS" AS_IF([test x$cxxflags_given = xno], [CXXFLAGS="-DNDEBUG $CXXFLAGS"]) EXTRA_CXXFLAGS= AC_SUBST([EXTRA_CXXFLAGS]) # Check for openmp AC_ARG_ENABLE([openmp], [AS_HELP_STRING([--disable-openmp], [Disable OpenMP, even if available])]) AS_IF([test "x$enable_openmp" != "xno"], # OpenMP enabled. Check if available [AX_OPENMP([AC_DEFINE(HAVE_OPENMP,1,[Define if OpenMP is enabled])])] [EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS $OPENMP_CXXFLAGS"], # OpenMP disabled. Ignore pragma warnings [EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS -Wno-unknown-pragmas"]) # Check for yaggo AC_ARG_VAR([YAGGO], [Yaggo switch parser generator]) AS_IF([test "x$YAGGO" = "x"], [AC_PATH_PROG([YAGGO], [yaggo], [false])]) # Check for gnuplot AC_ARG_VAR([GNUPLOT], [Gnuplot plotting program]) AS_IF([test "x$GNUPLOT" = "x"], [AC_PATH_PROGS([GNUPLOT], [gnuplot gnuplot5 gnuplot4], [false])]) # Check that type __int128 is supported and if the AC_ARG_WITH([int128], [AS_HELP_STRING([--with-int128], [enable int128])], [], [with_int128=yes]) AS_IF([test "x$with_int128" != xno], [AC_CHECK_TYPE([__int128], [AC_DEFINE([HAVE_INT128], [1], [Define if type __int128 is supported])])]) # Check if std::thread::sleep_for is supported AC_MSG_CHECKING([if std::thread::sleep_for is supported]) try_nano_sleep= AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <thread>]], [[std::this_thread::sleep_for(std::chrono::seconds(1))]])], [AC_MSG_RESULT([yes])], [try_nano_sleep=yes]) AS_IF([test x$try_nano_sleep = xyes], [save_cxxflags="$CXXFLAGS"] [CXXFLAGS="-D_GLIBCXX_USE_NANOSLEEP $CXXFLAGS"] [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <thread>]], [[std::this_thread::sleep_for(std::chrono::seconds(1))]])], [AC_MSG_RESULT([yes])] [EXTRA_CXXFLAGS="-D_GLIBCXX_USE_NANOSLEEP $EXTRA_CXXFLAGS"], [AC_MSG_RESULT([no])] [AC_MSG_FAILURE([Compiler does not support std::this_thread::sleep_for])])] [CXXFLAGS="$save_cxxflags"]) # # SWIG and bindings # need_shared_libraries=no # --enable-python-binding AC_ARG_ENABLE([python-binding], [AC_HELP_STRING([--enable-python-binding@<:@=PATH@:>@], [create SWIG python module and install in PATH])]) # --enable-ruby-binding AC_ARG_ENABLE([ruby-binding], [AC_HELP_STRING([--enable-ruby-binding@<:@=PATH@:>@], [create SWIG ruby module and install in PATH])]) # --enable-perl-binding AC_ARG_ENABLE([perl-binding], [AC_HELP_STRING([--enable-perl-binding@<:@=PATH@:>@], [create SWIG perl module and install in PATH])]) # --enable-swig AC_ARG_ENABLE([swig], [AC_HELP_STRING([--enable-swig], [enable development of swig binding])]) AS_IF([test x$enable_swig = xyes], [AX_PKG_SWIG([3.0.0], [], [AC_MSG_ERROR([SWIG version 3 is required])])]) AS_IF([test -n "$SWIG"], [SWIG_ENABLE_CXX]) AM_CONDITIONAL([HAVE_SWIG], [test -n "$SWIG"]) # Python binding setup AM_CONDITIONAL(PYTHON_BINDING, [test -n "$enable_python_binding" -a x$enable_python_binding != xno]) AM_COND_IF([PYTHON_BINDING], [AS_IF([test "x$enable_python_binding" != xyes], [PYTHON_SITE_PKG=$enable_python_binding], [test "x$prefix" != xNONE], [PYTHON_SITE_PKG=$libdir/python])] [AX_PYTHON_DEVEL] [need_shared_libraries=yes]) # Ruby binding setup AM_CONDITIONAL([RUBY_BINDING], [test -n "$enable_ruby_binding" -a x$enable_ruby_binding != xno]) AM_COND_IF([RUBY_BINDING], [AS_IF([test "x$enable_ruby_binding" != xyes], [RUBY_EXT_LIB=$enable_ruby_binding], [test "x$prefix" != xNONE], [RUBY_EXT_LIB=$libdir/ruby])] [AX_RUBY_EXT] [need_shared_libraries=yes]) # Perl binding setup AM_CONDITIONAL([PERL_BINDING], [test -n "$enable_perl_binding" -a x$enable_perl_binding != xno]) AM_COND_IF([PERL_BINDING], [AS_IF([test "x$enable_perl_binding" != xyes], [PERL_EXT_LIB=$enable_perl_binding], [test "x$prefix" != xNONE], [PERL_EXT_LIB=$libdir/perl])] [need_shared_libraries=yes]) # Look for Perl even if no binding desired. It is required for some # scripts (e.g. mummerplot) AX_PERL_EXT AS_IF([test x"$PERL" = x], [AC_MSG_ERROR([Perl5 not found])]) # Check that shared libraries are enabled if needed by SWIG bindings AS_IF([test "x$need_shared_libraries" = xyes -a "x$enable_shared" = xno], [AC_MSG_ERROR([Shared libraries are required for the SWIG script binding but are disabled (probably by the switch --disable-shared)])]) AS_IF([test "x$need_shared_libraries" = xyes -a "x$can_build_shared" = xno], [AC_MSG_ERROR([Shared libraries (modules) are required for the SWIG script binding but cannot be build (probably not supported by the compiler)])]) AC_MSG_NOTICE([compiling with flags: CXXFLAGS=$CXXFLAGS]) AC_CONFIG_FILES([Makefile]) AC_OUTPUT