source: git/Singular/configure.in @ 3060a7

fieker-DuValspielwiese
Last change on this file since 3060a7 was 9e9dbc, checked in by Hans Schönemann <hannes@…>, 15 years ago
*hannes: new date for 3-1-0, HAVE_RATGRING git-svn-id: file:///usr/local/Singular/svn/trunk@11424 2c84dea3-7e68-4137-9b89-c4e89433aadc
  • Property mode set to 100644
File size: 27.3 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 determine singuname
8dnl
9
10AC_MSG_CHECKING(CPU for singular)
11ac_cv_singcpuname=`uname -m`
12AC_MSG_RESULT($ac_cv_singcpuname)
13
14AC_MSG_CHECKING(uname for singular)
15AC_CACHE_VAL(ac_cv_singuname,
16ac_cv_singuname="unknown"
17if test -r "singuname.sh"; then
18  if (/bin/sh singuname.sh >/dev/null 2>&1) then
19    ac_cv_singuname=`/bin/sh singuname.sh`
20  fi
21fi
22if test "$ac_cv_singuname" = unknown && test -r "../singuname.sh"; then
23  if (/bin/sh ../singuname.sh >/dev/null 2>&1) then
24    ac_cv_singuname=`/bin/sh ../singuname.sh`
25  fi
26fi
27)
28AC_MSG_RESULT($ac_cv_singuname)
29if test "$ac_cv_singuname" = unknown; then
30  AC_MSG_WARN(Unknown architecture: Check singuname.sh)
31  ac_cv_singuname="unknown"
32fi
33AC_DEFINE_UNQUOTED(S_UNAME, "$ac_cv_singuname")
34SINGUNAME=$ac_cv_singuname
35AC_SUBST(SINGUNAME)
36
37if test "$ac_cv_singuname" = ix86-Win; then
38  EXEC_EXT=".exe"
39  AC_DEFINE(SI_CPU_I386)
40  AC_SUBST(SI_CPU_I386)
41  AC_MSG_RESULT(SI_CPU_I386)
42fi
43AC_SUBST(EXEC_EXT)
44if test "$ac_cv_singuname" = x86_64-Linux; then
45  AC_DEFINE(SI_CPU_X86_64)
46  AC_SUBST(SI_CPU_X86_64)
47  AC_MSG_RESULT(SI_CPU_X86_64)
48fi
49if test "$ac_cv_singuname" = ix86-Linux; then
50  AC_DEFINE(SI_CPU_I386)
51  AC_SUBST(SI_CPU_I386)
52  AC_MSG_RESULT(SI_CPU_I386)
53fi
54if test "$ac_cv_singuname" = IA64-Linux; then
55  AC_DEFINE(SI_CPU_IA64)
56  AC_SUBST(SI_CPU_IA64)
57  AC_MSG_RESULT(SI_CPU_IA64)
58fi
59if test "$ac_cv_singuname" = ppc-Linux; then
60  AC_DEFINE(SI_CPU_PPC)
61  AC_SUBST(SI_CPU_PPC)
62  AC_MSG_RESULT(SI_CPU_PPC)
63fi
64if test "$ac_cv_singuname" = ppcMac-darwin; then
65  AC_DEFINE(SI_CPU_PPC)
66  AC_SUBST(SI_CPU_PPC)
67  AC_MSG_RESULT(SI_CPU_PPC)
68fi
69# test again with CPU names
70if test "$ac_cv_singcpuname" = i386; then
71  AC_DEFINE(SI_CPU_I386)
72  AC_SUBST(SI_CPU_I386)
73  AC_MSG_RESULT(SI_CPU_I386)
74fi
75if test "$ac_cv_singcpuname" = i686; then
76  AC_DEFINE(SI_CPU_I386)
77  AC_SUBST(SI_CPU_I386)
78  AC_MSG_RESULT(SI_CPU_I386)
79fi
80if test "$ac_cv_singcpuname" = x86_64; then
81  AC_DEFINE(SI_CPU_X86_64)
82  AC_SUBST(SI_CPU_X86_64)
83  AC_MSG_RESULT(SI_CPU_X86_64)
84fi
85if test "$ac_cv_singcpuname" = ia64; then
86  AC_DEFINE(SI_CPU_IA64)
87  AC_SUBST(SI_CPU_IA64)
88  AC_MSG_RESULT(SI_CPU_IA64)
89fi
90if test "$ac_cv_singcpuname" = sparc; then
91  AC_DEFINE(SI_CPU_SPARC)
92  AC_SUBST(SI_CPU_SPARC)
93  AC_MSG_RESULT(SI_CPU_SPARC)
94fi
95if test "$ac_cv_singcpuname" = ppc; then
96  AC_DEFINE(SI_CPU_PPC)
97  AC_SUBST(SI_CPU_PPC)
98  AC_MSG_RESULT(SI_CPU_PPC)
99fi
100
101SING_UNAME=`echo $SINGUNAME | tr '-' '_' `
102AC_SUBST(SING_UNAME)
103
104# stupid Win programs do not like dots in their pathnames
105VERSION_SEP="-"
106
107dnl llllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllll
108dnl version stuff -- should be set in ../configure.in
109dnl
110dnl here are some defaults
111
112SINGULAR_MAJOR_VERSION=${SINGULAR_MAJOR_VERSION:-3}
113SINGULAR_MINOR_VERSION=${SINGULAR_MINOR_VERSION:-1}
114SINGULAR_SUB_VERSION=${SINGULAR_SUB_VERSION:-0}
115SINGULAR_VERSION="${SINGULAR_VERSION:-$SINGULAR_MAJOR_VERSION${VERSION_SEP}$SINGULAR_MINOR_VERSION${VERSION_SEP}$SINGULAR_SUB_VERSION}"
116VERSION_DATE=${VERSION_DATE:-"Mar 2009"}
117
118dnl pass them on into the Makefiles
119AC_SUBST(SINGULAR_VERSION)
120AC_SUBST(VERSION_DATE)
121AC_SUBST(SINGULAR_MAJOR_VERSION)
122AC_SUBST(SINGULAR_MINOR_VERSION)
123AC_SUBST(SINGULAR_SUB_VERSION)
124AC_DEFINE_UNQUOTED(SINGULAR_MAJOR_VERSION, ${SINGULAR_MAJOR_VERSION})
125AC_DEFINE_UNQUOTED(SINGULAR_MINOR_VERSION, ${SINGULAR_MINOR_VERSION})
126AC_DEFINE_UNQUOTED(SINGULAR_SUB_VERSION, ${SINGULAR_SUB_VERSION})
127AC_DEFINE_UNQUOTED(S_VERSION1, "${SINGULAR_MAJOR_VERSION}${VERSION_SEP}${SINGULAR_MINOR_VERSION}${VERSION_SEP}${SINGULAR_SUB_VERSION}")
128AC_DEFINE_UNQUOTED(S_VERSION2, "${VERSION_DATE}")
129AC_DEFINE_UNQUOTED(SINGULAR_SUB_VERSION, ${SINGULAR_SUB_VERSION})
130
131
132dnl lllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllll
133dnl compiler stuff
134dnl is needed to check for libs and headers, later on
135dnl
136dnl we do not want to have "-g -O" for CFLAGS
137if test "${CXXFLAGS+set}" != set; then
138  ac_cxxflags_set=no
139  CXXFLAGS="-O"
140fi
141if test "${CFLAGS+set}" != set; then
142  CFLAGS="-O"
143  ac_cflags_set=no
144fi
145
146# check whether CXX was set by user as env variable
147if test "${CXX+set}" != set; then
148  ac_cxx_set=no
149else
150  ac_cxx_set=yes
151fi
152AC_PROG_CC
153AC_PROG_CPP
154AC_PROG_CXX
155AC_PROG_INSTALL
156AC_AIX
157
158# test for gcc-version: gcc2: prefer CC=gcc, CXX=gcc (if not with boost)
159#                       gcc3:        CC=gcc  CXX=g++
160#                       other:       CC=cc   CXX=c++
161AC_MSG_CHECKING(gcc version)
162AC_CACHE_VAL(ac_cv_c_cpp,
163ac_cv_c_cp="unknown"
164if test -r "gccversion.sh"; then
165  ac_cv_c_cpp=`/bin/sh gccversion.sh`
166fi
167)
168AC_MSG_RESULT($ac_cv_c_cpp)
169
170# we prefer using gcc for compiling C++ files, provided the user did
171# not overwrite it explicitely
172if test "${GXX}" = yes && test "${ac_cxx_set}" = no; then
173  if test "${ac_cv_c_cpp}" = gcc2; then
174    CXX=g++
175  elif test "${ac_cv_c_cpp}" = gcc3; then
176    CXX=g++
177  fi
178  temp_flags="${CXXFLAGS}"
179  AC_LANG_SAVE
180  AC_LANG_CPLUSPLUS
181  # check whether gcc accepts --no-rtti
182  AC_MSG_CHECKING(whether gcc accepts --no-rtti)
183  CXXFLAGS="${CXXFLAGS} --no-rtti"
184  AC_CACHE_VAL(ac_cv_cxx_have_rtti,
185    AC_TRY_COMPILE(,,ac_cv_cxx_have_rtti=yes,ac_cv_cxx_have_rtti=no)
186  )
187  AC_MSG_RESULT(${ac_cv_cxx_have_rtti})
188  if test "${ac_cv_cxx_have_rtti}" != yes; then
189    CXXFLAGS="$temp_flags"
190  else
191    CXXFLAGS="${temp_flags} --no-rtti"
192    temp_flags="${CXXFLAGS}"
193  fi
194
195# check whether gcc accepts --no-exceptions
196  AC_MSG_CHECKING(whether gcc accepts --no-exceptions)
197  CXXFLAGS="${CXXFLAGS} --no-exceptions"
198  AC_CACHE_VAL(ac_cv_cxx_have_exceptions,
199    AC_TRY_LINK(,,ac_cv_cxx_have_exceptions=yes,ac_cv_cxx_have_exceptions=no)
200  )
201  AC_MSG_RESULT(${ac_cv_cxx_have_exceptions})
202  if test "${ac_cv_cxx_have_exceptions}" != yes; then
203    CXXFLAGS="$temp_flags"
204  else
205    CXXFLAGS="${temp_flags} --no-exceptions"
206    temp_flags="${CXXFLAGS}"
207  fi
208
209  AC_LANG_RESTORE
210  CXXFLAGS="$temp_flags"
211  #here is broking something
212  #uncommented breaks CXXFLAGS variable set
213  #only pipes would remain then in CXXFLAGS
214fi
215
216# check whether the compiler accepts -pipe
217if test x$ac_cv_c_cpp = xgcc2 -o  x$ac_cv_c_cpp = xgcc3
218then
219  AC_MSG_CHECKING(whether compiler accepts -pipe)
220  temp_cflags="${CFLAGS}"
221  CFLAGS="${CFLAGS} -pipe"
222  AC_CACHE_VAL(ac_cv_cxx_have_pipe,
223  AC_TRY_COMPILE(,,ac_cv_cxx_have_pipe=yes,ac_cv_cxx_have_pipe=no))
224  AC_MSG_RESULT(${ac_cv_cxx_have_pipe})
225  CFLAGS=${temp_cflags}
226else
227  ac_cv_cxx_have_pipe="no"
228fi
229
230if test "${ac_cv_cxx_have_pipe}" != yes; then
231  PIPE=
232else
233  PIPE="-pipe"
234fi
235AC_SUBST(PIPE)
236
237# Customize CFLAGS
238AC_MSG_CHECKING(whether _AIX is defined)
239AC_CACHE_VAL(ac_cv_is_aix,
240AC_EGREP_CPP(yes,
241[#ifdef _AIX
242    yes
243#endif
244], ac_cv_is_aix=yes, ac_cv_is_aix=no, 1))
245if test "$ac_cv_is_aix" = yes; then
246  AC_MSG_RESULT(yes)
247else
248  AC_MSG_RESULT(no)
249fi
250
251# we know best when compiling with gcc
252if test "${GXX}" = yes; then
253  if test "$ac_cxxflags_set" = no; then
254    CXXFLAGS="-O3 -w -fomit-frame-pointer"
255  fi
256  temp_flags="${CXXFLAGS}"
257  if test "${ac_cv_cxx_have_rtti}" = yes; then
258    CXXFLAGS="${temp_flags} --no-rtti"
259  fi
260  temp_flags="${CXXFLAGS}"
261  CXXTEMPLFLAGS="-fno-implicit-templates"
262  if test "${ac_cv_cxx_have_exceptions}" = yes; then
263    CXXTEMPLFLAGS="${CXXTEMPLFLAGS} --no-exceptions"
264  fi
265  if test "$ac_cv_is_aix" = yes; then
266    CXXNOOPTFLAGS="-w"
267  else
268    CXXNOOPTFLAGS=$CXXFLAGS
269  fi
270  STATIC_LDFLAGS="-static"
271else
272  CXXTEMPFLAGS=""
273  CXXNOOPTFLAGS=$CXXFLAGS
274  STATIC_LDFLAGS=""
275fi
276AC_SUBST(CXXTEMPLFLAGS)
277AC_SUBST(CXXNOOPTFLAGS)
278AC_SUBST(STATIC_LDFLAGS)
279
280if test "${GCC}" = yes && test "$ac_cflags_set" = no ; then
281  CFLAGS="-O3 -w -fomit-frame-pointer"
282fi
283
284AC_PROG_MAKE_SET
285
286dnl lllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllll
287dnl path stuff
288dnl
289AC_PREFIX_DEFAULT(`pwd`/..)
290
291dnl set exec_prefix, bindir, libdir, includedir to some sensible values
292dnl if they are not yet already set
293
294# expand prefix
295test "x$prefix" = xNONE && prefix=$ac_default_prefix
296if test "${with_rootdir+set}" != set; then
297  AC_DEFINE_UNQUOTED(S_ROOT_DIR, "${prefix}")
298else
299  AC_DEFINE_UNQUOTED(S_ROOT_DIR, "${with_rootdir}")
300fi
301
302# expand exec_prefixad
303if test "x$exec_prefix" = xNONE; then
304 exec_prefix=${prefix}/${ac_cv_singuname}
305fi
306
307# expand bindir
308test "x$bindir" = 'x${exec_prefix}/bin' && bindir="${exec_prefix}"
309SINGULAR=${SINGULAR:-$bindir/Singular-$SINGULAR_MAJOR_VERSION${VERSION_SEP}$SINGULAR_MINOR_VERSION${VERSION_SEP}$SINGULAR_SUB_VERSION}
310AC_SUBST(SINGULAR)
311AC_DEFINE_UNQUOTED(S_BIN_DIR, "${bindir}")
312
313# expand libdir
314test "x$libdir" = 'x${exec_prefix}/lib'&& libdir="${exec_prefix}/lib"
315
316# expand includedir
317test "x$includedir" = 'x${prefix}/include' && includedir="${exec_prefix}/include"
318
319# add to -I to CPPFLAGS and and -L to LDFLAGS, just to be sure
320if test "$ac_cv_c_cpp" = gcc3 ; then
321  LDFLAGS="-L${libdir} ${LDFLAGS}"
322  CPPFLAGS="-I${includedir} ${CPPFLAGS}"
323else
324  LDFLAGS="-L${libdir} ${LDFLAGS} -L/usr/local/lib"
325  CPPFLAGS="-I${includedir} ${CPPFLAGS} -I/usr/local/include"
326fi
327
328# this is a work-around to include the right term.h
329if test "$ac_cv_singuname" = SunOS-5; then
330CPPFLAGS="-I/usr/xpg4/include ${CPPFLAGS}"
331fi
332
333
334dnl lllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllll
335dnl Checks for programs.
336dnl
337
338# lex
339if test "${with_lex+set}" != set; then
340  AC_MSG_CHECKING(for flex)
341  changequote(<<,>>)dnl
342  cmd="egrep [2-9]\.[5-9]"
343  changequote([,])dnl
344  AC_CACHE_VAL(ac_cv_prog_flex,
345  if (flex --version >/dev/null 2>&1)
346    then
347    if (flex --version | $cmd >/dev/null 2>&1 )
348    then
349        ac_cv_prog_flex=flex
350    fi
351  fi
352  )
353  dnl changequote([,])dnl
354  if test "${ac_cv_prog_flex+set}" = set; then
355    AC_MSG_RESULT(flex)
356    LEX=flex
357    AC_SUBST(LEX)
358  else
359    AC_MSG_WARN(can not find flex with version 2.4.5-2.5.4)
360  fi
361elif test "${with_lex}" = no; then
362  AC_MSG_WARN(building without lex -- make might fail)
363else
364  unset LEX
365  unset ac_cv_prog_LEX
366  AC_CHECK_PROGS(LEX, ${with_lex})
367  if test "x${LEX}" = x; then
368    AC_MSG_WARN(building without lex -- make might fail)
369  fi
370fi
371
372# bison
373AC_CHECK_PROGS(BISON, bison)
374if test "${BISON+set}" != set; then
375  AC_MSG_WARN(did not find bison -- make might fail)
376fi
377
378# ln -s
379AC_PROG_LN_S
380
381AC_CHECK_PROGS(PERL, perl5 perl)
382
383dnl llllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllll
384dnl check for general libraries, header files, typedefs, etc
385dnl
386# lib checks
387# under cygwin, we should not explicitly link with -lm, except for
388# it really is the last thing to link with
389if test "$ac_cv_singuname" != ix86-Win; then
390AC_CHECK_LIB(m, atof)
391fi
392AC_CHECK_LIB(nsl)
393AC_CHECK_LIB(socket)
394SAVE_LIBS=${LIBS}
395LIBS=
396
397dnl I'm not sure what they are for
398AC_CHECK_LIB(bsd, setenv)
399dnl i386-SunOS needs nsl and socket
400AC_CHECK_LIB(socket, listen)
401AC_CHECK_LIB(nsl, gethostbyname)
402dnl AC_CHECK_LIB(ucb, index)
403MP_LIBS=${LIBS}
404# check for dl lib
405case "$ac_cv_singuname" in
406        HPUX*)
407          AC_CHECK_LIB(dld, shl_load)
408          if test "$ac_cv_lib_dld_shl_load" = yes; then
409                LD_DYN_FLAGS="-ldld -Xlinker -E"
410                SFLAGS="-fpic -fPIC -DPIC"
411                SLDFLAGS="-fPIC -DPIC -shared"
412                if test "${LD+set}" != set; then
413                  LD=gcc
414                fi
415                ac_lib_dl=yes
416          fi
417        ;;
418        *Linux*)
419          AC_CHECK_LIB(dl, dlopen)
420          if test "$ac_cv_lib_dl_dlopen" = yes; then
421                LD_DYN_FLAGS="-ldl -rdynamic"
422                SFLAGS="-fpic -DPIC"
423                SLDFLAGS=-shared
424                if test "${LD+set}" != set; then
425                  LD=ld
426                fi
427                ac_lib_dl=yes
428          fi
429        ;;
430        IRIX-6)
431          LD_DYN_FLAGS="-lc"
432          SFLAGS="-fPIC -DPIC"
433          SLDFLAGS="-w -no_unresolved -_SYSTYPE_SVR4 -n32 -shared"
434          if test "${LD+set}" != set; then
435            LD=ld
436          fi
437          ac_lib_dl=yes
438        ;;
439        SunOS-5)
440          AC_CHECK_LIB(dl, dlopen)
441          if test "$ac_cv_lib_dl_dlopen" = yes; then
442                LD_DYN_FLAGS="-ldl"
443                SFLAGS="-fpic -DPIC"
444                SLDFLAGS=-shared
445                if test "${LD+set}" != set; then
446                  LD=$CC
447                fi
448                ac_lib_dl=yes
449          fi
450        ;;
451        #use export MACOSX_DEPLOYMENT_TARGET=10.3
452        ppcMac-darwin)
453          AC_CHECK_LIB(dl, dlopen)
454          if test "$ac_cv_lib_dl_dlopen" = yes; then
455                LD_DYN_FLAGS="-ldl -dynamic"
456                SFLAGS="-fpic -DPIC"
457                SLDFLAGS="-dynamic -twolevel_namespace -weak_reference_mismatches weak -undefined dynamic_lookup"
458                if test "${LD+set}" != set; then
459                  LD=libtool
460                fi
461                ac_lib_dl=yes
462          fi
463        ;;
464        ix86Mac-darwin)
465          AC_CHECK_LIB(dl, dlopen)
466          if test "$ac_cv_lib_dl_dlopen" = yes; then
467                LD_DYN_FLAGS="-ldl -dynamic"
468                SFLAGS="-fpic -DPIC"
469                SLDFLAGS="-dynamic -twolevel_namespace -weak_reference_mismatches weak -undefined dynamic_lookup"
470                if test "${LD+set}" != set; then
471                  LD=libtool
472                fi
473                ac_lib_dl=yes
474          fi
475        ;;
476        ix86-freebsd)
477          AC_CHECK_LIB(c, dlopen)
478          if test "$ac_cv_lib_c_dlopen" = yes; then
479                LD_DYN_FLAGS="-Xlinker -E"
480                SFLAGS="-fpic -DPIC"
481                SLDFLAGS=-shared
482                if test "${LD+set}" != set; then
483                  LD=ld
484                fi
485                ac_lib_dl=yes
486          fi
487        ;;
488esac
489AC_SUBST(LD_DYN_FLAGS)
490AC_SUBST(SFLAGS)
491AC_SUBST(SLDFLAGS)
492AC_SUBST(LD)
493LIBS=${SAVE_LIBS}
494
495
496# heder file checks
497AC_HEADER_STDC
498AC_CHECK_HEADERS(limits.h unistd.h,,
499  AC_MSG_ERROR(Can not compile without limits.h unistd.h))
500
501AC_CHECK_HEADERS(sys/file.h sys/ioctl.h sys/time.h sys/times.h sys/types.h \
502 sys/stat.h fcntl.h sys/param.h pwd.h asm/sigcontext.h pwd.h termcap.h \
503 termios.h term.h readline/readline.h)
504
505# typedefs, structures
506AC_C_CONST
507AC_C_INLINE
508AC_TYPE_SIZE_T
509AC_STRUCT_TM
510AC_HEADER_TIME
511
512# library functions.
513AC_FUNC_ALLOCA
514AC_PROG_GCC_TRADITIONAL
515AC_FUNC_MMAP
516AC_TYPE_SIGNAL
517AC_FUNC_VPRINTF
518AC_SEARCH_LIBS(setenv, bsd)
519AC_CHECK_FUNCS(gettimeofday atexit bcopy getcwd getwd vsnprintf readlink \
520 sleep usleep getpwnam popen setenv siginterrupt sysconf)
521
522
523dnl llllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllll
524dnl Find out more about particularity of the system
525dnl
526
527# arithmetic shifts
528AC_MSG_CHECKING(whether your machine has correct arithmetic shifts)
529AC_CACHE_VAL(ac_cv_shift, AC_TRY_RUN(
530  [ int main() { if (-2 >> 1 == -1) return(0); else return(1); } ],
531   ac_cv_shift=yes,
532   ac_cv_shift=no,
533   if test "$ac_c_cross_dos" = yes; then
534     ac_cv_shift=yes;
535   else
536     AC_MSG_RESULT(no)
537     AC_MSG_ERROR(cross compilation without default value)
538   fi))
539
540if test "$ac_cv_shift" = yes; then
541  AC_MSG_RESULT(yes)
542else
543  AC_MSG_RESULT(no)
544  AC_MSG_ERROR(need  -2 >> 1 == -1)
545fi
546
547
548# check for a peculiar constructor initialization
549AC_MSG_CHECKING(whether explicit C++ constructor calls are allowed)
550AC_LANG_SAVE
551AC_LANG_CPLUSPLUS
552AC_CACHE_VAL(ac_cv_explicit_const,AC_TRY_COMPILE(,
553  class testclass
554  {
555  public:
556    int value;
557    testclass() : value(0) {}
558    testclass( int i ) : value(i) {}
559    ~testclass() { value = 0; }
560  };
561
562  testclass ptr;
563  ptr.testclass(1);
564, ac_cv_explicit_const=yes, ac_cv_explicit_const=no))
565AC_LANG_RESTORE
566AC_MSG_RESULT($ac_cv_explicit_const)
567if test "$ac_cv_explicit_const" = yes; then
568  AC_DEFINE(HAVE_EXPLICIT_CONSTR)
569fi
570
571# sprintf returns number of printed chars
572AC_MSG_CHECKING(whether vsprintf returns number of printed chars)
573AC_CACHE_VAL(ac_cv_returns_n_of_chars, AC_TRY_RUN(
574 [#include <stdio.h>
575 main() { char *str=(char*)malloc(20); if (((int) sprintf(str,"123456789")) == 9) exit(0); else exit(1); }],
576   ac_cv_returns_n_of_chars=yes,
577   ac_cv_returns_n_of_chars=no,
578   ac_cv_returns_n_of_chars=no))
579if test "$ac_cv_returns_n_of_chars" = yes; then
580  AC_MSG_RESULT(yes)
581else
582  AC_MSG_RESULT(no)
583  AC_DEFINE(BSD_SPRINTF)
584fi
585
586# determine ALIGN_8
587AC_CHECK_SIZEOF(char,1)
588AC_CHECK_SIZEOF(short,2)
589AC_CHECK_SIZEOF(int,4)
590AC_CHECK_SIZEOF(long,4)
591AC_CHECK_SIZEOF(void*,4)
592AC_CHECK_SIZEOF(double, 8)
593AC_C_BIGENDIAN
594if test "$ac_cv_sizeof_int" != 4; then
595  AC_MSG_ERROR(need int to be four bytes long)
596fi
597if test "$ac_cv_sizeof_long" != "$ac_cv_sizeof_voidp"; then
598  AC_MSG_ERROR(need equal sizes for long and void*)
599fi
600if test "$ac_cv_sizeof_double" != 8; then
601  AC_MSG_ERROR(need double to b 8 bytes long)
602fi
603if test "$ac_cv_sizeof_voidp" != 4 && test "$ac_cv_sizeof_voidp" != 8; then
604  AC_MSG_ERROR(need void* to be 4 or 8 bytes long)
605fi
606if test "$ac_cv_sizeof_voidp" != 4; then
607  DEFS="-UOM_NDEBUG"
608  AC_SUBST(DEFS)
609fi
610
611dnl lllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllll
612dnl help for configure
613dnl
614AC_ARG_WITH(
615  rootdir,
616  [  --with-rootdir=DIR      use DIR ass compiled-in root directory
617                             (default is PREFIX)])
618AC_ARG_WITH(
619  lex,
620  [  --with-lex=[LEX,no]     uses LEX as lex program, default is flex])
621AC_ARG_WITH(
622  readline,
623  [  --with-readline=[dynamic,static,no]
624                          do use dynamic/static/no readline for fancy display])
625AC_ARG_WITH(
626  Boost,
627  [  --without-Boost         do not use Boost ])
628AC_ARG_WITH(
629  stdvec,
630  [  --with-stdvec           use std::vector ])
631AC_ARG_WITH(
632  MP,
633  [  --without-MP            do not use MP (no MP links)])
634AC_ARG_WITH(
635  dbm,
636  [  --without-dbm           do not use dbm (no DBM links)])
637AC_ARG_WITH(
638  factory,
639  [  --without-factory       do not use factory (no poly factorization)])
640AC_ARG_WITH(
641  libfac,
642  [  --without-libfac        do not use libfac (no primary decompositions)])
643AC_ARG_WITH(
644  namespaces,
645  [  --with-namespaces       do compile namespace support])
646AC_ARG_WITH(
647  dl,
648  [  --without-dl            do not use dynamic linking, modules, and kernel])
649AC_ARG_WITH(
650  dynamic-modules,
651  [  --with-dynamic-modules  do compile with dynamic modules support])
652AC_ARG_WITH(
653  dynamic-kernel,
654  [  --without-dynamic-kernel
655                          do not compile with dynamic kernel parts])
656AC_ARG_WITH(apint,
657  [  --with-apint=PACKAGE    use PACKAGE for arbitary integer arithmetic])
658AC_ARG_WITH(svd,
659  [  --with-svd              use libsvd])
660AC_ARG_WITH(
661  Plural,
662  [  --without-Plural        do compile without Plural support])
663AC_ARG_WITH(
664  NTL,
665  [  --with-NTL              build for use with NTL.],
666  ,
667  with_NTL=yes)
668AC_ARG_WITH(
669  RatGB,
670  [  --with-ratGB            do compile with ratGB support (experimental)])
671
672dnl llllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllll
673dnl check for packages we need
674dnl for gmp, MP, factory and libfac, we built them in, even if the libs
675dnl and headers were not found under the condition that the respective
676dnl  --enable argument was given
677dnl
678
679
680AC_MSG_CHECKING(whether to use dynamic linking)
681if test "$with_dl" != no && test "$ac_lib_dl" = yes; then
682  AC_DEFINE(HAVE_DL)
683  ac_have_dl=yes
684  AC_MSG_RESULT(yes)
685else
686  AC_MSG_RESULT(no)
687fi
688
689AC_CHECK_LIB(ncurses,tgetent,,\
690 AC_CHECK_LIB(curses,tgetent,,\
691  AC_CHECK_LIB(termcap,tgetent)))
692
693# readline
694if test "$with_readline" = dynamic && test "$ac_have_dl" != yes; then
695  AC_MSG_WARN(can not build dynamic readline without dynamic linking)
696  with_readline=static
697fi
698
699
700if test "$with_readline" != dynamic && test "$with_readline" != no; then
701AC_LANG_SAVE
702AC_LANG_CPLUSPLUS
703   AC_CHECK_LIB(readline, rl_abort)
704   AC_CHECK_HEADERS(readline/readline.h readline/history.h)
705   if test "$ac_cv_lib_readline_rl_abort" = yes && \
706      test "$ac_cv_header_readline_readline_h" = yes; then
707     AC_MSG_CHECKING(whether readline.h is ok)
708     AC_CACHE_VAL(ac_cv_header_readline_readline_h_ok,
709     AC_TRY_LINK(
710#include<unistd.h>
711#include<stdio.h>
712#include<readline/readline.h>
713#ifdef HAVE_READLINE_HISTORY_H
714#include<readline/history.h>
715#endif
716,
717,
718ac_cv_header_readline_readline_h_ok="yes",
719ac_cv_header_readline_readline_h_ok="no",
720))
721    AC_MSG_RESULT($ac_cv_header_readline_readline_h_ok)
722    if test "$ac_cv_header_readline_readline_h_ok" != yes; then
723#not ok -- try once more with explicitly declaring everything
724      AC_MSG_CHECKING(whether or not we nevertheless can use readline)
725      AC_CACHE_VAL(ac_cv_have_readline,
726      AC_TRY_LINK(
727#include <stdio.h>
728extern "C"
729{
730extern char * rl_readline_name;
731extern char *rl_line_buffer;
732char *filename_completion_function();
733typedef char **CPPFunction ();
734extern char ** completion_matches ();
735extern CPPFunction * rl_attempted_completion_function;
736extern FILE * rl_outstream;
737char * readline ();
738void add_history ();
739int write_history ();
740int read_history();
741}
742#ifndef NULL
743#define NULL 0
744#endif
745,
746rl_readline_name=NULL;
747*rl_line_buffer=1;
748completion_matches(NULL, filename_completion_function);
749rl_attempted_completion_function = (CPPFunction *) NULL;
750rl_outstream=NULL;
751readline(NULL);
752add_history(NULL);
753read_history(NULL);
754write_history(NULL);
755,
756ac_cv_have_readline="yes"
757,
758ac_cv_have_readline="no"
759))
760      AC_MSG_RESULT($ac_cv_have_readline)
761    else
762      AC_DEFINE(READLINE_READLINE_H_OK)
763      ac_cv_have_readline="yes"
764    fi
765  fi
766  if test "$ac_cv_have_readline" = yes; then
767    AC_DEFINE(HAVE_READLINE)
768  fi
769AC_LANG_RESTORE
770fi
771
772AC_MSG_CHECKING(which readline to use)
773if test "$ac_cv_with_readline" = dynamic; then
774  AC_MSG_RESULT(dynamic)
775  AC_DEFINE(HAVE_DYN_RL)
776elif test "$ac_cv_have_readline" = yes; then
777  AC_MSG_RESULT(static)
778elif test "$ac_cv_singuname" = PowerMacintosh-darwin; then
779  AC_MSG_ERROR(building without readline impossible on PowerMacintosh-darwin)
780else
781  AC_MSG_RESULT(none)
782  AC_MSG_WARN(building without readline: disabling fancy display)
783fi
784
785NEED_LIBS=$LIBS
786
787# gmp, MP, MPT, factory, libfac
788AC_CHECK_LIB(gmp, main)
789SAVE_LIBS=$LIBS
790AC_CHECK_LIB(MP, IMP_PutGmpInt,,,$MP_LIBS)
791AC_CHECK_LIB(MPT, MPT_GetTree,,,$MP_LIBS)
792LIBS=$SAVE_LIBS
793AC_CHECK_LIB(singcf, atof)
794AC_CHECK_LIB(singfac, atof)
795AC_CHECK_LIB(omalloc, omTestAddr)
796AC_CHECK_LIB(omalloc_ndebug, main)
797AC_CHECK_LIB(ntl,main)
798
799AC_CHECK_HEADERS(gmp.h MP.h  MPT.h factory.h factor.h omalloc.h \
800 omalloc.c)
801
802AC_MSG_CHECKING(whether to use Boost)
803if test "$with_Boost" != no; then
804  AC_MSG_RESULT(yes)
805  AC_LANG_SAVE
806  AC_LANG_CPLUSPLUS
807  AC_CHECK_HEADERS(boost/dynamic_bitset.hpp)
808  AC_LANG_RESTORE
809else
810  AC_MSG_RESULT(no)
811  AC_MSG_CHECKING(whether to use std::vector)
812  if test "$with_stdvec" != yes; then
813    AC_MSG_RESULT(no)
814  else
815    AC_MSG_RESULT(yes)
816    AC_DEFINE(USE_STDVECBOOL)
817    USE_STDVECBOOL=1
818  fi
819fi
820AC_SUBST(USE_STDVECBOOL)
821
822if test "$ac_cv_lib_gmp_main" = yes && \
823 test "$ac_cv_header_gmp_h" = yes; then
824    ac_gmp_ok=yes
825fi
826
827if test "$ac_cv_lib_MP_IMP_PutGmpInt" = yes && \
828 test "$ac_cv_lib_MPT_MPT_GetTree" && \
829 test "$ac_cv_header_MP_h" = yes && \
830 test "$ac_cv_header_MPT_h" = yes; then
831  ac_MP_ok=yes
832fi
833
834if test "$ac_cv_lib_singcf_atof" = yes && \
835 test "$ac_cv_header_factory_h" = yes; then
836  ac_factory_ok=yes
837fi
838
839if test "$ac_cv_lib_singfac_atof" = yes && \
840 test "$ac_cv_header_factor_h" = yes; then
841  ac_libfac_ok=yes
842fi
843
844if test "$ac_cv_lib_omalloc_omTestAddr" = yes && \
845   test "$ac_cv_lib_omalloc_ndebug_main" = yes && \
846   test "$ac_cv_header_omalloc_c" = yes && \
847   test "$ac_cv_header_omalloc_h" = yes; then
848  ac_cv_omalloc_ok=yes
849fi
850
851if test "$ac_cv_lib_ntl_main" = yes; then
852  ac_cv_ntl_ok=yes
853fi
854
855SAVE_LIBS=$LIBS
856AC_CHECK_LIB(c_nonshared,__stack_chk_fail_local,GLIBC_DYN_FIX="-lc_nonshared",GLIBC_DYN_FIX="")
857LIBS=$SAVE_LIBS
858AC_SUBST(GLIBC_DYN_FIX)
859
860# evaluate results
861dnl llllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllll
862dnl make sure that omalloc is there
863dnl
864if test "$ac_cv_omalloc_ok" != yes && test "$enable_omalloc" != yes; then
865  AC_MSG_ERROR(can not build without omalloc)
866fi
867
868AC_MSG_CHECKING(which apint package to use)
869if test "${with_apint}" != gmp; then
870  if test "$ac_gmp_ok" = yes || test "$enable_gmp" = yes; then
871    AC_MSG_RESULT(gmp)
872    will_have_gmp=yes
873    NEED_LIBS="-lgmp ${NEED_LIBS}"
874  else
875    AC_MSG_RESULT(none)
876    AC_MSG_ERROR(can not build without gmp)
877  fi
878else
879  if test "$ac_gmp_ok" = yes || test "$enable_gmp" = yes; then
880    AC_MSG_RESULT(gmp)
881    will_have_gmp=yes
882    NEED_LIBS="-lgmp ${NEED_LIBS}"
883  else
884    AC_MSG_RESULT(none)
885    AC_MSG_ERROR(can not build with gmp)
886  fi
887fi
888
889AC_MSG_CHECKING(whether to use libsvd)
890if test "$with_svd" = yes; then
891  AC_MSG_RESULT(yes)
892  AC_DEFINE(HAVE_SVD)
893  NEED_LIBS="-lsvd -lmpfr ${NEED_LIBS}"
894else
895  AC_MSG_RESULT(no)
896fi
897AC_SUBST(HAVE_SVD)
898
899#
900AC_MSG_CHECKING(whether to have MP)
901if test "${with_MP}" != yes && test "${with_MP}" != no; then
902  if (test "${will_have_gmp}" = yes) && \
903     (test "$ac_MP_ok" =  yes || test "$enable_MP" = yes); then
904    AC_MSG_RESULT(yes)
905    AC_DEFINE(HAVE_MPSR)
906    HAVE_MPSR=1
907    MP_LIBS="-lMPT -lMP ${MP_LIBS}"
908  else
909    AC_MSG_RESULT(no)
910  fi
911elif  test "${with_MP}" = yes; then
912  if (test "${will_have_gmp}" = yes) && \
913     (test "$ac_MP_ok" =  yes || test "$enable_MP" = yes); then
914    AC_MSG_RESULT(yes)
915    AC_DEFINE(HAVE_MPSR)
916    HAVE_MPSR=1
917    MP_LIBS="-lMPT -lMP ${MP_LIBS}"
918  else
919    AC_MSG_RESULT(no)
920    AC_MSG_ERROR(can not build with MP)
921  fi
922else
923  AC_MSG_RESULT(no)
924fi
925AC_SUBST(HAVE_MPSR)
926AC_SUBST(MP_LIBS)
927
928AC_MSG_CHECKING(whether to have NTL)
929if test "${with_NTL}" = yes ; then
930  AC_MSG_RESULT(yes)
931  NEED_LIBS="-lntl ${NEED_LIBS}"
932else
933  AC_MSG_RESULT(no)
934fi
935
936AC_MSG_CHECKING(whether to have factory)
937if test "${with_factory}" != yes && test "${with_factory}" != no; then
938  if test "$ac_factory_ok" =  yes || test "$enable_factory" = yes; then
939    AC_MSG_RESULT(yes)
940    AC_DEFINE(HAVE_FACTORY)
941    will_have_factory=yes
942    NEED_LIBS="-lsingcf ${NEED_LIBS}"
943  else
944    AC_MSG_RESULT(no)
945  fi
946elif  test "${with_factory}" = yes; then
947  if test "$ac_factory_ok" =  yes || test "$enable_factory" = yes; then
948    AC_MSG_RESULT(yes)
949    AC_DEFINE(HAVE_FACTORY)
950    will_have_factory=yes
951    NEED_LIBS="-lsingcf ${NEED_LIBS}"
952  else
953    AC_MSG_RESULT(no)
954    AC_MSG_ERROR(can not build with factory)
955  fi
956else
957  AC_MSG_RESULT(no)
958fi
959
960AC_MSG_CHECKING(whether to have libfac)
961if test "${with_libfac}" != yes && test "${with_libfac}" != no; then
962  if (test "${will_have_factory}" = yes) && \
963     (test "$ac_libfac_ok" =  yes || test "$enable_libfac" = yes); then
964    AC_MSG_RESULT(yes)
965    AC_DEFINE(HAVE_LIBFAC_P)
966    NEED_LIBS="-lsingfac ${NEED_LIBS}"
967  else
968    AC_MSG_RESULT(no)
969  fi
970elif  test "${with_libfac}" = yes; then
971  if (test "${will_have_factory}" = yes) && \
972     (test "$ac_libfac_ok" =  yes || test "$enable_libfac" = yes); then
973    AC_MSG_RESULT(yes)
974    AC_DEFINE(HAVE_LIBFAC_P)
975    NEED_LIBS="-lsingfac ${NEED_LIBS}"
976  else
977    AC_MSG_RESULT(no)
978    AC_MSG_ERROR(can not build with libfac)
979  fi
980else
981  AC_MSG_RESULT(no)
982fi
983
984NEED_LIBSG="${NEED_LIBS}"
985if test "$ac_cv_sizeof_voidp" != 4; then
986  NEED_LIBS="${NEED_LIBS} -lomalloc"
987else
988  NEED_LIBS="${NEED_LIBS} -lomalloc_ndebug"
989fi
990
991
992AC_SUBST(NEED_LIBS)
993AC_SUBST(NEED_LIBSG)
994
995AC_MSG_CHECKING(whether to have dbm links)
996if test "$with_dbm" != no; then
997  AC_DEFINE(HAVE_DBM)
998  AC_MSG_RESULT(yes)
999else
1000  AC_MSG_RESULT(no)
1001fi
1002
1003AC_MSG_CHECKING(whether to have namespaces)
1004if test "$with_namespaces" != no; then
1005  AC_MSG_RESULT(yes)
1006  AC_DEFINE(HAVE_NS)
1007else
1008  AC_MSG_RESULT(no)
1009fi
1010
1011AC_MSG_CHECKING(whether to have dynamic modules)
1012if test "$with_dynamic_modules" = no || test "$ac_have_dl" != yes; then
1013  AC_MSG_RESULT(no)
1014else
1015  AC_DEFINE(HAVE_DYNAMIC_LOADING)
1016  AC_MSG_RESULT(yes)
1017fi
1018
1019AC_MSG_CHECKING(whether to have dynamic kernel)
1020if test "$with_dynamic_kernel" != no && test "$ac_lib_dl" = yes; then
1021  DL_KERNEL=1
1022  AC_SUBST(DL_KERNEL)
1023  AC_MSG_RESULT(yes)
1024else
1025  AC_MSG_RESULT(no)
1026fi
1027
1028AC_MSG_CHECKING(whether to have Plural)
1029if test "$with_Plural" != no && test "$enable_Plural" != no; then
1030  AC_DEFINE(HAVE_PLURAL)
1031  AC_MSG_RESULT(yes)
1032  PLURAL=1
1033  AC_SUBST(PLURAL)
1034else
1035  AC_MSG_RESULT(no)
1036fi
1037
1038AC_MSG_CHECKING(whether to have ratGB)
1039if test "$with_ratGB" != yes && test "$enable_ratGB" != yes; then
1040  AC_MSG_RESULT(no)
1041else
1042  AC_DEFINE(HAVE_RATGRING)
1043  AC_MSG_RESULT(yes)
1044fi
1045
1046
1047OUTPUT_MAKEFILES="Makefile ../kernel/Makefile"
1048
1049if test "$ac_cv_singuname" = "ix86-Win"; then
1050  OUTPUT_MAKEFILES="${OUTPUT_MAKEFILES} Singular.rc"
1051fi
1052
1053AC_OUTPUT(${OUTPUT_MAKEFILES}, \
1054 cp mod2.h ../kernel/mod2.h; \
1055 if test "$CONFIG_HEADERS"; then echo timestamp > stamp-h; fi)
Note: See TracBrowser for help on using the repository browser.