source: git/Singular/configure.in @ 753f9d2

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