AC_MSG_RESULT(${hardtop})
+# We don't support building in directories with spaces.
+case "$hardtop" in
+ *' '*) AC_MSG_ERROR([
+ The build system does not support building in a directory containing
+ space characters. Suggestion: move the build tree somewhere else.])
+ ;;
+esac
+
dnl --------------------------------------------------------------
dnl * Project specific configuration options
dnl --------------------------------------------------------------
withval=`cygpath -w ${withval} | sed -e 's@\\\\@/@g' `
fi
fi;
- CC="$withval"],
+ CC="$withval"
+ export CC
+ ],
[WhatGccIsCalled="gcc"]
)
AC_SUBST(WhatGccIsCalled)
dnl If gcc, make sure it's at least 2.1
dnl
FP_HAVE_GCC
+FP_MINGW_GCC
dnl ** figure out how to invoke cpp directly (gcc -E is no good)
AC_PROG_CPP
dnl ** Find find command (for Win32's benefit)
FP_PROG_FIND
+dnl ** Find sort command (for the benefit of Win32 environs)
+FP_PROG_SORT
+
dnl ** figure out how to do a BSD-ish install
AC_PROG_INSTALL
dnl ** check for DocBook toolchain
FP_CHECK_DOCBOOK_DTD
-FP_DIR_DOCBOOK_XSL([/usr/share/xml/docbook/stylesheet/nwalsh/current /usr/share/xml/docbook/stylesheet/nwalsh /usr/share/sgml/docbook/docbook-xsl-stylesheets* /usr/share/sgml/docbook/xsl-stylesheets* /opt/kde?/share/apps/ksgmltools2/docbook/xsl /usr/share/docbook-xsl /usr/share/sgml/docbkxsl])
+FP_DIR_DOCBOOK_XSL([/usr/share/xml/docbook/stylesheet/nwalsh/current /usr/share/xml/docbook/stylesheet/nwalsh /usr/share/sgml/docbook/docbook-xsl-stylesheets* /usr/share/sgml/docbook/xsl-stylesheets* /opt/kde?/share/apps/ksgmltools2/docbook/xsl /usr/share/docbook-xsl /usr/share/sgml/docbkxsl /usr/local/share/xsl/docbook /sw/share/xml/xsl/docbook-xsl])
FP_PROG_FO_PROCESSOR
dnl ** check for ghc-pkg command
dnl ** check if it is safe to include both <time.h> and <sys/time.h>
AC_HEADER_TIME
-dnl ** check for POSIX regex
-HavePosixRegex=NO
-AC_CHECK_HEADERS([regex.h], [AC_CHECK_FUNCS(regcomp, [HavePosixRegex=YES])])
-AC_SUBST(HavePosixRegex)
-
dnl ** how do we get a timezone name, and UTC offset ?
AC_STRUCT_TIMEZONE
AC_SUBST(HaveLibGmp)
AC_SUBST(LibGmp)
-dnl ** (Mac OS X only: check for HaskellSupport.framework)
-HaveFrameworkHaskellSupport=NO
+dnl ** (Mac OS X only: check for GMP.framework)
+HaveFrameworkGMP=NO
if test $HostPlatform = "powerpc-apple-darwin"; then
- AC_MSG_CHECKING([for HaskellSupport.framework])
+ AC_MSG_CHECKING([for GMP.framework])
save_libs="$LIBS"
- LIBS="-framework HaskellSupport"
- AC_TRY_LINK_FUNC(__gmpz_fdiv_qr, HaveFrameworkHaskellSupport=YES,)
- if test $HaveFrameworkHaskellSupport = YES; then
- AC_DEFINE([HAVE_FRAMEWORK_HASKELLSUPPORT], [1], [Define to 1 if the HaskellSupport.framework is installed (Mac OS X only).])
+ LIBS="-framework GMP"
+ AC_TRY_LINK_FUNC(__gmpz_fdiv_qr, HaveFrameworkGMP=YES,)
+ if test $HaveFrameworkGMP = YES; then
+ AC_DEFINE([HAVE_FRAMEWORK_GMP], [1], [Define to 1 if GMP.framework is installed (Mac OS X only).])
fi;
LIBS="$save_libs"
- AC_MSG_RESULT([$HaveFrameworkHaskellSupport])
+ AC_MSG_RESULT([$HaveFrameworkGMP])
fi;
-AC_SUBST(HaveFrameworkHaskellSupport)
+AC_SUBST(HaveFrameworkGMP)
dnl ** check for mingwex library
AC_CHECK_LIB(mingwex, closedir, HaveLibMingwEx=YES, HaveLibMingwEx=NO)
fi
dnl ** check for math library
-AC_CHECK_LIB([m], [atan], [LIBS="-lm $LIBS"; LIBM="-lm"], [LIBM=])
+AC_CHECK_FUNC(atan,[fp_libm_not_needed=yes;LIBM=],[fp_libm_not_needed=dunno])
+if test x"$fp_libm_not_needed" = xdunno; then
+ AC_CHECK_LIB([m], [atan], [LIBS="-lm $LIBS"; LIBM="-lm"],[LIBM=])
+fi
AC_SUBST([LIBM])
dnl ################################################################
dnl ** check for libdl & RTLD_NEXT
-dnl (Mac OS X only) ... but don't check if we already have the
-dnl HaskellSupport.framework
-
-if test $HaveFrameworkHaskellSupport = YES; then
- HaveLibDL=NO
- HaveRtldNext=NO
- HaveRtldLocal=YES
- AC_DEFINE([HAVE_RTLDLOCAL], [1], [Define to 1 if RTLD_LOCAL is available.])
- HaveRtldGlobal=YES
- AC_DEFINE([HAVE_RTLDGLOBAL], [1], [Define to 1 if RTLD_GLOBAL is available.])
- HaveRtldNow=YES
- AC_DEFINE([HAVE_RTLDNOW], [1], [Define to 1 if we can see RTLD_NOW in dlfcn.h.])
- AC_SUBST(HaveLibDL)
- AC_SUBST(HaveRtldNext)
- AC_SUBST(HaveRtldLocal)
- AC_SUBST(HaveRtldGlobal)
- AC_SUBST(HaveRtldNow)
-else
- AC_CHECK_LIB(dl, dlopen,
- [HaveLibDL=YES
- AC_DEFINE([HAVE_LIBDL], [1], [Define to 1 if you need -ldl to get dlopen().])
- LIBS="$LIBS -ldl"],
- [HaveLibDL=NO])
- AC_SUBST(HaveLibDL)
-
- dnl ** sometimes RTLD_NEXT is hidden in #ifdefs we really don't wan to set
- AC_MSG_CHECKING(for RTLD_NEXT from dlfcn.h)
- AC_EGREP_CPP(yes,
- [
- #include <dlfcn.h>
- #ifdef RTLD_NEXT
- yes
- #endif
- ], [
- AC_MSG_RESULT(yes)
- AC_DEFINE([HAVE_RTLDNEXT], [1], [Define to 1 if we can see RTLD_NEXT in dlfcn.h.])
- HaveRtldNext=YES
- ], [
- AC_MSG_RESULT(no)
- HaveRtldNext=NO
- ])
- AC_SUBST(HaveRtldNext)
-
- dnl ** RTLD_LOCAL isn't available on cygwin or openbsd
- AC_MSG_CHECKING(for RTLD_LOCAL from dlfcn.h)
- AC_EGREP_CPP(yes,
- [
- #include <dlfcn.h>
- #ifdef RTLD_LOCAL
- yes
- #endif
- ], [
- AC_MSG_RESULT(yes)
- AC_DEFINE(HAVE_RTLDLOCAL)
- HaveRtldLocal=YES
- ], [
- AC_MSG_RESULT(no)
- HaveRtldLocal=NO
- ])
- AC_SUBST(HaveRtldLocal)
-
- dnl ** RTLD_GLOBAL isn't available on openbsd
- AC_MSG_CHECKING(for RTLD_GLOBAL from dlfcn.h)
- AC_EGREP_CPP(yes,
- [
- #include <dlfcn.h>
- #ifdef RTLD_GLOBAL
- yes
- #endif
- ], [
- AC_MSG_RESULT(yes)
- AC_DEFINE(HAVE_RTLDGLOBAL)
- HaveRtldGlobal=YES
- ], [
- AC_MSG_RESULT(no)
- HaveRtldGlobal=NO
- ])
- AC_SUBST(HaveRtldGlobal)
-
- dnl ** RTLD_NOW isn't available on openbsd
- AC_MSG_CHECKING(for RTLD_NOW from dlfcn.h)
- AC_EGREP_CPP(yes,
- [
- #include <dlfcn.h>
- #ifdef RTLD_NOW
- yes
- #endif
- ], [
- AC_MSG_RESULT(yes)
- AC_DEFINE(HAVE_RTLDNOW)
- HaveRtldNow=YES
- ], [
- AC_MSG_RESULT(no)
- HaveRtldNow=NO
- ])
- AC_SUBST(HaveRtldNow)
-fi
+AC_CHECK_LIB(dl, dlopen,
+ [HaveLibDL=YES
+ AC_DEFINE([HAVE_LIBDL], [1], [Define to 1 if you need -ldl to get dlopen().])
+ LIBS="$LIBS -ldl"],
+ [HaveLibDL=NO])
+AC_SUBST(HaveLibDL)
+
+dnl ** sometimes RTLD_NEXT is hidden in #ifdefs we really don't wan to set
+AC_MSG_CHECKING(for RTLD_NEXT from dlfcn.h)
+AC_EGREP_CPP(yes,
+[
+ #include <dlfcn.h>
+ #ifdef RTLD_NEXT
+ yes
+ #endif
+], [
+ AC_MSG_RESULT(yes)
+ AC_DEFINE([HAVE_RTLDNEXT], [1], [Define to 1 if we can see RTLD_NEXT in dlfcn.h.])
+ HaveRtldNext=YES
+], [
+ AC_MSG_RESULT(no)
+ HaveRtldNext=NO
+ ])
+AC_SUBST(HaveRtldNext)
+
+dnl ** RTLD_LOCAL isn't available on cygwin or openbsd
+AC_MSG_CHECKING(for RTLD_LOCAL from dlfcn.h)
+AC_EGREP_CPP(yes,
+[
+ #include <dlfcn.h>
+ #ifdef RTLD_LOCAL
+ yes
+ #endif
+], [
+ AC_MSG_RESULT(yes)
+ AC_DEFINE([HAVE_RTLDLOCAL], [1], [Define to 1 if RTLD_LOCAL is available.])
+ HaveRtldLocal=YES
+], [
+ AC_MSG_RESULT(no)
+ HaveRtldLocal=NO
+ ])
+AC_SUBST(HaveRtldLocal)
+
+dnl ** RTLD_GLOBAL isn't available on openbsd
+AC_MSG_CHECKING(for RTLD_GLOBAL from dlfcn.h)
+AC_EGREP_CPP(yes,
+[
+ #include <dlfcn.h>
+ #ifdef RTLD_GLOBAL
+ yes
+ #endif
+], [
+ AC_MSG_RESULT(yes)
+ AC_DEFINE([HAVE_RTLDGLOBAL], [1], [Define to 1 if RTLD_GLOBAL is available.])
+ HaveRtldGlobal=YES
+], [
+ AC_MSG_RESULT(no)
+ HaveRtldGlobal=NO
+ ])
+AC_SUBST(HaveRtldGlobal)
+
+dnl ** RTLD_NOW isn't available on openbsd
+AC_MSG_CHECKING(for RTLD_NOW from dlfcn.h)
+AC_EGREP_CPP(yes,
+[
+ #include <dlfcn.h>
+ #ifdef RTLD_NOW
+ yes
+ #endif
+], [
+ AC_MSG_RESULT(yes)
+ AC_DEFINE([HAVE_RTLDNOW], [1], [Define to 1 if we can see RTLD_NOW in dlfcn.h])
+ HaveRtldNow=YES
+], [
+ AC_MSG_RESULT(no)
+ HaveRtldNow=NO
+ ])
+AC_SUBST(HaveRtldNow)
dnl --------------------------------------------------
dnl * Miscellaneous feature tests
dnl ** check for leading underscores in symbol names
FP_LEADING_UNDERSCORE
-dnl ** check for ld, and whether ld has -x option
-AC_PATH_PROG(LdCmdRaw, ld)
-case $HostOS_CPP in
- mingw32)
- if test "${OSTYPE}" == "msys"
- then
- LdCmd=${LdCmdRaw}
- else
- LdCmd=`cygpath -w ${LdCmdRaw} | sed -e 's@\\\\@/@g' `
- fi
- ;;
- *) LdCmd=${LdCmdRaw}
- ;;
-esac
-AC_SUBST(LdCmd)
-FPTOOLS_LD_X
+dnl ** check for ld, whether it has an -x option, and if it is GNU ld
+FP_PROG_LD_X
+FP_PROG_LD_IS_GNU
+
+dnl ** check for Apple-style dead-stripping support
+dnl (.subsections-via-symbols assembler directive)
+
+
+AC_MSG_CHECKING(for .subsections_via_symbols)
+AC_TRY_COMPILE(,[__asm__ (".subsections_via_symbols");],
+ [
+ AC_MSG_RESULT(yes)
+ AC_DEFINE([HAVE_SUBSECTIONS_VIA_SYMBOLS],[1],
+ [Define to 1 if Apple-style dead-stripping is supported.])
+ ],
+ [
+ AC_MSG_RESULT(no)
+ AC_DEFINE([HAVE_SUBSECTIONS_VIA_SYMBOLS],[0],
+ [Define to 1 if Apple-style dead-stripping is supported.])
+ ])
AC_CONFIG_FILES([mk/config.mk])
AC_CONFIG_COMMANDS([mk/stamp-h],[echo timestamp > mk/stamp-h])