source: git/Singular/configure.in @ a5ee42

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