2 AC_CONFIG_HEADER(src/include/xlconfig.h)
3 AC_CONFIG_AUX_DIR(config)
7 # Determine host information
13 # Set some default values
22 FOREIGN_FILE=dummy-foreign.h
26 # Determine the C compiler to use and adjust its flags
29 # Use gcc only if specified using --with-gcc or CC environment variable
30 AC_ARG_WITH(gcc, [ --with-gcc use gcc compiler],
31 CC=gcc,[if test -z "$CC"; then CC=cc; fi])
33 # Set a variable using_gcc to make checking for gcc easy below
34 if test `$CC -v 2>&1 | grep -c gcc` != "0" ; then using_gcc=1; fi
38 if test "$using_gcc"; then
42 # This may be needed on other systems using gnu ld
43 ULDFLAGS="$ULDFLAGS -export-dynamic"
48 # Enable IEEE floating point comparisons.
49 UCFLAGS="$UCFLAGS -mieee-fp"
52 # This needs to be checked out. Something is needed to get
53 # divide by zero to produce a NaN instead of a SIGFPE.
54 UCFLAGS="$UCFLAGS -mieee"
58 # Adjust native cc flags
61 # This needs to be checked out.
62 UCFLAGS="$UCFLAGS -qmaxmem=3000 -qlanglvl=ansi"
65 # This needs to be checked out.
66 UCFLAGS="$UCFLAGS -std -ieee_with_no_inexact -Olimit 2000"
69 # This needs to be checked out.
70 UCFLAGS="$UCFLAGS -h tolerant -DCRAYCC"
73 # Turn -Aa and -D_HPUX_SOURCE turn on ANSI compliance and some
74 # POSIX stuff. Drop limit on optimization to make sure byte code
76 UCFLAGS="$UCFLAGS -Aa -D_HPUX_SOURCE +Onolimit"
79 # IRIX 6.4's cc uses -OPT:Olimit=n instead of -Olimit n. My
80 # guess is that it changed with 6.0, but I don't know for sure.
81 set `echo "$host_os" | sed 's/irix//' | tr '.' ' '`
83 if test "$os_major" -ge 6; then
84 UCFLAGS="$UCFLAGS -OPT:Olimit=2000"
86 UCFLAGS="$UCFLAGS -Olimit 2000"
90 # Most compilers for the mips architecture use this flag to
91 # increase the optimization limit; this is needed for
93 UCFLAGS="$UCFLAGS -Olimit 2000"
104 # This needs to be checked out.
105 EXTRALIBS="$EXTRALIBS -ldnet_stub"
108 # Need this to bring in finite. Don't know if this is needed in hpux8.
109 # It isn't needed in hpux10.2 but may be in earlier hpux10's. Don't
111 if test "$using_gcc"; then
112 LIBS="-L/lib/pa1.1 $LIBS"
113 EXTRALIBS="-L/lib/pa1.1 $EXTRALIBS"
117 # Older Linux versions produce a SIGFPE on divide by zero unless
118 # ieee library is used.
119 AC_CHECK_LIB(ieee, main, [EXTRALIBS="$EXTRALIBS -lieee"])
122 # Recent Solaris versions seem to have moved socket functions out
123 # into the socket library
124 AC_CHECK_FUNC(socket,,
125 AC_CHECK_LIB(socket,socket,
126 EXTRALIBS="$EXTRALIBS -lsocket",
127 AC_MSG_ERROR(can't find socket functions)))
133 # Check for IEEE math support
137 # Bring in finite and isnan on newer versions of solaris
138 CFLAGS="$CFLAGS -D__EXTENSIONS__"
139 UCFLAGS="$UCFLAGS -D__EXTENSIONS__"
142 AC_CHECK_FUNCS(finite isnan)
146 # Check for some other functions
148 AC_CHECK_FUNCS(memmove difftime matherr)
152 # Check for POSIX sigsetjmp and friends.
153 # Use grep for sigjmp_buf since sigsetjmp/siglongjmp may be macros.
155 AC_EGREP_HEADER(sigjmp_buf, setjmp.h, AC_DEFINE(HAVE_SIGSETJMP))
159 # Determine the graphics system to use
162 if test "$no_x"; then
166 if test "$x_includes"; then X11INCDIR_FLAG="-I$x_includes"; fi
167 if test "$x_libraries"; then X11LIBDIR_FLAG="-L$x_libraries"; fi
172 # Check for dynamic loaing support
175 # First try for SysVR4-style dlfcn support
176 AC_CHECK_FUNC(dlopen,[
177 FOREIGN_FILE="sysvr4-foreign.h"
179 AC_DEFINE(HAVE_DLOPEN) # not sure why I need this but I seem to
180 AC_DEFINE(HAVE_FOREIGN)],
181 AC_CHECK_LIB(dl,dlopen,[
182 FOREIGN_FILE="sysvr4-foreign.h"
184 AC_DEFINE(HAVE_DLOPEN) # not sure why I need this but I seem to
185 AC_DEFINE(HAVE_FOREIGN)
186 EXTRALIBS="$EXTRALIBS -ldl"]))
188 # Next try some os-specific solutions
189 if test ! "$foreign"; then
192 # This needs to be checked
193 ULDFLAGS="-bE:xlisp.exp -bM:SRE"
194 link_sources="$link_sources src/c/machines/aix/xlisp.exp"
195 link_sources="$link_sources src/cmachines/aix/dynload/dlfcn.c"
196 link_targets ="$link_targets src/c/xlisp.exp src/c/dlfcn.c"
197 FOREIGN_FILE="sysvr4-foreign.h";
198 AC_DEFINE(HAVE_FOREIGN)
199 AC_DEFINE(HAVE_DLOPEN)
200 UCFLAGS="$UCFLAGS -Imachines/aix/dynload"
202 EXTRALIBS="$EXTRALIBS -lld"
206 FOREIGN_FILE="sysvr4-foreign.h"
207 AC_DEFINE(HAVE_FOREIGN)
208 AC_DEFINE(HAVE_DLOPEN)
209 UCFLAGS="$UCFLAGS -Imachines/hpux/dlfcn"
210 EXTRAOBJS="$EXTRAOBJS dlfcn.o"
211 link_sources="$link_sources src/c/machines/hpux/dlfcn/dlfcn.c"
212 link_targets="$link_targets src/c/dlfcn.c"
213 EXTRALIBS="$EXTRALIBS -ldld"
214 ULDFLAGS="$ULDFLAGS -Wl,-E"
218 FOREIGN_FILE="pmax-foreign.h"
219 AC_DEFINE(HAVE_FOREIGN)
220 ULDFLAGS="$ULDFLAGS -Wl,-D -Wl,c00000"
224 FOREIGN_FILE="bsd-foreign.h"
225 AC_DEFINE(HAVE_FOREIGN)
229 FOREIGN_FILE="bsd-foreign.h"
230 AC_DEFINE(HAVE_FOREIGN)
235 # As last resort try for GNU dld
236 if test ! "$foreign"; then
237 AC_CHECK_LIB(dld,dld_init,[
238 FOREIGN_FILE="dld-foreign.h"
240 AC_DEFINE(HAVE_FOREIGN)
241 EXTRALIBS="$EXTRALIBS -ldld"])
246 # Determine how to create shared libraries -- adapted from Tcl 8.0
251 *aix*) # **** this doesn't work yet
252 SHLIB_LD="$fullSrcDir/ldAix /bin/ld -bhalt:4 -bM:SRE -bE:lib.exp -H512 -T512 -bnoentry"
253 SHLIB_LD_LIBS='${LIBS}'
257 SHLIB_LD='ld -shared -expect_unresolved "*"'
260 SHLIB_CFLAGS="+z -Aa -D_HPUX_SOURCE"
264 SHLIB_LD="ld -shared -rdata_shared"
268 SHLIB_LD="${CC} -shared"
270 *netbsd*|*freebsd*|*openbsd*)
272 SHLIB_LD="ld -Bshareable -x"
280 SHLIB_LD="/usr/ccs/bin/ld -G -z text"
281 SHLIB_LD_LIBS='${LIBS}'
284 AC_MSG_WARN(Don't know how to create shared libraries on this platform)
287 # If we're running gcc, then change the C flags for compiling shared
288 # libraries to the right flags for gcc, instead of those for the
289 # standard manufacturer compiler.
290 if test `$CC -v 2>&1 | grep -c gcc` != "0" ; then
296 *netbsd*|*freebsd*|*openbsd*|*linux*)
306 # Register variables for substitution
309 AC_SUBST(X11INCDIR_FLAG)
310 AC_SUBST(X11LIBDIR_FLAG)
315 AC_SUBST(FOREIGN_FILE)
318 AC_SUBST(SHLIB_CFLAGS)
320 AC_SUBST(SHLIB_LD_LIBS)
322 echo GRAPHSYS = $GRAPHSYS
323 echo X11INCDIR_FLAG = $X11INCDIR_FLAG
324 echo X11LIBDIR_FLAG = $X11LIBDIR_FLAG
325 echo UCFLAGS = $UCFLAGS
326 echo ULDFLAGS = $ULDFLAGS
327 echo EXTRALIBS = $EXTRALIBS
328 echo EXTRAOBJS = $EXTRAOBJS
329 echo FOREIGN_FILE = $FOREIGN_FILE
331 echo SHLIB_CFLAGS = $SHLIB_CFLAGS
332 echo SHLIB_LD = $SHLIB_LD
333 echo SHLIB_LD_LIBS = $SHLIB_LD_LIBS
335 AC_LINK_FILES($link_sources,$link_targets)
336 AC_OUTPUT(Makefile shlibconfig.sh src/c/Makefile)