source: git/configure.ac @ 9bed75

spielwiese
Last change on this file since 9bed75 was 9bed75, checked in by Hans Schoenemann <hannes@…>, 4 years ago
config: test for Python.h
  • Property mode set to 100644
File size: 9.6 KB
Line 
1AC_INIT([singular], [4.1.3], [singular@mathematik.uni-kl.de])
2AC_DEFINE([VERSION_DATE],["Mar 2020"],[release date])
3
4_AC_SRCDIRS(["$ac_dir"])
5
6AC_CONFIG_MACRO_DIR([m4])
7AC_CONFIG_AUX_DIR([build-aux])
8
9AC_CONFIG_SRCDIR([Singular/tesths.cc])
10
11AC_CONFIG_HEADER([_config.h])
12# Add pre'prefixed config
13AX_PREFIX_CONFIG_H([singularconfig.h],[],[_config.h])
14
15dnl Apparently, this is required for using an AC_CHECK_HEADER within AS_IF(...), at least on Cygwin.
16AC_USE_SYSTEM_EXTENSIONS
17
18AM_MAINTAINER_MODE([enable])
19AM_INIT_AUTOMAKE([-Wall foreign subdir-objects]) # -Wno-extra-portability -Werror silent-rules
20
21m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
22
23dnl Check if build env is sane
24AM_SANITY_CHECK
25
26
27SING_RESET_FLAGS()
28SING_CHECK_SET_ARGS()
29
30#!
31# AC_PROG_CC
32# AC_PROG_CXX
33AC_PROG_CPP
34AC_PROG_CXXCPP
35AM_PROG_CC_C_O
36AM_PROG_AR
37### AM_PROG_LEX
38AC_PROG_LN_S
39AC_PROG_INSTALL
40
41AC_HEADER_STDC
42AC_CHECK_HEADERS(unistd.h iostream.h sys/time.h sys/times.h asm/sigcontext.h)
43
44AC_CHECK_FUNCS(readlink getcwd getwd setenv putenv qsort_r)
45
46AC_CHECK_PROGS([DOXYGEN], [doxygen])
47if test -z "$DOXYGEN";
48   then AC_MSG_WARN([Doxygen not found - continuing without Doxygen support])
49fi
50AM_CONDITIONAL([HAVE_DOXYGEN], [test -n "$DOXYGEN"])
51
52LT_INIT([win32-dll])
53
54link_all_deplibs=yes
55link_all_deplibs_CXX=yes
56
57# Checks for libraries.
58
59# This test for -lpthread etc has to come before AX_PTHREAD,
60# because libtool tends to ignore -pthread in linking shared C++-libs
61# see https://gcc.gnu.org/bugzilla/show_bug.cgi?id=25460
62# (happens with ubuntu 14.04)
63AC_SEARCH_LIBS(sem_wait,[rt pthreads pthread],[],[
64  AC_MSG_ERROR([sem_wait not found in rt,pthreads,pthread])
65])
66
67AX_PTHREAD([], [
68  AC_MSG_ERROR([Pthread library not found. Please set PTHREAD_CFLAGS and PTHREAD_LIBS correctly for your setup])
69])
70
71AC_MSG_CHECKING([Found Pthread, PTHREAD_CC:])
72AC_MSG_RESULT(${PTHREAD_CC:-unset})
73AC_MSG_CHECKING([               PTHREAD_CFLAGS:])
74AC_MSG_RESULT(${PTHREAD_CFLAGS:-unset})
75AC_MSG_CHECKING([               PTHREAD_LIBS:])
76AC_MSG_RESULT(${PTHREAD_LIBS:-unset})
77
78# Set the correct PTHREAD flags and, if needed, change the compiler to one that is pthread-enabled.
79CC="$PTHREAD_CC"
80CFLAGS="$CFLAGS $PTHREAD_CFLAGS"
81LDFLAGS="$LDFLAGS $PTHREAD_LDFLAGS"
82
83AC_SUBST(PTHREAD_CFLAGS)
84AC_SUBST(PTHREAD_LDFLAGS)
85AC_SUBST(PTHREAD_LIBS)
86AC_SUBST(CC)
87
88
89AC_CHECK_LIB(rt,clock_gettime)
90
91# Check whether --with-gmp was given.
92GMP_HOME_PATH="${DEFAULT_CHECKING_PATH}"
93if test "$with_gmp" = yes ; then
94        GMP_HOME_PATH="${DEFAULT_CHECKING_PATH}"
95elif test "$with_gmp" != no ; then
96        GMP_HOME_PATH="$with_gmp ${DEFAULT_CHECKING_PATH}"
97fi
98
99BACKUP_CFLAGS=${CFLAGS}
100BACKUP_LIBS=${LIBS}
101
102for GMP_HOME in ${GMP_HOME_PATH}
103do
104  if test "x$GMP_HOME" != "x/usr"; then
105    if test -e ${GMP_HOME}/include/gmp.h; then
106      GMP_CPPFLAGS="-I${GMP_HOME}/include"
107      GMP_LIBS="-L${GMP_HOME}/lib -Wl,-rpath -Wl,${GMP_HOME}/lib -lgmp"
108    fi
109  fi
110done
111CFLAGS="${BACKUP_CFLAGS} ${GMP_CPPFLAGS}"
112LIBS="${BACKUP_LIBS} ${GMP_LIBS}"
113AC_SUBST(GMP_CPPFLAGS)
114AC_SUBST(GMP_LIBS)
115
116AC_CHECK_HEADERS([gmp.h], ,[AC_MSG_ERROR([GNU MP not found])])
117AC_CHECK_LIB(gmp, __gmpz_init, , [AC_MSG_ERROR([GNU MP not found])])
118
119LB_CHECK_NTL(5.0,,AC_MSG_WARN([Unable to find NTL (which is strongly recommended) on your machine: please use --with-ntl=PATH_TO_DIR_CONTAINING_LIB_AND_INCLUDE (see also ./configure --help if you do not understand what we are talking about)]))
120LB_CHECK_FLINT(2.3,,AC_MSG_WARN([Unable to find FLINT (which is strongly recommended) on your machine: please use --with-flint=PATH_TO_DIR_CONTAINING_LIB_AND_INCLUDE (see also ./configure --help if you do not understand what we are talking about)]))
121
122AC_CHECK_LIB(mpfr,mpfr_add)
123
124AC_CONFIG_GOOGLE_PERFTOOLS()
125
126LB_CHECK_CCLUSTER()
127
128AX_PYTHON_DEFAULT()
129AX_PYTHON_WITH_VERSION([2.4])
130AX_PYTHON_DEVEL()
131AC_CHECK_HEADERS(Python.h)
132
133LB_CHECK_MATHICGB
134
135AC_FUNC_ERROR_AT_LINE
136
137# check for cpu properties
138AC_CHECK_SIZEOF(long,4)
139SING_CHECK_CPU
140
141SING_WIN_FLAGS
142
143PKG_REQUIRE="$PKG_REQUIRE"
144AC_SUBST(PKG_REQUIRE)
145
146SING_USE_OMALLOC()
147SING_USE_RESOURCES()
148SING_USE_FACTORY()
149
150SING_CHECK_P_PROCS
151SING_CHECK_READLINE
152
153SING_CHECK_DBM
154
155SING_CHECK_GFANLIB
156SING_CHECK_POLYMAKE
157
158SING_CHECK_PLURAL
159
160SING_CHECK_PYTHON_MODULE
161
162SING_BUILTIN_MODULES
163
164AC_ARG_ENABLE(countedref, AS_HELP_STRING([--enable-countedref], [Enable autoloading of reference counted types]),
165[if test "x$enableval" = "xyes"; then
166ENABLE_COUNTEDREF_AUTOLOAD=yes
167fi], ENABLE_COUNTEDREF_AUTOLOAD=no)
168
169if test x"${ENABLE_COUNTEDREF_AUTOLOAD}" == xyes; then
170  AC_DEFINE([SI_COUNTEDREF_AUTOLOAD],1,[Enable autoloading of reference counted types])
171  AC_SUBST(SI_COUNTEDREF_AUTOLOAD)
172fi
173
174dnl AC_CONFIG_FILES conditionalization requires using AM_COND_IF, however
175dnl AM_COND_IF is new to Automake 1.11.  To use it on new Automake without
176dnl requiring same, a fallback implementation for older Autoconf is provided.
177dnl Note that disabling of AC_CONFIG_FILES requires Automake 1.11, this code
178dnl is correct only in terms of m4sh generated script.
179m4_ifndef([AM_COND_IF], [AC_DEFUN([AM_COND_IF], [
180if test -z "$$1_TRUE"; then :
181  m4_n([$2])[]dnl
182m4_ifval([$3],
183[else
184    $3
185])dnl
186fi[]dnl
187])])
188
189AX_LIB_SOCKET_NSL
190
191AC_ARG_WITH([libparse],
192            [AS_HELP_STRING([--with-libparse],
193              [compile and install libparse])],
194            [optional_Singular_programs=libparse],
195            [optional_Singular_programs=])
196
197AC_SUBST(optional_Singular_programs)
198
199AC_DEFINE_UNQUOTED([CC],"$CC",[CC])
200AC_DEFINE_UNQUOTED([CXX],"$CXX",[CXX])
201AC_DEFINE_UNQUOTED([CFLAGS],"$CFLAGS",[CFLAGS])
202AC_DEFINE_UNQUOTED([CXXFLAGS],"$CXXFLAGS",[CXXFLAGS])
203AC_DEFINE_UNQUOTED([PTHREAD_CFLAGS],"$PTHREAD_CFLAGS",[PTHREAD_CFLAGS])
204AC_DEFINE_UNQUOTED([PTHREAD_LIBS],"$PTHREAD_LIBS",[PTHREAD_LIBS])
205AC_DEFINE_UNQUOTED([DEFS],"$DEFS",[DEFS])
206AC_DEFINE_UNQUOTED([CPPFLAGS],"$CPPFLAGS",[CPPFLAGS])
207AC_DEFINE_UNQUOTED([LDFLAGS],"$LDFLAGS",[LDFLAGS])
208AC_DEFINE_UNQUOTED([LIBS],"$LIBS",[LIBS])
209AC_DEFINE_UNQUOTED([AC_CONFIGURE_ARGS],"$ac_configure_args",[ac_configure_args])
210# AC_DEFINE_UNQUOTED([AC_CT_CC], "$ac_ct_CC",[ac_ct_CC])
211
212AC_DEFINE_UNQUOTED([NTL_CPPFLAGS],"$NTL_CPPFLAGS",[NTL_CPPFLAGS])
213AC_DEFINE_UNQUOTED([NTL_LIBS],"$NTL_LIBS",[NTL_LIBS])
214
215AC_DEFINE_UNQUOTED([GMP_CPPFLAGS],"$GMP_CPPFLAGS",[GMP_CPPFLAGS])
216AC_DEFINE_UNQUOTED([GMP_LIBS],"$GMP_LIBS",[GMP_LIBS])
217
218AC_DEFINE_UNQUOTED([FLINT_CFLAGS],"$FLINT_CFLAGS",[FLINT_CFLAGS])
219AC_DEFINE_UNQUOTED([FLINT_LIBS],"$FLINT_LIBS",[FLINT_LIBS])
220
221##### SEE http://www.gnu.org/prep/standards/html_node/Directory-Variables.html
222
223AX_RECURSIVE_EVAL([[$]prefix], [config_prefix])
224AX_NORMALIZE_PATH([config_prefix],['/'])
225AC_DEFINE_UNQUOTED([PREFIX],"$config_prefix",[prefix])
226
227AX_RECURSIVE_EVAL([[$]exec_prefix], [config_exec_prefix])
228AX_NORMALIZE_PATH([config_exec_prefix],['/'])
229AC_DEFINE_UNQUOTED([EXEC_PREFIX],"$config_exec_prefix",[exec_prefix])
230
231AX_RECURSIVE_EVAL([[$]libexecdir], [config_libexecdir])
232AX_NORMALIZE_PATH([config_libexecdir],['/'])
233AC_DEFINE_UNQUOTED([LIBEXEC_DIR],"$config_libexecdir",[libexecdir])
234
235AX_RECURSIVE_EVAL([[$]libdir], [config_libdir])
236AX_NORMALIZE_PATH([config_libdir],['/'])
237AC_DEFINE_UNQUOTED([LIB_DIR],"$config_libdir",[libdir])
238
239AX_RECURSIVE_EVAL([[$]bindir], [config_bindir])
240AX_NORMALIZE_PATH([config_bindir],['/'])
241AC_DEFINE_UNQUOTED([BIN_DIR],"$config_bindir",[bindir])
242
243AX_RECURSIVE_EVAL([[$]datadir], [config_datadir])
244AX_NORMALIZE_PATH([config_datadir],['/'])
245AC_DEFINE_UNQUOTED([DATA_DIR],"$config_datadir",[datadir])
246AC_SUBST(DATA_DIR, "$config_datadir")
247
248SING_SHOW_FLAGS([Compiler/linker flags: ])
249
250
251## AM_COND_IF([HAVE_DOXYGEN], [AC_CONFIG_FILES([dox/Doxyfile])])
252
253AC_CONFIG_FILES([dox/Makefile])
254
255AC_CONFIG_SUBDIRS([resources])
256AC_CONFIG_SUBDIRS([omalloc])
257
258if test "x$ENABLE_FACTORY" = xyes; then
259 AC_CONFIG_SUBDIRS([factory])
260fi
261
262AC_CONFIG_SUBDIRS([libpolys])
263
264AC_CONFIG_FILES([Makefile])
265AC_CONFIG_FILES([kernel/Makefile])
266AC_CONFIG_FILES([kernel/numeric/Makefile])
267AC_CONFIG_FILES([kernel/fglm/Makefile])
268AC_CONFIG_FILES([kernel/groebner_walk/Makefile])
269AC_CONFIG_FILES([kernel/combinatorics/Makefile])
270AC_CONFIG_FILES([kernel/spectrum/Makefile])
271AC_CONFIG_FILES([kernel/linear_algebra/Makefile])
272AC_CONFIG_FILES([kernel/maps/Makefile])
273AC_CONFIG_FILES([kernel/GBEngine/Makefile])
274AC_CONFIG_FILES([kernel/oswrapper/Makefile])
275
276AC_CONFIG_SUBDIRS([gfanlib])
277
278AC_CONFIG_FILES([Singular/dyn_modules/Makefile])
279AC_CONFIG_FILES([Singular/dyn_modules/bigintm/Makefile])
280AC_CONFIG_FILES([Singular/dyn_modules/Order/Makefile])
281AC_CONFIG_FILES([Singular/dyn_modules/syzextra/Makefile])
282AC_CONFIG_FILES([Singular/dyn_modules/gfanlib/Makefile])
283AC_CONFIG_FILES([Singular/dyn_modules/polymake/Makefile])
284AC_CONFIG_FILES([Singular/dyn_modules/python/Makefile])
285AC_CONFIG_FILES([Singular/dyn_modules/customstd/Makefile])
286AC_CONFIG_FILES([Singular/dyn_modules/pyobject/Makefile])
287AC_CONFIG_FILES([Singular/dyn_modules/singmathic/Makefile])
288AC_CONFIG_FILES([Singular/dyn_modules/staticdemo/Makefile])
289AC_CONFIG_FILES([Singular/dyn_modules/subsets/Makefile])
290AC_CONFIG_FILES([Singular/dyn_modules/freealgebra/Makefile])
291AC_CONFIG_FILES([Singular/dyn_modules/partialgb/Makefile])
292AC_CONFIG_FILES([Singular/dyn_modules/gitfan/Makefile])
293AC_CONFIG_FILES([Singular/dyn_modules/interval/Makefile])
294AC_CONFIG_FILES([Singular/dyn_modules/cohomo/Makefile])
295AC_CONFIG_FILES([Singular/dyn_modules/systhreads/Makefile])
296AC_CONFIG_FILES([Singular/dyn_modules/loctriv/Makefile])
297AC_CONFIG_FILES([Singular/dyn_modules/machinelearning/Makefile])
298
299AC_CONFIG_FILES([Singular/Makefile])
300
301AC_CONFIG_FILES([IntegerProgramming/Makefile])
302
303AC_CONFIG_FILES([libsingular-config], [chmod +x libsingular-config])
304AC_CONFIG_FILES([Singular.pc])
305
306AC_CONFIG_FILES([emacs/Makefile])
307
308AC_CONFIG_FILES([redhat/Makefile])
309AC_CONFIG_FILES([redhat/singular.spec])
310AC_CONFIG_FILES([desktop/Makefile desktop/Singular.desktop desktop/Singular-manual.desktop])
311
312AC_OUTPUT
Note: See TracBrowser for help on using the repository browser.