forked from mummer4/mummer
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathconfigure.ac
125 lines (109 loc) · 5.42 KB
/
configure.ac
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
AC_INIT([MUMmer], [4.0.0beta1], [[email protected]])
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