source: git/Singular/configure.in @ 67ea5a

spielwiese
Last change on this file since 67ea5a was 67ea5a, checked in by Hans Schönemann <hannes@…>, 15 years ago
*hannes: LD=LDSO git-svn-id: file:///usr/local/Singular/svn/trunk@11335 2c84dea3-7e68-4137-9b89-c4e89433aadc
  • Property mode set to 100644
File size: 27.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 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:-"Aug 2008"}
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}
404if test "${LD+set}" != set; then
405  LDSO="${LD}"
406else
407  LDSO=ld
408fi
409# check for dl lib
410case "$ac_cv_singuname" in
411        HPUX*)
412          AC_CHECK_LIB(dld, shl_load)
413          if test "$ac_cv_lib_dld_shl_load" = yes; then
414                LD_DYN_FLAGS="-ldld -Xlinker -E"
415                SFLAGS="-fpic -fPIC -DPIC"
416                SLDFLAGS="-fPIC -DPIC -shared"
417                if test "${LD+set}" != set; then
418                  LDSO="${LD}"
419                else
420                  LDSO=gcc
421                fi
422                ac_lib_dl=yes
423          fi
424        ;;
425        *Linux*)
426          AC_CHECK_LIB(dl, dlopen)
427          if test "$ac_cv_lib_dl_dlopen" = yes; then
428                LD_DYN_FLAGS="-ldl -rdynamic"
429                SFLAGS="-fpic -DPIC"
430                SLDFLAGS=-shared
431                if test "${LD+set}" != set; then
432                  LDSO="${LD}"
433                else
434                  LDSO=ld
435                fi
436                ac_lib_dl=yes
437          fi
438        ;;
439        IRIX-6)
440          LD_DYN_FLAGS="-lc"
441          SFLAGS="-fPIC -DPIC"
442          SLDFLAGS="-w -no_unresolved -_SYSTYPE_SVR4 -n32 -shared"
443          if test "${LD+set}" != set; then
444            LDSO="${LD}"
445          else
446            LDSO=ld
447          fi
448          ac_lib_dl=yes
449        ;;
450        SunOS-5)
451          AC_CHECK_LIB(dl, dlopen)
452          if test "$ac_cv_lib_dl_dlopen" = yes; then
453                LD_DYN_FLAGS="-ldl"
454                SFLAGS="-fpic -DPIC"
455                SLDFLAGS=-shared
456                if test "${LD+set}" != set; then
457                  LDSO="${LD}"
458                else
459                  LDSO=$CC
460                fi
461                ac_lib_dl=yes
462          fi
463        ;;
464        #use export MACOSX_DEPLOYMENT_TARGET=10.3
465        ppcMac-darwin)
466          AC_CHECK_LIB(dl, dlopen)
467          if test "$ac_cv_lib_dl_dlopen" = yes; then
468                LD_DYN_FLAGS="-ldl -dynamic"
469                SFLAGS="-fpic -DPIC"
470                SLDFLAGS="-dynamic -twolevel_namespace -weak_reference_mismatches weak -undefined dynamic_lookup"
471                LDSO=libtool
472                ac_lib_dl=yes
473          fi
474        ;;
475        ix86Mac-darwin)
476          AC_CHECK_LIB(dl, dlopen)
477          if test "$ac_cv_lib_dl_dlopen" = yes; then
478                LD_DYN_FLAGS="-ldl -dynamic"
479                SFLAGS="-fpic -DPIC"
480                SLDFLAGS="-dynamic -twolevel_namespace -weak_reference_mismatches weak -undefined dynamic_lookup"
481                LDSO=libtool
482                ac_lib_dl=yes
483          fi
484        ;;
485        ix86-freebsd)
486          AC_CHECK_LIB(c, dlopen)
487          if test "$ac_cv_lib_c_dlopen" = yes; then
488                LD_DYN_FLAGS="-Xlinker -E"
489                SFLAGS="-fpic -DPIC"
490                SLDFLAGS=-shared
491                LDSO=ld
492                ac_lib_dl=yes
493          fi
494        ;;
495esac
496AC_SUBST(LD_DYN_FLAGS)
497AC_SUBST(SFLAGS)
498AC_SUBST(SLDFLAGS)
499AC_SUBST(LDSO)
500LIBS=${SAVE_LIBS}
501
502
503# heder file checks
504AC_HEADER_STDC
505AC_CHECK_HEADERS(limits.h unistd.h,,
506  AC_MSG_ERROR(Can not compile without limits.h unistd.h))
507
508AC_CHECK_HEADERS(sys/file.h sys/ioctl.h sys/time.h sys/times.h sys/types.h \
509 sys/stat.h fcntl.h sys/param.h pwd.h asm/sigcontext.h pwd.h termcap.h \
510 termios.h term.h readline/readline.h)
511
512# typedefs, structures
513AC_C_CONST
514AC_C_INLINE
515AC_TYPE_SIZE_T
516AC_STRUCT_TM
517AC_HEADER_TIME
518
519# library functions.
520AC_FUNC_ALLOCA
521AC_PROG_GCC_TRADITIONAL
522AC_FUNC_MMAP
523AC_TYPE_SIGNAL
524AC_FUNC_VPRINTF
525AC_SEARCH_LIBS(setenv, bsd)
526AC_CHECK_FUNCS(gettimeofday atexit bcopy getcwd getwd vsnprintf readlink \
527 sleep usleep getpwnam popen setenv siginterrupt sysconf)
528
529
530dnl llllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllll
531dnl Find out more about particularity of the system
532dnl
533
534# arithmetic shifts
535AC_MSG_CHECKING(whether your machine has correct arithmetic shifts)
536AC_CACHE_VAL(ac_cv_shift, AC_TRY_RUN(
537  [ int main() { if (-2 >> 1 == -1) return(0); else return(1); } ],
538   ac_cv_shift=yes,
539   ac_cv_shift=no,
540   if test "$ac_c_cross_dos" = yes; then
541     ac_cv_shift=yes;
542   else
543     AC_MSG_RESULT(no)
544     AC_MSG_ERROR(cross compilation without default value)
545   fi))
546
547if test "$ac_cv_shift" = yes; then
548  AC_MSG_RESULT(yes)
549else
550  AC_MSG_RESULT(no)
551  AC_MSG_ERROR(need  -2 >> 1 == -1)
552fi
553
554
555# check for a peculiar constructor initialization
556AC_MSG_CHECKING(whether explicit C++ constructor calls are allowed)
557AC_LANG_SAVE
558AC_LANG_CPLUSPLUS
559AC_CACHE_VAL(ac_cv_explicit_const,AC_TRY_COMPILE(,
560  class testclass
561  {
562  public:
563    int value;
564    testclass() : value(0) {}
565    testclass( int i ) : value(i) {}
566    ~testclass() { value = 0; }
567  };
568
569  testclass ptr;
570  ptr.testclass(1);
571, ac_cv_explicit_const=yes, ac_cv_explicit_const=no))
572AC_LANG_RESTORE
573AC_MSG_RESULT($ac_cv_explicit_const)
574if test "$ac_cv_explicit_const" = yes; then
575  AC_DEFINE(HAVE_EXPLICIT_CONSTR)
576fi
577
578# sprintf returns number of printed chars
579AC_MSG_CHECKING(whether vsprintf returns number of printed chars)
580AC_CACHE_VAL(ac_cv_returns_n_of_chars, AC_TRY_RUN(
581 [#include <stdio.h>
582 main() { char *str=(char*)malloc(20); if (((int) sprintf(str,"123456789")) == 9) exit(0); else exit(1); }],
583   ac_cv_returns_n_of_chars=yes,
584   ac_cv_returns_n_of_chars=no,
585   ac_cv_returns_n_of_chars=no))
586if test "$ac_cv_returns_n_of_chars" = yes; then
587  AC_MSG_RESULT(yes)
588else
589  AC_MSG_RESULT(no)
590  AC_DEFINE(BSD_SPRINTF)
591fi
592
593# determine ALIGN_8
594AC_CHECK_SIZEOF(char,1)
595AC_CHECK_SIZEOF(short,2)
596AC_CHECK_SIZEOF(int,4)
597AC_CHECK_SIZEOF(long,4)
598AC_CHECK_SIZEOF(void*,4)
599AC_CHECK_SIZEOF(double, 8)
600AC_C_BIGENDIAN
601if test "$ac_cv_sizeof_int" != 4; then
602  AC_MSG_ERROR(need int to be four bytes long)
603fi
604if test "$ac_cv_sizeof_long" != "$ac_cv_sizeof_voidp"; then
605  AC_MSG_ERROR(need equal sizes for long and void*)
606fi
607if test "$ac_cv_sizeof_double" != 8; then
608  AC_MSG_ERROR(need double to b 8 bytes long)
609fi
610if test "$ac_cv_sizeof_voidp" != 4 && test "$ac_cv_sizeof_voidp" != 8; then
611  AC_MSG_ERROR(need void* to be 4 or 8 bytes long)
612fi
613if test "$ac_cv_sizeof_voidp" != 4; then
614  DEFS="-UOM_NDEBUG"
615  AC_SUBST(DEFS)
616fi
617
618dnl lllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllll
619dnl help for configure
620dnl
621AC_ARG_WITH(
622  rootdir,
623  [  --with-rootdir=DIR      use DIR ass compiled-in root directory
624                             (default is PREFIX)])
625AC_ARG_WITH(
626  lex,
627  [  --with-lex=[LEX,no]     uses LEX as lex program, default is flex])
628AC_ARG_WITH(
629  readline,
630  [  --with-readline=[dynamic,static,no]
631                          do use dynamic/static/no readline for fancy display])
632AC_ARG_WITH(
633  Boost,
634  [  --without-Boost         do not use Boost ])
635AC_ARG_WITH(
636  stdvec,
637  [  --with-stdvec           use std::vector ])
638AC_ARG_WITH(
639  MP,
640  [  --without-MP            do not use MP (no MP links)])
641AC_ARG_WITH(
642  dbm,
643  [  --without-dbm           do not use dbm (no DBM links)])
644AC_ARG_WITH(
645  factory,
646  [  --without-factory       do not use factory (no poly factorization)])
647AC_ARG_WITH(
648  libfac,
649  [  --without-libfac        do not use libfac (no primary decompositions)])
650AC_ARG_WITH(
651  namespaces,
652  [  --with-namespaces       do compile namespace support])
653AC_ARG_WITH(
654  dl,
655  [  --without-dl            do not use dynamic linking, modules, and kernel])
656AC_ARG_WITH(
657  dynamic-modules,
658  [  --with-dynamic-modules  do compile with dynamic modules support])
659AC_ARG_WITH(
660  dynamic-kernel,
661  [  --without-dynamic-kernel
662                          do not compile with dynamic kernel parts])
663AC_ARG_WITH(apint,
664  [  --with-apint=PACKAGE    use PACKAGE for arbitary integer arithmetic])
665AC_ARG_WITH(svd,
666  [  --with-svd              use libsvd])
667AC_ARG_WITH(
668  Plural,
669  [  --without-Plural        do compile without Plural support])
670AC_ARG_WITH(
671  NTL,
672  [  --with-NTL              build for use with NTL.],
673  ,
674  with_NTL=yes)
675
676dnl llllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllll
677dnl check for packages we need
678dnl for gmp, MP, factory and libfac, we built them in, even if the libs
679dnl and headers were not found under the condition that the respective
680dnl  --enable argument was given
681dnl
682
683
684AC_MSG_CHECKING(whether to use dynamic linking)
685if test "$with_dl" != no && test "$ac_lib_dl" = yes; then
686  AC_DEFINE(HAVE_DL)
687  ac_have_dl=yes
688  AC_MSG_RESULT(yes)
689else
690  AC_MSG_RESULT(no)
691fi
692
693AC_CHECK_LIB(ncurses,tgetent,,\
694 AC_CHECK_LIB(curses,tgetent,,\
695  AC_CHECK_LIB(termcap,tgetent)))
696
697# readline
698if test "$with_readline" = dynamic && test "$ac_have_dl" != yes; then
699  AC_MSG_WARN(can not build dynamic readline without dynamic linking)
700  with_readline=static
701fi
702
703
704if test "$with_readline" != dynamic && test "$with_readline" != no; then
705AC_LANG_SAVE
706AC_LANG_CPLUSPLUS
707   AC_CHECK_LIB(readline, rl_abort)
708   AC_CHECK_HEADERS(readline/readline.h readline/history.h)
709   if test "$ac_cv_lib_readline_rl_abort" = yes && \
710      test "$ac_cv_header_readline_readline_h" = yes; then
711     AC_MSG_CHECKING(whether readline.h is ok)
712     AC_CACHE_VAL(ac_cv_header_readline_readline_h_ok,
713     AC_TRY_LINK(
714#include<unistd.h>
715#include<stdio.h>
716#include<readline/readline.h>
717#ifdef HAVE_READLINE_HISTORY_H
718#include<readline/history.h>
719#endif
720,
721,
722ac_cv_header_readline_readline_h_ok="yes",
723ac_cv_header_readline_readline_h_ok="no",
724))
725    AC_MSG_RESULT($ac_cv_header_readline_readline_h_ok)
726    if test "$ac_cv_header_readline_readline_h_ok" != yes; then
727#not ok -- try once more with explicitly declaring everything
728      AC_MSG_CHECKING(whether or not we nevertheless can use readline)
729      AC_CACHE_VAL(ac_cv_have_readline,
730      AC_TRY_LINK(
731#include <stdio.h>
732extern "C"
733{
734extern char * rl_readline_name;
735extern char *rl_line_buffer;
736char *filename_completion_function();
737typedef char **CPPFunction ();
738extern char ** completion_matches ();
739extern CPPFunction * rl_attempted_completion_function;
740extern FILE * rl_outstream;
741char * readline ();
742void add_history ();
743int write_history ();
744int read_history();
745}
746#ifndef NULL
747#define NULL 0
748#endif
749,
750rl_readline_name=NULL;
751*rl_line_buffer=1;
752completion_matches(NULL, filename_completion_function);
753rl_attempted_completion_function = (CPPFunction *) NULL;
754rl_outstream=NULL;
755readline(NULL);
756add_history(NULL);
757read_history(NULL);
758write_history(NULL);
759,
760ac_cv_have_readline="yes"
761,
762ac_cv_have_readline="no"
763))
764      AC_MSG_RESULT($ac_cv_have_readline)
765    else
766      AC_DEFINE(READLINE_READLINE_H_OK)
767      ac_cv_have_readline="yes"
768    fi
769  fi
770  if test "$ac_cv_have_readline" = yes; then
771    AC_DEFINE(HAVE_READLINE)
772  fi
773AC_LANG_RESTORE
774fi
775
776AC_MSG_CHECKING(which readline to use)
777if test "$ac_cv_with_readline" = dynamic; then
778  AC_MSG_RESULT(dynamic)
779  AC_DEFINE(HAVE_DYN_RL)
780elif test "$ac_cv_have_readline" = yes; then
781  AC_MSG_RESULT(static)
782elif test "$ac_cv_singuname" = PowerMacintosh-darwin; then
783  AC_MSG_ERROR(building without readline impossible on PowerMacintosh-darwin)
784else
785  AC_MSG_RESULT(none)
786  AC_MSG_WARN(building without readline: disabling fancy display)
787fi
788
789NEED_LIBS=$LIBS
790
791# gmp, MP, MPT, factory, libfac
792AC_CHECK_LIB(gmp, main)
793SAVE_LIBS=$LIBS
794AC_CHECK_LIB(MP, IMP_PutGmpInt,,,$MP_LIBS)
795AC_CHECK_LIB(MPT, MPT_GetTree,,,$MP_LIBS)
796LIBS=$SAVE_LIBS
797AC_CHECK_LIB(singcf, atof)
798AC_CHECK_LIB(singfac, atof)
799AC_CHECK_LIB(omalloc, omTestAddr)
800AC_CHECK_LIB(omalloc_ndebug, main)
801AC_CHECK_LIB(ntl,main)
802
803AC_CHECK_HEADERS(gmp.h MP.h  MPT.h factory.h factor.h omalloc.h \
804 omalloc.c)
805
806AC_MSG_CHECKING(whether to use Boost)
807if test "$with_Boost" != no; then
808  AC_MSG_RESULT(yes)
809  AC_LANG_SAVE
810  AC_LANG_CPLUSPLUS
811  AC_CHECK_HEADERS(boost/dynamic_bitset.hpp)
812  AC_LANG_RESTORE
813else
814  AC_MSG_RESULT(no)
815  AC_MSG_CHECKING(whether to use std::vector)
816  if test "$with_stdvec" != yes; then
817    AC_MSG_RESULT(no)
818  else
819    AC_MSG_RESULT(yes)
820    AC_DEFINE(USE_STDVECBOOL)
821    USE_STDVECBOOL=1
822  fi
823fi
824AC_SUBST(USE_STDVECBOOL)
825
826if test "$ac_cv_lib_gmp_main" = yes && \
827 test "$ac_cv_header_gmp_h" = yes; then
828    ac_gmp_ok=yes
829fi
830
831if test "$ac_cv_lib_MP_IMP_PutGmpInt" = yes && \
832 test "$ac_cv_lib_MPT_MPT_GetTree" && \
833 test "$ac_cv_header_MP_h" = yes && \
834 test "$ac_cv_header_MPT_h" = yes; then
835  ac_MP_ok=yes
836fi
837
838if test "$ac_cv_lib_singcf_atof" = yes && \
839 test "$ac_cv_header_factory_h" = yes; then
840  ac_factory_ok=yes
841fi
842
843if test "$ac_cv_lib_singfac_atof" = yes && \
844 test "$ac_cv_header_factor_h" = yes; then
845  ac_libfac_ok=yes
846fi
847
848if test "$ac_cv_lib_omalloc_omTestAddr" = yes && \
849   test "$ac_cv_lib_omalloc_ndebug_main" = yes && \
850   test "$ac_cv_header_omalloc_c" = yes && \
851   test "$ac_cv_header_omalloc_h" = yes; then
852  ac_cv_omalloc_ok=yes
853fi
854
855if test "$ac_cv_lib_ntl_main" = yes; then
856  ac_cv_ntl_ok=yes
857fi
858
859SAVE_LIBS=$LIBS
860AC_CHECK_LIB(c_nonshared,__stack_chk_fail_local,GLIBC_DYN_FIX="-lc_nonshared",GLIBC_DYN_FIX="")
861LIBS=$SAVE_LIBS
862AC_SUBST(GLIBC_DYN_FIX)
863
864# evaluate results
865dnl llllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllll
866dnl make sure that omalloc is there
867dnl
868if test "$ac_cv_omalloc_ok" != yes && test "$enable_omalloc" != yes; then
869  AC_MSG_ERROR(can not build without omalloc)
870fi
871
872AC_MSG_CHECKING(which apint package to use)
873if test "${with_apint}" != gmp; then
874  if test "$ac_gmp_ok" = yes || test "$enable_gmp" = yes; then
875    AC_MSG_RESULT(gmp)
876    will_have_gmp=yes
877    NEED_LIBS="-lgmp ${NEED_LIBS}"
878  else
879    AC_MSG_RESULT(none)
880    AC_MSG_ERROR(can not build without gmp)
881  fi
882else
883  if test "$ac_gmp_ok" = yes || test "$enable_gmp" = yes; then
884    AC_MSG_RESULT(gmp)
885    will_have_gmp=yes
886    NEED_LIBS="-lgmp ${NEED_LIBS}"
887  else
888    AC_MSG_RESULT(none)
889    AC_MSG_ERROR(can not build with gmp)
890  fi
891fi
892
893AC_MSG_CHECKING(whether to use libsvd)
894if test "$with_svd" = yes; then
895  AC_MSG_RESULT(yes)
896  AC_DEFINE(HAVE_SVD)
897  NEED_LIBS="-lsvd -lmpfr ${NEED_LIBS}"
898else
899  AC_MSG_RESULT(no)
900fi
901AC_SUBST(HAVE_SVD)
902
903#
904AC_MSG_CHECKING(whether to have MP)
905if test "${with_MP}" != yes && test "${with_MP}" != no; then
906  if (test "${will_have_gmp}" = yes) && \
907     (test "$ac_MP_ok" =  yes || test "$enable_MP" = yes); then
908    AC_MSG_RESULT(yes)
909    AC_DEFINE(HAVE_MPSR)
910    HAVE_MPSR=1
911    MP_LIBS="-lMPT -lMP ${MP_LIBS}"
912  else
913    AC_MSG_RESULT(no)
914  fi
915elif  test "${with_MP}" = yes; then
916  if (test "${will_have_gmp}" = yes) && \
917     (test "$ac_MP_ok" =  yes || test "$enable_MP" = yes); then
918    AC_MSG_RESULT(yes)
919    AC_DEFINE(HAVE_MPSR)
920    HAVE_MPSR=1
921    MP_LIBS="-lMPT -lMP ${MP_LIBS}"
922  else
923    AC_MSG_RESULT(no)
924    AC_MSG_ERROR(can not build with MP)
925  fi
926else
927  AC_MSG_RESULT(no)
928fi
929AC_SUBST(HAVE_MPSR)
930AC_SUBST(MP_LIBS)
931
932AC_MSG_CHECKING(whether to have NTL)
933if test "${with_NTL}" = yes ; then
934  AC_MSG_RESULT(yes)
935  NEED_LIBS="-lntl ${NEED_LIBS}"
936else
937  AC_MSG_RESULT(no)
938fi
939
940AC_MSG_CHECKING(whether to have factory)
941if test "${with_factory}" != yes && test "${with_factory}" != no; then
942  if test "$ac_factory_ok" =  yes || test "$enable_factory" = yes; then
943    AC_MSG_RESULT(yes)
944    AC_DEFINE(HAVE_FACTORY)
945    will_have_factory=yes
946    NEED_LIBS="-lsingcf ${NEED_LIBS}"
947  else
948    AC_MSG_RESULT(no)
949  fi
950elif  test "${with_factory}" = yes; then
951  if test "$ac_factory_ok" =  yes || test "$enable_factory" = yes; then
952    AC_MSG_RESULT(yes)
953    AC_DEFINE(HAVE_FACTORY)
954    will_have_factory=yes
955    NEED_LIBS="-lsingcf ${NEED_LIBS}"
956  else
957    AC_MSG_RESULT(no)
958    AC_MSG_ERROR(can not build with factory)
959  fi
960else
961  AC_MSG_RESULT(no)
962fi
963
964AC_MSG_CHECKING(whether to have libfac)
965if test "${with_libfac}" != yes && test "${with_libfac}" != no; then
966  if (test "${will_have_factory}" = yes) && \
967     (test "$ac_libfac_ok" =  yes || test "$enable_libfac" = yes); then
968    AC_MSG_RESULT(yes)
969    AC_DEFINE(HAVE_LIBFAC_P)
970    NEED_LIBS="-lsingfac ${NEED_LIBS}"
971  else
972    AC_MSG_RESULT(no)
973  fi
974elif  test "${with_libfac}" = yes; then
975  if (test "${will_have_factory}" = yes) && \
976     (test "$ac_libfac_ok" =  yes || test "$enable_libfac" = yes); then
977    AC_MSG_RESULT(yes)
978    AC_DEFINE(HAVE_LIBFAC_P)
979    NEED_LIBS="-lsingfac ${NEED_LIBS}"
980  else
981    AC_MSG_RESULT(no)
982    AC_MSG_ERROR(can not build with libfac)
983  fi
984else
985  AC_MSG_RESULT(no)
986fi
987
988NEED_LIBSG="${NEED_LIBS}"
989if test "$ac_cv_sizeof_voidp" != 4; then
990  NEED_LIBS="${NEED_LIBS} -lomalloc"
991else
992  NEED_LIBS="${NEED_LIBS} -lomalloc_ndebug"
993fi
994
995
996AC_SUBST(NEED_LIBS)
997AC_SUBST(NEED_LIBSG)
998
999AC_MSG_CHECKING(whether to have dbm links)
1000if test "$with_dbm" != no; then
1001  AC_DEFINE(HAVE_DBM)
1002  AC_MSG_RESULT(yes)
1003else
1004  AC_MSG_RESULT(no)
1005fi
1006
1007AC_MSG_CHECKING(whether to have namespaces)
1008if test "$with_namespaces" != no; then
1009  AC_MSG_RESULT(yes)
1010  AC_DEFINE(HAVE_NS)
1011else
1012  AC_MSG_RESULT(no)
1013fi
1014
1015AC_MSG_CHECKING(whether to have dynamic modules)
1016if test "$with_dynamic_modules" = no || test "$ac_have_dl" != yes; then
1017  AC_MSG_RESULT(no)
1018else
1019  AC_DEFINE(HAVE_DYNAMIC_LOADING)
1020  AC_MSG_RESULT(yes)
1021fi
1022
1023AC_MSG_CHECKING(whether to have dynamic kernel)
1024if test "$with_dynamic_kernel" != no && test "$ac_lib_dl" = yes; then
1025  DL_KERNEL=1
1026  AC_SUBST(DL_KERNEL)
1027  AC_MSG_RESULT(yes)
1028else
1029  AC_MSG_RESULT(no)
1030fi
1031
1032AC_MSG_CHECKING(whether to have Plural)
1033if test "$with_Plural" != no && test "$enable_Plural" != no; then
1034  AC_DEFINE(HAVE_PLURAL)
1035  AC_MSG_RESULT(yes)
1036  PLURAL=1
1037  AC_SUBST(PLURAL)
1038else
1039  AC_MSG_RESULT(no)
1040fi
1041
1042
1043OUTPUT_MAKEFILES="Makefile ../kernel/Makefile"
1044
1045if test "$ac_cv_singuname" = "ix86-Win"; then
1046  OUTPUT_MAKEFILES="${OUTPUT_MAKEFILES} Singular.rc"
1047fi
1048
1049AC_OUTPUT(${OUTPUT_MAKEFILES}, \
1050 cp mod2.h ../kernel/mod2.h; \
1051 if test "$CONFIG_HEADERS"; then echo timestamp > stamp-h; fi)
Note: See TracBrowser for help on using the repository browser.