-
Notifications
You must be signed in to change notification settings - Fork 41
Expand file tree
/
Copy pathconfigure.ac
More file actions
99 lines (85 loc) · 2.74 KB
/
configure.ac
File metadata and controls
99 lines (85 loc) · 2.74 KB
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
#
# Semigroups GAP package
#
# This file is part of the build system of a GAP kernel extension.
# Requires GNU autoconf, GNU automake and GNU libtool.
#
dnl ##
dnl ## Setup autoconf
dnl ##
AC_PREREQ([2.68])
AC_INIT([semigroups], [GAP package])
AC_CONFIG_SRCDIR([src/pkg.cpp])
AC_CONFIG_HEADERS([gen/pkgconfig.h:src/pkgconfig.h.in])
AC_CONFIG_MACRO_DIR([m4])
AX_PREFIX_CONFIG_H([src/semigroups-config.hpp],[semigroups],[gen/pkgconfig.h])
dnl ## abs_top_builddir seems to hold the top build dir for the subpackage
dnl ## libsemigroups which is why this contains ../
AC_PREFIX_DEFAULT('${abs_top_builddir}/../bin/')
dnl ##
dnl ## Set the language
dnl ##
AC_PROG_CXX
AC_LANG([C++])
AX_CXX_COMPILE_STDCXX_14(,[mandatory])
dnl compiler builtins
AC_DEFUN([CHECK_COMPILER_BUILTIN],
[AC_MSG_CHECKING([for $1])
AC_LINK_IFELSE(
[AC_LANG_PROGRAM(
[[]],
[$1[($2)];
]
)],
[AS_VAR_SET([[have_]$1], [yes])],
[AS_VAR_SET([[have_]$1], [no])]
)
AC_MSG_RESULT(AS_VAR_GET([[have_]$1]))
AS_IF([test yes = AS_VAR_GET([[have_]$1])],
[AC_DEFINE_UNQUOTED(AS_TR_CPP([HAVE_]$1), 1,
[Define to 1 if the system has the `]$1[' built-in function])],
[AC_MSG_ERROR([`]$1[' is required, giving up.])]
)])
CHECK_COMPILER_BUILTIN([__builtin_unreachable],[]);
dnl ##
dnl ## Locate the GAP root dir
dnl ##
FIND_GAP
dnl ##
dnl ## Check for pthread, this seems to be required to compile with GCC
dnl ##
AX_PTHREAD(,[AC_MSG_ERROR([pthread is required])])
AC_CHECK_LIB([pthread], [pthread_create])
dnl ##
dnl ## Detect Windows resp. Cygwin
dnl ##
case $host_os in
*cygwin* ) AC_SUBST(SYS_IS_CYGWIN, yes);;
esac
dnl ## Check for libsemigroups
AX_CHECK_LIBSEMIGROUPS
AS_IF([test "x$with_external_libsemigroups" = "xyes"],
[for flag in $ac_configure_args; do
flag=$(echo "$flag" | tr -d "'")
case $flag in
--enable-hpcombi|--disable-hpcombi|--enable-backward|--disable-backward|--enable-eigen|--disable-eigen|--with-external-backward|--with-external-fmt|--with-external-eigen|--enable-popcnt|--disable-popcnt|--enable-clzll|--disable-clzll)
AC_MSG_ERROR([the flag $flag is incompatible with --with-external-libsemigroups, the external libsemigroups may have been built with a different setting])
;;
esac
done
])
dnl ## User setting: Debug mode (off by default)
AC_ARG_ENABLE([debug],
[AS_HELP_STRING([--enable-debug], [enable debug mode])],
[AC_DEFINE([KERNEL_DEBUG], [1], [define if building in debug mode])],
[enable_debug=no]
)
AC_MSG_CHECKING([whether to enable debug mode])
AC_MSG_RESULT([$enable_debug])
KERNEL_DEBUG=$enable_debug
AC_SUBST(KERNEL_DEBUG)
dnl ##
dnl ## Output everything
dnl ##
AC_CONFIG_FILES([GNUmakefile])
AC_OUTPUT