X-Git-Url: http://git.megacz.com/?p=ghc-hetmet.git;a=blobdiff_plain;f=aclocal.m4;h=858a3f0a6cc2fa6c458cfd205904ef27a5d2e56d;hp=3a8aa2e6e9e82273839322dcab4b391a43b89e28;hb=3d8ae1e7ba9f238959ca5395b17c485eda5d70e9;hpb=7a8bd24665dc2ea63fe1d95ccd52ff506774c21e diff --git a/aclocal.m4 b/aclocal.m4 index 3a8aa2e..858a3f0 100644 --- a/aclocal.m4 +++ b/aclocal.m4 @@ -27,7 +27,7 @@ AC_DEFUN([FP_EVAL_STDERR], # to check stderr *and* the exit value. # # Used by ghc. -AC_DEFUN(FP_CHECK_FLAG, +AC_DEFUN([FP_CHECK_FLAG], [AC_LANG_COMPILER_REQUIRE()dnl AC_LANG_CASE([C], [fp_compiler="$CC" m4_pushdef([fp_Flags], [CFLAGS])], [C++], [fp_compiler="$CXX" m4_pushdef([fp_Flags], [CXXFLAGS])], @@ -220,7 +220,7 @@ AS_IF([test "$fp_num1" $2 "$fp_num2"], [$4], [$5])[]dnl dnl dnl Check for GreenCard and version. dnl -AC_DEFUN(FPTOOLS_GREENCARD, +AC_DEFUN([FPTOOLS_GREENCARD], [ AC_PATH_PROG(GreenCardCmd,greencard) AC_CACHE_CHECK([for version of greencard], fptools_cv_greencard_version, @@ -244,20 +244,26 @@ dnl Check for Happy and version. If we're building GHC, then we need dnl at least Happy version 1.14. If there's no installed Happy, we look dnl for a happy source tree and point the build system at that instead. dnl -AC_DEFUN(FPTOOLS_HAPPY, +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 - HappyCmd=$SrcTreeHappyCmd + 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_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]*\).*/\1/g'`; + 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 fptools_cv_happy_version="`$HappyCmd -v | grep 'Happy Version' | sed -e 's/Happy Version \([^ ]*\).*/\1/g'`" ; @@ -267,8 +273,8 @@ 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.14], - [AC_MSG_ERROR([Happy version 1.14 or later is required to compile GHC.])])[]dnl + 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) @@ -278,13 +284,19 @@ dnl dnl Check for Haddock and version. If there's no installed Haddock, we look dnl for a haddock source tree and point the build system at that instead. dnl -AC_DEFUN(FPTOOLS_HADDOCK, +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 - HaddockCmd=$SrcTreeHaddockCmd + 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 @@ -299,20 +311,26 @@ 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 -AC_DEFUN(FPTOOLS_ALEX, +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 - AlexCmd=$SrcTreeAlexCmd + 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_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]*\).*/\1/g'`; + 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 fptools_cv_alex_version="`$AlexCmd -v | grep 'Alex [Vv]ersion' | sed -e 's/Alex [Vv]ersion \([0-9\.]*\).*/\1/g'`" ; @@ -345,6 +363,12 @@ case $HostPlatform in 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]) @@ -360,7 +384,7 @@ AC_DEFUN([FP_PROG_LD_X], AC_CACHE_CHECK([whether ld understands -x], [fp_cv_ld_x], [echo 'foo() {}' > conftest.c ${CC-cc} -c conftest.c -if ${LdCmd} -r -x -o conftest2.o conftest.o; then +if ${LdCmd} -r -x -o conftest2.o conftest.o > /dev/null 2>&1; then fp_cv_ld_x=yes else fp_cv_ld_x=no @@ -466,9 +490,14 @@ AC_SUBST([ArCmd], ["$fp_prog_ar $fp_prog_ar_args"]) AC_DEFUN([FP_PROG_AR_NEEDS_RANLIB], [AC_REQUIRE([FP_PROG_AR_IS_GNU]) AC_REQUIRE([FP_PROG_AR_ARGS]) +AC_REQUIRE([AC_PROG_CC]) AC_CACHE_CHECK([whether ranlib is needed], [fp_cv_prog_ar_needs_ranlib], [if test $fp_prog_ar_is_gnu = yes; then fp_cv_prog_ar_needs_ranlib=no +elif test $TargetPlatform = powerpc-apple-darwin; then + # It's quite tedious to check for Apple's crazy timestamps in .a files, + # so we hardcode it. + fp_cv_prog_ar_needs_ranlib=yes elif echo $fp_prog_ar_args | grep "s" > /dev/null 2> /dev/null; then fp_cv_prog_ar_needs_ranlib=no else @@ -512,7 +541,7 @@ AC_SUBST([ArSupportsInput]) dnl dnl AC_SHEBANG_PERL - can we she-bang perl? dnl -AC_DEFUN(FPTOOLS_SHEBANG_PERL, +AC_DEFUN([FPTOOLS_SHEBANG_PERL], [AC_CACHE_CHECK([if your perl works in shell scripts], fptools_cv_shebang_perl, [echo "#!$PerlCmd"' exit $1; @@ -534,18 +563,25 @@ rm -f conftest # output variables HaveGcc and GccVersion. AC_DEFUN([FP_HAVE_GCC], [AC_REQUIRE([AC_PROG_CC]) -AC_CACHE_CHECK([whether your gcc is OK], [fp_cv_have_gcc], -[if test -z "$GCC"; then - fp_cv_have_gcc='no' - AC_MSG_WARN([You would be better off with gcc, perhaps it is already installed, but not in your PATH?]) +if test -z "$GCC"; then + fp_have_gcc=NO else - fp_cv_have_gcc='yes' - 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' `" - FP_COMPARE_VERSIONS([$gcc_version_str], [-lt], [2.0], - [AC_MSG_ERROR([Need at least gcc version 2.0 (2.95.3 recommend)])]) -fi]) -AC_SUBST([HaveGcc], [`echo $fp_cv_have_gcc | sed 'y/yesno/YESNO/'`]) -AC_SUBST([GccVersion], [`gcc --version | grep mingw | cut -f 3 -d ' '`]) + fp_have_gcc=YES +fi +if test "$fp_have_gcc" = "NO" -a -d $srcdir/ghc; then + AC_MSG_ERROR([gcc is required]) +fi +AC_CACHE_CHECK([version of gcc], [fp_gcc_version], +[if test "$fp_have_gcc" = "YES"; then + fp_gcc_version="`$CC -v 2>&1 | grep 'version ' | sed -e 's/.*version [[^0-9]]*\([[0-9.]]*\).*/\1/g'`" + FP_COMPARE_VERSIONS([$fp_gcc_version], [-lt], [2.0], + [AC_MSG_ERROR([Need at least gcc version 2.0 (3.4+ recommended)])]) + else + fp_gcc_version="not-installed" + fi +]) +AC_SUBST([HaveGcc], [$fp_have_gcc]) +AC_SUBST([GccVersion], [$fp_gcc_version]) ])# FP_HAVE_GCC AC_DEFUN([FP_MINGW_GCC], @@ -565,11 +601,8 @@ AC_DEFUN([FP_MINGW_GCC], dnl Small feature test for perl version. Assumes PerlCmd dnl contains path to perl binary dnl -AC_DEFUN(FPTOOLS_CHECK_PERL_VERSION, +AC_DEFUN([FPTOOLS_CHECK_PERL_VERSION], [$PerlCmd -v >conftest.out 2>&1 -if grep "version 5" conftest.out >/dev/null 2>&1; then - : -else if grep "v5.6" conftest.out >/dev/null 2>&1; then : else @@ -579,11 +612,10 @@ else if grep "version 6" conftest.out >/dev/null 2>&1; then : else - echo "Your version of perl probably won't work." - fi + AC_MSG_ERROR([your version of perl probably won't work, try upgrading it.]) + fi fi fi -fi rm -fr conftest* ]) @@ -618,6 +650,25 @@ AC_SUBST([FindCmd])[]dnl ])# FP_PROG_FIND +# FP_PROG_SORT +# ------------ +# Find a Unix-like sort +AC_DEFUN([FP_PROG_SORT], +[AC_PATH_PROG([fp_prog_sort], [sort]) +echo conwip > conftest.txt +$fp_prog_sort -f conftest.txt > conftest.out 2>&1 +if grep 'conwip' conftest.out > /dev/null 2>&1 ; then + # The goods + SortCmd="$fp_prog_sort" +else + # Summink else..pick next one. + AC_MSG_WARN([$fp_prog_sort looks like a non-*nix sort, ignoring it]) + FP_CHECK_PROG([SortCmd], [sort], [], [], [$fp_prog_sort]) +fi +rm -f conftest.txt conftest.out +AC_SUBST([SortCmd])[]dnl +])# FP_PROG_SORT + dnl dnl FPTOOLS_NOCACHE_CHECK prints a message, then sets the dnl values of the second argument to the result of running @@ -625,7 +676,7 @@ dnl the commands given by the third. It does not cache its dnl result, so it is suitable for checks which should be dnl run every time. dnl -AC_DEFUN(FPTOOLS_NOCACHE_CHECK, +AC_DEFUN([FPTOOLS_NOCACHE_CHECK], [AC_MSG_CHECKING([$1]) $3 AC_MSG_RESULT([$][$2]) @@ -639,7 +690,7 @@ dnl dnl Test for version of installed ghc. Uses $GHC. dnl [original version pinched from c2hs] dnl -AC_DEFUN(FPTOOLS_GHC_VERSION, +AC_DEFUN([FPTOOLS_GHC_VERSION], [FPTOOLS_NOCACHE_CHECK([version of ghc], [fptools_version_of_ghc], ["${WithGhc-ghc}" --version > conftestghc 2>&1 cat conftestghc >&AS_MESSAGE_LOG_FD @@ -685,7 +736,7 @@ 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, +AC_DEFUN([FPTOOLS_CHECK_HTYPE], [changequote(<<, >>)dnl dnl The name to #define. define(<>, translit(htype_$1, [a-z *], [A-Z_P]))dnl @@ -743,6 +794,12 @@ AC_RUN_IFELSE([AC_LANG_SOURCE([[#include # include #endif +#if defined(HAVE_AL_AL_H) +# include +#elif defined(HAVE_OPENAL_AL_H) +# include +#endif + #if defined(HAVE_AL_ALC_H) # include #elif defined(HAVE_OPENAL_ALC_H) @@ -771,8 +828,8 @@ main() { 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])])]) dnl -CPPFLAGS="$fp_check_htype_save_cppflags" +[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])