source: git/Singular/configure.in.SAVE @ b38bc9

spielwiese
Last change on this file since b38bc9 was 5fdf7a, checked in by Max Horn <max@…>, 11 years ago
Replace --no-{rtti,exceptions} by -fno-{rtti,exceptions} This improves compatibility with clang. Moreover, to the best of my knowledge, the --no-* variants are undocumented to start with. At least the GCC manuals for all versions from 2.95.3 till 4.7.2 only list the -fno-* variants, as far as I could tell.
  • Property mode set to 100644
File size: 37.1 KB
Line 
1dnl Process this file with autoconf to produce a configure script.
2AC_INIT(tesths.cc)
3AC_CONFIG_HEADER(mod2.h)
4AC_CONFIG_HEADER(../kernel/mod2.h)
5
6dnl lllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllll
7dnl check for python (see AC_PYTHON_DEVEL in newer autoconf versions)
8dnl
9AC_DEFUN([AC_PYTHON_DEVEL_SINGULAR],[
10        #
11        # Allow the use of a (user set) custom python version
12        #
13        PYTHON_VERSION="$1"
14        PYTHON="$2"
15
16        #
17        # Check for a version of Python >= 2.1.0
18        #
19        AC_MSG_CHECKING([for a version of Python >= '2.1.0'])
20        ac_supports_python_ver=`$PYTHON -c "import sys, string; \
21                        ver = string.split(sys.version)[[0]]; \
22                        print ver >= '2.1.0'"`
23        if test "$ac_supports_python_ver" != "True"; then
24                if test -z "$PYTHON_NOVERSIONCHECK"; then
25                        AC_MSG_RESULT([no])
26                        AC_MSG_ERROR([
27This version of the AC@&t@_PYTHON_DEVEL macro
28doesn't work properly with versions of Python before
292.1.0. You may need to re-run configure, setting the
30variables PYTHON_CPPFLAGS, PYTHON_LDFLAGS, PYTHON_SITE_PKG,
31PYTHON_EXTRA_LIBS and PYTHON_EXTRA_LDFLAGS by hand.
32Moreover, to disable this check, set PYTHON_NOVERSIONCHECK
33to something else than an empty string.
34])
35                else
36                        AC_MSG_RESULT([skip at user request])
37                fi
38        else
39                AC_MSG_RESULT([yes])
40        fi
41
42        #
43        # if the macro parameter ``version'' is set, honour it
44        #
45        if test -n "$1"; then
46                AC_MSG_CHECKING([for a version of Python $1])
47                ac_supports_python_ver=`$PYTHON -c "import sys, string; \
48                        ver = string.split(sys.version)[[0]]; print ver $1"`
49                if test "$ac_supports_python_ver" = "True"; then
50                   AC_MSG_RESULT([yes])
51                else
52                        AC_MSG_RESULT([no])
53                        AC_MSG_ERROR([this package requires Python $1.
54If you have it installed, but it isn't the default Python
55interpreter in your system path, please pass the PYTHON_VERSION
56variable to configure. See ``configure --help'' for reference.
57])
58                        PYTHON_VERSION=""
59                fi
60        fi
61
62        #
63        # Check if you have distutils, else fail
64        #
65        AC_MSG_CHECKING([for the distutils Python package])
66        ac_distutils_result=`$PYTHON -c "import distutils" 2>&1`
67        if test -z "$ac_distutils_result"; then
68                AC_MSG_RESULT([yes])
69        else
70                AC_MSG_RESULT([no])
71                AC_MSG_ERROR([cannot import Python module "distutils".
72Please check your Python installation. The error was:
73$ac_distutils_result])
74                PYTHON_VERSION=""
75        fi
76
77        #
78        # Check for Python include path
79        #
80        AC_MSG_CHECKING([for Python include path])
81        if test -z "$PYTHON_CPPFLAGS"; then
82                python_path=`$PYTHON -c "import distutils.sysconfig; \
83                                print distutils.sysconfig.get_python_inc();"`
84                if test -n "${python_path}"; then
85                        python_path="-I$python_path"
86                fi
87                PYTHON_CPPFLAGS=$python_path
88        fi
89        AC_MSG_RESULT([$PYTHON_CPPFLAGS])
90        AC_SUBST([PYTHON_CPPFLAGS])
91
92        #
93        # Check for Python library path
94        #
95        AC_MSG_CHECKING([for Python library path])
96        if test -z "$PYTHON_LDFLAGS"; then
97                # (makes two attempts to ensure we've got a version number
98                # from the interpreter)
99                py_version=`$PYTHON -c "from distutils.sysconfig import *; \
100                        from string import join; \
101                        print join(get_config_vars('VERSION'))"`
102                if test "$py_version" = "[None]"; then
103                        if test -n "$PYTHON_VERSION"; then
104                                py_version=$PYTHON_VERSION
105                        else
106                                py_version=`$PYTHON -c "import sys; \
107                                        print sys.version[[:3]]"`
108                        fi
109                fi
110
111                PYTHON_LDFLAGS=`$PYTHON -c "from distutils.sysconfig import *; \
112                        from string import join; \
113                        from os import path; \
114                        print '-L' + get_python_lib(0,1), \
115                        '-L' + path.dirname(get_python_lib(0,1)), \
116                        '-lpython';"`$py_version
117        fi
118        AC_MSG_RESULT([$PYTHON_LDFLAGS])
119        AC_SUBST([PYTHON_LDFLAGS])
120
121        #
122        # Check for site packages
123        #
124        AC_MSG_CHECKING([for Python site-packages path])
125        if test -z "$PYTHON_SITE_PKG"; then
126                PYTHON_SITE_PKG=`$PYTHON -c "import distutils.sysconfig; \
127print distutils.sysconfig.get_python_lib(0,0);"`
128        fi
129        AC_MSG_RESULT([$PYTHON_SITE_PKG])
130        AC_SUBST([PYTHON_SITE_PKG])
131
132        #
133        # libraries which must be linked in when embedding
134        #
135        AC_MSG_CHECKING(python extra libraries)
136        if test -z "$PYTHON_EXTRA_LIBS"; then
137           PYTHON_EXTRA_LIBS=`$PYTHON -c "import distutils.sysconfig; \
138conf = distutils.sysconfig.get_config_var; \
139print conf('LOCALMODLIBS'), conf('LIBS')"`
140        fi
141        AC_MSG_RESULT([$PYTHON_EXTRA_LIBS])
142        AC_SUBST(PYTHON_EXTRA_LIBS)
143
144        #
145        # linking flags needed when embedding
146        #
147        AC_MSG_CHECKING(python extra linking flags)
148        if test -z "$PYTHON_EXTRA_LDFLAGS"; then
149                PYTHON_EXTRA_LDFLAGS=`$PYTHON -c "import distutils.sysconfig; \
150                        conf = distutils.sysconfig.get_config_var; \
151                        print conf('LINKFORSHARED')"`
152        fi
153        AC_MSG_RESULT([$PYTHON_EXTRA_LDFLAGS])
154        AC_SUBST(PYTHON_EXTRA_LDFLAGS)
155
156        #
157        # final check to see if everything compiles alright
158        #
159        AC_MSG_CHECKING([consistency of all components of python development environment])
160#       AC_LANG_PUSH([C])
161        # save current global flags
162        ac_save_LIBS_for_python="${LIBS}"
163        LIBS="$ac_save_LIBS $PYTHON_LDFLAGS"
164        ac_save_CPPFLAGS_for_python="${CPPFLAGS}"
165        CPPFLAGS="$ac_save_CPPFLAGS $PYTHON_CPPFLAGS"
166        AC_TRY_LINK([
167                #include <Python.h>
168        ],[
169                Py_Initialize();
170        ],[pythonexists=yes],[pythonexists=no])
171
172        AC_MSG_RESULT([$pythonexists])
173
174        if test ! "$pythonexists" = "yes"; then
175           AC_MSG_RESULT([
176  Could not link test program to Python. Maybe the main Python library has been
177  installed in some non-standard library path. If so, pass it to configure,
178  via the LDFLAGS environment variable.
179  Example: ./configure LDFLAGS="-L/usr/non-standard-path/python/lib"
180  ============================================================================
181   ERROR!
182   You probably have to install the development version of the Python package
183   for your distribution.  The exact name of this package varies among them.
184  ============================================================================
185           ])
186          PYTHON_VERSION=""
187          pythonexists=no
188        else
189          AC_DEFINE(HAVE_PYTHON)
190          HAVE_PYTHON_VALUE=1
191          AC_SUBST(HAVE_PYTHON_VALUE)
192        fi
193
194#       AC_LANG_POP
195        # turn back to default flags
196        CPPFLAGS="$ac_save_CPPFLAGS_for_python"
197        LIBS="$ac_save_LIBS_for_python"
198
199        #
200        # all done!
201        #
202])
203
204
205dnl lllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllll
206dnl check whethe python-based module can be build statically
207dnl
208AC_DEFUN([AC_PYTHON_TEST_STATIC],[
209        ac_save_LIBS_for_python="${LIBS}"
210        ac_save_CPPFLAGS_for_python="${CPPFLAGS}"
211
212        AC_MSG_CHECKING([${try_python_shared_static_flags} for linking \
213python statically])
214        all_cppflags="${ac_save_CPPFLAGS} ${PYTHON_CPPFLAGS}"
215
216        CPPFLAGS="-static ${all_cppflags}"
217        LIBS="$ac_save_LIBS $PYTHON_LDFLAGS $PYTHON_EXTRA_LIBS -lc -lm $PYTHON_EXTRA_LDFLAGS"
218
219        AC_TRY_LINK([
220              #include <Python.h>
221        ],[
222              Py_Initialize();
223        ],[pythonstaticexists=yes],[pythonstaticexists=no])
224
225        AC_MSG_RESULT([$pythonstaticexists])
226
227        if test "$pythonstaticexists" = yes ; then
228          AC_DEFINE(HAVE_STATIC_PYTHON)
229          PYTHON_STATIC_LIBS="$PYTHON_LDFLAGS $PYTHON_EXTRA_LIBS"
230          AC_SUBST(PYTHON_STATIC_LIBS)
231   
232          try_flags="-Xlinker -static -nodefaultlibs"
233          CPPFLAGS="-shared -fPIC ${try_flags} ${all_cppflags}"
234          AC_MSG_CHECKING([$try_flags for linking python module statically])
235          AC_TRY_LINK([
236                #include <Python.h>
237          ],[
238                Py_Initialize();
239          ],[pythonsharedstaticexists=yes],[pythonsharedstaticexists=no])
240          AC_MSG_RESULT([$pythonsharedstaticexists])
241 
242          if test "$pythonsharedstaticexists" = yes; then
243            PYTHON_MODULE_FLAGS="${try_flags}"
244          fi
245        fi
246
247        AC_SUBST(PYTHON_MODULE_FLAGS)
248        CPPFLAGS="$ac_save_CPPFLAGS_for_python"
249        LIBS="$ac_save_LIBS_for_python"
250])
251
252
253dnl lllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllll
254dnl determine singuname
255dnl
256
257AC_MSG_CHECKING(CPU for singular)
258ac_cv_singcpuname=`uname -m`
259AC_MSG_RESULT($ac_cv_singcpuname)
260
261AC_MSG_CHECKING(uname for singular)
262AC_CACHE_VAL(ac_cv_singuname,
263ac_cv_singuname="unknown"
264if test -r "singuname.sh"; then
265  if (/bin/sh singuname.sh >/dev/null 2>&1) then
266    ac_cv_singuname=`/bin/sh singuname.sh`
267  fi
268fi
269if test "$ac_cv_singuname" = unknown && test -r "../singuname.sh"; then
270  if (/bin/sh ../singuname.sh >/dev/null 2>&1) then
271    ac_cv_singuname=`/bin/sh ../singuname.sh`
272  fi
273fi
274)
275AC_MSG_RESULT($ac_cv_singuname)
276if test "$ac_cv_singuname" = unknown; then
277  AC_MSG_WARN(Unknown architecture: Check singuname.sh)
278  ac_cv_singuname="unknown"
279fi
280AC_DEFINE_UNQUOTED(S_UNAME, "$ac_cv_singuname")
281SINGUNAME=$ac_cv_singuname
282AC_SUBST(SINGUNAME)
283
284if test "$ac_cv_singuname" = ix86-Win; then
285  EXEC_EXT=".exe"
286  AC_DEFINE(SI_CPU_I386)
287  AC_SUBST(SI_CPU_I386)
288  AC_MSG_RESULT(SI_CPU_I386)
289fi
290AC_SUBST(EXEC_EXT)
291if test "$ac_cv_singuname" = x86_64-Linux; then
292  AC_DEFINE(SI_CPU_X86_64)
293  AC_SUBST(SI_CPU_X86_64)
294  AC_MSG_RESULT(SI_CPU_X86_64)
295fi
296if test "$ac_cv_singuname" = ix86-Linux; then
297  AC_DEFINE(SI_CPU_I386)
298  AC_SUBST(SI_CPU_I386)
299  AC_MSG_RESULT(SI_CPU_I386)
300fi
301if test "$ac_cv_singuname" = IA64-Linux; then
302  AC_DEFINE(SI_CPU_IA64)
303  AC_SUBST(SI_CPU_IA64)
304  AC_MSG_RESULT(SI_CPU_IA64)
305fi
306if test "$ac_cv_singuname" = ppc-Linux; then
307  AC_DEFINE(SI_CPU_PPC)
308  AC_SUBST(SI_CPU_PPC)
309  AC_MSG_RESULT(SI_CPU_PPC)
310fi
311if test "$ac_cv_singuname" = ppcMac-darwin; then
312  AC_DEFINE(SI_CPU_PPC)
313  AC_SUBST(SI_CPU_PPC)
314  AC_MSG_RESULT(SI_CPU_PPC)
315fi
316# test again with CPU names
317if test "$ac_cv_singcpuname" = i386; then
318  AC_DEFINE(SI_CPU_I386)
319  AC_SUBST(SI_CPU_I386)
320  AC_MSG_RESULT(SI_CPU_I386)
321fi
322if test "$ac_cv_singcpuname" = i686; then
323  AC_DEFINE(SI_CPU_I386)
324  AC_SUBST(SI_CPU_I386)
325  AC_MSG_RESULT(SI_CPU_I386)
326fi
327if test "$ac_cv_singcpuname" = x86_64; then
328  AC_DEFINE(SI_CPU_X86_64)
329  AC_SUBST(SI_CPU_X86_64)
330  AC_MSG_RESULT(SI_CPU_X86_64)
331fi
332if test "$ac_cv_singcpuname" = ia64; then
333  AC_DEFINE(SI_CPU_IA64)
334  AC_SUBST(SI_CPU_IA64)
335  AC_MSG_RESULT(SI_CPU_IA64)
336fi
337if test "$ac_cv_singcpuname" = sparc; then
338  AC_DEFINE(SI_CPU_SPARC)
339  AC_SUBST(SI_CPU_SPARC)
340  AC_MSG_RESULT(SI_CPU_SPARC)
341fi
342if test "$ac_cv_singcpuname" = ppc; then
343  AC_DEFINE(SI_CPU_PPC)
344  AC_SUBST(SI_CPU_PPC)
345  AC_MSG_RESULT(SI_CPU_PPC)
346fi
347
348SING_UNAME=`echo $SINGUNAME | tr '-' '_' `
349AC_SUBST(SING_UNAME)
350
351# stupid Win programs do not like dots in their pathnames
352VERSION_SEP="-"
353
354dnl llllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllll
355dnl version stuff -- should be set in ../configure.in
356dnl
357dnl here are some defaults
358
359SINGULAR_MAJOR_VERSION=${SINGULAR_MAJOR_VERSION:-3}
360SINGULAR_MINOR_VERSION=${SINGULAR_MINOR_VERSION:-1}
361SINGULAR_SUB_VERSION=${SINGULAR_SUB_VERSION:-3}
362SINGULAR_VERSION="${SINGULAR_VERSION:-$SINGULAR_MAJOR_VERSION${VERSION_SEP}$SINGULAR_MINOR_VERSION${VERSION_SEP}$SINGULAR_SUB_VERSION}"
363VERSION_DATE=${VERSION_DATE:-"March 2011"}
364
365dnl pass them on into the Makefiles
366AC_SUBST(SINGULAR_VERSION)
367AC_SUBST(VERSION_DATE)
368AC_SUBST(SINGULAR_MAJOR_VERSION)
369AC_SUBST(SINGULAR_MINOR_VERSION)
370AC_SUBST(SINGULAR_SUB_VERSION)
371AC_DEFINE_UNQUOTED(SINGULAR_MAJOR_VERSION, ${SINGULAR_MAJOR_VERSION})
372AC_DEFINE_UNQUOTED(SINGULAR_MINOR_VERSION, ${SINGULAR_MINOR_VERSION})
373AC_DEFINE_UNQUOTED(SINGULAR_SUB_VERSION, ${SINGULAR_SUB_VERSION})
374AC_DEFINE_UNQUOTED(S_VERSION1, "${SINGULAR_MAJOR_VERSION}${VERSION_SEP}${SINGULAR_MINOR_VERSION}${VERSION_SEP}${SINGULAR_SUB_VERSION}")
375AC_DEFINE_UNQUOTED(S_VERSION2, "${VERSION_DATE}")
376AC_DEFINE_UNQUOTED(SINGULAR_SUB_VERSION, ${SINGULAR_SUB_VERSION})
377
378
379dnl lllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllll
380dnl compiler stuff
381dnl is needed to check for libs and headers, later on
382dnl
383dnl we do not want to have "-g -O" for CFLAGS
384if test "${CXXFLAGS+set}" != set; then
385  ac_cxxflags_set=no
386  CXXFLAGS="-O"
387fi
388if test "${CFLAGS+set}" != set; then
389  CFLAGS="-O"
390  ac_cflags_set=no
391fi
392
393# check whether CXX was set by user as env variable
394if test "${CXX+set}" != set; then
395  ac_cxx_set=no
396else
397  ac_cxx_set=yes
398fi
399AC_PROG_CC
400AC_PROG_CPP
401AC_PROG_CXX
402AC_PROG_INSTALL
403AC_AIX
404
405# test for gcc-version: gcc2: prefer CC=gcc, CXX=gcc (if not with boost)
406#                       gcc3:        CC=gcc  CXX=g++
407#                       other:       CC=cc   CXX=c++
408AC_MSG_CHECKING(gcc version)
409AC_CACHE_VAL(ac_cv_c_cpp,
410ac_cv_c_cp="unknown"
411if test -r "gccversion.sh"; then
412  ac_cv_c_cpp=`/bin/sh gccversion.sh`
413fi
414)
415AC_MSG_RESULT($ac_cv_c_cpp)
416
417# we prefer using gcc for compiling C++ files, provided the user did
418# not overwrite it explicitely
419if test "${GXX}" = yes && test "${ac_cxx_set}" = no; then
420  if test "${ac_cv_c_cpp}" = gcc2; then
421    CXX=g++
422  elif test "${ac_cv_c_cpp}" = gcc3; then
423    CXX=g++
424  fi
425  temp_flags="${CXXFLAGS}"
426  AC_LANG_SAVE
427  AC_LANG_CPLUSPLUS
428  # check whether gcc accepts -fno-rtti
429  AC_MSG_CHECKING(whether gcc accepts -fno-rtti)
430  CXXFLAGS="${CXXFLAGS} -fno-rtti"
431  AC_CACHE_VAL(ac_cv_cxx_have_rtti,
432    AC_TRY_COMPILE(,,ac_cv_cxx_have_rtti=yes,ac_cv_cxx_have_rtti=no)
433  )
434  AC_MSG_RESULT(${ac_cv_cxx_have_rtti})
435  if test "${ac_cv_cxx_have_rtti}" != yes; then
436    CXXFLAGS="$temp_flags"
437  else
438    CXXFLAGS="${temp_flags} -fno-rtti"
439    temp_flags="${CXXFLAGS}"
440  fi
441
442# check whether gcc accepts -fno-exceptions
443  AC_MSG_CHECKING(whether gcc accepts -fno-exceptions)
444  CXXFLAGS="${CXXFLAGS} -fno-exceptions"
445  AC_CACHE_VAL(ac_cv_cxx_have_exceptions,
446    AC_TRY_LINK(,,ac_cv_cxx_have_exceptions=yes,ac_cv_cxx_have_exceptions=no)
447  )
448  AC_MSG_RESULT(${ac_cv_cxx_have_exceptions})
449  if test "${ac_cv_cxx_have_exceptions}" != yes; then
450    CXXFLAGS="$temp_flags"
451  else
452    CXXFLAGS="${temp_flags} -fno-exceptions"
453    temp_flags="${CXXFLAGS}"
454  fi
455
456  AC_LANG_RESTORE
457  CXXFLAGS="$temp_flags"
458  #here is broking something
459  #uncommented breaks CXXFLAGS variable set
460  #only pipes would remain then in CXXFLAGS
461fi
462
463# check whether the compiler accepts -pipe
464if test x$ac_cv_c_cpp = xgcc2 -o  x$ac_cv_c_cpp = xgcc3
465then
466  AC_MSG_CHECKING(whether compiler accepts -pipe)
467  temp_cflags="${CFLAGS}"
468  CFLAGS="${CFLAGS} -pipe"
469  AC_CACHE_VAL(ac_cv_cxx_have_pipe,
470  AC_TRY_COMPILE(,,ac_cv_cxx_have_pipe=yes,ac_cv_cxx_have_pipe=no))
471  AC_MSG_RESULT(${ac_cv_cxx_have_pipe})
472  CFLAGS=${temp_cflags}
473else
474  ac_cv_cxx_have_pipe="no"
475fi
476
477if test "${ac_cv_cxx_have_pipe}" != yes; then
478  PIPE=
479else
480  PIPE="-pipe"
481fi
482AC_SUBST(PIPE)
483
484# Customize CFLAGS
485AC_MSG_CHECKING(whether _AIX is defined)
486AC_CACHE_VAL(ac_cv_is_aix,
487AC_EGREP_CPP(yes,
488[#ifdef _AIX
489    yes
490#endif
491], ac_cv_is_aix=yes, ac_cv_is_aix=no, 1))
492if test "$ac_cv_is_aix" = yes; then
493  AC_MSG_RESULT(yes)
494else
495  AC_MSG_RESULT(no)
496fi
497
498# we know best when compiling with gcc
499if test "${GXX}" = yes; then
500  if test "$ac_cxxflags_set" = no; then
501    CXXFLAGS="-O3 -w -fomit-frame-pointer"
502  fi
503  temp_flags="${CXXFLAGS}"
504  if test "${ac_cv_cxx_have_rtti}" = yes; then
505    CXXFLAGS="${temp_flags} -fno-rtti"
506  fi
507  temp_flags="${CXXFLAGS}"
508  CXXTEMPLFLAGS="-fno-implicit-templates"
509  if test "${ac_cv_cxx_have_exceptions}" = yes; then
510    CXXTEMPLFLAGS="${CXXTEMPLFLAGS} -fno-exceptions"
511  fi
512  if test "$ac_cv_is_aix" = yes; then
513    CXXNOOPTFLAGS="-w"
514  else
515    CXXNOOPTFLAGS=$CXXFLAGS
516  fi
517  STATIC_LDFLAGS="-static"
518else
519  CXXTEMPFLAGS=""
520  CXXNOOPTFLAGS=$CXXFLAGS
521  STATIC_LDFLAGS=""
522fi
523AC_SUBST(CXXTEMPLFLAGS)
524AC_SUBST(CXXNOOPTFLAGS)
525AC_SUBST(STATIC_LDFLAGS)
526
527if test "${GCC}" = yes && test "$ac_cflags_set" = no ; then
528  CFLAGS="-O3 -w -fomit-frame-pointer"
529fi
530
531AC_PROG_MAKE_SET
532
533dnl lllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllll
534dnl path stuff
535dnl
536AC_PREFIX_DEFAULT(`pwd`/..)
537
538dnl set exec_prefix, bindir, libdir, includedir to some sensible values
539dnl if they are not yet already set
540
541# expand prefix
542test "x$prefix" = xNONE && prefix=$ac_default_prefix
543if test "${with_rootdir+set}" != set; then
544  AC_DEFINE_UNQUOTED(S_ROOT_DIR, "${prefix}")
545else
546  AC_DEFINE_UNQUOTED(S_ROOT_DIR, "${with_rootdir}")
547fi
548
549# expand exec_prefixad
550if test "x$exec_prefix" = xNONE; then
551 exec_prefix=${prefix}/${ac_cv_singuname}
552fi
553
554# expand bindir
555test "x$bindir" = 'x${exec_prefix}/bin' && bindir="${exec_prefix}"
556SINGULAR=${SINGULAR:-$bindir/Singular-$SINGULAR_MAJOR_VERSION${VERSION_SEP}$SINGULAR_MINOR_VERSION${VERSION_SEP}$SINGULAR_SUB_VERSION}
557AC_SUBST(SINGULAR)
558AC_DEFINE_UNQUOTED(S_BIN_DIR, "${bindir}")
559
560# expand libdir
561test "x$libdir" = 'x${exec_prefix}/lib'&& libdir="${exec_prefix}/lib"
562
563# expand includedir
564test "x$includedir" = 'x${prefix}/include' && includedir="${exec_prefix}/include"
565
566# add to -I to CPPFLAGS and and -L to LDFLAGS, just to be sure
567if test "$ac_cv_c_cpp" = gcc3 ; then
568  LDFLAGS="-L${libdir} ${LDFLAGS}"
569  CPPFLAGS="-I${includedir} ${CPPFLAGS}"
570else
571  LDFLAGS="-L${libdir} ${LDFLAGS} -L/usr/local/lib"
572  CPPFLAGS="-I${includedir} ${CPPFLAGS} -I/usr/local/include"
573fi
574
575# this is a work-around to include the right term.h
576if test "$ac_cv_singuname" = SunOS-5; then
577CPPFLAGS="-I/usr/xpg4/include ${CPPFLAGS}"
578fi
579
580
581dnl lllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllll
582dnl Checks for programs.
583dnl
584
585# lex
586if test "${with_lex+set}" != set; then
587  AC_MSG_CHECKING(for flex)
588  changequote(<<,>>)dnl
589  cmd="egrep [2-9]\.[5-9]"
590  changequote([,])dnl
591  AC_CACHE_VAL(ac_cv_prog_flex,
592  if (flex --version >/dev/null 2>&1)
593    then
594    if (flex --version | $cmd >/dev/null 2>&1 )
595    then
596        ac_cv_prog_flex=flex
597    fi
598  fi
599  )
600  dnl changequote([,])dnl
601  if test "${ac_cv_prog_flex+set}" = set; then
602    AC_MSG_RESULT(flex)
603    LEX=flex
604    AC_SUBST(LEX)
605  else
606    AC_MSG_WARN(can not find flex with version 2.4.5-2.5.4)
607  fi
608elif test "${with_lex}" = no; then
609  AC_MSG_WARN(building without lex -- make might fail)
610else
611  unset LEX
612  unset ac_cv_prog_LEX
613  AC_CHECK_PROGS(LEX, ${with_lex})
614  if test "x${LEX}" = x; then
615    AC_MSG_WARN(building without lex -- make might fail)
616  fi
617fi
618
619# bison
620AC_CHECK_PROGS(BISON, bison)
621if test "${BISON+set}" != set; then
622  AC_MSG_WARN(did not find bison -- make might fail)
623fi
624
625# ln -s
626AC_PROG_LN_S
627
628AC_CHECK_PROGS(PERL, perl5 perl)
629
630# python
631dnl Default values here!
632python_exe_name="no"
633PYTHON_PLUGIN="module"
634PYTHON_LINKAGE="static"
635
636if test "${with_python+set}" = set; then
637  case "${with_python}" in
638    yes|static*|dynamic*|shared*|module*|embed*)
639      python_exe_name="python"
640    ;;
641    *)
642    python_exe_name="${with_python%%,*}"
643    ;;
644  esac
645
646  case ",${with_python}," in
647    *,dynamic,*|*,shared,*)
648      PYTHON_LINKAGE="dynamic"
649    ;;
650    *,static,*)
651      PYTHON_LINKAGE="static"
652    ;;
653  esac
654
655  case ",${with_python}," in
656    *,embed,*|*,embedded,*)
657      PYTHON_PLUGIN="embed"
658    ;;
659    *,static,*)
660      PYTHON_PLUGIN="module"
661    ;;
662  esac
663fi
664
665PYTHON_EXE=`basename "${python_exe_name}"`
666PYTHON_PATH=`dirname "${python_exe_name}"`
667
668if test "${PYTHON_EXE}" = no; then
669  AC_MSG_WARN(building without python support)
670else
671  AC_PATH_PROG([PYTHON],[$PYTHON_EXE],, "$PYTHON_PATH:$PATH")
672  if test -z "$PYTHON"; then
673    AC_MSG_WARN([Cannot find $PYTHON_EXE in your system path - skipping python support])
674  else
675    AC_PYTHON_DEVEL_SINGULAR(>= '2.4', "${PYTHON}")
676    AC_PYTHON_TEST_STATIC()
677
678    if test "${PYTHON_PLUGIN}" = embed; then
679      AC_DEFINE(EMBED_PYTHON)
680      EMBED_PYTHON_VALUE=1
681
682      PYTHON_EMBED_LIBS="$PYTHON_LDFLAGS $PYTHON_EXTRA_LIBS"
683      AC_SUBST(PYTHON_EMBED_LIBS)
684    fi
685
686  fi
687fi
688AC_SUBST(EMBED_PYTHON_VALUE)
689
690
691dnl llllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllll
692dnl check for general libraries, header files, typedefs, etc
693dnl
694# lib checks
695# under cygwin, we should not explicitly link with -lm, except for
696# it really is the last thing to link with
697if test "$ac_cv_singuname" != ix86-Win; then
698AC_CHECK_LIB(m, atof)
699fi
700AC_CHECK_LIB(nsl)
701AC_CHECK_LIB(socket)
702SAVE_LIBS=${LIBS}
703LIBS=
704
705dnl I'm not sure what they are for
706AC_CHECK_LIB(bsd, setenv)
707dnl i386-SunOS needs nsl and socket
708AC_CHECK_LIB(socket, listen)
709AC_CHECK_LIB(nsl, gethostbyname)
710dnl AC_CHECK_LIB(ucb, index)
711MP_LIBS=${LIBS}
712# check for dl lib
713case "$ac_cv_singuname" in
714        HPUX*)
715          AC_CHECK_LIB(dld, shl_load)
716          if test "$ac_cv_lib_dld_shl_load" = yes; then
717                LD_DYN_FLAGS1="-Xlinker -E"
718                LD_DYN_FLAGS2="-ldld"
719                SFLAGS="-fpic -fPIC -DPIC"
720                SLDFLAGS="-fPIC -DPIC -shared"
721                if test "${LD+set}" != set; then
722                  LD=gcc
723                fi
724                ac_lib_dl=yes
725          fi
726        ;;
727        *Linux*)
728          AC_CHECK_LIB(dl, dlopen)
729          if test "$ac_cv_lib_dl_dlopen" = yes; then
730                LD_DYN_FLAGS1="-rdynamic"
731                LD_DYN_FLAGS2="-ldl"
732                SFLAGS="-fpic -DPIC"
733                SLDFLAGS=-shared
734                if test "${LD+set}" != set; then
735                  LD=ld
736                fi
737                ac_lib_dl=yes
738          fi
739        ;;
740        IRIX-6)
741          LD_DYN_FLAGS1=""
742          LD_DYN_FLAGS2="-lc"
743          SFLAGS="-fPIC -DPIC"
744          SLDFLAGS="-w -no_unresolved -_SYSTYPE_SVR4 -n32 -shared"
745          if test "${LD+set}" != set; then
746            LD=ld
747          fi
748          ac_lib_dl=yes
749        ;;
750        SunOS-5)
751          AC_CHECK_LIB(dl, dlopen)
752          if test "$ac_cv_lib_dl_dlopen" = yes; then
753                LD_DYN_FLAGS1=""
754                LD_DYN_FLAGS2="-ldl"
755                SFLAGS="-fpic -DPIC"
756                SLDFLAGS=-shared
757                if test "${LD+set}" != set; then
758                  LD=$CC
759                fi
760                ac_lib_dl=yes
761          fi
762        ;;
763        #use export MACOSX_DEPLOYMENT_TARGET=10.3
764        ppcMac-darwin)
765          AC_CHECK_LIB(dl, dlopen)
766          if test "$ac_cv_lib_dl_dlopen" = yes; then
767                LD_DYN_FLAGS1="-dynamic"
768                LD_DYN_FLAGS2="-ldl"
769                SFLAGS="-fpic -DPIC"
770                SLDFLAGS="-dynamic -twolevel_namespace -weak_reference_mismatches weak -undefined dynamic_lookup"
771                if test "${LD+set}" != set; then
772                  LD=libtool
773                fi
774                ac_lib_dl=yes
775          fi
776        ;;
777        ix86Mac-darwin)
778          AC_CHECK_LIB(dl, dlopen)
779          if test "$ac_cv_lib_dl_dlopen" = yes; then
780                LD_DYN_FLAGS1="-dynamic"
781                LD_DYN_FLAGS2="-ldl"
782                SFLAGS="-fpic -DPIC"
783                SLDFLAGS="-dynamic -twolevel_namespace -weak_reference_mismatches weak -undefined dynamic_lookup"
784                if test "${LD+set}" != set; then
785                  LD=libtool
786                fi
787                ac_lib_dl=yes
788          fi
789        ;;
790        x86_64Mac-darwin)
791          AC_CHECK_LIB(dl, dlopen)
792           if test "$ac_cv_lib_dl_dlopen" = yes; then
793                LD_DYN_FLAGS1="-dynamic"
794                LD_DYN_FLAGS2="-ldl"
795                SFLAGS="-fpic -DPIC"
796                SLDFLAGS="-dynamic -twolevel_namespace -weak_reference_mismatches weak -undefined dynamic_lookup"
797                 if test "${LD+set}" != set; then
798                  LD=libtool
799                 fi
800                ac_lib_dl=yes
801          fi
802        ;;
803        *-freebsd)
804          AC_CHECK_LIB(c, dlopen)
805          if test "$ac_cv_lib_c_dlopen" = yes; then
806                LD_DYN_FLAGS1="-Xlinker -E"
807                LD_DYN_FLAGS2=""
808                SFLAGS="-fpic -DPIC"
809                SLDFLAGS=-shared
810                if test "${LD+set}" != set; then
811                  LD=ld
812                fi
813                ac_lib_dl=yes
814          fi
815        ;;
816esac
817if test $ac_cv_c_cpp = unknown;
818then
819  LD_DYN_FLAGS1=
820  LD_DYN_FLAGS2=
821  SFLAGS=
822  SLDFLAGS=
823fi
824AC_SUBST(LD_DYN_FLAGS1)
825AC_SUBST(LD_DYN_FLAGS2)
826AC_SUBST(SFLAGS)
827AC_SUBST(SLDFLAGS)
828AC_SUBST(LD)
829LIBS="${SAVE_LIBS} ${MP_LIBS}"
830
831
832# heder file checks
833AC_HEADER_STDC
834AC_CHECK_HEADERS(limits.h unistd.h,,
835  AC_MSG_ERROR(Can not compile without limits.h unistd.h))
836
837AC_CHECK_HEADERS(sys/file.h sys/ioctl.h sys/time.h sys/times.h sys/types.h \
838 sys/stat.h fcntl.h sys/param.h pwd.h asm/sigcontext.h pwd.h termcap.h \
839 termios.h term.h readline/readline.h)
840
841# typedefs, structures
842AC_C_CONST
843AC_C_INLINE
844AC_TYPE_SIZE_T
845AC_STRUCT_TM
846AC_HEADER_TIME
847
848# library functions.
849AC_FUNC_ALLOCA
850AC_PROG_GCC_TRADITIONAL
851AC_FUNC_MMAP
852AC_TYPE_SIGNAL
853AC_FUNC_VPRINTF
854AC_SEARCH_LIBS(setenv, bsd)
855AC_CHECK_FUNCS(gettimeofday atexit bcopy getcwd getwd vsnprintf readlink \
856 sleep usleep getpwnam popen setenv siginterrupt sysconf pselect)
857
858
859dnl llllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllll
860dnl Find out more about particularity of the system
861dnl
862
863# arithmetic shifts
864#AC_MSG_CHECKING(whether your machine has correct arithmetic shifts)
865#AC_CACHE_VAL(ac_cv_shift, AC_TRY_RUN(
866#  [ int main() { if (-2 >> 1 == -1) return(0); else return(1); } ],
867#   ac_cv_shift=yes,
868#   ac_cv_shift=no,
869#   if test "$ac_c_cross_dos" = yes; then
870#     ac_cv_shift=yes;
871#   else
872#     AC_MSG_RESULT(no)
873#     AC_MSG_ERROR(cross compilation without default value)
874#   fi))
875#
876#if test "$ac_cv_shift" = yes; then
877#  AC_MSG_RESULT(yes)
878#else
879#  AC_MSG_RESULT(no)
880#  AC_MSG_ERROR(need  -2 >> 1 == -1)
881#fi
882
883
884# check for a peculiar constructor initialization
885AC_MSG_CHECKING(whether explicit C++ constructor calls are allowed)
886AC_LANG_SAVE
887AC_LANG_CPLUSPLUS
888AC_CACHE_VAL(ac_cv_explicit_const,AC_TRY_COMPILE(,
889  class testclass
890  {
891  public:
892    int value;
893    testclass() : value(0) {}
894    testclass( int i ) : value(i) {}
895    ~testclass() { value = 0; }
896  };
897
898  testclass ptr;
899  ptr.testclass(1);
900, ac_cv_explicit_const=yes, ac_cv_explicit_const=no))
901AC_LANG_RESTORE
902AC_MSG_RESULT($ac_cv_explicit_const)
903if test "$ac_cv_explicit_const" = yes; then
904  AC_DEFINE(HAVE_EXPLICIT_CONSTR)
905fi
906
907# sprintf returns number of printed chars
908AC_MSG_CHECKING(whether vsprintf returns number of printed chars)
909AC_CACHE_VAL(ac_cv_returns_n_of_chars, AC_TRY_RUN(
910 [#include <stdio.h>
911 main() { char *str=(char*)malloc(20); if (((int) sprintf(str,"123456789")) == 9) exit(0); else exit(1); }],
912   ac_cv_returns_n_of_chars=yes,
913   ac_cv_returns_n_of_chars=no,
914   ac_cv_returns_n_of_chars=no))
915if test "$ac_cv_returns_n_of_chars" = yes; then
916  AC_MSG_RESULT(yes)
917else
918  AC_MSG_RESULT(no)
919  AC_DEFINE(BSD_SPRINTF)
920fi
921
922# determine ALIGN_8
923AC_CHECK_SIZEOF(char,1)
924AC_CHECK_SIZEOF(short,2)
925AC_CHECK_SIZEOF(int,4)
926AC_CHECK_SIZEOF(long,4)
927AC_CHECK_SIZEOF(void*,4)
928AC_CHECK_SIZEOF(double, 8)
929AC_C_BIGENDIAN
930if test "$ac_cv_sizeof_int" != 4; then
931  AC_MSG_ERROR(need int to be four bytes long)
932fi
933if test "$ac_cv_sizeof_long" != "$ac_cv_sizeof_voidp"; then
934  AC_MSG_ERROR(need equal sizes for long and void*)
935fi
936if test "$ac_cv_sizeof_double" != 8; then
937  AC_MSG_ERROR(need double to b 8 bytes long)
938fi
939if test "$ac_cv_sizeof_voidp" != 4 && test "$ac_cv_sizeof_voidp" != 8; then
940  AC_MSG_ERROR(need void* to be 4 or 8 bytes long)
941fi
942if test "$ac_cv_sizeof_voidp" != 4; then
943  DEFS="-UOM_NDEBUG"
944  AC_SUBST(DEFS)
945fi
946
947dnl lllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllll
948dnl help for configure
949dnl
950AC_ARG_WITH(
951  rootdir,
952  [  --with-rootdir=DIR      use DIR ass compiled-in root directory
953                             (default is PREFIX)])
954AC_ARG_WITH(
955  lex,
956  [  --with-lex=[LEX,no]     uses LEX as lex program, default is flex])
957AC_ARG_WITH(
958  readline,
959  [  --with-readline=[dynamic,static,no]
960                        do use dynamic/static/no readline for fancy display])
961AC_ARG_WITH(
962  python,
963  [  --with-python[=PYTHON[,embed|module[,static|dynamic]]]
964                        uses PYTHON as python executable, default is python;
965                        optionally set plug-in and linkage type])
966AC_ARG_WITH(
967  Boost,
968  [  --without-Boost         do not use Boost ])
969AC_ARG_WITH(
970  stdvec,
971  [  --with-stdvec           use std::vector ])
972AC_ARG_WITH(
973  MP,
974  [  --without-MP            do not use MP (no MP links)])
975AC_ARG_WITH(
976  dbm,
977  [  --without-dbm           do not use dbm (no DBM links)])
978AC_ARG_WITH(
979  factory,
980  [  --without-factory       do not use factory (no poly factorization)])
981AC_ARG_WITH(
982  libfac,
983  [  --without-libfac        do not use libfac (no primary decompositions)])
984AC_ARG_WITH(
985  dl,
986  [  --without-dl            do not use dynamic linking, modules, and kernel])
987AC_ARG_WITH(
988  dynamic-modules,
989  [  --with-dynamic-modules  do compile with dynamic modules support])
990AC_ARG_WITH(
991  dynamic-kernel,
992  [  --without-dynamic-kernel
993                          do not compile with dynamic kernel parts])
994AC_ARG_WITH(apint,
995  [  --with-apint=PACKAGE    use PACKAGE for arbitary integer arithmetic])
996AC_ARG_WITH(svd,
997  [  --with-svd              use libsvd])
998AC_ARG_WITH(
999  Plural,
1000  [  --without-Plural        do compile without Plural support])
1001AC_ARG_WITH(
1002  NTL,
1003  [  --with-NTL              build for use with NTL.],
1004  ,
1005  with_NTL=yes)
1006AC_ARG_WITH(
1007  RatGB,
1008  [  --with-ratGB            do compile with ratGB support (experimental)])
1009
1010dnl llllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllll
1011dnl check for packages we need
1012dnl for gmp, MP, factory and libfac, we built them in, even if the libs
1013dnl and headers were not found under the condition that the respective
1014dnl  --enable argument was given
1015dnl
1016
1017
1018AC_MSG_CHECKING(whether to use dynamic linking)
1019if test "$with_dl" != no && test "$ac_lib_dl" = yes; then
1020  AC_DEFINE(HAVE_DL)
1021  ac_have_dl=yes
1022  AC_MSG_RESULT(yes)
1023else
1024  AC_MSG_RESULT(no)
1025fi
1026
1027AC_CHECK_LIB(ncurses,tgetent,,\
1028 AC_CHECK_LIB(curses,tgetent,,\
1029  AC_CHECK_LIB(termcap,tgetent)))
1030
1031# readline
1032if test "$with_readline" = dynamic && test "$ac_have_dl" != yes; then
1033  AC_MSG_WARN(can not build dynamic readline without dynamic linking)
1034  with_readline=static
1035fi
1036
1037
1038if test "$with_readline" != dynamic && test "$with_readline" != no; then
1039AC_LANG_SAVE
1040AC_LANG_CPLUSPLUS
1041   AC_CHECK_LIB(readline, readline)
1042   AC_CHECK_HEADERS(readline/readline.h readline/history.h)
1043   if test "$ac_cv_lib_readline_readline" = yes && \
1044      test "$ac_cv_header_readline_readline_h" = yes; then
1045     AC_MSG_CHECKING(whether readline.h is ok)
1046     AC_CACHE_VAL(ac_cv_header_readline_readline_h_ok,
1047     AC_TRY_LINK(
1048#include<unistd.h>
1049#include<stdio.h>
1050#include<readline/readline.h>
1051#ifdef HAVE_READLINE_HISTORY_H
1052#include<readline/history.h>
1053#endif
1054,
1055,
1056ac_cv_header_readline_readline_h_ok="yes",
1057ac_cv_header_readline_readline_h_ok="no",
1058))
1059    AC_MSG_RESULT($ac_cv_header_readline_readline_h_ok)
1060    if test "$ac_cv_header_readline_readline_h_ok" != yes; then
1061#not ok -- try once more with explicitly declaring everything
1062      AC_MSG_CHECKING(whether or not we nevertheless can use readline)
1063      AC_CACHE_VAL(ac_cv_have_readline,
1064      AC_TRY_LINK(
1065#include <stdio.h>
1066extern "C"
1067{
1068extern char * rl_readline_name;
1069extern char *rl_line_buffer;
1070char *filename_completion_function();
1071typedef char **CPPFunction ();
1072extern char ** completion_matches ();
1073extern CPPFunction * rl_attempted_completion_function;
1074extern FILE * rl_outstream;
1075char * readline ();
1076void add_history ();
1077int write_history ();
1078int read_history();
1079}
1080#ifndef NULL
1081#define NULL 0
1082#endif
1083,
1084rl_readline_name=NULL;
1085*rl_line_buffer=1;
1086completion_matches(NULL, filename_completion_function);
1087rl_attempted_completion_function = (CPPFunction *) NULL;
1088rl_outstream=NULL;
1089readline(NULL);
1090add_history(NULL);
1091read_history(NULL);
1092write_history(NULL);
1093,
1094ac_cv_have_readline="yes"
1095,
1096ac_cv_have_readline="no"
1097))
1098      AC_MSG_RESULT($ac_cv_have_readline)
1099    else
1100      AC_DEFINE(READLINE_READLINE_H_OK)
1101      ac_cv_have_readline="yes"
1102    fi
1103  fi
1104  if test "$ac_cv_have_readline" = yes; then
1105    AC_DEFINE(HAVE_READLINE)
1106  fi
1107AC_LANG_RESTORE
1108fi
1109
1110AC_MSG_CHECKING(which readline to use)
1111if test "$ac_cv_with_readline" = dynamic; then
1112  AC_MSG_RESULT(dynamic)
1113  AC_DEFINE(HAVE_DYN_RL)
1114elif test "$ac_cv_have_readline" = yes; then
1115  AC_MSG_RESULT(static)
1116elif test "$ac_cv_singuname" = PowerMacintosh-darwin; then
1117  AC_MSG_ERROR(building without readline impossible on PowerMacintosh-darwin)
1118else
1119  AC_MSG_RESULT(none)
1120  AC_MSG_WARN(building without readline: disabling fancy display)
1121fi
1122
1123NEED_LIBS=$LIBS
1124
1125# gmp, MP, MPT, factory, libfac
1126AC_CHECK_LIB(gmp, main)
1127SAVE_LIBS=$LIBS
1128AC_CHECK_LIB(MP, IMP_PutGmpInt,,,$MP_LIBS)
1129AC_CHECK_LIB(MPT, MPT_GetTree,,,$MP_LIBS)
1130LIBS=$SAVE_LIBS
1131AC_CHECK_LIB(singcf, atof)
1132AC_CHECK_LIB(singfac, atof)
1133AC_CHECK_LIB(omalloc, omTestAddr)
1134AC_CHECK_LIB(omalloc_ndebug, main)
1135AC_CHECK_LIB(ntl,main)
1136
1137AC_CHECK_HEADERS(gmp.h MP.h  MPT.h factory.h factor.h omalloc.h \
1138 omalloc.c)
1139
1140AC_MSG_CHECKING(whether to use Boost)
1141if test "$with_Boost" != no; then
1142  AC_MSG_RESULT(yes)
1143  AC_LANG_SAVE
1144  AC_LANG_CPLUSPLUS
1145  AC_CHECK_HEADERS(boost/dynamic_bitset.hpp)
1146  AC_LANG_RESTORE
1147else
1148  AC_MSG_RESULT(no)
1149  AC_MSG_CHECKING(whether to use std::vector)
1150  if test "$with_stdvec" != yes; then
1151    AC_MSG_RESULT(no)
1152  else
1153    AC_MSG_RESULT(yes)
1154    AC_DEFINE(USE_STDVECBOOL)
1155    USE_STDVECBOOL=1
1156  fi
1157fi
1158AC_SUBST(USE_STDVECBOOL)
1159
1160if test "$ac_cv_lib_gmp_main" = yes && \
1161 test "$ac_cv_header_gmp_h" = yes; then
1162    ac_gmp_ok=yes
1163fi
1164
1165if test "$ac_cv_lib_MP_IMP_PutGmpInt" = yes && \
1166 test "$ac_cv_lib_MPT_MPT_GetTree" && \
1167 test "$ac_cv_header_MP_h" = yes && \
1168 test "$ac_cv_header_MPT_h" = yes; then
1169  ac_MP_ok=yes
1170fi
1171
1172if test "$ac_cv_lib_singcf_atof" = yes && \
1173 test "$ac_cv_header_factory_h" = yes; then
1174  ac_factory_ok=yes
1175fi
1176
1177if test "$ac_cv_lib_singfac_atof" = yes && \
1178 test "$ac_cv_header_factor_h" = yes; then
1179  ac_libfac_ok=yes
1180fi
1181
1182if test "$ac_cv_lib_omalloc_omTestAddr" = yes && \
1183   test "$ac_cv_lib_omalloc_ndebug_main" = yes && \
1184   test "$ac_cv_header_omalloc_c" = yes && \
1185   test "$ac_cv_header_omalloc_h" = yes; then
1186  ac_cv_omalloc_ok=yes
1187fi
1188
1189if test "$ac_cv_lib_ntl_main" = yes; then
1190  ac_cv_ntl_ok=yes
1191fi
1192
1193SAVE_LIBS=$LIBS
1194AC_CHECK_LIB(c_nonshared,__stack_chk_fail_local,GLIBC_DYN_FIX="-lc_nonshared",GLIBC_DYN_FIX="")
1195LIBS=$SAVE_LIBS
1196AC_SUBST(GLIBC_DYN_FIX)
1197
1198
1199# evaluate results
1200dnl llllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllll
1201dnl make sure that omalloc is there
1202dnl
1203if test "$ac_cv_omalloc_ok" != yes && test "$enable_omalloc" != yes; then
1204  AC_MSG_ERROR(can not build without omalloc)
1205fi
1206
1207AC_MSG_CHECKING(which apint package to use)
1208if test "${with_apint}" != gmp; then
1209  if test "$ac_gmp_ok" = yes || test "$enable_gmp" = yes; then
1210    AC_MSG_RESULT(gmp)
1211    will_have_gmp=yes
1212    NEED_LIBS="-lgmp ${NEED_LIBS}"
1213  else
1214    AC_MSG_RESULT(none)
1215    AC_MSG_ERROR(can not build without gmp)
1216  fi
1217else
1218  if test "$ac_gmp_ok" = yes || test "$enable_gmp" = yes; then
1219    AC_MSG_RESULT(gmp)
1220    will_have_gmp=yes
1221    NEED_LIBS="-lgmp ${NEED_LIBS}"
1222  else
1223    AC_MSG_RESULT(none)
1224    AC_MSG_ERROR(can not build with gmp)
1225  fi
1226fi
1227
1228AC_MSG_CHECKING(gfanlib)
1229if test "$enable_gfanlib" = yes; then
1230  AC_MSG_RESULT(yes)
1231  NEED_LIBS="${NEED_LIBS} -lgfan -lcddgmp"
1232else
1233  AC_MSG_RESULT(can not build with gfan lib)
1234fi
1235
1236AC_MSG_CHECKING(whether to use libsvd)
1237if test "$with_svd" = yes; then
1238  AC_MSG_RESULT(yes)
1239  AC_DEFINE(HAVE_SVD)
1240  NEED_LIBS="-lsvd -lmpfr ${NEED_LIBS}"
1241else
1242  AC_MSG_RESULT(no)
1243fi
1244AC_SUBST(HAVE_SVD)
1245
1246#
1247AC_MSG_CHECKING(whether to have MP)
1248if test "${with_MP}" != yes && test "${with_MP}" != no; then
1249  if (test "${will_have_gmp}" = yes) && \
1250     (test "$ac_MP_ok" =  yes || test "$enable_MP" = yes); then
1251    AC_MSG_RESULT(yes)
1252    AC_DEFINE(HAVE_MPSR)
1253    HAVE_MPSR=1
1254    MP_LIBS="-lMPT -lMP ${MP_LIBS}"
1255  else
1256    AC_MSG_RESULT(no)
1257  fi
1258elif  test "${with_MP}" = yes; then
1259  if (test "${will_have_gmp}" = yes) && \
1260     (test "$ac_MP_ok" =  yes || test "$enable_MP" = yes); then
1261    AC_MSG_RESULT(yes)
1262    AC_DEFINE(HAVE_MPSR)
1263    HAVE_MPSR=1
1264    MP_LIBS="-lMPT -lMP ${MP_LIBS}"
1265  else
1266    AC_MSG_RESULT(no)
1267    AC_MSG_ERROR(can not build with MP)
1268  fi
1269else
1270  AC_MSG_RESULT(no)
1271fi
1272AC_SUBST(HAVE_MPSR)
1273AC_SUBST(MP_LIBS)
1274
1275AC_MSG_CHECKING(whether to have NTL)
1276if test "${with_NTL}" = yes ; then
1277  AC_MSG_RESULT(yes)
1278  NEED_LIBS="-lntl ${NEED_LIBS}"
1279else
1280  AC_MSG_RESULT(no)
1281fi
1282
1283AC_MSG_CHECKING(whether to have factory)
1284if test "${with_factory}" != yes && test "${with_factory}" != no; then
1285  if test "$ac_factory_ok" =  yes || test "$enable_factory" = yes; then
1286    AC_MSG_RESULT(yes)
1287    AC_DEFINE(HAVE_FACTORY)
1288    will_have_factory=yes
1289    NEED_LIBS="-lsingcf ${NEED_LIBS}"
1290  else
1291    AC_MSG_RESULT(no)
1292  fi
1293elif  test "${with_factory}" = yes; then
1294  if test "$ac_factory_ok" =  yes || test "$enable_factory" = yes; then
1295    AC_MSG_RESULT(yes)
1296    AC_DEFINE(HAVE_FACTORY)
1297    will_have_factory=yes
1298    NEED_LIBS="-lsingcf ${NEED_LIBS}"
1299  else
1300    AC_MSG_RESULT(no)
1301    AC_MSG_ERROR(can not build with factory)
1302  fi
1303else
1304  AC_MSG_RESULT(no)
1305fi
1306
1307AC_MSG_CHECKING(whether to have libfac)
1308if test "${with_libfac}" != yes && test "${with_libfac}" != no; then
1309  if (test "${will_have_factory}" = yes) && \
1310     (test "$ac_libfac_ok" =  yes || test "$enable_libfac" = yes); then
1311    AC_MSG_RESULT(yes)
1312    NEED_LIBS="-lsingfac ${NEED_LIBS}"
1313  else
1314    AC_MSG_RESULT(no)
1315    AC_MSG_ERROR(can not build without libfac)
1316  fi
1317elif  test "${with_libfac}" = yes; then
1318  if (test "${will_have_factory}" = yes) && \
1319     (test "$ac_libfac_ok" =  yes || test "$enable_libfac" = yes); then
1320    AC_MSG_RESULT(yes)
1321    NEED_LIBS="-lsingfac ${NEED_LIBS}"
1322  else
1323    AC_MSG_RESULT(no)
1324    AC_MSG_ERROR(can not build with libfac)
1325  fi
1326else
1327  AC_MSG_RESULT(no)
1328fi
1329
1330NEED_LIBSG="${NEED_LIBS}"
1331if test "$ac_cv_sizeof_voidp" != 4; then
1332  NEED_LIBS="${NEED_LIBS} -lomalloc"
1333else
1334  NEED_LIBS="${NEED_LIBS} -lomalloc_ndebug"
1335fi
1336
1337
1338AC_SUBST(NEED_LIBS)
1339AC_SUBST(NEED_LIBSG)
1340
1341AC_MSG_CHECKING(whether to have dbm links)
1342if test "$with_dbm" != no; then
1343  AC_DEFINE(HAVE_DBM)
1344  AC_MSG_RESULT(yes)
1345else
1346  AC_MSG_RESULT(no)
1347fi
1348
1349AC_MSG_CHECKING(whether to have dynamic modules)
1350if test "$with_dynamic_modules" = no || test "$ac_have_dl" != yes; then
1351  AC_MSG_RESULT(no)
1352else
1353  AC_DEFINE(HAVE_DYNAMIC_LOADING)
1354  AC_MSG_RESULT(yes)
1355fi
1356
1357AC_MSG_CHECKING(whether to have dynamic kernel)
1358if test "$with_dynamic_kernel" != no && test "$ac_lib_dl" = yes; then
1359  DL_KERNEL=1
1360  AC_SUBST(DL_KERNEL)
1361  AC_MSG_RESULT(yes)
1362else
1363  AC_MSG_RESULT(no)
1364fi
1365
1366AC_MSG_CHECKING(whether to have Plural)
1367if test "$with_Plural" != no && test "$enable_Plural" != no; then
1368  AC_DEFINE(HAVE_PLURAL)
1369  AC_MSG_RESULT(yes)
1370  PLURAL=1
1371  AC_SUBST(PLURAL)
1372else
1373  AC_MSG_RESULT(no)
1374fi
1375
1376AC_MSG_CHECKING(whether to have ratGB)
1377if test "$with_ratGB" != yes && test "$enable_ratGB" != yes; then
1378  AC_MSG_RESULT(no)
1379else
1380  AC_DEFINE(HAVE_RATGRING)
1381  AC_MSG_RESULT(yes)
1382fi
1383
1384
1385OUTPUT_MAKEFILES="Makefile ../kernel/Makefile"
1386
1387if test "$ac_cv_singuname" = "ix86-Win"; then
1388  OUTPUT_MAKEFILES="${OUTPUT_MAKEFILES} Singular.rc"
1389fi
1390
1391AC_OUTPUT(${OUTPUT_MAKEFILES}, \
1392 cp mod2.h ../kernel/mod2.h; \
1393 if test "$CONFIG_HEADERS"; then echo timestamp > stamp-h; fi)
Note: See TracBrowser for help on using the repository browser.