1dnl Process this file with autoconf to produce a configure script.
2
3AC_INIT([see],
4        [3.1.]esyscmd((svnversion .||echo 0)|tr : _|tr -d \\012),
5	[leonard@users.sourceforge.net])
6AC_PREREQ(2.52)
7AM_INIT_AUTOMAKE
8AM_CONFIG_HEADER(include/config.h)
9AC_CONFIG_FILES([Makefile
10		 include/Makefile
11		 include/see/Makefile
12		 libsee/Makefile
13		 libsee/test/Makefile
14		 libsee/libsee-config
15		 doc/Makefile
16		 shell/Makefile
17		 shell/test/Makefile
18		 ssp/Makefile
19		 ])
20
21## -- fix brokenness with automake-1.4
22AC_SUBST(PACKAGE,[$PACKAGE_NAME])
23AC_SUBST(VERSION,[$PACKAGE_VERSION])
24
25dnl ------------------------------------------------------------
26dnl programs required
27dnl
28
29AC_PROG_CC
30AM_PROG_CC_C_O
31AC_PROG_SED
32
33AC_LIBLTDL_CONVENIENCE([libltdl])
34AC_LIBTOOL_DLOPEN
35AC_PROG_LIBTOOL
36dnl AC_LIB_LTDL
37AC_CONFIG_SUBDIRS([libltdl])
38AC_SUBST([LIBLTDL])
39AC_SUBST([LTDLINCL])
40AC_SUBST([LIBSEE_LIBS])
41AC_SUBST([LIBSEE_REQS])
42
43AC_ARG_VAR(PERL, [Practical Extraction and Report Language interpreter])
44AC_PATH_PROG(PERL, perl)
45m4_define(_perl_vers_var,$])
46AC_CACHE_CHECK([$PERL version], [ac_cv_perl_version],
47    [ac_cv_perl_version=`$PERL -e 'print _perl_vers_var;' || echo error`])
48test "$ac_cv_perl_version" != error || \
49    AC_MSG_ERROR([cannot find a working PERL interpreter])
50
51dnl ------------------------------------------------------------
52dnl C headers
53dnl
54
55AC_HEADER_STDC
56AC_HEADER_TIME
57
58dnl (alloca.h needs to know about these headers)
59AC_CHECK_HEADERS([errno.h string.h stdlib.h],,,[;])
60
61dnl (These make finding integer sizes simpler)
62AC_CHECK_HEADERS([stdint.h inttypes.h],,,[;])
63
64dnl (This is for some windows compat)
65AC_CHECK_HEADERS([windows.h getopt.h],,,[;])
66
67dnl (And others)
68AC_CHECK_HEADERS([float.h limits.h signal.h],,,[;])
69
70dnl ------------------------------------------------------------
71dnl C compiler features
72dnl
73
74AC_C_VOLATILE
75AC_C_CONST
76AC_C_BIGENDIAN
77
78AC_CHECK_SIZEOF(signed int)
79AC_CHECK_SIZEOF(unsigned int)
80AC_CHECK_SIZEOF(signed short)
81AC_CHECK_SIZEOF(unsigned short)
82AC_CHECK_SIZEOF(signed long)
83AC_CHECK_SIZEOF(unsigned long)
84AC_CHECK_SIZEOF(signed long long)
85AC_CHECK_SIZEOF(unsigned long long)
86AC_CHECK_SIZEOF(signed LONGLONG)
87AC_CHECK_SIZEOF(unsigned LONGLONG)
88
89AC_CHECK_SIZEOF(float)
90AC_CHECK_SIZEOF(double)
91
92AC_TYPE_SIZE_T
93AC_TYPE_SIGNAL
94
95AC_DEFUN([SEE_CHECK___FUNCTION__],
96  [AC_CACHE_CHECK([for __FUNCTION__], [ac_cv_have___FUNCTION__],
97		  [AC_TRY_RUN([int main() { return __FUNCTION__ ? 0 : 1; }],
98			      [ac_cv_have___FUNCTION__=yes],
99			      [ac_cv_have___FUNCTION__=no],
100			      [ac_cv_have___FUNCTION__=unknown])])
101   if test $ac_cv_have___FUNCTION__ = yes; then
102       AC_DEFINE([HAVE___FUNCTION__], [1],
103		 [Define to 1 if the compiler generates __FUNCTION__])
104   fi
105  ])
106SEE_CHECK___FUNCTION__
107
108dnl ------------------------------------------------------------
109dnl features
110dnl
111
112dnl
113dnl Helper macro to build sensible --enable-FEATURE options
114dnl Usage is: SEE_ARG_ENABLE([feature],[default],[feature description],
115dnl                          [auto-actions], [yes-actions],[no-actions])
116dnl the auto-actions are run when enable_feature==auto. It should detect
117dnl and set dnl $enable_feature=yes if it makes sense to do so.
118dnl
119AC_DEFUN([_SEE_ARG_ENABLE],[
120 AC_ARG_ENABLE([$1],
121  AC_HELP_STRING([ifelse($2,yes,[--disable-$1],$2,no,[--enable-$1],$2,auto,[--disable-$1])],[$3]ifelse($2,auto,[ (auto)])),
122  [dnl (( # two parens help editor balance
123   case "$enableval" in ifelse([$4],,,auto|)yes|no) :;; *) #
124    AC_MSG_WARN([unexpected value '$enableval' for --enable-$1. Using '$2'.])
125    $7=$2
126    ;; esac],
127  [$7=$2])
128  AS_IF(test x"[$]$7" = x"auto",[$4])
129  AC_MSG_CHECKING([whether to enable $3])
130  AS_IF(test x"[$]$7" = x"auto",[AC_MSG_ERROR([bad value for $7])])
131  AC_MSG_RESULT([$]$7)
132  AS_IF([ifelse($2,yes,test x"[$]$7" != x"no",$2,no,test x"[$]$7" = x"yes")],
133   [$5],[$6])
134])
135dnl SEE_ARG_ENABLED(FEATURE,DEFAULT,HELPTEXT,AUTO_ACTION,YES_ACTION,NO_ACTION)
136AC_DEFUN([SEE_ARG_ENABLE],
137 [_SEE_ARG_ENABLE([$1],[$2],[$3],[$4],[$5],[$6],[enable_]m4_bpatsubst([$1], -, _))])
138
139
140SEE_ARG_ENABLE(developer,[no],
141   [pedantic compiler warnings],,
142   [for flag in -Wall -Wmissing-declarations \
143    		 -Wmissing-prototypes  -Wtraditional -pedantic
144    do
145	AC_MSG_CHECKING([for $flag])
146        CFLAGS_save="$CFLAGS"
147	CFLAGS="$CFLAGS $flag"
148    	AC_COMPILE_IFELSE([/* empty */],
149			  [AC_MSG_RESULT(yes)],
150			  [AC_MSG_RESULT(no)
151			   CFLAGS="$CFLAGS_save"])
152    done
153    CPPFLAGS="$CPPFLAGS -DGC_DEBUG"
154])
155
156SEE_ARG_ENABLE(diagnostic,[yes],
157   [internal consistency checks],,,
158   [if test x"$enable_developer" = x"yes"; then
159        AC_MSG_WARN([Developer mode enabled, but diagnostic was disabled!])
160    fi
161    CPPFLAGS="$CPPFLAGS -DNDEBUG"
162])
163
164SEE_ARG_ENABLE(full-unicode,[yes],
165   [full Unicode instead of ASCII tables],,
166   [AC_DEFINE(WITH_UNICODE_TABLES, [1],
167    	[Define to 1 if you want the Unicode tables for ECMA262 compliance])
168])
169
170SEE_ARG_ENABLE(parser-print,[yes],
171   [function printing code],,
172   [AC_DEFINE(WITH_PARSER_PRINT, [1],
173        [Define if you want to be able to print function bodies])
174])
175AM_CONDITIONAL(WITH_PARSER_PRINT, test x"$enable_parser_print" = x"yes")
176
177SEE_ARG_ENABLE(parser-visit,[no],
178   [experimental node visiting API],,
179   [AC_DEFINE(WITH_PARSER_VISIT, [1],
180        [Define if you want to include experimental AST visitor code])
181])
182
183dnl XXX is this incompatible with parser_print?
184SEE_ARG_ENABLE(bytecode,[yes],
185   [bytecode generator],,
186   [AC_DEFINE(WITH_PARSER_CODEGEN, [1],
187        [Define if you want to use the code generator])
188])
189AM_CONDITIONAL(WITH_PARSER_CODEGEN, test x"$enable_bytecode" = x"yes")
190
191SEE_ARG_ENABLE(ast-eval,[no],
192   [in-AST evaluator],,
193   [AC_DEFINE(WITH_PARSER_EVAL, [1],
194        [Define if you want to use the stable AST evaluator])
195])
196if test x"$enable_bytecode" = x"no" -a x"$enable_ast_eval" = x"no"; then
197    AC_MSG_ERROR([Must have one of --enable-bytecode or --enable-ast-eval])
198fi
199
200dnl XXX need to find a better way to get pthreads flags in
201SEE_ARG_ENABLE(ssp-example,[no],
202   [SEE Servlet Pages (SSP) example],,
203   [PTHREADS_CFLAGS=-pthreads
204    PTHREADS_LDFLAGS=-lpthread
205    AC_SUBST(PTHREADS_CFLAGS)
206    AC_SUBST(PTHREADS_LDFLAGS)
207])
208AM_CONDITIONAL(SSP, test x"$enable_ssp_example" = x"yes")
209
210SEE_ARG_ENABLE(longjmperror,[yes],
211   [catching longjmp corruption within SEE],,
212   [AC_DEFINE(WITH_LONGJMPERROR, [1],
213        [Define if you want SEE to catch longjmp corruption])
214])
215
216SEE_ARG_ENABLE(native-dtoa,[auto],
217    [dtoa from libc],
218    [enable_native_dtoa=yes
219     AC_CHECK_FUNCS([strtod dtoa freedtoa],,[enable_native_dtoa=no])
220])
221AM_CONDITIONAL(NATIVE_DTOA, test x"$enable_native_dtoa" = x"yes")
222
223
224dnl ------------------------------------------------------------
225dnl external libraries
226dnl
227
228AC_ARG_WITH(boehm-gc,
229    AC_HELP_STRING([--with-boehm-gc],
230	[use Boehm-Weiser garbage collector, default=yes]),
231	[with_boehmgc=$withval], [with_boehmgc=yes])
232if test x"$with_boehmgc" != x"no"; then
233    save_LIBSEE_LIBS="$LIBSEE_LIBS"
234    save_LIBS="$LIBS"
235    save_LDFLAGS="$LDFLAGS"
236    save_CPPFLAGS="$CPPFLAGS"
237    case "$with_boehmgc" in
238     yes)
239        LIBSEE_LIBS="$LIBSEE_LIBS -lgc"
240        LIBS="$LIBS -lgc"
241        ;;
242     *) LIBSEE_LIBS="$LIBSEE_LIBS -L${with_boehmgc}/lib -lgc"
243        LDFLAGS="$LDFLAGS -L${with_boehmgc}/lib"
244        LIBS="$LIBS -lgc"
245        CPPFLAGS="$CPPFLAGS -I${with_boehmgc}/include"
246	;;
247    esac
248
249    # The following minimum for Boehm GC support:
250    #
251    #   #if WITH_BOEHM_GC
252    #   # include <gc/gc.h>
253    #   GC_INIT();
254    #   GC_MALLOC(...);
255    #   GC_dump();
256    #   GC_gcollect();
257    #   #endif
258
259    have_boehm_gc=yes
260    AC_CHECK_HEADERS([gc/gc.h],,[have_boehm_gc=no])
261    AC_TRY_LINK([#include <gc/gc.h>],
262	[GC_INIT();
263	 GC_MALLOC(1);
264	 GC_gcollect();
265	],,
266	[have_boehm_gc=no])
267    if test x"$have_boehm_gc" = x"yes"; then
268	AC_DEFINE(WITH_BOEHM_GC, [1], [Define if you have Boehm GC])
269	AC_CHECK_FUNCS([GC_malloc GC_gcollect GC_dump GC_malloc_atomic GC_free],
270			,[have_boehm_gc=no])
271    else
272	LIBSEE_LIBS="$save_LIBSEE_LIBS"
273	CPPFLAGS="$save_CPPFLAGS"
274    fi
275    LDFLAGS="$save_LDFLAGS"
276    LIBS="$save_LIBS"
277else
278    have_boehm_gc=no
279fi
280AC_MSG_CHECKING([if we can use Boehm GC])
281AM_CONDITIONAL(WITH_BOEHM_GC, test x"$have_boehm_gc" = x"yes")
282AC_MSG_RESULT([$have_boehm_gc])
283
284AC_ARG_WITH(readline,
285    AC_HELP_STRING([--with-readline],
286	[see-shell interactive niceness, default=no]),
287	[ac_cv_use_readline=$withval], [ac_cv_use_readline=no])
288if test x"$ac_cv_use_readline" != x"no"; then
289    AC_CHECK_HEADERS([readline/readline.h readline.h],,,[;])
290    AC_SEARCH_LIBS(tgoto, [termcap termlib curses ncurses])
291    AC_SEARCH_LIBS(readline, [readline edit])
292    AC_CHECK_FUNC(readline)
293fi
294
295AC_ARG_WITH(pcre,
296    AC_HELP_STRING([--with-pcre],
297	[use the PCRE regex library, default=no]),
298	[ac_cv_use_pcre=$withval], [ac_cv_use_pcre=no])
299if test x"$ac_cv_use_pcre" != x"no"; then
300    PKG_CHECK_MODULES([PCRE], [pcre],
301	[have_pcre=yes
302	 LIBSEE_REQS="$LIBSEE_REQS,pcre"
303	 LIBSEE_LIBS="$LIBSEE_LIBS $PCRE_LIBS"
304	 CFLAGS="$CFLAGS $PCRE_CFLAGS"],
305	[have_pcre=yes
306	 AC_CHECK_HEADER([pcre.h],,[have_pcre=no])
307	 save_LIBS="$LIBS"
308	 LIBS="$LIBSEE_LIBS"
309	 AC_SEARCH_LIBS(pcre_compile, [pcre])
310	 AC_CHECK_FUNCS([pcre_compile pcre_exec],, [have_pcre=no])])
311	 LIBSEE_LIBS="$LIBS"
312	 LIBS="$save_LIBS"
313    AC_MSG_CHECKING([if we can use PCRE])
314    if test x"$have_pcre" = x"yes"; then
315       AC_DEFINE(WITH_PCRE, [1],
316	    [Define if you want to use the PCRE regex library])
317    fi
318    AC_MSG_RESULT([$have_pcre])
319else
320    have_pcre=no
321fi
322AM_CONDITIONAL(WITH_PCRE, test x"$have_pcre" = x"yes")
323
324
325dnl ------------------------------------------------------------
326dnl std lib functions
327dnl
328
329AC_FUNC_MEMCMP
330test $ac_cv_func_memcmp_working = yes && AC_DEFINE(HAVE_MEMCMP)
331AC_FUNC_ALLOCA
332AC_REPLACE_FUNCS([memmove])
333
334AC_SEARCH_LIBS(sin, [m])		# the evil that lurks within
335
336dnl -- pick the right nan/finite functions for 64-bit floating point type
337have_isnan=no
338have_finite=no
339have_copysign=no
340AC_CHECK_FUNCS([isnanf finitef isinff isinf _isinf copysignf])
341AC_CHECK_FUNCS([isnan _isnan],[have_isnan=yes])
342AC_CHECK_FUNCS([finite _finite isfinite],[have_finite=yes])
343AC_CHECK_FUNCS([copysign _copysign],[have_copysign=yes])
344
345dnl -- when using double isnan/finite must be available
346if test $ac_cv_sizeof_float -ne 8; then
347    test $have_isnan = no && missing_funcs="$missing_funcs isnan";
348    test $have_finite = no && missing_funcs="$missing_funcs finite";
349    test $have_copysign = no && missing_funcs="$missing_funcs copysign";
350fi
351
352dnl --- things to add later?
353dnl  AC_CHECK_FUNCS([srand srandom vsprintf funopen])
354dnl  AC_CHECK_FUNC(vsnprintf,,AC_LIBOBJ(vsnprintf))
355
356AC_CHECK_FUNC(rand_r)
357
358dnl -- functions that we *need* (i.e. don't have workarounds for):
359AC_CHECK_FUNCS([acos atan atan2 ceil cos exp floor log pow sin sqrt tan \
360		snprintf vsnprintf \
361		abort memcpy memset \
362		qsort strcmp strerror],,
363	       [missing_funcs="$missing_funcs $ac_func"])
364
365if test -n "$missing_funcs"; then
366    AC_MSG_ERROR([cannot find required functions:$missing_funcs])
367fi
368
369dnl -- functions that have workarounds written for
370AC_CHECK_FUNCS([strdup getopt \
371		time gettimeofday GetSystemTimeAsFileTime \
372		localtime mktime \
373		isatty \
374		])
375
376dnl ------------------------------------------------------------
377dnl miscellanea
378dnl
379
380dnl
381dnl NaN and Infinity as inline expressions: another optimisation
382dnl
383
384AC_CACHE_CHECK([for constant NaN], [ac_cv_cc_constant_NaN_div],
385	[AC_TRY_RUN([#include <math.h>
386		     #if SIZEOF_FLOAT == 8
387		     float nan = 0.0 / 0.0;
388		     int main() { exit( isnanf(nan) && !finitef(nan) ? 0:1 ); }
389		     #elif SIZEOF_DOUBLE == 8
390		     double nan = 0.0 / 0.0;
391		     int main() { exit( isnan(nan) && !finite(nan) ? 0:1 ); }
392		     #else
393		     # error "no 64-bit floating point type"
394		     #endif
395		     ],
396		    [ac_cv_cc_constant_NaN_div=yes],
397		    [ac_cv_cc_constant_NaN_div=no],
398		    [ac_cv_cc_constant_NaN_div=unknown])])
399test $ac_cv_cc_constant_NaN_div = yes && AC_DEFINE(HAVE_CONSTANT_NAN_DIV)
400
401AC_CACHE_CHECK([for constant Inf], [ac_cv_cc_constant_Inf_div],
402	[AC_TRY_RUN([#include <math.h>
403		     #if SIZEOF_FLOAT == 8
404		     float inf = 1.0 / 0.0;
405		     int main() { exit( !isnanf(inf) && !finitef(inf) ? 0:1 ); }
406		     #elif SIZEOF_DOUBLE == 8
407		     double inf = 1.0 / 0.0;
408		     int main() { exit( !isnan(inf) && !finite(inf) ? 0:1 ); }
409		     #else
410		     # error "no 64-bit floating point type"
411		     #endif
412		     ],
413		    [ac_cv_cc_constant_Inf_div=yes],
414		    [ac_cv_cc_constant_Inf_div=no],
415		    [ac_cv_cc_constant_Inf_div=unknown])])
416test $ac_cv_cc_constant_Inf_div = yes && AC_DEFINE(HAVE_CONSTANT_INF_DIV)
417
418dnl
419dnl Hexadecimal floating point constants are ANSI, but are not supported
420dnl everywhere it seems.
421dnl
422
423AC_CACHE_CHECK([for hex float constants], [ac_cv_cc_constant_hex_float],
424	[AC_TRY_RUN([#if SIZEOF_FLOAT == 8
425		      float
426		     #elif SIZEOF_DOUBLE == 8
427		      double
428		     #else
429		     # error "no 64-bit floating point type"
430		     #endif
431		        number = 0x1p3;
432		     int main() { exit( number == 8 ? 0:1 ); }
433		     ],
434		    [ac_cv_cc_constant_hex_float=yes],
435		    [ac_cv_cc_constant_hex_float=no],
436		    [ac_cv_cc_constant_hex_float=unknown])])
437test $ac_cv_cc_constant_hex_float = yes && AC_DEFINE(HAVE_CONSTANT_HEX_FLOAT)
438
439dnl
440dnl GNU-style variadic macros
441dnl
442
443AC_CACHE_CHECK([for variadic macros], [ac_cv_cc_variadic_macros],
444	[AC_TRY_COMPILE([
445void f(void);
446#define f(a, b...) g(a, 5 , ## b)
447int g(v, w, x, y, z) int v,w,x,y,z; { return v*w*x*y*z; }
448		     ],
449		    [exit( f(2,3,7,9) == 2*3*5*7*9 ? 0 : 1 );],
450		    [ac_cv_cc_variadic_macros=yes],
451		    [ac_cv_cc_variadic_macros=no])])
452test $ac_cv_cc_variadic_macros = yes && AC_DEFINE(HAVE_VARIADIC_MACROS)
453
454dnl
455dnl setjmp/longjmp
456dnl
457
458AC_CHECK_HEADERS([setjmp.h],,,[;])
459AC_CACHE_CHECK([for working _longjmp()], [ac_cv_cc__longjmp_works],
460	[AC_TRY_RUN([#include <setjmp.h>
461		     int main () {
462			jmp_buf b; volatile int c = 0;
463
464			if (_setjmp(b) == 6) c++;
465			if (c) exit(c == 2 ? 0 : c+1);
466			c++;
467			_longjmp(b, 6);
468			exit(1);
469		     }],
470		    [ac_cv_cc__longjmp_works=yes],
471		    [ac_cv_cc__longjmp_works=no],
472		    [ac_cv_cc__longjmp_works=unknown])])
473test $ac_cv_cc__longjmp_works = yes && AC_DEFINE(HAVE__LONGJMP)
474
475AC_CACHE_CHECK([for working longjmp()], [ac_cv_cc_longjmp_works],
476	[AC_TRY_RUN([#include <setjmp.h>
477		     int main () {
478			jmp_buf b; volatile int c = 0;
479
480			if (setjmp(b) == 6) c++;
481			if (c) exit(c == 2 ? 0 : c+1);
482			c++;
483			longjmp(b, 6);
484			exit(1);
485		     }],
486		    [ac_cv_cc_longjmp_works=yes],
487		    [ac_cv_cc_longjmp_works=no],
488		    [ac_cv_cc_longjmp_works=unknown])])
489
490if test $ac_cv_cc_longjmp_works != no; then
491	if test $ac_cv_cc_longjmp_works = unknown; then
492		AC_MSG_WARN([assuming that longjmp() will actually work])
493	fi
494	AC_DEFINE(HAVE_LONGJMP)
495fi
496
497if test $ac_cv_cc__longjmp_works = no -a \
498        $ac_cv_cc_longjmp_works = no; then
499		AC_MSG_ERROR([cannot find working setjmp()/longjmp()])
500fi
501
502dnl
503dnl check that vsnprintf works
504dnl
505
506AC_CACHE_CHECK([for working vsnprintf(0,0,,)], [ac_cv_libc_vsnprintf_works],
507	[AC_TRY_RUN([#include <stdio.h>
508		     #include <stdarg.h>
509
510		     int a(fmt, ap)
511			const char *fmt;
512			va_list ap;
513		     {
514			return vsnprintf(0,0,fmt,ap);
515		     }
516		     int b(char *fmt, ...)
517		     {
518			va_list ap;
519			int ret;
520			va_start(ap, fmt);
521			ret = a(fmt, ap);
522			va_end(ap);
523			return ret;
524		     }
525		     int main() {
526			int ret = b("test %s", "string");
527			exit( ret == 11 ? 0 : 1);
528		     }],
529		    [ac_cv_libc_vsnprintf_works=yes],
530		    [ac_cv_libc_vsnprintf_works=no],
531		    [ac_cv_libc_vsnprintf_works=unknown])])
532
533dnl ------------------------------------------------------------
534dnl IEEE doubles/floats
535dnl
536
537AC_CACHE_CHECK([for 64-bit IEEE754 fp], [ac_cv_cc_ieee754],
538    [AC_TRY_RUN([
539	int main() {
540#if SIZEOF_FLOAT == 8
541	    float
542#elif SIZEOF_DOUBLE == 8
543	    double
544#else
545# error "no 64-bit floating point type"
546#endif
547	      fp = 2.7182818284590452354;
548	    unsigned char expected[8] = {
549		0x40, 0x05, 0xbf, 0x0a, 0x8b, 0x14, 0x57, 0x69
550	    }, e;
551	    int i;
552
553	    for (i = 0; i < 8; i++) {
554#ifdef WORDS_BIGENDIAN
555		e = expected[i];
556#else
557		e = expected[7-i];
558#endif
559		if (e != ((unsigned char *)&fp)[i])
560		    exit(1);
561	    }
562	    exit(0);
563	}],
564    [ac_cv_cc_ieee754=yes],
565    [ac_cv_cc_ieee754=no],
566    [ac_cv_cc_ieee754=unknown])])
567
568if test x"$ac_cv_cc_ieee754" != x"yes"; then
569    AC_MSG_WARN([SEE's ECMAScript compliance relies on native IEEE754 support])
570fi
571
572AC_CACHE_CHECK([platform class], [ac_cv_see_platform], [
573case "$build_os" in
574	cygwin*|mingw*|pw32)	ac_cv_see_platform=win32;;
575	*)			ac_cv_see_platform=posix;;
576esac])
577AM_CONDITIONAL(PLATFORM_POSIX, test x"$ac_cv_see_platform" = x"posix")
578AM_CONDITIONAL(PLATFORM_WIN32, test x"$ac_cv_see_platform" = x"win32")
579
580dnl ------------------------------------------------------------
581dnl templates for autoheader
582dnl
583
584AH_TOP([#ifndef _SEE_h_config_
585#define _SEE_h_config_])
586AH_BOTTOM([#endif /* _SEE_h_config_ */])
587
588AH_TEMPLATE([HAVE_CONSTANT_INF_DIV],
589	    [Define if your compiler treats the expression 1.0/0.0 as constant])
590AH_TEMPLATE([HAVE_CONSTANT_NAN_DIV],
591	    [Define if your compiler treats the expression 0.0/0.0 as constant])
592AH_TEMPLATE([HAVE_CONSTANT_HEX_FLOAT],
593	    [Define if your compiler handles ANSI hex fp constants like '0x1p3'])
594AH_TEMPLATE([HAVE_VARIADIC_MACROS],
595	    [Define if your preprocessor understands GNU-style variadic macros])
596AH_TEMPLATE([HAVE_LONGJMP],
597	    [Define if you have working longjmp() and setjmp() functions])
598AH_TEMPLATE([HAVE__LONGJMP],
599	    [Define if you have working _longjmp() and _setjmp() functions])
600AH_TEMPLATE([HAVE_MEMCMP],
601	    [Define if you have a working memcmp() function])
602
603dnl ------------------------------------------------------------
604dnl tests
605dnl
606
607
608dnl ------------------------------------------------------------
609dnl finalisation
610dnl
611
612LIBSEE_REQS=`echo "$LIBSEE_REQS" | $SED -e 's/^,//'` #remove leading commas
613AC_OUTPUT
614