# ensure we don't clash with any pre-supplied autoconf ones.
+# FPTOOLS_FLOAT_WORD_ORDER_BIGENDIAN
+# ----------------------------------
+# Little endian Arm on Linux with some ABIs has big endian word order
+# in doubles. Define FLOAT_WORDS_BIGENDIAN if this is the case.
+AC_DEFUN([FPTOOLS_FLOAT_WORD_ORDER_BIGENDIAN],
+ [AC_CACHE_CHECK([whether float word order is big endian], [fptools_cv_float_word_order_bigendian],
+ [AC_COMPILE_IFELSE(
+ [AC_LANG_PROGRAM(
+ [#include <endian.h>],
+ [#if defined(__FLOAT_WORD_ORDER) && __FLOAT_WORD_ORDER == BIG_ENDIAN
+ return 0;
+ #else
+ not float word order big endian
+ #endif]
+ )],
+ [fptools_cv_float_word_order_bigendian=yes],
+ [fptools_cv_float_word_order_bigendian=no])
+ ])
+ case $fptools_cv_float_word_order_bigendian in
+ yes)
+ AC_DEFINE([FLOAT_WORDS_BIGENDIAN], 1,
+ [Define to 1 if your processor stores words of floats with
+ the most significant byte first]) ;;
+ esac
+])
+
+
# FP_EVAL_STDERR(COMMAND)
# -----------------------
# Eval COMMAND, save its stderr (without lines resulting from shell tracing)
])# FP_PROG_CONTEXT_DIFF
-# FP_DECL_ALTZONE
-# ---------------
-# Defines HAVE_DECL_ALTZONE to 1 if declared, 0 otherwise.
-#
-# Used by base package.
-AC_DEFUN([FP_DECL_ALTZONE],
-[AC_REQUIRE([AC_HEADER_TIME])dnl
-AC_CHECK_HEADERS([sys/time.h])
-AC_CHECK_DECLS([altzone], [], [],[#if TIME_WITH_SYS_TIME
-# include <sys/time.h>
-# include <time.h>
-#else
-# if HAVE_SYS_TIME_H
-# include <sys/time.h>
-# else
-# include <time.h>
-# endif
-#endif])
-])# FP_DECL_ALTZONE
-
-
# FP_COMPUTE_INT(EXPRESSION, VARIABLE, INCLUDES, IF-FAILS)
# --------------------------------------------------------
# Assign VARIABLE the value of the compile-time EXPRESSION using INCLUDES for
alpha-dec-osf*) fptools_cv_leading_underscore=no;;
*cygwin32) fptools_cv_leading_underscore=yes;;
*mingw32) fptools_cv_leading_underscore=yes;;
+
+ # HACK: Apple doesn't seem to provide nlist in the 64-bit-libraries
+x86_64-apple-darwin*) fptools_cv_leading_underscore=yes;;
+
*) AC_RUN_IFELSE([AC_LANG_SOURCE([[#ifdef HAVE_NLIST_H
#include <nlist.h>
struct nlist xYzzY1[] = {{"xYzzY1", 0},{0}};
dnl for a happy source tree and point the build system at that instead.
dnl
AC_DEFUN([FPTOOLS_HAPPY],
-[
-if test -d $srcdir/happy; then
- SrcTreeHappyCmd=$hardtop/happy/src/happy-inplace
-else
- SrcTreeHappyCmd=""
-fi
-if test x"$UseSrcTreeHappy" = xYES; then
- if test x"$SrcTreeHappyCmd" != x; then
- HappyCmd=$SrcTreeHappyCmd
- else
- AC_MSG_ERROR([--enable-src-tree-happy given, but happy not found in source tree])
- fi
-else
- AC_PATH_PROG(HappyCmd,happy,$SrcTreeHappyCmd)
-fi
+[AC_PATH_PROG(HappyCmd,happy,)
AC_CACHE_CHECK([for version of happy], fptools_cv_happy_version,
changequote(, )dnl
-[if test x"$HappyCmd" = x"$SrcTreeHappyCmd" -a -e $srcdir/happy/mk/version.mk; then
- fptools_cv_happy_version=`grep '^ProjectVersion[ ]*=' $srcdir/happy/mk/version.mk | sed 's/[^0-9]*\([0-9][0-9]*\.[0-9][0-9]*\).*/\1/g'`;
-elif test x"$HappyCmd" != x; then
+[if test x"$HappyCmd" != x; then
fptools_cv_happy_version="`$HappyCmd -v |
grep 'Happy Version' | sed -e 's/Happy Version \([^ ]*\).*/\1/g'`" ;
else
fi;
changequote([, ])dnl
])
-if test -d $srcdir/ghc -a ! -f $srcdir/ghc/compiler/parser/Parser.hs; then
- FP_COMPARE_VERSIONS([$fptools_cv_happy_version],[-lt],[1.15],
- [AC_MSG_ERROR([Happy version 1.15 or later is required to compile GHC.])])[]dnl
+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
+then
+ FP_COMPARE_VERSIONS([$fptools_cv_happy_version],[-lt],[1.15],
+ [AC_MSG_ERROR([Happy version 1.15 or later is required to compile GHC.])])[]dnl
fi
HappyVersion=$fptools_cv_happy_version;
AC_SUBST(HappyVersion)
dnl for a haddock source tree and point the build system at that instead.
dnl
AC_DEFUN([FPTOOLS_HADDOCK],
-[
-if test -d $srcdir/haddock; then
- SrcTreeHaddockCmd=$hardtop/haddock/src/haddock-inplace
-else
- SrcTreeHaddockCmd=""
-fi
-if test x"$UseSrcTreeHaddock" = xYES; then
- if test x"$SrcTreeHaddockCmd" != x; then
- HaddockCmd=$SrcTreeHaddockCmd
- else
- AC_MSG_ERROR([--enable-src-tree-haddock given, but haddock not found in source tree])
- fi
-else
- AC_PATH_PROG(HaddockCmd,haddock,$SrcTreeHaddockCmd)
-fi
+[AC_PATH_PROG(HaddockCmd,haddock,)
dnl Darn, I forgot to make Haddock print out its version number when
dnl invoked with -v. We could try generating some HTML and grepping
dnl through that to find the version number, but I think we'll make
dnl
dnl Check for Alex and version. If we're building GHC, then we need
-dnl at least Alex version 2.0. If there's no installed Alex, we look
-dnl for a alex source tree and point the build system at that instead.
+dnl at least Alex version 2.0.1.
dnl
AC_DEFUN([FPTOOLS_ALEX],
[
-if test -d $srcdir/alex; then
- SrcTreeAlexCmd=$hardtop/alex/src/alex-inplace
-else
- SrcTreeAlexCmd=""
-fi
-if test x"$UseSrcTreeAlex" = xYES; then
- if test x"$SrcTreeAlexCmd" != x; then
- AlexCmd=$SrcTreeAlexCmd
- else
- AC_MSG_ERROR([--enable-src-tree-alex given, but alex not found in source tree])
- fi
-else
- AC_PATH_PROG(AlexCmd,alex,$SrcTreeAlexCmd)
-fi
+AC_PATH_PROG(AlexCmd,alex,)
AC_CACHE_CHECK([for version of alex], fptools_cv_alex_version,
changequote(, )dnl
-[if test x"$AlexCmd" = x"$SrcTreeAlexCmd"; then
- fptools_cv_alex_version=`grep '^ProjectVersion[ ]*=' $srcdir/alex/mk/version.mk | sed 's/[^0-9]*\([0-9][0-9]*\.[0-9][0-9]*\).*/\1/g'`;
-elif test x"$AlexCmd" != x; then
+[if test x"$AlexCmd" != x; then
fptools_cv_alex_version="`$AlexCmd -v |
grep 'Alex [Vv]ersion' | sed -e 's/Alex [Vv]ersion \([0-9\.]*\).*/\1/g'`" ;
else
fi;
changequote([, ])dnl
])
-if test -d $srcdir/ghc -a ! -f $srcdir/ghc/compiler/parser/Lexer.hs; then
- FP_COMPARE_VERSIONS([$fptools_cv_alex_version],[-lt],[2.0],
- [AC_MSG_ERROR([Alex version 2.0 or later is required to compile GHC.])])[]dnl
+if test ! -f compiler/cmm/CmmLex.hs || test ! -f compiler/parser/Lexer.hs
+then
+ FP_COMPARE_VERSIONS([$fptools_cv_alex_version],[-lt],[2.0.1],
+ [AC_MSG_ERROR([Alex version 2.0.1 or later is required to compile GHC.])])[]dnl
fi
AlexVersion=$fptools_cv_alex_version;
AC_SUBST(AlexVersion)
# Sets the output variable LdCmd to the (non-Cygwin version of the) full path
# of ld. Exits if no ld can be found
AC_DEFUN([FP_PROG_LD],
-[AC_PATH_PROG([fp_prog_ld_raw], [ld])
-if test -z "$fp_prog_ld_raw"; then
- AC_MSG_ERROR([cannot find ld in your PATH, no idea how to link])
+[
+if test -z "$1"
+then
+ AC_PATH_PROG([fp_prog_ld_raw], [ld])
+ if test -z "$fp_prog_ld_raw"; then
+ AC_MSG_ERROR([cannot find ld in your PATH, no idea how to link])
+ fi
+ LdCmd=$fp_prog_ld_raw
+ case $HostPlatform in
+ *mingw32) if test x${OSTYPE} != xmsys; then
+ LdCmd="`cygpath -w ${fp_prog_ld_raw} | sed -e 's@\\\\@/@g'`"
+ AC_MSG_NOTICE([normalized ld command to $LdCmd])
+ fi
+ # Insist on >= ld-2.15.x, since earlier versions doesn't handle
+ # the generation of relocatable object files with large amounts
+ # of relocations correctly. (cf. HSbase.o splittage-hack)
+ fp_prog_ld_version=`${LdCmd} --version | sed -n '/GNU ld/p' | tr -cd 0-9 | cut -b1-3`
+ FP_COMPARE_VERSIONS([$fp_prog_ld_version],[-lt],[214],
+ [AC_MSG_ERROR([GNU ld version later than 2.14 required to compile GHC on Windows.])])[]dnl
+ ;;
+ esac
+else
+ LdCmd="$1"
fi
-LdCmd=$fp_prog_ld_raw
-case $HostPlatform in
- *mingw32) if test x${OSTYPE} != xmsys; then
- LdCmd="`cygpath -w ${fp_prog_ld_raw} | sed -e 's@\\\\@/@g'`"
- AC_MSG_NOTICE([normalized ld command to $LdCmd])
- fi
- # Insist on >= ld-2.15.x, since earlier versions doesn't handle
- # the generation of relocatable object files with large amounts
- # of relocations correctly. (cf. HSbase.o splittage-hack)
- fp_prog_ld_version=`${LdCmd} --version | sed -n '/GNU ld/p' | tr -cd 0-9 | cut -b1-3`
- FP_COMPARE_VERSIONS([$fp_prog_ld_version],[-lt],[214],
- [AC_MSG_ERROR([GNU ld version later than 2.14 required to compile GHC on Windows.])])[]dnl
- ;;
-esac
AC_SUBST([LdCmd])
])# FP_PROG_LD
$fp_prog_find conftest.txt -print > conftest.out 2>&1
if grep '^conftest.txt$' conftest.out > /dev/null 2>&1 ; then
# OK, looks like a real "find".
+ case $HostPlatform in
+ *mingw32)
+ if test x${OSTYPE} != xmsys
+ then
+ fp_prog_find="`cygpath --mixed ${fp_prog_find}`"
+ AC_MSG_NOTICE([normalized find command to $fp_prog_find])
+ fi ;;
+ *) ;;
+ esac
FindCmd="$fp_prog_find"
else
# Found a poor WinDoze version of "find", ignore it.
])dnl
-dnl ** Map an arithmetic C type to a Haskell type.
-dnl Based on autconf's AC_CHECK_SIZEOF.
-
-dnl FPTOOLS_CHECK_HTYPE(TYPE [, DEFAULT_VALUE, [, VALUE-FOR-CROSS-COMPILATION])
-AC_DEFUN([FPTOOLS_CHECK_HTYPE],
-[changequote(<<, >>)dnl
-dnl The name to #define.
-define(<<AC_TYPE_NAME>>, translit(htype_$1, [a-z *], [A-Z_P]))dnl
-dnl The cache variable name.
-define(<<AC_CV_NAME>>, translit(fptools_cv_htype_$1, [ *], [_p]))dnl
-define(<<AC_CV_NAME_supported>>, translit(fptools_cv_htype_sup_$1, [ *], [_p]))dnl
-changequote([, ])dnl
-AC_MSG_CHECKING(Haskell type for $1)
-AC_CACHE_VAL(AC_CV_NAME,
-[AC_CV_NAME_supported=yes
-fp_check_htype_save_cppflags="$CPPFLAGS"
-CPPFLAGS="$CPPFLAGS $X_CFLAGS"
-AC_RUN_IFELSE([AC_LANG_SOURCE([[#include <stdio.h>
-#include <stddef.h>
-
-#if HAVE_SYS_TYPES_H
-# include <sys/types.h>
-#endif
-
-#if HAVE_UNISTD_H
-# include <unistd.h>
-#endif
-
-#if HAVE_SYS_STAT_H
-# include <sys/stat.h>
-#endif
-
-#if HAVE_FCNTL_H
-# include <fcntl.h>
-#endif
-
-#if HAVE_SIGNAL_H
-# include <signal.h>
-#endif
-
-#if HAVE_TIME_H
-# include <time.h>
-#endif
-
-#if HAVE_TERMIOS_H
-# include <termios.h>
-#endif
-
-#if HAVE_STRING_H
-# include <string.h>
-#endif
-
-#if HAVE_CTYPE_H
-# include <ctype.h>
-#endif
-
-#if defined(HAVE_GL_GL_H)
-# include <GL/gl.h>
-#elif defined(HAVE_OPENGL_GL_H)
-# include <OpenGL/gl.h>
-#endif
-
-#if defined(HAVE_AL_AL_H)
-# include <AL/al.h>
-#elif defined(HAVE_OPENAL_AL_H)
-# include <OpenAL/al.h>
-#endif
-
-#if defined(HAVE_AL_ALC_H)
-# include <AL/alc.h>
-#elif defined(HAVE_OPENAL_ALC_H)
-# include <OpenAL/alc.h>
-#endif
-
-#if HAVE_SYS_RESOURCE_H
-# include <sys/resource.h>
-#endif
-
-typedef $1 testing;
-
-main() {
- FILE *f=fopen("conftestval", "w");
- if (!f) exit(1);
- if (((testing)((int)((testing)1.4))) == ((testing)1.4)) {
- fprintf(f, "%s%d\n",
- ((testing)(-1) < (testing)0) ? "Int" : "Word",
- sizeof(testing)*8);
- } else {
- fprintf(f,"%s\n",
- (sizeof(testing) > sizeof(double)) ? "LDouble" :
- (sizeof(testing) == sizeof(double)) ? "Double" : "Float");
- }
- fclose(f);
- exit(0);
-}]])],[AC_CV_NAME=`cat conftestval`],
-[ifelse([$2], , [AC_CV_NAME=NotReallyAType; AC_CV_NAME_supported=no], [AC_CV_NAME=$2])],
-[ifelse([$3], , [AC_CV_NAME=NotReallyATypeCross; AC_CV_NAME_supported=no], [AC_CV_NAME=$3])])
-CPPFLAGS="$fp_check_htype_save_cppflags"]) dnl
-if test "$AC_CV_NAME_supported" = yes; then
- AC_MSG_RESULT($AC_CV_NAME)
- AC_DEFINE_UNQUOTED(AC_TYPE_NAME, $AC_CV_NAME, [Define to Haskell type for $1])
-else
- AC_MSG_RESULT([not supported])
-fi
-undefine([AC_TYPE_NAME])dnl
-undefine([AC_CV_NAME])dnl
-undefine([AC_CV_NAME_supported])dnl
-])
-
-
# FP_CHECK_FUNC(FUNCTION, PROLOGUE, BODY, [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND])
# ---------------------------------------------------------------------------------
# A variant of AC_CHECK_FUNCS, limited to a single FUNCTION, but with the
# 'PATH'. Note that /usr/bin/fop is broken in SuSE 9.1 (unpatched), so try
# /usr/share/fop/fop.sh in that case (or no 'fop'), too.
AC_DEFUN([FP_PROG_FOP],
-[AC_PATH_PROGS([FopCmd1], [fop])
+[AC_PATH_PROGS([FopCmd1], [fop fop.sh])
if test -n "$FopCmd1"; then
AC_CACHE_CHECK([for $FopCmd1 usability], [fp_cv_fop_usability],
[FP_GEN_FO
AC_DEFUN([FP_GCC_NEEDS_NO_OMIT_LFPTR],
[AC_REQUIRE([FP_HAVE_GCC])
AC_CACHE_CHECK([whether gcc needs -mno-omit-leaf-frame-pointer], [fp_cv_gcc_needs_no_omit_lfptr],
-[FP_COMPARE_VERSIONS([$gcc_version_str], [-ge], [3.2],
+[FP_COMPARE_VERSIONS([$fp_gcc_version], [-ge], [3.2],
[fp_cv_gcc_needs_no_omit_lfptr=yes],
[fp_cv_gcc_needs_no_omit_lfptr=no])])
if test "$fp_cv_gcc_needs_no_omit_lfptr" = "yes"; then
AC_DEFINE([HAVE_GCC_MNO_OMIT_LFPTR], [1], [Define to 1 if gcc supports -mno-omit-leaf-frame-pointer.])
fi])# FP_GCC_NEEDS_NO_OMIT_LFPTR
+# FP_GCC_HAS_NO_UNIT_AT_A_TIME
+# --------------------------
+AC_DEFUN([FP_GCC_HAS_NO_UNIT_AT_A_TIME],
+[AC_REQUIRE([FP_HAVE_GCC])
+AC_CACHE_CHECK([whether gcc has -fno-unit-at-a-time], [fp_cv_gcc_has_no_unit_at_a_time],
+[FP_COMPARE_VERSIONS([$fp_gcc_version], [-ge], [3.4],
+ [fp_cv_gcc_has_no_unit_at_a_time=yes],
+ [fp_cv_gcc_has_no_unit_at_a_time=no])])
+if test "$fp_cv_gcc_has_no_unit_at_a_time" = "yes"; then
+ AC_DEFINE([HAVE_GCC_HAS_NO_UNIT_AT_A_TIME], [1], [Define to 1 if gcc supports -fno-unit-at-a-time.])
+fi])
+
+# FP_GCC_HAS_WRAPV
+# --------------------------
+AC_DEFUN([FP_GCC_HAS_WRAPV],
+[AC_REQUIRE([FP_HAVE_GCC])
+AC_CACHE_CHECK([whether gcc has -fwrapv], [fp_cv_gcc_has_wrapv],
+[FP_COMPARE_VERSIONS([$fp_gcc_version], [-ge], [3.4],
+ [fp_cv_gcc_has_wrapv=yes],
+ [fp_cv_gcc_has_wrapv=no])])
+if test "$fp_cv_gcc_has_wrapv" = "yes"; then
+ AC_DEFINE([HAVE_GCC_HAS_WRAPV], [1], [Define to 1 if gcc supports -fwrapv.])
+fi])
# FP_SETUP_PROJECT_VERSION
# ---------------------
AC_DEFUN([FP_SETUP_PROJECT_VERSION],
-[# Some renamings
+[
+if test "$RELEASE" = "NO"; then
+ AC_MSG_CHECKING([for GHC version date])
+ if test -f VERSION_DATE; then
+ PACKAGE_VERSION=${PACKAGE_VERSION}.`cat VERSION_DATE`
+ AC_MSG_RESULT(given $PACKAGE_VERSION)
+ elif test -d _darcs; then
+ changequote(, )dnl
+ 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`
+ 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
+ changequote([, ])dnl
+ AC_MSG_ERROR([failed to detect version date: check that darcs is in your path])
+ fi
+ PACKAGE_VERSION=${PACKAGE_VERSION}.$ver_date
+ AC_MSG_RESULT(inferred $PACKAGE_VERSION)
+ elif test -f VERSION; then
+ PACKAGE_VERSION=`cat VERSION`
+ AC_MSG_RESULT(given $PACKAGE_VERSION)
+ else
+ AC_MSG_WARN([cannot determine snapshot version: no _darcs directory and no VERSION file])
+ fi
+fi
+
+# Some renamings
AC_SUBST([ProjectName], [$PACKAGE_NAME])
AC_SUBST([ProjectVersion], [$PACKAGE_VERSION])
AC_SUBST([ProjectPatchLevel])
])# FP_SETUP_PROJECT_VERSION
+AC_DEFUN([FP_CHECK_TIMER_CREATE],
+ [AC_CACHE_CHECK([for a working timer_create(CLOCK_REALTIME)],
+ [fptools_cv_timer_create_works],
+ [AC_TRY_RUN([
+#ifdef HAVE_TIME_H
+#include <time.h>
+#endif
+#ifdef HAVE_SIGNAL_H
+#include <signal.h>
+#endif
+#ifdef HAVE_UNISTD_H
+#include <unistd.h>
+#endif
+int main(int argc, char *argv[])
+{
+#if HAVE_TIMER_CREATE && HAVE_TIMER_SETTIME
+ struct sigevent ev;
+ timer_t timer;
+ ev.sigev_notify = SIGEV_SIGNAL;
+ ev.sigev_signo = SIGVTALRM;
+ if (timer_create(CLOCK_PROCESS_CPUTIME_ID, &ev, &timer) != 0) {
+ exit(1);
+ }
+#else
+ exit(1)
+#endif
+ exit(0);
+}
+ ],
+ [fptools_cv_timer_create_works=yes],
+ [fptools_cv_timer_create_works=no])
+ ])
+case $fptools_cv_timer_create_works in
+ yes) AC_DEFINE([USE_TIMER_CREATE], 1,
+ [Define to 1 if we can use timer_create(CLOCK_PROCESS_CPUTIME_ID,...)]);;
+esac
+])
+
+# FP_ARG_GMP
+# -------------
+AC_DEFUN([FP_ARG_GMP],
+[
+AC_ARG_WITH([gmp-includes],
+ [AC_HELP_STRING([--with-gmp-includes],
+ [directory containing gmp.h])],
+ [gmp_includes=$withval],
+ [gmp_includes=NONE])
+
+AC_ARG_WITH([gmp-libraries],
+ [AC_HELP_STRING([--with-gmp-libraries],
+ [directory containing gmp library])],
+ [gmp_libraries=$withval],
+ [gmp_libraries=NONE])
+])# FP_ARG_GMP
+
+AC_DEFUN([CHECK_GMP],
+[AC_REQUIRE([AC_PROG_CPP])
+AC_REQUIRE([AC_PROG_CC])
+])
+
+# --------------------------------------------------------------
+# Calculate absolute path to build tree
+# --------------------------------------------------------------
+
+AC_DEFUN([FP_FIND_ROOT],[
+AC_MSG_CHECKING(for path to top of build tree)
+
+hardtop=`pwd`
+
+dnl Remove common automounter nonsense
+dnl
+hardtop=`echo $hardtop | sed 's|^/tmp_mnt.*\(/local/.*\)$|\1|' | sed 's|^/tmp_mnt/|/|' | sed 's|^//\(.\)/|\1:/|' `
+
+dnl Find 'hardtop_plat', the native format for 'hardtop'
+dnl (i.e., right kind of \dnl slashes on a Win32 box, but with b-slashes
+dnl being escaped).
+dnl
+dnl Note OSTYPE: On Cygwin we need to use 'cygpath' to convert
+dnl /cygdrive/c/foo to c:/foo but we must not do that if we
+dnl aren't building using Cygwin (notably msys), because
+dnl cygpath doesn't exist. It seems that 'bash' sets
+dnl OSTYPE to 'cygwin' or 'msys' respectively, but cygwin's
+dnl 'sh' does not. So we hackily assume that if the shell
+dnl hasn't set it to 'msys' then we must be in Cygwin.
+dnl Sigh.
+dnl
+dnl The Right Thing is probably to test $BuildPlatform
+dnl instead, but we are sloppy about setting that correctly
+dnl at the moment, so we just work around for now.
+dnl
+dnl The quotes round "$(OSTYPE)" are essential, for the
+dnl Cygwin-sh case where OSTYPE is not set.
+case $HostPlatform in
+ i386-unknown-mingw32 | i386-unknown-cygwin32)
+ if test "${OSTYPE}" != "msys"
+ then
+ # convert $hardtop to a path that mingw will understand too
+ cyghardtop=${hardtop}
+ hardtop=`cygpath -w ${cyghardtop} | sed -e 's@\\\\@/@g'`
+ hardtop_plat=`cygpath -w ${cyghardtop} | sed -e 's@\\\\@\\\\\\\\@g'`
+ else
+dnl OK, so we're in the MSYS case. hardtop looks like /c/....
+dnl We want to make hardtop_plat into c:/...
+dnl Stop using [] for quotes temporarily, so we can use [] in the sed regexp
+changequote(, )dnl
+ hardtop_plat=`echo ${hardtop} | sed -e 's@^/\\([a-zA-Z]\\)/@\\1:/@g'`
+changequote([, ])dnl
+ fi
+ ;;
+ *)
+ hardtop_plat=${hardtop}
+ ;;
+esac
+AC_SUBST(hardtop)
+AC_SUBST(hardtop_plat)
+
+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
+])
+
# LocalWords: fi