source: git/Singular/configure.in @ 020ef9

spielwiese
Last change on this file since 020ef9 was 2ad9f9, checked in by Hans Schönemann <hannes@…>, 14 years ago
Singular 3-1-1 git-svn-id: file:///usr/local/Singular/svn/trunk@12521 2c84dea3-7e68-4137-9b89-c4e89433aadc
  • Property mode set to 100644
File size: 27.0 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:-1}
115SINGULAR_VERSION="${SINGULAR_VERSION:-$SINGULAR_MAJOR_VERSION${VERSION_SEP}$SINGULAR_MINOR_VERSION${VERSION_SEP}$SINGULAR_SUB_VERSION}"
116VERSION_DATE=${VERSION_DATE:-"Feb 2010"}
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
528#AC_MSG_CHECKING(whether your machine has correct arithmetic shifts)
529#AC_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#
540#if test "$ac_cv_shift" = yes; then
541#  AC_MSG_RESULT(yes)
542#else
543#  AC_MSG_RESULT(no)
544#  AC_MSG_ERROR(need  -2 >> 1 == -1)
545#fi
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  dl,
645  [  --without-dl            do not use dynamic linking, modules, and kernel])
646AC_ARG_WITH(
647  dynamic-modules,
648  [  --with-dynamic-modules  do compile with dynamic modules support])
649AC_ARG_WITH(
650  dynamic-kernel,
651  [  --without-dynamic-kernel
652                          do not compile with dynamic kernel parts])
653AC_ARG_WITH(apint,
654  [  --with-apint=PACKAGE    use PACKAGE for arbitary integer arithmetic])
655AC_ARG_WITH(svd,
656  [  --with-svd              use libsvd])
657AC_ARG_WITH(
658  Plural,
659  [  --without-Plural        do compile without Plural support])
660AC_ARG_WITH(
661  NTL,
662  [  --with-NTL              build for use with NTL.],
663  ,
664  with_NTL=yes)
665AC_ARG_WITH(
666  RatGB,
667  [  --with-ratGB            do compile with ratGB support (experimental)])
668
669dnl llllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllll
670dnl check for packages we need
671dnl for gmp, MP, factory and libfac, we built them in, even if the libs
672dnl and headers were not found under the condition that the respective
673dnl  --enable argument was given
674dnl
675
676
677AC_MSG_CHECKING(whether to use dynamic linking)
678if test "$with_dl" != no && test "$ac_lib_dl" = yes; then
679  AC_DEFINE(HAVE_DL)
680  ac_have_dl=yes
681  AC_MSG_RESULT(yes)
682else
683  AC_MSG_RESULT(no)
684fi
685
686AC_CHECK_LIB(ncurses,tgetent,,\
687 AC_CHECK_LIB(curses,tgetent,,\
688  AC_CHECK_LIB(termcap,tgetent)))
689
690# readline
691if test "$with_readline" = dynamic && test "$ac_have_dl" != yes; then
692  AC_MSG_WARN(can not build dynamic readline without dynamic linking)
693  with_readline=static
694fi
695
696
697if test "$with_readline" != dynamic && test "$with_readline" != no; then
698AC_LANG_SAVE
699AC_LANG_CPLUSPLUS
700   AC_CHECK_LIB(readline, rl_abort)
701   AC_CHECK_HEADERS(readline/readline.h readline/history.h)
702   if test "$ac_cv_lib_readline_rl_abort" = yes && \
703      test "$ac_cv_header_readline_readline_h" = yes; then
704     AC_MSG_CHECKING(whether readline.h is ok)
705     AC_CACHE_VAL(ac_cv_header_readline_readline_h_ok,
706     AC_TRY_LINK(
707#include<unistd.h>
708#include<stdio.h>
709#include<readline/readline.h>
710#ifdef HAVE_READLINE_HISTORY_H
711#include<readline/history.h>
712#endif
713,
714,
715ac_cv_header_readline_readline_h_ok="yes",
716ac_cv_header_readline_readline_h_ok="no",
717))
718    AC_MSG_RESULT($ac_cv_header_readline_readline_h_ok)
719    if test "$ac_cv_header_readline_readline_h_ok" != yes; then
720#not ok -- try once more with explicitly declaring everything
721      AC_MSG_CHECKING(whether or not we nevertheless can use readline)
722      AC_CACHE_VAL(ac_cv_have_readline,
723      AC_TRY_LINK(
724#include <stdio.h>
725extern "C"
726{
727extern char * rl_readline_name;
728extern char *rl_line_buffer;
729char *filename_completion_function();
730typedef char **CPPFunction ();
731extern char ** completion_matches ();
732extern CPPFunction * rl_attempted_completion_function;
733extern FILE * rl_outstream;
734char * readline ();
735void add_history ();
736int write_history ();
737int read_history();
738}
739#ifndef NULL
740#define NULL 0
741#endif
742,
743rl_readline_name=NULL;
744*rl_line_buffer=1;
745completion_matches(NULL, filename_completion_function);
746rl_attempted_completion_function = (CPPFunction *) NULL;
747rl_outstream=NULL;
748readline(NULL);
749add_history(NULL);
750read_history(NULL);
751write_history(NULL);
752,
753ac_cv_have_readline="yes"
754,
755ac_cv_have_readline="no"
756))
757      AC_MSG_RESULT($ac_cv_have_readline)
758    else
759      AC_DEFINE(READLINE_READLINE_H_OK)
760      ac_cv_have_readline="yes"
761    fi
762  fi
763  if test "$ac_cv_have_readline" = yes; then
764    AC_DEFINE(HAVE_READLINE)
765  fi
766AC_LANG_RESTORE
767fi
768
769AC_MSG_CHECKING(which readline to use)
770if test "$ac_cv_with_readline" = dynamic; then
771  AC_MSG_RESULT(dynamic)
772  AC_DEFINE(HAVE_DYN_RL)
773elif test "$ac_cv_have_readline" = yes; then
774  AC_MSG_RESULT(static)
775elif test "$ac_cv_singuname" = PowerMacintosh-darwin; then
776  AC_MSG_ERROR(building without readline impossible on PowerMacintosh-darwin)
777else
778  AC_MSG_RESULT(none)
779  AC_MSG_WARN(building without readline: disabling fancy display)
780fi
781
782NEED_LIBS=$LIBS
783
784# gmp, MP, MPT, factory, libfac
785AC_CHECK_LIB(gmp, main)
786SAVE_LIBS=$LIBS
787AC_CHECK_LIB(MP, IMP_PutGmpInt,,,$MP_LIBS)
788AC_CHECK_LIB(MPT, MPT_GetTree,,,$MP_LIBS)
789LIBS=$SAVE_LIBS
790AC_CHECK_LIB(singcf, atof)
791AC_CHECK_LIB(singfac, atof)
792AC_CHECK_LIB(omalloc, omTestAddr)
793AC_CHECK_LIB(omalloc_ndebug, main)
794AC_CHECK_LIB(ntl,main)
795
796AC_CHECK_HEADERS(gmp.h MP.h  MPT.h factory.h factor.h omalloc.h \
797 omalloc.c)
798
799AC_MSG_CHECKING(whether to use Boost)
800if test "$with_Boost" != no; then
801  AC_MSG_RESULT(yes)
802  AC_LANG_SAVE
803  AC_LANG_CPLUSPLUS
804  AC_CHECK_HEADERS(boost/dynamic_bitset.hpp)
805  AC_LANG_RESTORE
806else
807  AC_MSG_RESULT(no)
808  AC_MSG_CHECKING(whether to use std::vector)
809  if test "$with_stdvec" != yes; then
810    AC_MSG_RESULT(no)
811  else
812    AC_MSG_RESULT(yes)
813    AC_DEFINE(USE_STDVECBOOL)
814    USE_STDVECBOOL=1
815  fi
816fi
817AC_SUBST(USE_STDVECBOOL)
818
819if test "$ac_cv_lib_gmp_main" = yes && \
820 test "$ac_cv_header_gmp_h" = yes; then
821    ac_gmp_ok=yes
822fi
823
824if test "$ac_cv_lib_MP_IMP_PutGmpInt" = yes && \
825 test "$ac_cv_lib_MPT_MPT_GetTree" && \
826 test "$ac_cv_header_MP_h" = yes && \
827 test "$ac_cv_header_MPT_h" = yes; then
828  ac_MP_ok=yes
829fi
830
831if test "$ac_cv_lib_singcf_atof" = yes && \
832 test "$ac_cv_header_factory_h" = yes; then
833  ac_factory_ok=yes
834fi
835
836if test "$ac_cv_lib_singfac_atof" = yes && \
837 test "$ac_cv_header_factor_h" = yes; then
838  ac_libfac_ok=yes
839fi
840
841if test "$ac_cv_lib_omalloc_omTestAddr" = yes && \
842   test "$ac_cv_lib_omalloc_ndebug_main" = yes && \
843   test "$ac_cv_header_omalloc_c" = yes && \
844   test "$ac_cv_header_omalloc_h" = yes; then
845  ac_cv_omalloc_ok=yes
846fi
847
848if test "$ac_cv_lib_ntl_main" = yes; then
849  ac_cv_ntl_ok=yes
850fi
851
852SAVE_LIBS=$LIBS
853AC_CHECK_LIB(c_nonshared,__stack_chk_fail_local,GLIBC_DYN_FIX="-lc_nonshared",GLIBC_DYN_FIX="")
854LIBS=$SAVE_LIBS
855AC_SUBST(GLIBC_DYN_FIX)
856
857# evaluate results
858dnl llllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllll
859dnl make sure that omalloc is there
860dnl
861if test "$ac_cv_omalloc_ok" != yes && test "$enable_omalloc" != yes; then
862  AC_MSG_ERROR(can not build without omalloc)
863fi
864
865AC_MSG_CHECKING(which apint package to use)
866if test "${with_apint}" != gmp; then
867  if test "$ac_gmp_ok" = yes || test "$enable_gmp" = yes; then
868    AC_MSG_RESULT(gmp)
869    will_have_gmp=yes
870    NEED_LIBS="-lgmp ${NEED_LIBS}"
871  else
872    AC_MSG_RESULT(none)
873    AC_MSG_ERROR(can not build without gmp)
874  fi
875else
876  if test "$ac_gmp_ok" = yes || test "$enable_gmp" = yes; then
877    AC_MSG_RESULT(gmp)
878    will_have_gmp=yes
879    NEED_LIBS="-lgmp ${NEED_LIBS}"
880  else
881    AC_MSG_RESULT(none)
882    AC_MSG_ERROR(can not build with gmp)
883  fi
884fi
885
886AC_MSG_CHECKING(whether to use libsvd)
887if test "$with_svd" = yes; then
888  AC_MSG_RESULT(yes)
889  AC_DEFINE(HAVE_SVD)
890  NEED_LIBS="-lsvd -lmpfr ${NEED_LIBS}"
891else
892  AC_MSG_RESULT(no)
893fi
894AC_SUBST(HAVE_SVD)
895
896#
897AC_MSG_CHECKING(whether to have MP)
898if test "${with_MP}" != yes && test "${with_MP}" != no; then
899  if (test "${will_have_gmp}" = yes) && \
900     (test "$ac_MP_ok" =  yes || test "$enable_MP" = yes); then
901    AC_MSG_RESULT(yes)
902    AC_DEFINE(HAVE_MPSR)
903    HAVE_MPSR=1
904    MP_LIBS="-lMPT -lMP ${MP_LIBS}"
905  else
906    AC_MSG_RESULT(no)
907  fi
908elif  test "${with_MP}" = yes; then
909  if (test "${will_have_gmp}" = yes) && \
910     (test "$ac_MP_ok" =  yes || test "$enable_MP" = yes); then
911    AC_MSG_RESULT(yes)
912    AC_DEFINE(HAVE_MPSR)
913    HAVE_MPSR=1
914    MP_LIBS="-lMPT -lMP ${MP_LIBS}"
915  else
916    AC_MSG_RESULT(no)
917    AC_MSG_ERROR(can not build with MP)
918  fi
919else
920  AC_MSG_RESULT(no)
921fi
922AC_SUBST(HAVE_MPSR)
923AC_SUBST(MP_LIBS)
924
925AC_MSG_CHECKING(whether to have NTL)
926if test "${with_NTL}" = yes ; then
927  AC_MSG_RESULT(yes)
928  NEED_LIBS="-lntl ${NEED_LIBS}"
929else
930  AC_MSG_RESULT(no)
931fi
932
933AC_MSG_CHECKING(whether to have factory)
934if test "${with_factory}" != yes && test "${with_factory}" != no; then
935  if test "$ac_factory_ok" =  yes || test "$enable_factory" = yes; then
936    AC_MSG_RESULT(yes)
937    AC_DEFINE(HAVE_FACTORY)
938    will_have_factory=yes
939    NEED_LIBS="-lsingcf ${NEED_LIBS}"
940  else
941    AC_MSG_RESULT(no)
942  fi
943elif  test "${with_factory}" = yes; then
944  if test "$ac_factory_ok" =  yes || test "$enable_factory" = yes; then
945    AC_MSG_RESULT(yes)
946    AC_DEFINE(HAVE_FACTORY)
947    will_have_factory=yes
948    NEED_LIBS="-lsingcf ${NEED_LIBS}"
949  else
950    AC_MSG_RESULT(no)
951    AC_MSG_ERROR(can not build with factory)
952  fi
953else
954  AC_MSG_RESULT(no)
955fi
956
957AC_MSG_CHECKING(whether to have libfac)
958if test "${with_libfac}" != yes && test "${with_libfac}" != no; then
959  if (test "${will_have_factory}" = yes) && \
960     (test "$ac_libfac_ok" =  yes || test "$enable_libfac" = yes); then
961    AC_MSG_RESULT(yes)
962    NEED_LIBS="-lsingfac ${NEED_LIBS}"
963  else
964    AC_MSG_RESULT(no)
965    AC_MSG_ERROR(can not build without libfac)
966  fi
967elif  test "${with_libfac}" = yes; then
968  if (test "${will_have_factory}" = yes) && \
969     (test "$ac_libfac_ok" =  yes || test "$enable_libfac" = yes); then
970    AC_MSG_RESULT(yes)
971    NEED_LIBS="-lsingfac ${NEED_LIBS}"
972  else
973    AC_MSG_RESULT(no)
974    AC_MSG_ERROR(can not build with libfac)
975  fi
976else
977  AC_MSG_RESULT(no)
978fi
979
980NEED_LIBSG="${NEED_LIBS}"
981if test "$ac_cv_sizeof_voidp" != 4; then
982  NEED_LIBS="${NEED_LIBS} -lomalloc"
983else
984  NEED_LIBS="${NEED_LIBS} -lomalloc_ndebug"
985fi
986
987
988AC_SUBST(NEED_LIBS)
989AC_SUBST(NEED_LIBSG)
990
991AC_MSG_CHECKING(whether to have dbm links)
992if test "$with_dbm" != no; then
993  AC_DEFINE(HAVE_DBM)
994  AC_MSG_RESULT(yes)
995else
996  AC_MSG_RESULT(no)
997fi
998
999AC_MSG_CHECKING(whether to have dynamic modules)
1000if test "$with_dynamic_modules" = no || test "$ac_have_dl" != yes; then
1001  AC_MSG_RESULT(no)
1002else
1003  AC_DEFINE(HAVE_DYNAMIC_LOADING)
1004  AC_MSG_RESULT(yes)
1005fi
1006
1007AC_MSG_CHECKING(whether to have dynamic kernel)
1008if test "$with_dynamic_kernel" != no && test "$ac_lib_dl" = yes; then
1009  DL_KERNEL=1
1010  AC_SUBST(DL_KERNEL)
1011  AC_MSG_RESULT(yes)
1012else
1013  AC_MSG_RESULT(no)
1014fi
1015
1016AC_MSG_CHECKING(whether to have Plural)
1017if test "$with_Plural" != no && test "$enable_Plural" != no; then
1018  AC_DEFINE(HAVE_PLURAL)
1019  AC_MSG_RESULT(yes)
1020  PLURAL=1
1021  AC_SUBST(PLURAL)
1022else
1023  AC_MSG_RESULT(no)
1024fi
1025
1026AC_MSG_CHECKING(whether to have ratGB)
1027if test "$with_ratGB" != yes && test "$enable_ratGB" != yes; then
1028  AC_MSG_RESULT(no)
1029else
1030  AC_DEFINE(HAVE_RATGRING)
1031  AC_MSG_RESULT(yes)
1032fi
1033
1034
1035OUTPUT_MAKEFILES="Makefile ../kernel/Makefile"
1036
1037if test "$ac_cv_singuname" = "ix86-Win"; then
1038  OUTPUT_MAKEFILES="${OUTPUT_MAKEFILES} Singular.rc"
1039fi
1040
1041AC_OUTPUT(${OUTPUT_MAKEFILES}, \
1042 cp mod2.h ../kernel/mod2.h; \
1043 if test "$CONFIG_HEADERS"; then echo timestamp > stamp-h; fi)
Note: See TracBrowser for help on using the repository browser.