* configure.in: Build with backtrace.o and stacks.o if debug
[bpt/guile.git] / libguile / configure.in
1 AC_INIT(eval.c)
2 AC_CONFIG_HEADER(scmconfig.h)
3
4 . $srcdir/../GUILE-VERSION
5
6 #--------------------------------------------------------------------
7 #
8 # User options
9 #
10 #--------------------------------------------------------------------
11
12 AC_ARG_ENABLE(debug,
13 [ --disable-debug Don't include debugging support])
14 if test "$enableval" != n && test "$enableval" != no; then
15 AC_DEFINE(DEBUG_EXTENSIONS)
16 AC_DEFINE(READER_EXTENSIONS)
17 LIBOBJS="backtrace.o stacks.o debug.o srcprop.o $LIBOBJS"
18 fi
19
20 #--------------------------------------------------------------------
21
22 test -z "$CFLAGS" && CFLAGS=-g
23 test -z "$LDFLAGS" && LDFLAGS=-g
24
25 AC_PROG_CC
26 AC_PROG_CPP
27 AC_PROG_RANLIB
28
29 AC_AIX
30 AC_ISC_POSIX
31 AC_MINIX
32
33 builtin(sinclude, ../aclocal.m4)
34 CY_AC_WITH_THREADS
35 CFLAGS="$CPPFLAGS $CFLAGS"
36
37 AC_C_CONST
38
39 AC_HEADER_STDC
40 AC_HEADER_DIRENT
41 AC_HEADER_TIME
42 AC_HEADER_SYS_WAIT
43 AC_CHECK_HEADERS(libc.h limits.h malloc.h memory.h string.h sys/ioctl.h sys/select.h sys/time.h sys/timeb.h sys/times.h sys/types.h sys/utime.h time.h unistd.h utime.h)
44
45 AC_TYPE_GETGROUPS
46 AC_TYPE_SIGNAL
47 AC_TYPE_MODE_T
48
49 AC_CHECK_FUNCS(ctermid ftime getcwd geteuid lstat mkdir mknod nice putenv readlink rename rmdir select setegid seteuid setlocale setpgid setsid strftime strptime symlink sync tcgetpgrp tcsetpgrp times uname waitpid)
50
51 AC_REPLACE_FUNCS(inet_aton strerror)
52
53 AC_STRUCT_ST_RDEV
54 AC_STRUCT_ST_BLKSIZE
55 AC_STRUCT_ST_BLOCKS
56 GUILE_STRUCT_UTIMBUF
57
58 #--------------------------------------------------------------------
59 #
60 # Which way does the stack grow?
61 #
62 #--------------------------------------------------------------------
63
64 AC_TRY_RUN(aux (l) unsigned long l;
65 { int x; exit (l >= ((unsigned long)&x)); }
66 main () { int q; aux((unsigned long)&q); },
67 AC_DEFINE(SCM_STACK_GROWS_UP),,AC_MSG_WARN(Guessing that stack grows down -- see scmconfig.h.in))
68
69
70 AC_TRY_RUN(main () { exit (sizeof(float) != sizeof(long)); },
71 AC_DEFINE(SCM_SINGLES),,AC_DEFINE(SCM_SINGLES)
72 AC_MSG_WARN(Guessing that sizeof(long) == sizeof(float) -- see scmconfig.h.in))
73
74 AC_MSG_CHECKING(for struct linger)
75 AC_CACHE_VAL(scm_cv_struct_linger,
76 AC_TRY_COMPILE([#include <sys/socket.h>],
77 [struct linger lgr; lgr.l_linger = 100],
78 scm_cv_struct_linger="yes",
79 scm_cv_struct_linger="no"))
80 AC_MSG_RESULT($scm_cv_struct_linger)
81 if test $scm_cv_struct_linger = yes; then
82 AC_DEFINE(HAVE_STRUCT_LINGER)
83 fi
84
85 #--------------------------------------------------------------------
86 #
87 # How can you violate a stdio abstraction by setting a stream's fd?
88 #
89 #--------------------------------------------------------------------
90
91 FD_SETTER=""
92
93 if test "x$FD_SETTER" = x; then
94 AC_TRY_COMPILE(#include <stdio.h>
95 , stdout->_file = 1,
96 FD_SETTER="((F)->_file = (D))")
97 fi
98
99 if test "x$FD_SETTER" = x; then
100 AC_TRY_COMPILE(#include <stdio.h>
101 , stdout->_fileno,
102 FD_SETTER="((F)->_fileno = (D))")
103 fi
104
105 dnl
106 dnl Add FD_SETTER tests for other systems here. Your test should
107 dnl try a particular style of assigning to the descriptor
108 dnl field(s) of a FILE* and define FD_SETTER accordingly.
109 dnl
110 dnl The value of FD_SETTER is used as a macro body, as in:
111 dnl
112 dnl #define SET_FILE_FD_FIELD(F,D) @FD_SETTER@
113 dnl
114 dnl F is a FILE* and D a descriptor (int).
115 dnl
116
117 test "x$FD_SETTER" != x && AC_DEFINE(HAVE_FD_SETTER)
118
119 #--------------------------------------------------------------------
120 #
121 # Flags for thread support
122 #
123 #--------------------------------------------------------------------
124
125 dnl
126 dnl Set the appropriate flags!
127 dnl
128 if test "$cy_cv_threads_package" = FSU; then
129 AC_DEFINE(USE_FSU_PTHREADS, 1)
130 else if test "$cy_cv_threads_package" = COOP; then
131 AC_DEFINE(USE_COOP_THREADS, 1)
132 else if test "$cy_cv_threads_package" = MIT; then
133 AC_DEFINE(USE_MIT_PTHREADS, 1)
134 else if test "$cy_cv_threads_package" = PCthreads; then
135 AC_DEFINE(USE_PCTHREADS_PTHREADS, 1)
136 else if test "$cy_cv_threads_package" = unknown; then
137 AC_MSG_ERROR("cannot find threads installation")
138 fi
139 fi
140 fi
141 fi
142 fi
143
144 if test "$cy_cv_threads_package" != ""; then
145 AC_DEFINE(USE_THREADS)
146 fi
147
148 ## If we're using GCC, ask for aggressive warnings.
149 case "$GCC" in
150 yes ) CFLAGS="$CFLAGS -Wall -Wpointer-arith" ;;
151 esac
152
153 AC_DEFINE_UNQUOTED(GUILE_MAJOR_VERSION, "$GUILE_MAJOR_VERSION")
154 AC_DEFINE_UNQUOTED(GUILE_MINOR_VERSION, "$GUILE_MINOR_VERSION")
155 AC_DEFINE_UNQUOTED(GUILE_VERSION, "$GUILE_VERSION")
156
157 AC_SUBST(CFLAGS)
158 AC_SUBST(LDFLAGS)
159 AC_SUBST(LIBOBJS)
160 AC_SUBST(FD_SETTER)
161 AC_SUBST(XINCLUDES)
162 AC_SUBST(GUILE_MAJOR_VERSION)
163 AC_SUBST(GUILE_MINOR_VERSION)
164 AC_SUBST(GUILE_VERSION)
165 AC_OUTPUT(Makefile fd.h)
166
167 dnl Local Variables:
168 dnl comment-start: "dnl "
169 dnl comment-end: ""
170 dnl comment-start-skip: "\\bdnl\\b\\s *"
171 dnl End: