3 ev.sigev_notify = SIGEV_SIGNAL;
4 ev.sigev_signo = SIGVTALRM;
5 if (timer_create(CLOCK_PROCESS_CPUTIME_ID, &ev, &timer) != 0) {
13 # Extra autoconf macros for the Glasgow fptools
15 # To be a good autoconf citizen, names of local macros have prefixed with FP_ to
16 # ensure we don't clash with any pre-supplied autoconf ones.
19 # FPTOOLS_FLOAT_WORD_ORDER_BIGENDIAN
20 # ----------------------------------
21 # Little endian Arm on Linux with some ABIs has big endian word order
22 # in doubles. Define FLOAT_WORDS_BIGENDIAN if this is the case.
23 AC_DEFUN([FPTOOLS_FLOAT_WORD_ORDER_BIGENDIAN],
24 [AC_CACHE_CHECK([whether float word order is big endian], [fptools_cv_float_word_order_bigendian],
27 [#include <endian.h>],
28 [#if defined(__FLOAT_WORD_ORDER) && __FLOAT_WORD_ORDER == BIG_ENDIAN
31 not float word order big endian
34 [fptools_cv_float_word_order_bigendian=yes],
35 [fptools_cv_float_word_order_bigendian=no])
37 case $fptools_cv_float_word_order_bigendian in
39 AC_DEFINE([FLOAT_WORDS_BIGENDIAN], 1,
40 [Define to 1 if your processor stores words of floats with
41 the most significant byte first]) ;;
46 # FP_EVAL_STDERR(COMMAND)
47 # -----------------------
48 # Eval COMMAND, save its stderr (without lines resulting from shell tracing)
49 # into the file conftest.err and the exit status in the variable fp_status.
50 AC_DEFUN([FP_EVAL_STDERR],
51 [{ (eval $1) 2>conftest.er1
53 grep -v '^ *+' conftest.er1 >conftest.err
55 (exit $fp_status); }[]dnl
59 # FP_CHECK_FLAG(FLAG, [ACTION-IF-SUPPORTED], [ACTION-IF-NOT-SUPPORTED])
60 # ---------------------------------------------------------------------
61 # Check to see whether the compiler for the current language supports a
64 # Implementation note: When given an unkown option, GCC issues an warning on
65 # stderr only, but returns an exit value of 0 nevertheless. Consequently we have
66 # to check stderr *and* the exit value.
69 AC_DEFUN([FP_CHECK_FLAG],
70 [AC_LANG_COMPILER_REQUIRE()dnl
71 AC_LANG_CASE([C], [fp_compiler="$CC" m4_pushdef([fp_Flags], [CFLAGS])],
72 [C++], [fp_compiler="$CXX" m4_pushdef([fp_Flags], [CXXFLAGS])],
73 [Fortran 77], [fp_compiler="$F77" m4_pushdef([fp_Flags], [FFLAGS])])
74 m4_pushdef([fp_Cache], [fp_cv_[]fp_Flags[]AS_TR_SH([$1])])[]dnl
75 AC_CACHE_CHECK([whether $fp_compiler accepts $1], [fp_Cache],
76 [AC_LANG_CONFTEST([AC_LANG_PROGRAM()])
77 fp_save_flags="$fp_Flags"
78 fp_Flags="$fp_Flags $1"
80 if FP_EVAL_STDERR([$ac_compile conftest.$ac_ext]) >/dev/null; then
81 test -s conftest.err || fp_Cache=yes
83 fp_Flags="$fp_save_flags"
84 rm -f conftest.err conftest.$ac_ext])
85 AS_IF([test $fp_Cache = yes], [$2], [$3])[]dnl
86 m4_popdef([fp_Cache])[]dnl
87 m4_popdef([fp_Flags])[]dnl
91 # FP_PROG_CONTEXT_DIFF
92 # --------------------
93 # Figure out how to do context diffs. Sets the output variable ContextDiffCmd.
95 # Note: NeXTStep thinks diff'ing a file against itself is "trouble".
97 # Used by ghc, glafp-utils/ltx, and glafp-utils/runstdtest.
98 AC_DEFUN([FP_PROG_CONTEXT_DIFF],
99 [AC_CACHE_CHECK([for a working context diff], [fp_cv_context_diff],
100 [echo foo > conftest1
102 fp_cv_context_diff=no
103 for fp_var in '-U 1' '-u1' '-C 1' '-c1'
105 if diff $fp_var conftest1 conftest2 > /dev/null 2>&1; then
106 fp_cv_context_diff="diff $fp_var"
110 if test x"$fp_cv_context_diff" = xno; then
111 AC_MSG_ERROR([cannot figure out how to do context diffs])
113 AC_SUBST(ContextDiffCmd, [$fp_cv_context_diff])
114 ])# FP_PROG_CONTEXT_DIFF
117 # FP_COMPUTE_INT(EXPRESSION, VARIABLE, INCLUDES, IF-FAILS)
118 # --------------------------------------------------------
119 # Assign VARIABLE the value of the compile-time EXPRESSION using INCLUDES for
120 # compilation. Execute IF-FAILS when unable to determine the value. Works for
121 # cross-compilation, too.
123 # Implementation note: We are lazy and use an internal autoconf macro, but it
124 # is supported in autoconf versions 2.50 up to the actual 2.57, so there is
126 AC_DEFUN([FP_COMPUTE_INT],
127 [_AC_COMPUTE_INT([$1], [$2], [$3], [$4])[]dnl
131 # FP_CHECK_ALIGNMENT(TYPE, [IGNORED], [INCLUDES = DEFAULT-INCLUDES])
132 # ------------------------------------------------------------------
133 # A variation of AC_CHECK_SIZEOF for computing the alignment restrictions of a
134 # given type. Defines ALIGNMENT_TYPE.
135 AC_DEFUN([FP_CHECK_ALIGNMENT],
136 [AS_LITERAL_IF([$1], [],
137 [AC_FATAL([$0: requires literal arguments])])[]dnl
138 AC_CHECK_TYPE([$1], [], [], [$3])[]dnl
139 m4_pushdef([fp_Cache], [AS_TR_SH([fp_cv_alignment_$1])])[]dnl
140 AC_CACHE_CHECK([alignment of $1], [fp_Cache],
141 [if test "$AS_TR_SH([ac_cv_type_$1])" = yes; then
142 FP_COMPUTE_INT([(long) (&((struct { char c; $1 ty; } *)0)->ty)],
144 [AC_INCLUDES_DEFAULT([$3])],
145 [AC_MSG_ERROR([cannot compute alignment ($1)
146 See `config.log' for more details.], [77])])
150 AC_DEFINE_UNQUOTED(AS_TR_CPP(alignment_$1), $fp_Cache, [The alignment of a `$1'.])[]dnl
151 m4_popdef([fp_Cache])[]dnl
152 ])# FP_CHECK_ALIGNMENT
155 # FP_LEADING_UNDERSCORE
156 # ---------------------
157 # Test for determining whether symbol names have a leading underscore. We assume
158 # that they _haven't_ if anything goes wrong. Sets the output variable
159 # LeadingUnderscore to YES or NO and defines LEADING_UNDERSCORE correspondingly.
161 # Some nlist implementations seem to try to be compatible by ignoring a leading
162 # underscore sometimes (eg. FreeBSD). We therefore have to work around this by
163 # checking for *no* leading underscore first. Sigh. --SDM
165 # Similarly on OpenBSD, but this test doesn't help. -- dons
166 AC_DEFUN([FP_LEADING_UNDERSCORE],
167 [AC_CHECK_LIB([elf], [nlist], [LIBS="-lelf $LIBS"])
168 AC_CACHE_CHECK([leading underscore in symbol names], [fptools_cv_leading_underscore], [
169 # Hack!: nlist() under Digital UNIX insist on there being an _,
170 # but symbol table listings shows none. What is going on here?!?
172 # Another hack: cygwin doesn't come with nlist.h , so we hardwire
173 # the underscoredness of that "platform"
174 case $HostPlatform in
175 *openbsd*) # x86 openbsd is ELF from 3.4 >, meaning no leading uscore
177 i386-*2\.@<:@0-9@:>@ | i386-*3\.@<:@0-3@:>@ ) fptools_cv_leading_underscore=yes ;;
178 *) fptools_cv_leading_underscore=no ;;
180 alpha-dec-osf*) fptools_cv_leading_underscore=no;;
181 *cygwin32) fptools_cv_leading_underscore=yes;;
182 *mingw32) fptools_cv_leading_underscore=yes;;
184 # HACK: Apple doesn't seem to provide nlist in the 64-bit-libraries
185 x86_64-apple-darwin*) fptools_cv_leading_underscore=yes;;
187 *) AC_RUN_IFELSE([AC_LANG_SOURCE([[#ifdef HAVE_NLIST_H
189 struct nlist xYzzY1[] = {{"xYzzY1", 0},{0}};
190 struct nlist xYzzY2[] = {{"_xYzzY2", 0},{0}};
198 if(nlist(argv[0], xYzzY1) == 0 && xYzzY1[0].n_value != 0)
200 if(nlist(argv[0], xYzzY2) == 0 && xYzzY2[0].n_value != 0)
204 }]])],[fptools_cv_leading_underscore=yes],[fptools_cv_leading_underscore=no],[fptools_cv_leading_underscore=no])
207 AC_SUBST([LeadingUnderscore], [`echo $fptools_cv_leading_underscore | sed 'y/yesno/YESNO/'`])
208 if test x"$fptools_cv_leading_underscore" = xyes; then
209 AC_DEFINE([LEADING_UNDERSCORE], [1], [Define to 1 if C symbols have a leading underscore added by the compiler.])
210 fi])# FP_LEADING_UNDERSCORE
213 # FP_COMPARE_VERSIONS(VERSION1, TEST, VERSION2, [ACTION-IF-TRUE], [ACTION-IF-FALSE])
214 # ----------------------------------------------------------------------------------
215 # Compare dotted version numbers VERSION1 and VERSION2 lexicographically according
216 # to TEST (one of -eq, -ne, -lt, -le, -gt, or -ge).
217 AC_DEFUN([FP_COMPARE_VERSIONS],
218 [fp_version1=$1; fp_version2=$3
219 fp_save_IFS=$IFS; IFS='.'
220 while test x"$fp_version1" != x || test x"$fp_version2" != x
223 set dummy $fp_version1; shift
225 test $[@%:@] = 0 || { fp_num1="[$]1"; shift; }
226 test x"$fp_num1" = x && fp_num1="0"
229 set dummy $fp_version2; shift
231 test $[@%:@] = 0 || { fp_num2="[$]1"; shift; }
232 test x"$fp_num2" = x && fp_num2="0"
235 test "$fp_num1" = "$fp_num2" || break;
238 AS_IF([test "$fp_num1" $2 "$fp_num2"], [$4], [$5])[]dnl
239 ])# FP_COMPARE_VERSIONS
243 dnl Check for GreenCard and version.
245 AC_DEFUN([FPTOOLS_GREENCARD],
247 AC_PATH_PROG(GreenCardCmd,greencard)
248 AC_CACHE_CHECK([for version of greencard], fptools_cv_greencard_version,
250 [if test x"$GreenCardCmd" != x; then
251 fptools_cv_greencard_version="`$GreenCardCmd --version |
252 grep 'version' | sed -e 's/greencard. version \([^ ]*\).*/\1/g'`"
254 fptools_cv_greencard_version=""
258 FP_COMPARE_VERSIONS([$fptools_cv_greencard_version],[-lt],[$1],
259 [AC_MSG_ERROR([greencard version $1 or later is required (found '$fptools_cv_greencard_version')])])[]dnl
260 GreenCardVersion=$fptools_cv_greencard_version
261 AC_SUBST(GreenCardVersion)
265 dnl Check for Happy and version. If we're building GHC, then we need
266 dnl at least Happy version 1.14. If there's no installed Happy, we look
267 dnl for a happy source tree and point the build system at that instead.
269 AC_DEFUN([FPTOOLS_HAPPY],
270 [AC_PATH_PROG(HappyCmd,happy,)
271 AC_CACHE_CHECK([for version of happy], fptools_cv_happy_version,
273 [if test x"$HappyCmd" != x; then
274 fptools_cv_happy_version="`$HappyCmd -v |
275 grep 'Happy Version' | sed -e 's/Happy Version \([^ ]*\).*/\1/g'`" ;
277 fptools_cv_happy_version="";
281 if test ! -f compiler/parser/Parser.hs || test ! -f compiler/main/ParsePkgConf.hs || test ! -f compiler/cmm/CmmParse.hs || test ! -f compiler/parser/ParserCore.hs
283 FP_COMPARE_VERSIONS([$fptools_cv_happy_version],[-lt],[1.15],
284 [AC_MSG_ERROR([Happy version 1.15 or later is required to compile GHC.])])[]dnl
286 HappyVersion=$fptools_cv_happy_version;
287 AC_SUBST(HappyVersion)
291 dnl Check for Haddock and version. If there's no installed Haddock, we look
292 dnl for a haddock source tree and point the build system at that instead.
294 AC_DEFUN([FPTOOLS_HADDOCK],
295 [AC_PATH_PROG(HaddockCmd,haddock,)
296 dnl Darn, I forgot to make Haddock print out its version number when
297 dnl invoked with -v. We could try generating some HTML and grepping
298 dnl through that to find the version number, but I think we'll make
299 dnl do without it for now.
303 dnl Check for Alex and version. If we're building GHC, then we need
304 dnl at least Alex version 2.0.1.
306 AC_DEFUN([FPTOOLS_ALEX],
308 AC_PATH_PROG(AlexCmd,alex,)
309 # Alex is passed to Cabal, so we need a native path
310 if test "x$HostPlatform" = "xi386-unknown-mingw32" && \
311 test "${OSTYPE}" != "msys" && \
312 test "${AlexCmd}" != ""
314 # Canonicalise to <drive>:/path/to/gcc
315 AlexCmd=`cygpath -m ${AlexCmd}`
318 AC_CACHE_CHECK([for version of alex], fptools_cv_alex_version,
320 [if test x"$AlexCmd" != x; then
321 fptools_cv_alex_version="`$AlexCmd -v |
322 grep 'Alex [Vv]ersion' | sed -e 's/Alex [Vv]ersion \([0-9\.]*\).*/\1/g'`" ;
324 fptools_cv_alex_version="";
328 if test ! -f compiler/cmm/CmmLex.hs || test ! -f compiler/parser/Lexer.hs
330 FP_COMPARE_VERSIONS([$fptools_cv_alex_version],[-lt],[2.0.1],
331 [AC_MSG_ERROR([Alex version 2.0.1 or later is required to compile GHC.])])[]dnl
333 AlexVersion=$fptools_cv_alex_version;
334 AC_SUBST(AlexVersion)
340 # Sets the output variable LdCmd to the (non-Cygwin version of the) full path
341 # of ld. Exits if no ld can be found
342 AC_DEFUN([FP_PROG_LD],
346 AC_PATH_PROG([fp_prog_ld_raw], [ld])
347 if test -z "$fp_prog_ld_raw"; then
348 AC_MSG_ERROR([cannot find ld in your PATH, no idea how to link])
350 LdCmd=$fp_prog_ld_raw
351 case $HostPlatform in
352 *mingw32) if test x${OSTYPE} != xmsys; then
353 LdCmd="`cygpath -w ${fp_prog_ld_raw} | sed -e 's@\\\\@/@g'`"
354 AC_MSG_NOTICE([normalized ld command to $LdCmd])
356 # Insist on >= ld-2.15.x, since earlier versions doesn't handle
357 # the generation of relocatable object files with large amounts
358 # of relocations correctly. (cf. HSbase.o splittage-hack)
359 fp_prog_ld_version=`${LdCmd} --version | sed -n '/GNU ld/p' | tr -cd 0-9 | cut -b1-3`
360 FP_COMPARE_VERSIONS([$fp_prog_ld_version],[-lt],[214],
361 [AC_MSG_ERROR([GNU ld version later than 2.14 required to compile GHC on Windows.])])[]dnl
373 # Sets the output variable LdXFlag to -x if ld supports this flag, otherwise the
374 # variable's value is empty.
375 AC_DEFUN([FP_PROG_LD_X],
376 [AC_REQUIRE([FP_PROG_LD])
377 AC_CACHE_CHECK([whether ld understands -x], [fp_cv_ld_x],
378 [echo 'foo() {}' > conftest.c
379 ${CC-cc} -c conftest.c
380 if ${LdCmd} -r -x -o conftest2.o conftest.o > /dev/null 2>&1; then
386 if test "$fp_cv_ld_x" = yes; then
397 # Sets the output variable LdIsGNULd to YES or NO, depending on whether it is
399 AC_DEFUN([FP_PROG_LD_IS_GNU],
400 [AC_REQUIRE([FP_PROG_LD])
401 AC_CACHE_CHECK([whether ld is GNU ld], [fp_cv_gnu_ld],
402 [if ${LdCmd} --version 2> /dev/null | grep "GNU" > /dev/null 2>&1; then
407 AC_SUBST([LdIsGNULd], [`echo $fp_cv_gnu_ld | sed 'y/yesno/YESNO/'`])
408 ])# FP_PROG_LD_IS_GNU
413 # Sets fp_prog_ar_raw to the full path of ar and fp_prog_ar to a non-Cygwin
414 # version of it. Exits if no ar can be found
415 AC_DEFUN([FP_PROG_AR],
416 [AC_PATH_PROG([fp_prog_ar_raw], [ar])
417 if test -z "$fp_prog_ar_raw"; then
418 AC_MSG_ERROR([cannot find ar in your PATH, no idea how to make a library])
420 fp_prog_ar=$fp_prog_ar_raw
421 case $HostPlatform in
422 *mingw32) if test x${OSTYPE} != xmsys; then
423 fp_prog_ar="`cygpath -w ${fp_prog_ar_raw} | sed -e 's@\\\\@/@g'`"
424 AC_MSG_NOTICE([normalized ar command to $fp_prog_ar])
433 # Sets fp_prog_ar_is_gnu to yes or no, depending on whether it is GNU ar or not.
434 AC_DEFUN([FP_PROG_AR_IS_GNU],
435 [AC_REQUIRE([FP_PROG_AR])
436 AC_CACHE_CHECK([whether $fp_prog_ar_raw is GNU ar], [fp_cv_prog_ar_is_gnu],
437 [if $fp_prog_ar_raw --version 2> /dev/null | grep "GNU" > /dev/null 2>&1; then
438 fp_cv_prog_ar_is_gnu=yes
440 fp_cv_prog_ar_is_gnu=no
442 fp_prog_ar_is_gnu=$fp_cv_prog_ar_is_gnu
443 ])# FP_PROG_AR_IS_GNU
448 # Sets fp_prog_ar_args to the arguments for ar and the output variable ArCmd
449 # to a non-Cygwin invocation of ar including these arguments.
450 AC_DEFUN([FP_PROG_AR_ARGS],
451 [AC_REQUIRE([FP_PROG_AR_IS_GNU])
452 AC_CACHE_CHECK([for ar arguments], [fp_cv_prog_ar_args],
454 # GNU ar needs special treatment: it appears to have problems with
455 # object files with the same name if you use the 's' modifier, but
456 # simple 'ar q' works fine, and doesn't need a separate ranlib.
457 if test $fp_prog_ar_is_gnu = yes; then
458 fp_cv_prog_ar_args="q"
461 for fp_var in clqsZ clqs cqs clq cq ; do
463 if $fp_prog_ar_raw $fp_var conftest.a conftest.dummy > /dev/null 2> /dev/null; then
464 fp_cv_prog_ar_args=$fp_var
469 if test -z "$fp_cv_prog_ar_args"; then
470 AC_MSG_ERROR([cannot figure out how to use your $fp_prog_ar_raw])
473 fp_prog_ar_args=$fp_cv_prog_ar_args
474 AC_SUBST([ArCmd], ["$fp_prog_ar $fp_prog_ar_args"])
479 # FP_PROG_AR_NEEDS_RANLIB
480 # -----------------------
481 # Sets the output variable RANLIB to "ranlib" if it is needed and found,
483 AC_DEFUN([FP_PROG_AR_NEEDS_RANLIB],
484 [AC_REQUIRE([FP_PROG_AR_IS_GNU])
485 AC_REQUIRE([FP_PROG_AR_ARGS])
486 AC_REQUIRE([AC_PROG_CC])
487 AC_CACHE_CHECK([whether ranlib is needed], [fp_cv_prog_ar_needs_ranlib],
488 [if test $fp_prog_ar_is_gnu = yes; then
489 fp_cv_prog_ar_needs_ranlib=no
490 elif echo $TargetPlatform | grep "^.*-apple-darwin$" > /dev/null 2> /dev/null; then
491 # It's quite tedious to check for Apple's crazy timestamps in .a files,
493 fp_cv_prog_ar_needs_ranlib=yes
494 elif echo $fp_prog_ar_args | grep "s" > /dev/null 2> /dev/null; then
495 fp_cv_prog_ar_needs_ranlib=no
497 fp_cv_prog_ar_needs_ranlib=yes
499 if test $fp_cv_prog_ar_needs_ranlib = yes; then
505 ])# FP_PROG_AR_NEEDS_RANLIB
508 # FP_PROG_AR_SUPPORTS_INPUT
509 # -------------------------
510 # Sets the output variable ArSupportsInput to "-input" or "", depending on
511 # whether ar supports -input flag is supported or not.
512 AC_DEFUN([FP_PROG_AR_SUPPORTS_INPUT],
513 [AC_REQUIRE([FP_PROG_AR_IS_GNU])
514 AC_REQUIRE([FP_PROG_AR_ARGS])
515 AC_CACHE_CHECK([whether $fp_prog_ar_raw supports -input], [fp_cv_prog_ar_supports_input],
516 [fp_cv_prog_ar_supports_input=no
517 if test $fp_prog_ar_is_gnu = no; then
520 if FP_EVAL_STDERR([$fp_prog_ar_raw $fp_prog_ar_args conftest.a -input conftest.lst]) >/dev/null; then
521 test -s conftest.err || fp_cv_prog_ar_supports_input=yes
525 if test $fp_cv_prog_ar_supports_input = yes; then
526 ArSupportsInput="-input"
530 AC_SUBST([ArSupportsInput])
531 ])# FP_PROG_AR_SUPPORTS_INPUT
535 dnl AC_SHEBANG_PERL - can we she-bang perl?
537 AC_DEFUN([FPTOOLS_SHEBANG_PERL],
538 [AC_CACHE_CHECK([if your perl works in shell scripts], fptools_cv_shebang_perl,
543 (SHELL=/bin/sh; export SHELL; ./conftest 69 > /dev/null)
544 if test $? -ne 69; then
545 fptools_cv_shebang_perl=yes
547 fptools_cv_shebang_perl=no
555 # Extra testing of the result AC_PROG_CC, testing the gcc version no. Sets the
556 # output variables HaveGcc and GccVersion.
557 AC_DEFUN([FP_HAVE_GCC],
558 [AC_REQUIRE([AC_PROG_CC])
559 if test -z "$GCC"; then
564 if test "$fp_have_gcc" = "NO" -a -d $srcdir/ghc; then
565 AC_MSG_ERROR([gcc is required])
567 AC_CACHE_CHECK([version of gcc], [fp_gcc_version],
568 [if test "$fp_have_gcc" = "YES"; then
569 fp_gcc_version="`$CC -v 2>&1 | grep 'version ' | sed -e 's/.*version [[^0-9]]*\([[0-9.]]*\).*/\1/g'`"
570 FP_COMPARE_VERSIONS([$fp_gcc_version], [-lt], [2.0],
571 [AC_MSG_ERROR([Need at least gcc version 2.0 (3.4+ recommended)])])
573 fp_gcc_version="not-installed"
576 AC_SUBST([HaveGcc], [$fp_have_gcc])
577 AC_SUBST([GccVersion], [$fp_gcc_version])
580 AC_DEFUN([FP_MINGW_GCC],
583 mingw*) AC_MSG_CHECKING([whether $CC is a mingw gcc])
584 if $CC -v 2>&1 | grep mingw >/dev/null; then
588 AC_MSG_ERROR([Please use --with-gcc to specify a mingw gcc])
594 dnl Small feature test for perl version. Assumes PerlCmd
595 dnl contains path to perl binary.
597 dnl (Perl versions prior to v5.6 does not contain the string "v5";
598 dnl instead they display version strings such as "version 5.005".)
600 AC_DEFUN([FPTOOLS_CHECK_PERL_VERSION],
601 [$PerlCmd -v >conftest.out 2>&1
602 if grep "v5" conftest.out >/dev/null 2>&1; then
605 AC_MSG_ERROR([your version of perl probably won't work, try upgrading it.])
611 # FP_CHECK_PROG(VARIABLE, PROG-TO-CHECK-FOR,
612 # [VALUE-IF-NOT-FOUND], [PATH], [REJECT])
613 # -----------------------------------------------------
614 # HACK: A small wrapper around AC_CHECK_PROG, setting VARIABLE to the full path
615 # of PROG-TO-CHECK-FOR when found.
616 AC_DEFUN([FP_CHECK_PROG],
617 [AC_CHECK_PROG([$1], [$2], [$as_dir/$ac_word$ac_exec_ext], [$3], [$4], [$5])][]dnl
623 # Find a non-WinDoze version of the "find" utility.
624 AC_DEFUN([FP_PROG_FIND],
625 [AC_PATH_PROG([fp_prog_find], [find])
626 echo foo > conftest.txt
627 $fp_prog_find conftest.txt -print > conftest.out 2>&1
628 if grep '^conftest.txt$' conftest.out > /dev/null 2>&1 ; then
629 # OK, looks like a real "find".
630 case $HostPlatform in
632 if test x${OSTYPE} != xmsys
634 fp_prog_find="`cygpath --mixed ${fp_prog_find}`"
635 AC_MSG_NOTICE([normalized find command to $fp_prog_find])
639 FindCmd="$fp_prog_find"
641 # Found a poor WinDoze version of "find", ignore it.
642 AC_MSG_WARN([$fp_prog_find looks like a non-*nix find, ignoring it])
643 FP_CHECK_PROG([FindCmd], [find], [], [], [$fp_prog_find])
645 rm -f conftest.txt conftest.out
646 AC_SUBST([FindCmd])[]dnl
652 # Find a Unix-like sort
653 AC_DEFUN([FP_PROG_SORT],
654 [AC_PATH_PROG([fp_prog_sort], [sort])
655 echo conwip > conftest.txt
656 $fp_prog_sort -f conftest.txt > conftest.out 2>&1
657 if grep 'conwip' conftest.out > /dev/null 2>&1 ; then
659 SortCmd="$fp_prog_sort"
661 # Summink else..pick next one.
662 AC_MSG_WARN([$fp_prog_sort looks like a non-*nix sort, ignoring it])
663 FP_CHECK_PROG([SortCmd], [sort], [], [], [$fp_prog_sort])
665 rm -f conftest.txt conftest.out
666 AC_SUBST([SortCmd])[]dnl
670 dnl FPTOOLS_NOCACHE_CHECK prints a message, then sets the
671 dnl values of the second argument to the result of running
672 dnl the commands given by the third. It does not cache its
673 dnl result, so it is suitable for checks which should be
676 AC_DEFUN([FPTOOLS_NOCACHE_CHECK],
677 [AC_MSG_CHECKING([$1])
679 AC_MSG_RESULT([$][$2])
683 dnl FPTOOLS_GHC_VERSION(version)
684 dnl FPTOOLS_GHC_VERSION(major, minor [, patchlevel])
685 dnl FPTOOLS_GHC_VERSION(version, major, minor, patchlevel)
687 dnl Test for version of installed ghc. Uses $GHC.
688 dnl [original version pinched from c2hs]
690 AC_DEFUN([FPTOOLS_GHC_VERSION],
691 [FPTOOLS_NOCACHE_CHECK([version of ghc], [fptools_version_of_ghc],
692 ["${WithGhc-ghc}" --version > conftestghc 2>&1
693 cat conftestghc >&AS_MESSAGE_LOG_FD
694 #Useless Use Of cat award...
695 fptools_version_of_ghc=`cat conftestghc | sed -n -e 's/, patchlevel *\([[0-9]]\)/.\1/;s/.* version \([[0-9]][[0-9.]]*\).*/\1/p'`
697 if test "[$]fptools_version_of_ghc" = ""
699 fptools_version_of_ghc='unknown'
701 fptools_version_of_ghc[_major]=`echo [$]fptools_version_of_ghc | sed -e 's/^\([[0-9]]\).*/\1/'`
702 fptools_version_of_ghc[_minor]=`echo [$]fptools_version_of_ghc | sed -e 's/^[[0-9]]\.\([[0-9]]*\).*/\1/'`
703 fptools_version_of_ghc[_pl]=`echo [$]fptools_version_of_ghc | sed -n -e 's/^[[0-9]]\.[[0-9]]*\.\([[0-9]]*\)/\1/p'`
705 if test "[$]fptools_version_of_ghc[_pl]" = ""
707 fptools_version_of_ghc[_all]="[$]fptools_version_of_ghc[_major].[$]fptools_version_of_ghc[_minor]"
708 fptools_version_of_ghc[_pl]="0"
710 fptools_version_of_ghc[_all]="[$]fptools_version_of_ghc[_major].[$]fptools_version_of_ghc[_minor].[$]fptools_version_of_ghc[_pl]"
714 [$1]="[$]fptools_version_of_ghc[_all]"
716 [$1]="[$]fptools_version_of_ghc[_major]"
717 [$2]="[$]fptools_version_of_ghc[_minor]"
719 [$1]="[$]fptools_version_of_ghc[_major]"
720 [$2]="[$]fptools_version_of_ghc[_minor]"
721 [$3]="[$]fptools_version_of_ghc[_pl]"
723 [$1]="[$]fptools_version_of_ghc[_all]"
724 [$2]="[$]fptools_version_of_ghc[_major]"
725 [$3]="[$]fptools_version_of_ghc[_minor]"
726 [$4]="[$]fptools_version_of_ghc[_pl]"
732 # FP_CHECK_FUNC(FUNCTION, PROLOGUE, BODY, [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND])
733 # ---------------------------------------------------------------------------------
734 # A variant of AC_CHECK_FUNCS, limited to a single FUNCTION, but with the
735 # additional flexibility of specifying the PROLOGUE and BODY.
736 AC_DEFUN([FP_CHECK_FUNC],
737 [AS_VAR_PUSHDEF([fp_func], [fp_cv_func_$1])dnl
738 AC_CACHE_CHECK([for $1], fp_func,
739 [AC_LINK_IFELSE([AC_LANG_PROGRAM([$2], [$3])],
740 [AS_VAR_SET(fp_func, yes)],
741 [AS_VAR_SET(fp_func, no)])])
742 AS_IF([test AS_VAR_GET(fp_func) = yes],
743 [AC_DEFINE(AS_TR_CPP(HAVE_$1), [1],
744 [Define to 1 if you have the `]$1[' function.]) $4],
746 AS_VAR_POPDEF([fp_func])dnl
752 # Generates a DocBook XML V4.2 document in conftest.xml.
753 AC_DEFUN([FP_GEN_DOCBOOK_XML],
755 cat > conftest.xml << EOF
756 <?xml version="1.0" encoding="iso-8859-1"?>
757 <!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
758 "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
760 <title>A DocBook Test Document</title>
761 <chapter id="id-one">
762 <title>A Chapter Title</title>
763 <para>This is a paragraph, referencing <xref linkend="id-two"/>.</para>
765 <chapter id="id-two">
766 <title>Another Chapter Title</title>
767 <para>This is another paragraph, referencing <xref linkend="id-one"/>.</para>
771 ]) # FP_GEN_DOCBOOK_XML
776 # Sets the output variable XsltprocCmd to the full path of the XSLT processor
777 # xsltproc. XsltprocCmd is empty if xsltproc could not be found.
778 AC_DEFUN([FP_PROG_XSLTPROC],
779 [AC_PATH_PROG([XsltprocCmd], [xsltproc])
780 if test -z "$XsltprocCmd"; then
781 AC_MSG_WARN([cannot find xsltproc in your PATH, you will not be able to build the documentation])
786 # FP_DIR_DOCBOOK_XSL(XSL-DIRS)
787 # ----------------------------
788 # Check which of the directories XSL-DIRS contains DocBook XSL stylesheets. The
789 # output variable DIR_DOCBOOK_XSL will contain the first usable directory or
790 # will be empty if none could be found.
791 AC_DEFUN([FP_DIR_DOCBOOK_XSL],
792 [AC_REQUIRE([FP_PROG_XSLTPROC])dnl
793 if test -n "$XsltprocCmd"; then
794 AC_CACHE_CHECK([for DocBook XSL stylesheet directory], fp_cv_dir_docbook_xsl,
796 fp_cv_dir_docbook_xsl=no
798 if $XsltprocCmd ${fp_var}/html/docbook.xsl conftest.xml > /dev/null 2>&1; then
799 fp_cv_dir_docbook_xsl=$fp_var
805 if test x"$fp_cv_dir_docbook_xsl" = xno; then
806 AC_MSG_WARN([cannot find DocBook XSL stylesheets, you will not be able to build the documentation])
809 DIR_DOCBOOK_XSL=$fp_cv_dir_docbook_xsl
811 AC_SUBST([DIR_DOCBOOK_XSL])
812 ])# FP_DIR_DOCBOOK_XSL
817 # Sets the output variable XmllintCmd to the full path of the XSLT processor
818 # xmllint. XmllintCmd is empty if xmllint could not be found.
819 AC_DEFUN([FP_PROG_XMLLINT],
820 [AC_PATH_PROG([XmllintCmd], [xmllint])
821 if test -z "$XmllintCmd"; then
822 AC_MSG_WARN([cannot find xmllint in your PATH, you will not be able to validate your documentation])
827 # FP_CHECK_DOCBOOK_DTD
828 # --------------------
829 AC_DEFUN([FP_CHECK_DOCBOOK_DTD],
830 [AC_REQUIRE([FP_PROG_XMLLINT])dnl
831 if test -n "$XmllintCmd"; then
832 AC_MSG_CHECKING([for DocBook DTD])
834 if $XmllintCmd --valid --noout conftest.xml > /dev/null 2>&1; then
837 AC_MSG_RESULT([failed])
838 AC_MSG_WARN([cannot find a DTD for DocBook XML V4.2, you will not be able to validate your documentation])
839 AC_MSG_WARN([check your XML_CATALOG_FILES environment variable and/or /etc/xml/catalog])
843 ])# FP_CHECK_DOCBOOK_DTD
848 # Generates a formatting objects document in conftest.fo.
849 AC_DEFUN([FP_GEN_FO],
851 cat > conftest.fo << EOF
852 <?xml version="1.0"?>
853 <fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format">
854 <fo:layout-master-set>
855 <fo:simple-page-master master-name="blank">
857 </fo:simple-page-master>
858 </fo:layout-master-set>
859 <fo:page-sequence master-reference="blank">
860 <fo:flow flow-name="xsl-region-body">
873 # Set the output variable 'FopCmd' to the first working 'fop' in the current
874 # 'PATH'. Note that /usr/bin/fop is broken in SuSE 9.1 (unpatched), so try
875 # /usr/share/fop/fop.sh in that case (or no 'fop'), too.
876 AC_DEFUN([FP_PROG_FOP],
877 [AC_PATH_PROGS([FopCmd1], [fop fop.sh])
878 if test -n "$FopCmd1"; then
879 AC_CACHE_CHECK([for $FopCmd1 usability], [fp_cv_fop_usability],
881 if "$FopCmd1" -fo conftest.fo -ps conftest.ps > /dev/null 2>&1; then
882 fp_cv_fop_usability=yes
884 fp_cv_fop_usability=no
887 if test x"$fp_cv_fop_usability" = xyes; then
891 if test -z "$FopCmd"; then
892 AC_PATH_PROGS([FopCmd2], [fop.sh], , [/usr/share/fop])
899 # FP_PROG_FO_PROCESSOR
900 # --------------------
901 # Try to find an FO processor. PassiveTeX output is sometimes a bit strange, so
902 # try FOP first. Sets the output variables FopCmd, XmltexCmd, DvipsCmd, and
904 AC_DEFUN([FP_PROG_FO_PROCESSOR],
905 [AC_REQUIRE([FP_PROG_FOP])
906 AC_PATH_PROG([XmltexCmd], [xmltex])
907 AC_PATH_PROG([DvipsCmd], [dvips])
908 if test -z "$FopCmd"; then
909 if test -z "$XmltexCmd"; then
910 AC_MSG_WARN([cannot find an FO => DVI converter, you will not be able to build DVI or PostScript documentation])
912 if test -z "$DvipsCmd"; then
913 AC_MSG_WARN([cannot find a DVI => PS converter, you will not be able to build PostScript documentation])
916 AC_PATH_PROG([PdfxmltexCmd], [pdfxmltex])
917 if test -z "$PdfxmltexCmd"; then
918 AC_MSG_WARN([cannot find an FO => PDF converter, you will not be able to build PDF documentation])
920 elif test -z "$XmltexCmd"; then
921 AC_MSG_WARN([cannot find an FO => DVI converter, you will not be able to build DVI documentation])
923 ])# FP_PROG_FO_PROCESSOR
928 # Try to find a ghc-pkg matching the ghc mentioned in the environment variable
929 # WithGhc. If the latter is unset or no matching ghc-pkg can be found, try to
930 # find a plain ghc-pkg. Sets the output variable GhcPkgCmd.
931 AC_DEFUN([FP_PROG_GHC_PKG],
932 [AC_CACHE_CHECK([for ghc-pkg matching $WithGhc], fp_cv_matching_ghc_pkg,
933 [fp_ghc_pkg_guess=`echo $WithGhc | sed 's,ghc\(@<:@^/\\@:>@*\)$,ghc-pkg\1,'`
934 if "$fp_ghc_pkg_guess" -l > /dev/null 2>&1; then
935 fp_cv_matching_ghc_pkg=$fp_ghc_pkg_guess
937 fp_cv_matching_ghc_pkg=no
939 if test x"$fp_cv_matching_ghc_pkg" = xno; then
940 AC_PATH_PROG([GhcPkgCmd], [ghc-pkg])
942 GhcPkgCmd=$fp_cv_matching_ghc_pkg
943 fi])# FP_PROG_GHC_PKG
946 # FP_GHC_HAS_EDITLINE
947 # -------------------
948 AC_DEFUN([FP_GHC_HAS_EDITLINE],
949 [AC_REQUIRE([FP_PROG_GHC_PKG])
950 AC_CACHE_CHECK([whether ghc has editline package], [fp_cv_ghc_has_editline],
951 [if "${GhcPkgCmd-ghc-pkg}" --show-package editline >/dev/null 2>&1; then
952 fp_cv_ghc_has_editline=yes
954 fp_cv_ghc_has_editline=no
956 AC_SUBST([GhcHasEditline], [`echo $fp_cv_ghc_has_editline | sed 'y/yesno/YESNO/'`])
957 ])# FP_GHC_HAS_EDITLINE
962 # Determine which extra flags we need to pass gcc when we invoke it
963 # to compile .hc code.
965 # Some OSs (Mandrake Linux, in particular) configure GCC with
966 # -momit-leaf-frame-pointer on by default. If this is the case, we
967 # need to turn it off for mangling to work. The test is currently a
968 # bit crude, using only the version number of gcc.
970 # -fwrapv is needed for gcc to emit well-behaved code in the presence of
971 # integer wrap around. (Trac #952)
973 # -fno-unit-at-a-time or -fno-toplevel-reoder is necessary to avoid gcc
974 # reordering things in the module and confusing the manger and/or splitter.
977 AC_DEFUN([FP_GCC_EXTRA_FLAGS],
978 [AC_REQUIRE([FP_HAVE_GCC])
979 AC_CACHE_CHECK([for extra options to pass gcc when compiling via C], [fp_cv_gcc_extra_opts],
980 [fp_cv_gcc_extra_opts=
981 FP_COMPARE_VERSIONS([$fp_gcc_version], [-ge], [3.4],
982 [fp_cv_gcc_extra_opts="$fp_cv_gcc_extra_opts -fwrapv"],
984 case $TargetPlatform in
986 FP_COMPARE_VERSIONS([$fp_gcc_version], [-ge], [3.2],
987 [fp_cv_gcc_extra_opts="$fp_cv_gcc_extra_opts -mno-omit-leaf-frame-pointer"],
989 FP_COMPARE_VERSIONS([$fp_gcc_version], [-ge], [3.4],
990 [FP_COMPARE_VERSIONS([$fp_gcc_version], [-ge], [4.2],
991 [fp_cv_gcc_extra_opts="$fp_cv_gcc_extra_opts -fno-toplevel-reorder"],
992 [fp_cv_gcc_extra_opts="$fp_cv_gcc_extra_opts -fno-unit-at-a-time"]
997 FP_COMPARE_VERSIONS([$fp_gcc_version], [-ge], [4.2],
998 [fp_cv_gcc_extra_opts="$fp_cv_gcc_extra_opts -fno-toplevel-reorder"],
1003 AC_SUBST([GccExtraViaCOpts],$fp_cv_gcc_extra_opts)
1007 # FP_SETUP_PROJECT_VERSION
1008 # ---------------------
1009 AC_DEFUN([FP_SETUP_PROJECT_VERSION],
1011 if test "$RELEASE" = "NO"; then
1012 AC_MSG_CHECKING([for GHC version date])
1013 if test -f VERSION_DATE; then
1014 PACKAGE_VERSION=${PACKAGE_VERSION}.`cat VERSION_DATE`
1015 AC_MSG_RESULT(given $PACKAGE_VERSION)
1016 elif test -d _darcs; then
1018 ver_date=`darcs changes --quiet --no-summary --xml | head -500 | grep 'date=' | sed "s/^.*date='\([0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]\).*$/\1/g" | sort -n | tail -1`
1019 if echo $ver_date | grep '^[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]$' 2>&1 >/dev/null; then true; else
1020 changequote([, ])dnl
1021 AC_MSG_ERROR([failed to detect version date: check that darcs is in your path])
1023 PACKAGE_VERSION=${PACKAGE_VERSION}.$ver_date
1024 AC_MSG_RESULT(inferred $PACKAGE_VERSION)
1025 elif test -f VERSION; then
1026 PACKAGE_VERSION=`cat VERSION`
1027 AC_MSG_RESULT(given $PACKAGE_VERSION)
1029 AC_MSG_WARN([cannot determine snapshot version: no _darcs directory and no VERSION file])
1034 AC_SUBST([ProjectName], [$PACKAGE_NAME])
1035 AC_SUBST([ProjectVersion], [$PACKAGE_VERSION])
1037 # Split PACKAGE_VERSION into (possibly empty) parts
1038 VERSION_MAJOR=`echo $PACKAGE_VERSION | sed 's/^\(@<:@^.@:>@*\)\(\.\{0,1\}\(.*\)\)$/\1'/`
1039 VERSION_TMP=`echo $PACKAGE_VERSION | sed 's/^\(@<:@^.@:>@*\)\(\.\{0,1\}\(.*\)\)$/\3'/`
1040 VERSION_MINOR=`echo $VERSION_TMP | sed 's/^\(@<:@^.@:>@*\)\(\.\{0,1\}\(.*\)\)$/\1'/`
1041 ProjectPatchLevel=`echo $VERSION_TMP | sed 's/^\(@<:@^.@:>@*\)\(\.\{0,1\}\(.*\)\)$/\3'/`
1043 # Calculate project version as an integer, using 2 digits for minor version
1044 case $VERSION_MINOR in
1045 ?) ProjectVersionInt=${VERSION_MAJOR}0${VERSION_MINOR} ;;
1046 ??) ProjectVersionInt=${VERSION_MAJOR}${VERSION_MINOR} ;;
1047 *) AC_MSG_ERROR([bad minor version in $PACKAGE_VERSION]) ;;
1049 AC_SUBST([ProjectVersionInt])
1051 # The project patchlevel is zero unless stated otherwise
1052 test -z "$ProjectPatchLevel" && ProjectPatchLevel=0
1054 # Remove dots from the patch level; this allows us to have versions like 6.4.1.20050508
1055 ProjectPatchLevel=`echo $ProjectPatchLevel | sed 's/\.//'`
1057 AC_SUBST([ProjectPatchLevel])
1058 ])# FP_SETUP_PROJECT_VERSION
1061 # Check for a working timer_create(). We need a pretty detailed check
1062 # here, because there exist partially-working implementations of
1063 # timer_create() in certain versions of Linux (see bug #1933).
1065 AC_DEFUN([FP_CHECK_TIMER_CREATE],
1066 [AC_CACHE_CHECK([for a working timer_create(CLOCK_REALTIME)],
1067 [fptools_cv_timer_create_works],
1070 #ifdef HAVE_STDLIB_H
1076 #ifdef HAVE_SIGNAL_H
1079 #ifdef HAVE_UNISTD_H
1083 static volatile int tock = 0;
1084 static void handler(int i)
1089 static void timeout(int i)
1091 // timer_settime() has been known to hang, so just in case
1092 // we install a 1-second timeout (see #2257)
1096 int main(int argc, char *argv[])
1101 struct itimerspec it;
1102 struct sigaction action;
1105 ev.sigev_notify = SIGEV_SIGNAL;
1106 ev.sigev_signo = SIGVTALRM;
1108 action.sa_handler = handler;
1109 action.sa_flags = 0;
1110 sigemptyset(&action.sa_mask);
1111 if (sigaction(SIGVTALRM, &action, NULL) == -1) {
1112 fprintf(stderr,"SIGVTALRM problem\n");
1116 action.sa_handler = timeout;
1117 action.sa_flags = 0;
1118 sigemptyset(&action.sa_mask);
1119 if (sigaction(SIGALRM, &action, NULL) == -1) {
1120 fprintf(stderr,"SIGALRM problem\n");
1125 if (timer_create(CLOCK_PROCESS_CPUTIME_ID, &ev, &timer) != 0) {
1126 fprintf(stderr,"No CLOCK_PROCESS_CPUTIME_ID timer\n");
1130 it.it_value.tv_sec = 0;
1131 it.it_value.tv_nsec = 1;
1132 it.it_interval = it.it_value;
1133 if (timer_settime(timer, 0, &it, NULL) != 0) {
1134 fprintf(stderr,"settime problem\n");
1140 for(n = 3; n < 20000; n++){
1141 for(m = 2; m <= n/2; m++){
1142 if (!(n%m)) count++;
1149 fprintf(stderr,"no CLOCK_PROCESS_CPUTIME_ID signal\n");
1153 timer_delete(timer);
1155 if (timer_create(CLOCK_REALTIME, &ev, &timer) != 0) {
1156 fprintf(stderr,"No CLOCK_REALTIME timer\n");
1160 it.it_value.tv_sec = 0;
1161 it.it_value.tv_nsec = 1000000;
1162 it.it_interval = it.it_value;
1163 if (timer_settime(timer, 0, &it, NULL) != 0) {
1164 fprintf(stderr,"settime problem\n");
1173 fprintf(stderr,"no CLOCK_REALTIME signal\n");
1177 timer_delete(timer);
1182 [fptools_cv_timer_create_works=yes],
1183 [fptools_cv_timer_create_works=no])
1185 case $fptools_cv_timer_create_works in
1186 yes) AC_DEFINE([USE_TIMER_CREATE], 1,
1187 [Define to 1 if we can use timer_create(CLOCK_PROCESS_CPUTIME_ID,...)]);;
1193 AC_DEFUN([FP_ARG_GMP],
1195 AC_ARG_WITH([gmp-includes],
1196 [AC_HELP_STRING([--with-gmp-includes],
1197 [directory containing gmp.h])],
1198 [gmp_includes=$withval],
1199 [gmp_includes=NONE])
1201 AC_ARG_WITH([gmp-libraries],
1202 [AC_HELP_STRING([--with-gmp-libraries],
1203 [directory containing gmp library])],
1204 [gmp_libraries=$withval],
1205 [gmp_libraries=NONE])
1208 AC_DEFUN([CHECK_GMP],
1209 [AC_REQUIRE([AC_PROG_CPP])
1210 AC_REQUIRE([AC_PROG_CC])
1213 # FP_CHECK_MACOSX_DEPLOYMENT_TARGET
1214 # ---------------------------------
1215 AC_DEFUN([FP_CHECK_MACOSX_DEPLOYMENT_TARGET],
1217 if test "x$TargetOS_CPP-$TargetVendor_CPP" = "xdarwin-apple"; then
1218 AC_MSG_CHECKING([Mac OS X deployment target])
1219 case $FP_MACOSX_DEPLOYMENT_TARGET in
1221 10.4) MACOSX_DEPLOYMENT_VERSION=10.4
1222 MACOSX_DEPLOYMENT_SDK=/Developer/SDKs/MacOSX10.4u.sdk
1224 10.4u) MACOSX_DEPLOYMENT_VERSION=10.4
1225 MACOSX_DEPLOYMENT_SDK=/Developer/SDKs/MacOSX10.4u.sdk
1227 *) MACOSX_DEPLOYMENT_VERSION=$FP_MACOSX_DEPLOYMENT_TARGET
1228 MACOSX_DEPLOYMENT_SDK=/Developer/SDKs/MacOSX${FP_MACOSX_DEPLOYMENT_TARGET}.sdk
1231 if test "x$FP_MACOSX_DEPLOYMENT_TARGET" = "xnone"; then
1234 if test ! -d $MACOSX_DEPLOYMENT_SDK; then
1235 AC_MSG_ERROR([Unknown deployment target $FP_MACOSX_DEPLOYMENT_TARGET])
1237 AC_MSG_RESULT([${MACOSX_DEPLOYMENT_VERSION} (${MACOSX_DEPLOYMENT_SDK})])
1242 # --------------------------------------------------------------
1243 # Calculate absolute path to build tree
1244 # --------------------------------------------------------------
1246 AC_DEFUN([FP_FIND_ROOT],[
1247 AC_MSG_CHECKING(for path to top of build tree)
1250 dnl make -C utils/pwd clean && make -C utils/pwd
1251 dnl except we don't want to have to know what make is called. Sigh.
1252 if test ! -f utils/pwd/pwd && test ! -f utils/pwd/pwd.exe; then
1258 $WithGhc -v0 --make pwd -o pwd
1262 hardtop=`utils/pwd/pwd forwardslash`
1264 if ! test -d "$hardtop"; then
1265 AC_MSG_ERROR([cannot determine current directory])
1268 dnl Remove common automounter nonsense
1270 hardtop=`echo $hardtop | sed 's|^/tmp_mnt.*\(/local/.*\)$|\1|' | sed 's|^/tmp_mnt/|/|'`
1274 AC_MSG_RESULT(${hardtop})
1276 # We don't support building in directories with spaces.
1278 *' '*) AC_MSG_ERROR([
1279 The build system does not support building in a directory containing
1280 space characters. Suggestion: move the build tree somewhere else.])