[project @ 2003-08-19 15:41:19 by panne]
[ghc-hetmet.git] / aclocal.m4
1 # Extra autoconf macros for the Glasgow fptools
2 #
3 # To be a good autoconf citizen, names of local macros have prefixed with FP_ to
4 # ensure we don't clash with any pre-supplied autoconf ones.
5
6
7 # FP_PROG_CONTEXT_DIFF
8 # --------------------
9 # Figure out how to do context diffs. Sets the output variable ContextDiffCmd.
10 # NB: NeXTStep thinks diff'ing a file against itself is "trouble".
11 # Used by ghc, glafp-utils/ltx, and glafp-utils/runstdtest
12 AC_DEFUN([FP_PROG_CONTEXT_DIFF],
13 [AC_CACHE_CHECK([for a working context diff], [fp_cv_context_diff],
14 [echo foo > conftest1
15 echo foo > conftest2
16 fp_cv_context_diff=no
17 for fp_var in '-C 1' '-c1'
18 do
19   if diff $fp_var conftest1 conftest2 > /dev/null 2>&1; then
20     fp_cv_context_diff="diff $fp_var"
21     break
22   fi
23 done])
24 if test x"$fp_cv_context_diff" = xno; then
25    AC_MSG_ERROR([cannot figure out how to do context diffs])
26 fi
27 AC_SUBST(ContextDiffCmd, [$fp_cv_context_diff])
28 ])# FP_PROG_CONTEXT_DIFF
29
30
31 # FP_DECL_ALTZONE
32 # -------------------
33 # Defines HAVE_DECL_ALTZONE to 1 if declared, 0 otherwise.
34 # Used by base package.
35 AC_DEFUN([FP_DECL_ALTZONE],
36 [AC_REQUIRE([AC_HEADER_TIME])dnl
37 AC_CHECK_HEADERS([sys/time.h])
38 AC_CHECK_DECLS([altzone], [], [],[#if TIME_WITH_SYS_TIME
39 # include <sys/time.h>
40 # include <time.h>
41 #else
42 # if HAVE_SYS_TIME_H
43 #  include <sys/time.h>
44 # else
45 #  include <time.h>
46 # endif
47 #endif])
48 ])# FP_DECL_ALTZONE
49
50
51 # FP_COMPUTE_INT(EXPRESSION, VARIABLE, INCLUDES, IF-FAILS)
52 # ---------------------------------------------------------
53 # Assign VARIABLE the value of the compile-time EXPRESSION using INCLUDES for
54 # compilation. Execute IF-FAILS when unable to determine the value. Works for
55 # cross-compilation, too.
56 # Note: We are lazy and use an internal autoconf macro, but it is supported in
57 # autoconf versions 2.50 up to the actual 2.57, so there is little risk.
58 AC_DEFUN([FP_COMPUTE_INT],
59 [_AC_COMPUTE_INT([$1], [$2], [$3], [$4])[]dnl
60 ])# FP_COMPUTE_INT
61
62
63 # FP_CHECK_ALIGNMENT(TYPE, [IGNORED], [INCLUDES = DEFAULT-INCLUDES])
64 # ------------------------------------------------------------------
65 # A variation of AC_CHECK_SIZEOF for computing the alignment restrictions of a
66 # given type. Defines ALIGNMENT_TYPE.
67 AC_DEFUN([FP_CHECK_ALIGNMENT],
68 [AS_LITERAL_IF([$1], [],
69                [AC_FATAL([$0: requires literal arguments])])dnl
70 AC_CHECK_TYPE([$1], [], [], [$3])
71 AC_CACHE_CHECK([alignment of $1], AS_TR_SH([fp_cv_alignment_$1]),
72 [if test "$AS_TR_SH([ac_cv_type_$1])" = yes; then
73   FP_COMPUTE_INT([(long) (&((struct { char c; $1 ty; } *)0)->ty)],
74                  [AS_TR_SH([fp_cv_alignment_$1])],
75                  [AC_INCLUDES_DEFAULT([$3])],
76                  [AC_MSG_ERROR([cannot compute alignment ($1)
77 See `config.log' for more details.], [77])])
78 else
79   AS_TR_SH([fp_cv_alignment_$1])=0
80 fi])dnl
81 AC_DEFINE_UNQUOTED(AS_TR_CPP(alignment_$1), $AS_TR_SH([fp_cv_alignment_$1]),
82                    [The alignment of a `$1'.])
83 ])# FP_CHECK_ALIGNMENT
84
85
86 dnl ** check for leading underscores in symbol names
87 dnl 
88 dnl Test for determining whether symbol names have a leading
89 dnl underscore.
90 dnl 
91 dnl We assume that they _haven't_ if anything goes wrong.
92 dnl
93 dnl Some nlist implementations seem to try to be compatible by ignoring
94 dnl a leading underscore sometimes (eg. FreeBSD).  We therefore have
95 dnl to work around this by checking for *no* leading underscore first.
96 dnl Sigh.  --SDM
97 dnl
98 dnl Similarly on OpenBSD, but this test doesn't help. -- dons
99 dnl
100 AC_DEFUN(FPTOOLS_UNDERSCORE,
101 [AC_CHECK_LIB(elf, nlist, LIBS="-lelf $LIBS")dnl
102 AC_CACHE_CHECK([leading underscore in symbol names], fptools_cv_lead_uscore,
103
104 dnl
105 dnl Hack!: nlist() under Digital UNIX insist on there being an _,
106 dnl but symbol table listings shows none. What is going on here?!?
107 dnl
108 dnl Another hack: cygwin doesn't come with nlist.h , so we hardwire
109 dnl the underscoredness of that "platform"
110 changequote(<<, >>)dnl
111 <<
112 case $HostPlatform in
113 *openbsd*) # x86 openbsd is ELF from 3.4 >, meaning no leading uscore
114     case $build in
115         i386-*2\.[[0-9]] | i386-*3\.[[0-3]] ) fptools_cv_lead_uscore='yes' ;;
116         *)      fptools_cv_lead_uscore='no' ;;
117     esac ;;
118 alpha-dec-osf*) fptools_cv_lead_uscore='no';;
119 *cygwin32) fptools_cv_lead_uscore='yes';;
120 *mingw32) fptools_cv_lead_uscore='yes';;
121 *) >>
122 changequote([, ])dnl
123 AC_TRY_RUN([#ifdef HAVE_NLIST_H
124 #include <nlist.h>
125 changequote(<<, >>)dnl
126 <<
127 struct nlist xYzzY1[] = {{"xYzzY1", 0},{0}};
128 struct nlist xYzzY2[] = {{"_xYzzY2", 0},{0}};
129 #endif
130
131 main(argc, argv)
132 int argc;
133 char **argv;
134 {
135 #ifdef HAVE_NLIST_H
136     if(nlist(argv[0], xYzzY1) == 0 && xYzzY1[0].n_value != 0)
137         exit(1);
138     if(nlist(argv[0], xYzzY2) == 0 && xYzzY2[0].n_value != 0)
139         exit(0);>>
140 changequote([, ])dnl
141 #endif
142     exit(1);
143 }], fptools_cv_lead_uscore=yes, fptools_cv_lead_uscore=no, fptools_cv_lead_uscore=NO)
144 ;;
145 esac);
146 LeadingUnderscore=`echo $fptools_cv_lead_uscore | sed 'y/yesno/YESNO/'`
147 AC_SUBST(LeadingUnderscore)
148 case $LeadingUnderscore in
149 YES) AC_DEFINE([LEADING_UNDERSCORE], [1], [Define to 1 if C symbols have a leading underscore added by the compiler.]);;
150 esac
151 ])
152
153 dnl
154 dnl FPTOOLS_PROG_CHECK_VERSION(VERSIONSTR1, TEST, VERSIONSTR2,
155 dnl                            ACTION-IF-TRUE [, ACTION-IF-FALSE])
156 dnl
157 dnl compare versions field-wise (separator is '.')
158 dnl TEST is one of {-lt,-le,-eq,-ge,-gt}
159 dnl
160 dnl quite shell-independant and SUSv2 compliant code
161 dnl
162 dnl NOTE: the loop could be unrolled within autoconf, but the
163 dnl       macro code would be a) longer and b) harder to debug... ;)
164 dnl
165 AC_DEFUN(FPTOOLS_PROG_CHECK_VERSION,
166 [if ( IFS=".";
167       a="[$1]";  b="[$3]";
168       while test -n "$a$b"
169       do
170               set -- [$]a;  h1="[$]1";  shift 2>/dev/null;  a="[$]*"
171               set -- [$]b;  h2="[$]1";  shift 2>/dev/null;  b="[$]*"
172               test -n "[$]h1" || h1=0;  test -n "[$]h2" || h2=0
173               test [$]{h1} -eq [$]{h2} || break
174       done
175       test [$]{h1} [$2] [$]{h2}
176     )
177 then ifelse([$4],,[:],[
178   $4])
179 ifelse([$5],,,
180 [else
181   $5])
182 fi
183 ])])dnl
184
185
186 dnl
187 dnl Check for Greencard and version.
188 dnl
189 AC_DEFUN(FPTOOLS_GREENCARD,
190 [
191 AC_PATH_PROG(GreencardCmd,greencard)
192 AC_CACHE_CHECK([for version of greencard], fptools_cv_greencard_version,
193 changequote(, )dnl
194 [if test x"$GreencardCmd" != x; then
195    fptools_cv_greencard_version="`$GreencardCmd --version |
196                           grep 'version' | sed -e 's/greencard. version \([^ ]*\).*/\1/g'`"
197 else
198    fptools_cv_greencard_version=""
199 fi
200 changequote([, ])dnl
201 ])
202 FPTOOLS_PROG_CHECK_VERSION([$fptools_cv_greencard_version],-lt,$1,
203   [AC_MSG_ERROR([greencard version $1 or later is required (found '$fptools_cv_greencard_version')])])dnl
204 GreencardVersion=$fptools_cv_greencard_version
205 AC_SUBST(GreencardVersion)
206 ])
207
208 dnl
209 dnl Check for Happy and version.  If we're building GHC, then we need
210 dnl at least Happy version 1.13.  If there's no installed Happy, we look
211 dnl for a happy source tree and point the build system at that instead.
212 dnl
213 AC_DEFUN(FPTOOLS_HAPPY,
214 [
215 if test -d $srcdir/happy; then
216    SrcTreeHappyCmd=$hardtop/happy/src/happy-inplace
217 fi
218 if test x"$UseSrcTreeHappy" = xYES; then
219   HappyCmd=$SrcTreeHappyCmd
220 else
221   AC_PATH_PROG(HappyCmd,happy,$SrcTreeHappyCmd)
222 fi
223 AC_CACHE_CHECK([for version of happy], fptools_cv_happy_version,
224 changequote(, )dnl
225 [if test x"$HappyCmd" = x"$SrcTreeHappyCmd"; then
226    fptools_cv_happy_version=`grep '^ProjectVersion[     ]*=' $srcdir/happy/mk/version.mk | sed 's/.*\([0-9][0-9]*\.[0-9][0-9]*\).*/\1/g'`;
227 elif test x"$HappyCmd" != x; then
228    fptools_cv_happy_version="`$HappyCmd -v |
229                           grep 'Happy Version' | sed -e 's/Happy Version \([^ ]*\).*/\1/g'`" ;
230 else
231    fptools_cv_happy_version="";
232 fi;
233 changequote([, ])dnl
234 ])
235 if test -d $srcdir/ghc -a ! -f $srcdir/ghc/compiler/parser/Parser.hs; then
236   FPTOOLS_PROG_CHECK_VERSION([$fptools_cv_happy_version],-lt,[1.13],
237   [AC_MSG_ERROR([Happy version 1.13 or later is required to compile GHC.])])dnl
238 fi
239 HappyVersion=$fptools_cv_happy_version;
240 AC_SUBST(HappyVersion)
241 ])
242
243 dnl
244 dnl Check for Haddock and version.  If there's no installed Haddock, we look
245 dnl for a haddock source tree and point the build system at that instead.
246 dnl
247 AC_DEFUN(FPTOOLS_HADDOCK,
248 [
249 if test -d $srcdir/haddock; then
250    SrcTreeHaddockCmd=$hardtop/haddock/src/haddock-inplace
251 fi
252 if test x"$UseSrcTreeHaddock" = xYES; then
253   HaddockCmd=$SrcTreeHaddockCmd
254 else
255   AC_PATH_PROG(HaddockCmd,haddock,$SrcTreeHaddockCmd)
256 fi
257 dnl Darn, I forgot to make Haddock print out its version number when
258 dnl invoked with -v.  We could try generating some HTML and grepping
259 dnl through that to find the version number, but I think we'll make
260 dnl do without it for now.
261 ])
262
263 dnl
264 dnl Check for Alex and version.  If we're building GHC, then we need
265 dnl at least Alex version 2.0.  If there's no installed Alex, we look
266 dnl for a alex source tree and point the build system at that instead.
267 dnl
268 AC_DEFUN(FPTOOLS_ALEX,
269 [
270 if test -d $srcdir/alex; then
271    SrcTreeAlexCmd=$hardtop/alex/src/alex-inplace
272 fi
273 if test x"$UseSrcTreeAlex" = xYES; then
274   AlexCmd=$SrcTreeAlexCmd
275 else
276   AC_PATH_PROG(AlexCmd,alex,$SrcTreeAlexCmd)
277 fi
278 AC_CACHE_CHECK([for version of alex], fptools_cv_alex_version,
279 changequote(, )dnl
280 [if test x"$AlexCmd" = x"$SrcTreeAlexCmd"; then
281    fptools_cv_alex_version=`grep '^ProjectVersion[      ]*=' $srcdir/alex/mk/version.mk | sed 's/.*\([0-9][0-9]*\.[0-9][0-9]*\).*/\1/g'`;
282 elif test x"$AlexCmd" != x; then
283    fptools_cv_alex_version="`$AlexCmd -v |
284                           grep 'Alex [Vv]ersion' | sed -e 's/Alex [Vv]ersion \([0-9\.]*\).*/\1/g'`" ;
285 else
286    fptools_cv_alex_version="";
287 fi;
288 changequote([, ])dnl
289 ])
290 dnl if test -d $srcdir/ghc -a ! -f $srcdir/ghc/compiler/parser/Lexer.hs; then
291 dnl   FPTOOLS_PROG_CHECK_VERSION([$fptools_cv_alex_version],-lt,[2.0],
292 dnl   [AC_MSG_ERROR([Alex version 2.0 or later is required to compile GHC.])])dnl
293 dnl fi
294 AlexVersion=$fptools_cv_alex_version;
295 AC_SUBST(AlexVersion)
296 ])
297
298
299 dnl
300 dnl Check whether ld supports -x
301 dnl
302 AC_DEFUN(FPTOOLS_LD_X,
303 [AC_CACHE_CHECK([whether ld understands -x], fptools_cv_ld_x,
304 [
305 echo 'foo() {}' > conftest.c
306 ${CC-cc} -c conftest.c
307 if ${LdCmd} -r -x -o foo.o conftest.o; then
308    fptools_cv_ld_x=yes
309 else
310    fptools_cv_ld_x=no
311 fi
312 rm -rf conftest.c conftest.o foo.o
313 ])
314 if test "$fptools_cv_ld_x" = yes; then
315         LdXFlag=-x
316 else
317         LdXFlag=
318 fi
319 AC_SUBST(LdXFlag)
320 ])
321
322
323 dnl *** Checking for ar and its arguments + whether we need ranlib.
324 dnl
325 dnl ArCmd, ArSupportsInput and RANLIB are AC_SUBST'ed
326 dnl On Digital UNIX, we test for the -Z (compress) and
327 dnl -input (take list of files from external file) flags.
328 dnl 
329 AC_DEFUN(FPTOOLS_PROG_AR_AND_RANLIB,
330 [AC_PATH_PROG(ArCmdRaw,ar)
331 if test -z "$ArCmdRaw"; then
332     echo "You don't seem to have ar in your PATH...I have no idea how to make a library"
333     exit 1;
334 fi
335 dnl GNU ar needs special treatment: it appears to have problems with
336 dnl object files with the same name if you use the 's' modifier, but
337 dnl simple 'ar q' works fine, and doesn't need a separate ranlib.
338 if $ArCmdRaw --version | grep 'GNU' >/dev/null 2>/dev/null; then
339     ArCmdArgs='q'
340     NeedRanLib=''
341 elif $ArCmdRaw clqsZ conftest.a >/dev/null 2>/dev/null; then
342     ArCmdArgs="clqsZ"
343     NeedRanLib=''
344 elif $ArCmdRaw clqs conftest.a >/dev/null 2>/dev/null; then
345     ArCmdArgs="clqs"
346     NeedRanLib=''
347 elif $ArCmdRaw cqs conftest.a >/dev/null 2>/dev/null; then
348     ArCmdArgs="cqs"
349     NeedRanLib=''
350 elif $ArCmdRaw clq conftest.a >/dev/null 2>/dev/null; then
351     ArCmdArgs="clq"
352     NeedRanLib='YES'
353 elif $ArCmdRaw cq conftest.a >/dev/null 2>/dev/null; then
354     ArCmdArgs="cq"
355     NeedRanLib='YES'
356 elif $ArCmdRaw cq conftest.a 2>&1 | grep 'no archive members specified' >/dev/null 2>/dev/null; then
357     ArCmdArgs="cq"
358     NeedRanLib='YES'
359 else
360     echo "I can't figure out how to use your $ArCmd"
361     exit 1
362 fi
363 rm -rf conftest*
364 case $HostPlatform in
365  *mingw32) 
366           ArCmd="`cygpath -w ${ArCmdRaw} | sed -e 's@\\\\@/@g' ` ${ArCmdArgs}"
367           ;;
368  *) ArCmd="${ArCmdRaw} ${ArCmdArgs}"
369     ;;
370 esac
371 test -n "$ArCmd" && test -n "$verbose" && echo "        setting ArCmd to $ArCmd"
372 AC_SUBST(ArCmd)
373 if $ArCmd conftest.a -input /dev/null >/dev/null 2>/dev/null; then
374     ArSupportsInput='-input'
375 else
376     ArSupportsInput=''
377 fi
378 rm -rf conftest*
379 test -n "$ArSupportsInput" && test -n "$verbose" && echo "        setting ArSupportsInput to $ArSupportsInput"
380 AC_SUBST(ArSupportsInput)
381 if test -z "$NeedRanLib"; then
382     RANLIB=':'
383     test -n "$verbose" && echo "        setting RANLIB to $RANLIB"
384     AC_SUBST(RANLIB)
385 else
386     AC_PROG_RANLIB
387 fi
388 ])
389
390 dnl
391 dnl AC_SHEBANG_PERL - can we she-bang perl?
392 dnl
393 AC_DEFUN(FPTOOLS_SHEBANG_PERL,
394 [AC_CACHE_CHECK([if your perl works in shell scripts], fptools_cv_shebang_perl,
395 [echo "#!$PerlCmd"'
396 exit $1;
397 ' > conftest
398 chmod u+x conftest
399 (SHELL=/bin/sh; export SHELL; ./conftest 69 > /dev/null)
400 if test $? -ne 69; then
401    fptools_cv_shebang_perl=yes
402 else
403    fptools_cv_shebang_perl=no
404 fi
405 rm -f conftest
406 ])])
407
408 dnl
409 dnl Extra testing of the result AC_PROG_CC, testing the gcc version no.
410 dnl *Must* be called after AC_PROG_CC
411 dnl
412 AC_DEFUN(FPTOOLS_HAVE_GCC,
413 [AC_CACHE_CHECK([whether you have an ok gcc], fptools_cv_have_gcc,
414 [if test -z "$GCC"; then
415     echo ''
416     echo "You would be better off with gcc"
417     echo "Perhaps it is already installed, but not in your PATH?"
418     fptools_cv_have_gcc='no'
419 else
420 changequote(, )dnl
421     gcc_version_str="`$CC -v 2>&1 | grep 'version ' | sed -e 's/.*version [^0-9]*\([0-9][0-9]*\)\.\([0-9][0-9]*\).*/\1\.\2/g' `"
422 changequote([, ])dnl
423     fptools_cv_have_gcc='yes'
424     FPTOOLS_PROG_CHECK_VERSION($gcc_version_str, -lt, "2.0",
425         fptools_cv_have_gcc='no'
426         echo ""
427         echo "your gcc version appears to be ..."
428         $CC --version
429         echo "gcc prior to 2.0 and have never worked with ghc."
430         echo "we recommend 2.95.3, although versions back to 2.7.2 should be ok."
431         AC_MSG_ERROR([gcc 1.X has never been supported])
432     )
433 fi
434 ])
435 HaveGcc=`echo $fptools_cv_have_gcc | sed 'y/yesno/YESNO/'`
436 AC_SUBST(HaveGcc)
437 ])
438
439 dnl
440 dnl Some OSs (Mandrake Linux, in particular) configure GCC with
441 dnl -momit-leaf-frame-pointer on by default.  If this is the case, we
442 dnl need to turn it off for mangling to work.  The test is currently a bit
443 dnl crude, using only the version number of gcc.
444 dnl
445 AC_DEFUN(FPTOOLS_GCC_NEEDS_NO_OMIT_LFPTR,
446 [AC_CACHE_CHECK([whether gcc needs -mno-omit-leaf-frame-pointer], fptools_cv_gcc_needs_no_omit_lfptr,
447 [
448  fptools_cv_gcc_needs_no_omit_lfptr='no'
449  FPTOOLS_PROG_CHECK_VERSION($gcc_version_str, -ge, "3.2",
450      fptools_cv_gcc_needs_no_omit_lfptr='yes')
451 ])
452 if test "$fptools_cv_gcc_needs_no_omit_lfptr" = "yes"; then
453    AC_DEFINE([HAVE_GCC_MNO_OMIT_LFPTR], [1], [Define to 1 if gcc supports -mno-omit-leaf-frame-pointer.])
454 fi
455 ])
456
457 dnl Small feature test for perl version. Assumes PerlCmd
458 dnl contains path to perl binary
459 dnl
460 AC_DEFUN(FPTOOLS_CHECK_PERL_VERSION,
461 [$PerlCmd -v >conftest.out 2>&1
462 if grep "version 5" conftest.out >/dev/null 2>&1; then
463    :
464 else
465    if grep "v5.6" conftest.out >/dev/null 2>&1; then
466       :
467    else
468       if grep "v5.8" conftest.out >/dev/null 2>&1; then
469          :
470       else
471          if grep "version 6" conftest.out >/dev/null 2>&1; then
472             :
473          else
474             echo "Your version of perl probably won't work."
475          fi  
476       fi
477    fi
478 fi
479 rm -fr conftest*
480 ])
481
482 dnl
483 dnl Getting at the right version of 'find'
484 dnl (i.e., not the MS util on a Win32 box).
485 dnl
486 AC_DEFUN(FPTOOLS_FIND_FIND,
487 [
488 AC_PATH_PROG(Find2Cmd, find)
489 $Find2Cmd --version > conftest.out 2>&1 
490 if grep "FIND: Parameter format" conftest.out >/dev/null 2>&1 ; then
491    # Encountered MS' find utility, which is not what we're after.
492    #
493    # HACK - AC_CHECK_PROG is useful here in that does let you reject
494    # an (absolute) entry in the path (Find2Cmd). It is not so useful
495    # in that it doesn't let you (AFAIU) set VARIABLE equal to the 
496    # absolute path eventually found. So, hack around this by inspecting
497    # what variables hold the abs. path & use them directly.
498    AC_CHECK_PROG(FindCmd,find,`echo $ac_dir/$ac_word`,find,,$Find2Cmd)
499 else
500 FindCmd=$Find2Cmd
501 AC_SUBST(FindCmd)
502 fi
503 ])
504
505 dnl
506 dnl FPTOOLS_NOCACHE_CHECK prints a message, then sets the
507 dnl values of the second argument to the result of running
508 dnl the commands given by the third. It does not cache its
509 dnl result, so it is suitable for checks which should be
510 dnl run every time.
511 dnl
512 AC_DEFUN(FPTOOLS_NOCACHE_CHECK,
513 [AC_MSG_CHECKING([$1])
514  $3
515  AC_MSG_RESULT([$][$2])
516 ])
517
518 dnl
519 dnl FPTOOLS_GHC_VERSION(version)
520 dnl FPTOOLS_GHC_VERSION(major, minor [, patchlevel])
521 dnl FPTOOLS_GHC_VERSION(version, major, minor, patchlevel)
522 dnl
523 dnl Test for version of installed ghc.  Uses $GHC.
524 dnl [original version pinched from c2hs]
525 dnl
526 AC_DEFUN(FPTOOLS_GHC_VERSION,
527 [FPTOOLS_NOCACHE_CHECK([version of ghc], [fptools_version_of_ghc],
528 ["${WithGhc-ghc}" --version > conftestghc 2>&1
529   cat conftestghc >&AC_FD_CC
530 #Useless Use Of cat award...
531   fptools_version_of_ghc=`cat conftestghc | sed -n -e 's/, patchlevel *\([[0-9]]\)/.\1/;s/.* version \([[0-9]][[0-9.]]*\).*/\1/p'`
532   rm -fr conftest*
533   if test "[$]fptools_version_of_ghc" = ""
534   then
535     fptools_version_of_ghc='unknown'
536   fi
537 fptools_version_of_ghc[_major]=`echo [$]fptools_version_of_ghc | sed -e 's/^\([[0-9]]\).*/\1/'`
538 fptools_version_of_ghc[_minor]=`echo [$]fptools_version_of_ghc | sed -e 's/^[[0-9]]\.\([[0-9]]*\).*/\1/'`
539 fptools_version_of_ghc[_pl]=`echo [$]fptools_version_of_ghc | sed -n -e 's/^[[0-9]]\.[[0-9]]*\.\([[0-9]]*\)/\1/p'`
540 #
541 if test "[$]fptools_version_of_ghc[_pl]" = ""
542 then
543   fptools_version_of_ghc[_all]="[$]fptools_version_of_ghc[_major].[$]fptools_version_of_ghc[_minor]"
544   fptools_version_of_ghc[_pl]="0"
545 else
546   fptools_version_of_ghc[_all]="[$]fptools_version_of_ghc[_major].[$]fptools_version_of_ghc[_minor].[$]fptools_version_of_ghc[_pl]"
547 fi
548 #
549 ifelse($#, [1], [dnl
550 [$1]="[$]fptools_version_of_ghc[_all]"
551 ], $#, [2], [dnl
552 [$1]="[$]fptools_version_of_ghc[_major]"
553 [$2]="[$]fptools_version_of_ghc[_minor]"
554 ], $#, [3], [dnl
555 [$1]="[$]fptools_version_of_ghc[_major]"
556 [$2]="[$]fptools_version_of_ghc[_minor]"
557 [$3]="[$]fptools_version_of_ghc[_pl]"
558 ], $#, [4], [dnl
559 [$1]="[$]fptools_version_of_ghc[_all]"
560 [$2]="[$]fptools_version_of_ghc[_major]"
561 [$3]="[$]fptools_version_of_ghc[_minor]"
562 [$4]="[$]fptools_version_of_ghc[_pl]"
563 ])
564 ])
565 ])dnl
566
567
568 dnl ** Map an arithmetic C type to a Haskell type.
569 dnl    Based on autconf's AC_CHECK_SIZEOF.
570
571 dnl FPTOOLS_CHECK_HTYPE(TYPE [, DEFAULT_VALUE, [, VALUE-FOR-CROSS-COMPILATION])
572 AC_DEFUN(FPTOOLS_CHECK_HTYPE,
573 [changequote(<<, >>)dnl
574 dnl The name to #define.
575 define(<<AC_TYPE_NAME>>, translit(htype_$1, [a-z *], [A-Z_P]))dnl
576 dnl The cache variable name.
577 define(<<AC_CV_NAME>>, translit(fptools_cv_htype_$1, [ *], [_p]))dnl
578 changequote([, ])dnl
579 AC_MSG_CHECKING(Haskell type for $1)
580 AC_CACHE_VAL(AC_CV_NAME,
581 [AC_TRY_RUN([#include <stdio.h>
582 #include <stddef.h>
583
584 #ifdef HAVE_SYS_TYPES_H
585 # include <sys/types.h>
586 #endif
587
588 #ifdef HAVE_UNISTD_H
589 # include <unistd.h>
590 #endif
591
592 #ifdef HAVE_SYS_STAT_H
593 # include <sys/stat.h>
594 #endif
595
596 #ifdef HAVE_FCNTL_H
597 # include <fcntl.h>
598 #endif
599
600 #ifdef HAVE_SIGNAL_H
601 # include <signal.h>
602 #endif
603
604 #ifdef HAVE_TIME_H
605 # include <time.h>
606 #endif
607
608 #ifdef HAVE_TERMIOS_H
609 # include <termios.h>
610 #endif
611
612 #ifdef HAVE_STRING_H
613 # include <string.h>
614 #endif
615
616 #ifdef HAVE_CTYPE_H
617 # include <ctype.h>
618 #endif
619
620 #ifdef HAVE_GL_GL_H
621 # include <GL/gl.h>
622 #endif
623
624 #ifdef HAVE_OPENGL_GL_H
625 # include <OpenGL/gl.h>
626 #endif
627
628 #ifdef HAVE_SYS_RESOURCE_H
629 # include <sys/resource.h>
630 #endif
631
632 typedef $1 testing;
633
634 main() {
635   FILE *f=fopen("conftestval", "w");
636   if (!f) exit(1);
637   if (((testing)((int)((testing)1.4))) == ((testing)1.4)) {
638     fprintf(f, "%s%d\n",
639            ((testing)(-1) < (testing)0) ? "Int" : "Word",
640            sizeof(testing)*8);
641   } else {
642     fprintf(f,"%s\n",
643            (sizeof(testing) >  sizeof(double)) ? "LDouble" :
644            (sizeof(testing) == sizeof(double)) ? "Double"  : "Float");
645   }
646   fclose(f);
647   exit(0);
648 }], AC_CV_NAME=`cat conftestval`,
649 ifelse([$2], , AC_CV_NAME=NotReallyAType,      AC_CV_NAME=$2),
650 ifelse([$3], , AC_CV_NAME=NotReallyATypeCross, AC_CV_NAME=$3))]) dnl
651 AC_MSG_RESULT($AC_CV_NAME)
652 AC_DEFINE_UNQUOTED(AC_TYPE_NAME, $AC_CV_NAME, [Define to Haskell type for $1])
653 undefine([AC_TYPE_NAME])dnl
654 undefine([AC_CV_NAME])dnl
655 ])
656
657
658 dnl ** Obtain the value of a C constant.
659 dnl    The value will be `(-1)' if the constant is undefined.
660 dnl
661 dnl    This is set up so that the argument can be a shell variable.
662 dnl
663 AC_DEFUN(FPTOOLS_CHECK_CCONST,
664 [
665 eval "cv_name=ac_cv_cconst_$1"
666 AC_MSG_CHECKING(value of $1)
667 AC_CACHE_VAL($cv_name,
668 [AC_TRY_RUN([#include <stdio.h>
669 #include <errno.h>
670 main()
671 {
672   FILE *f=fopen("conftestval", "w");
673   if (!f) exit(1);
674   fprintf(f, "%d\n", $1);
675   exit(0);
676 }], 
677 eval "$cv_name=`cat conftestval`",
678 eval "$cv_name=-1",
679 eval "$cv_name=-1")])dnl
680 eval "fptools_check_cconst_result=`echo '$'{$cv_name}`"
681 AC_MSG_RESULT($fptools_check_cconst_result)
682 AC_DEFINE_UNQUOTED(CCONST_$1, $fptools_check_cconst_result, [The value of $1.])
683 unset fptools_check_cconst_result
684 ])
685
686
687 # FP_CHECK_CCONSTS_TEMPLATE(CONST...)
688 # -----------------------------------
689 m4_define([FP_CHECK_CCONSTS_TEMPLATE],
690 [AC_FOREACH([FP_Const], [$1],
691   [AH_TEMPLATE(AS_TR_CPP(CCONST_[]FP_Const),
692                [The value of ]FP_Const[.])])[]dnl
693 ])# FP_CHECK_CCONSTS_TEMPLATE
694
695
696 dnl ** Invoke AC_CHECK_CCONST on each argument (which have to separate with 
697 dnl    spaces)
698 dnl
699 AC_DEFUN(FPTOOLS_CHECK_CCONSTS,
700 [FP_CHECK_CCONSTS_TEMPLATE([$1])dnl
701 for ac_const_name in $1
702 do
703 FPTOOLS_CHECK_CCONST($ac_const_name)dnl
704 done
705 ])
706
707
708 dnl *** Can we open files in binary mode? ***
709 dnl 
710 AC_DEFUN(FPTOOLS_O_BINARY,
711 [
712 AC_REQUIRE([AC_PROG_CC])
713 AC_MSG_CHECKING(whether we can open files in binary mode)
714 AC_CACHE_VAL(fptools_cv_have_o_binary,
715 [
716 AC_LANG_SAVE
717 AC_LANG_C
718 AC_TRY_COMPILE(
719 [#ifdef HAVE_FCNTL_H
720 #include <fcntl.h>
721 #endif],
722 [int x = O_BINARY;],
723 fptools_cv_have_o_binary=yes,
724 fptools_cv_have_o_binary=no)
725 AC_LANG_RESTORE
726 ])
727 AC_MSG_RESULT($fptools_cv_have_o_binary)
728 if test "$fptools_cv_have_o_binary" = yes; then
729   AC_DEFINE([HAVE_O_BINARY], [1], [Define to 1 if fcntl.h defines O_BINARY.])
730 fi
731 ])
732
733
734 dnl Based on AC_TRY_LINK - run iftrue if links cleanly with no warning
735
736 dnl FPTOOLS_TRY_LINK_NOWARN(flags,main?,iftrue,iffalse)
737
738 AC_DEFUN(FPTOOLS_TRY_LINK_NOWARN,
739 [
740 ac_save_LIBS="$LIBS"
741 LIBS=[$1];
742 cat > conftest.$ac_ext <<EOF
743 dnl This sometimes fails to find confdefs.h, for some reason.
744 dnl [#]line __oline__ "[$]0"
745 [#]line __oline__ "configure"
746 #include "confdefs.h"
747 [$2]
748 int t() { return 0; }
749 EOF
750 if AC_TRY_EVAL(ac_link); then
751   ifelse([$3], , :, [
752     LIBS="$ac_save_LIBS"
753     rm -rf conftest*
754     $3])
755   ifelse([$4], , , [else
756     LIBS="$ac_save_LIBS"
757     rm -rf conftest*
758     $4
759 ])dnl
760 fi
761 rm -f conftest*
762 ]
763 )
764
765 dnl Loosely based on AC_CHECK_LIB in acgeneral.m4 in autoconf distribution
766
767 dnl FPTOOLS_CHECK_FLAG_NOWARN(NAME, FLAG, CODE, iftrue, iffalse)
768
769 AC_DEFUN(FPTOOLS_CHECK_FLAG_NOWARN,
770 [AC_MSG_CHECKING([for $1])
771  AC_CACHE_VAL(ac_cv_flag_$1,
772    [FPTOOLS_TRY_LINK_NOWARN("$2", [main() { $3; exit(0); } ],
773      eval "ac_cv_flag_$1=yes",
774      eval "ac_cv_flag_$1=no"
775    )]
776  )
777 if eval "test \"`echo '$ac_cv_flag_'$1`\" = yes"; then
778   AC_MSG_RESULT(yes)
779   LIBS="$2 $LIBS"
780   $4
781 else
782   AC_MSG_RESULT(no)
783   $5
784 fi
785 ])
786
787 dnl FPTOOLS_CHECK_LIB_NOWARN(LIBRARY, FUNCTION)
788
789 AC_DEFUN(FPTOOLS_CHECK_LIB_NOWARN,
790 [FPTOOLS_CHECK_FLAG_NOWARN([function_$2],[],[extern char $2(); $2();],
791 [changequote(, )dnl
792   ac_tr_lib=HAVE_LIB`echo $1 | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
793  changequote([, ])dnl
794  AC_DEFINE_UNQUOTED($ac_tr_lib)
795 ],
796 [FPTOOLS_CHECK_FLAG_NOWARN([library_$1],[-l$1],[extern char $2(); $2();],
797 [changequote(, )dnl
798   ac_tr_lib=HAVE_LIB`echo $1 | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
799  changequote([, ])dnl
800  AC_DEFINE_UNQUOTED($ac_tr_lib)
801 ],
802 []
803 )])]
804 )
805
806
807 dnl ** Check which CATALOG file we have to use with DocBook SGML.
808 dnl
809 dnl FPTOOLS_DOCBOOK_CATALOG(VARIABLE, JADE, STYLESHEET, CATALOGS-TO-CHECK-FOR)
810 dnl
811 dnl If any of the catalogs given in CATALOGS-TO-CHECK-FOR works on this
812 dnl platform, let VARIABLE refer to this catalog; otherwise, VARIABLE
813 dnl is set to "no".  JADE is the jade executable and STYLESHEET
814 dnl a DocBook style sheet.
815 dnl
816 AC_DEFUN(FPTOOLS_DOCBOOK_CATALOG,
817 [AC_CACHE_CHECK([for DocBook CATALOG], fptools_cv_sgml_catalog,
818 [
819 cat > conftest.sgml << EOF
820 <!DOCTYPE Article PUBLIC "-//OASIS//DTD DocBook V3.1//EN">
821 <Article>
822 <ArtHeader>
823 <Title>Test</Title>
824 <Author><OtherName>Test</OtherName></Author>
825 <Address>Test</Address>
826 <PubDate>Test</PubDate>
827 </ArtHeader>
828 <Sect1><Title>Test</Title>
829 <Para>
830 Test.
831 </Para>
832 </Sect1>
833 </Article>
834 EOF
835 fptools_cv_sgml_catalog=no
836 if test -z "$SGML_CATALOG_FILES" ; then
837  for fptools_catalog in $4; do
838    ac_try="$2 -t rtf -d $3#print -c $fptools_catalog conftest.sgml"
839    if AC_TRY_EVAL(ac_try); then
840      fptools_cv_sgml_catalog=[$]fptools_catalog
841      break
842    fi
843  done
844 else
845 # If the env var SGML_CATALOG_FILES is defined, assume things are cool.
846   fptools_cv_sgml_catalog="yes"
847 fi
848 ])
849 rm -rf conftest*
850 if test $fptools_cv_sgml_catalog != "no"; then
851   $1=$fptools_cv_sgml_catalog
852 fi
853 ])
854
855 dnl ######################################################################
856 dnl FPTOOLS_SEARCH_LIBS(INCLUDES, FUNCTION, SEARCH-LIBS [, ACTION-IF-FOUND
857 dnl                     [, ACTION-IF-NOT-FOUND [, OTHER-LIBRARIES]]])
858 dnl Search for a library defining FUNC, if it's not already available.
859 dnl This is almost the same as AC_SEARCH_LIBS, but the INCLUDES can be
860 dnl specified.
861 dnl ######################################################################
862
863 AC_DEFUN(FPTOOLS_SEARCH_LIBS,
864 [AC_PREREQ([2.13])
865 AC_CACHE_CHECK([for library containing $2], [ac_cv_search_$2],
866 [ac_func_search_save_LIBS="$LIBS"
867 ac_cv_search_$2="no"
868 AC_TRY_LINK([$1], [$2()], [ac_cv_search_$2="none required"])
869 test "$ac_cv_search_$2" = "no" && for i in $3; do
870 LIBS="-l$i $6 $ac_func_search_save_LIBS"
871 AC_TRY_LINK([$1], [$2()],
872 [ac_cv_search_$2="-l$i"
873 break])
874 done
875 LIBS="$ac_func_search_save_LIBS"])
876 if test "$ac_cv_search_$2" != "no"; then
877   test "$ac_cv_search_$2" = "none required" || LIBS="$ac_cv_search_$2 $LIBS"
878   $4
879 else :
880   $5
881 fi])
882
883 dnl ####################### -*- Mode: M4 -*- ###########################
884 dnl Copyright (C) 98, 1999 Matthew D. Langston <langston@SLAC.Stanford.EDU>
885 dnl
886 dnl This file is free software; you can redistribute it and/or modify it
887 dnl under the terms of the GNU General Public License as published by
888 dnl the Free Software Foundation; either version 2 of the License, or
889 dnl (at your option) any later version.
890 dnl
891 dnl This file is distributed in the hope that it will be useful, but
892 dnl WITHOUT ANY WARRANTY; without even the implied warranty of
893 dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
894 dnl General Public License for more details.
895 dnl
896 dnl You should have received a copy of the GNU General Public License
897 dnl along with this file; if not, write to:
898 dnl
899 dnl   Free Software Foundation, Inc.
900 dnl   Suite 330
901 dnl   59 Temple Place
902 dnl   Boston, MA 02111-1307, USA.
903 dnl ####################################################################
904
905
906 dnl @synopsis FPTOOLS_CHECK_LIBM
907 dnl 
908 dnl Search for math library (typically -lm).
909 dnl
910 dnl The variable LIBM (which is not an output variable by default) is
911 dnl set to a value which is suitable for use in a Makefile (for example,
912 dnl in make's LOADLIBES macro) provided you AC_SUBST it first.
913 dnl
914 dnl @author Matthew D. Langston <langston@SLAC.Stanford.EDU>
915
916 # FPTOOLS_CHECK_LIBM - check for math library
917 AC_DEFUN(FPTOOLS_CHECK_LIBM,
918 [AC_REQUIRE([AC_CANONICAL_HOST])dnl
919 LIBM=
920 case "$host" in
921 *-*-beos*)
922   # These system don't have libm
923   ;;
924 *-ncr-sysv4.3*)
925   AC_CHECK_LIB(mw, _mwvalidcheckl, LIBM="-lmw")
926   AC_CHECK_LIB(m, main, LIBM="$LIBM -lm")
927   ;;
928 *)
929   AC_CHECK_LIB(m, main, LIBM="-lm")
930   ;;
931 esac
932 ])
933
934 dnl ######################################################################
935 dnl Note: Caching has been completely rewritten, but is still no perfect yet.
936 dnl ######################################################################
937
938 dnl ########################### -*- Mode: M4 -*- #######################
939 dnl Copyright (C) 98, 1999 Matthew D. Langston <langston@SLAC.Stanford.EDU>
940 dnl
941 dnl This file is free software; you can redistribute it and/or modify it
942 dnl under the terms of the GNU General Public License as published by
943 dnl the Free Software Foundation; either version 2 of the License, or
944 dnl (at your option) any later version.
945 dnl
946 dnl This file is distributed in the hope that it will be useful, but
947 dnl WITHOUT ANY WARRANTY; without even the implied warranty of
948 dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
949 dnl General Public License for more details.
950 dnl
951 dnl You should have received a copy of the GNU General Public License
952 dnl along with this file; if not, write to:
953 dnl
954 dnl   Free Software Foundation, Inc.
955 dnl   Suite 330
956 dnl   59 Temple Place
957 dnl   Boston, MA 02111-1307, USA.
958 dnl ####################################################################
959
960 dnl @synopsis FPTOOLS_HAVE_OPENGL
961 dnl 
962 dnl Search for OpenGL.  We search first for Mesa (a GPL'ed version of
963 dnl OpenGL) before a vendor's version of OpenGL if we were specifically
964 dnl asked to with `--with-Mesa=yes' or `--with-Mesa'.
965 dnl
966 dnl The four "standard" OpenGL libraries are searched for: "-lGL",
967 dnl "-lGLU", "-lGLX" (or "-lMesaGL", "-lMesaGLU" as the case may be) and
968 dnl "-lglut".
969 dnl
970 dnl All of the libraries that are found (since "-lglut" or "-lGLX" might
971 dnl be missing) are added to the shell output variable "GL_LIBS", along
972 dnl with any other libraries that are necessary to successfully link an
973 dnl OpenGL application (e.g. the X11 libraries).  Care has been taken to
974 dnl make sure that all of the libraries in "GL_LIBS" are listed in the
975 dnl proper order.
976 dnl
977 dnl Additionally, the shell output variable "GL_CFLAGS" is set to any
978 dnl flags (e.g. "-I" flags) that are necessary to successfully compile
979 dnl an OpenGL application.
980 dnl
981 dnl The following shell variable (which are not output variables) are
982 dnl also set to either "yes" or "no" (depending on which libraries were
983 dnl found) to help you determine exactly what was found.
984 dnl
985 dnl   have_GL
986 dnl   have_GLU
987 dnl   have_GLX
988 dnl   have_glut
989 dnl
990 dnl A complete little toy "Automake `make distcheck'" package of how to
991 dnl use this macro is available at:
992 dnl
993 dnl   ftp://ftp.slac.stanford.edu/users/langston/autoconf/ac_opengl-0.01.tar.gz
994 dnl
995 dnl Please note that as the ac_opengl macro and the toy example evolves,
996 dnl the version number increases, so you may have to adjust the above
997 dnl URL accordingly.
998 dnl
999 dnl @author Matthew D. Langston <langston@SLAC.Stanford.EDU>
1000
1001 AC_DEFUN(FPTOOLS_HAVE_OPENGL,
1002 [
1003   AC_REQUIRE([AC_PROG_CC])
1004   AC_REQUIRE([AC_PATH_X])
1005   AC_REQUIRE([AC_PATH_XTRA])
1006   AC_REQUIRE([FPTOOLS_CHECK_LIBM])
1007
1008 dnl Check for Mesa first if we were asked to.
1009   AC_ARG_ENABLE(Mesa,
1010 [  --enable-mesa
1011         Prefer Mesa over a vendor's native OpenGL library (default=no)
1012 ],
1013                 use_Mesa=$enableval,
1014                 use_Mesa=no)
1015
1016   if test x"$use_Mesa" = xyes; then
1017      GL_search_list="MesaGL  GL  opengl32"
1018     GLU_search_list="MesaGLU GLU glu32"
1019     GLX_search_list="MesaGLX GLX"
1020   else
1021      GL_search_list="GL  opengl32 MesaGL"
1022     GLU_search_list="GLU glu32    MesaGLU"
1023     GLX_search_list="GLX          MesaGLX"
1024   fi      
1025
1026   AC_LANG_SAVE
1027   AC_LANG_C
1028
1029 dnl If we are running under X11 then add in the appropriate libraries.
1030   if test x"$no_x" != xyes; then
1031 dnl Add everything we need to compile and link X programs to GL_CFLAGS
1032 dnl and GL_X_LIBS/GLUT_X_LIBS.
1033     GL_CFLAGS="$CPPFLAGS $X_CFLAGS"
1034     GL_X_LIBS="$X_LIBS $X_PRE_LIBS -lXext -lX11 $X_EXTRA_LIBS $LIBM"
1035     GLUT_X_LIBS="$X_LIBS $X_PRE_LIBS -lXmu -lXt -lXi -lXext -lX11 $X_EXTRA_LIBS $LIBM"
1036   fi
1037   GL_save_CPPFLAGS="$CPPFLAGS"
1038   CPPFLAGS="$GL_CFLAGS"
1039
1040   GL_save_LIBS="$LIBS"
1041   LIBS="$GL_X_LIBS"
1042
1043   FPTOOLS_SEARCH_LIBS([#include <GL/gl.h>],   glEnd,         $GL_search_list,  have_GL=yes,   have_GL=no)
1044   FPTOOLS_SEARCH_LIBS([#include <GL/glu.h>],  gluNewQuadric, $GLU_search_list, have_GLU=yes,  have_GLU=no)
1045   FPTOOLS_SEARCH_LIBS([#include <GL/glx.h>],  glXWaitX,      $GLX_search_list, have_GLX=yes,  have_GLX=no)
1046
1047   if test -n "$LIBS"; then
1048     GL_LIBS="$LDFLAGS $LIBS"
1049   else
1050     GL_LIBS="$LDFLAGS"
1051     GL_CFLAGS=
1052   fi
1053
1054   LIBS="$GLUT_X_LIBS"
1055
1056   FPTOOLS_SEARCH_LIBS([#include <GL/glut.h>], glutMainLoop,  glut32 glut,      have_glut=yes, have_glut=no)
1057
1058   if test -n "$LIBS"; then
1059     GLUT_LIBS="$LDFLAGS $LIBS"
1060   fi
1061
1062   AC_CACHE_CHECK([OpenGL flags], mdl_cv_gl_cflags, [mdl_cv_gl_cflags="$GL_CFLAGS"])
1063   GL_CFLAGS="$mdl_cv_gl_cflags"
1064   AC_SUBST(GL_CFLAGS)
1065   AC_CACHE_CHECK([OpenGL libs],  mdl_cv_gl_libs,   [mdl_cv_gl_libs="$GL_LIBS"])
1066   GL_LIBS="$mdl_cv_gl_libs"
1067   AC_SUBST(GL_LIBS)
1068   AC_CACHE_CHECK([GLUT libs],  mdl_cv_glut_libs,   [mdl_cv_glut_libs="$GLUT_LIBS"])
1069   GLUT_LIBS="$mdl_cv_glut_libs"
1070   AC_SUBST(GLUT_LIBS)
1071
1072 dnl Reset GL_X_LIBS/GLUT_X_LIBS regardless, since they were just temporary variables
1073 dnl and we don't want to be global namespace polluters.
1074   GL_X_LIBS=
1075   GLUT_X_LIBS=
1076
1077   LIBS="$GL_save_LIBS"
1078   CPPFLAGS="$GL_save_CPPFLAGS"
1079
1080   AC_LANG_RESTORE
1081 ])
1082
1083 # LocalWords:  fi
1084
1085
1086 dnl
1087 dnl Check to see whether CC (gcc) supports a particular option.
1088 dnl
1089 AC_DEFUN(FPTOOLS_CC_FLAG,
1090 [
1091 AC_CACHE_CHECK([whether $CC accepts $1], [ac_cv_cc_$2],
1092 [save_CFLAGS="$CFLAGS"
1093  CFLAGS="$CFLAGS $1"
1094  AC_LANG_C
1095  AC_TRY_COMPILE(,[int main(){return(0);}],
1096                  [ac_cv_cc_$2=yes],
1097                  [ac_cv_cc_$2=no])
1098  CFLAGS="$save_CFLAGS"
1099 ])
1100 if test "$ac_cv_cc_$2"x = "yesx"; then
1101   $2=$1;
1102 else
1103   $2="";
1104 fi;
1105 ])