X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=configure.ac;h=f2773672896f209c4af41e8cc45e66eb8d0861c8;hb=d0fb9a95f40453321b82e23d9b322e79340b48c9;hp=d603fd4a0d51fa705403f6fec9cfb087c0364ce2;hpb=fe4743c3356708c52bb6666c32c8dce1a7ca7b68;p=ghc-hetmet.git diff --git a/configure.ac b/configure.ac index d603fd4..f277367 100644 --- a/configure.ac +++ b/configure.ac @@ -27,7 +27,7 @@ AC_INIT([The Glorious Glasgow Haskell Compilation System], [6.13], [glasgow-hask # when the source distribution was created. if test ! -f mk/config.h.in; then - echo "mk/config.h.in doesn't exist: perhaps you haven't run 'sh boot'?" + echo "mk/config.h.in doesn't exist: perhaps you haven't run 'perl boot'?" exit 1 fi @@ -125,12 +125,10 @@ if test "$WithGhc" != ""; then AC_SUBST(GhcPatchLevel)dnl GhcMinVersion2=`echo "$GhcMinVersion" | sed 's/^\\(.\\)$/0\\1/'` GhcCanonVersion="$GhcMajVersion$GhcMinVersion2" - if test $GhcCanonVersion -ge 609; then ghc_ge_609=YES; else ghc_ge_609=NO; fi FP_COMPARE_VERSIONS($GhcVersion,[-ge],[6.10.2], [ghc_ge_6102=YES], [ghc_ge_6102=NO]) if test $GhcCanonVersion -ge 611; then ghc_ge_611=YES; else ghc_ge_611=NO; fi if test $GhcCanonVersion -ge 613; then ghc_ge_613=YES; else ghc_ge_613=NO; fi - AC_SUBST(ghc_ge_609)dnl AC_SUBST(ghc_ge_6102)dnl AC_SUBST(ghc_ge_611)dnl AC_SUBST(ghc_ge_613)dnl @@ -141,8 +139,8 @@ if test "$BootingFromHc" = "NO" -a -d "$srcdir/compiler"; then if test "$WithGhc" = ""; then AC_MSG_ERROR([GHC is required unless bootstrapping from .hc files.]) fi - FP_COMPARE_VERSIONS([$GhcVersion],[-lt],[6.8], - [AC_MSG_ERROR([GHC version 6.8 or later is required to compile GHC.])])dnl + FP_COMPARE_VERSIONS([$GhcVersion],[-lt],[6.10], + [AC_MSG_ERROR([GHC version 6.10 or later is required to compile GHC.])])dnl if test `expr $GhcMinVersion % 2` = "1"; then if test "$EnableBootstrapWithDevelSnaphost" = "NO"; then @@ -196,19 +194,27 @@ AC_ARG_WITH([iconv-libraries], AC_SUBST(ICONV_INCLUDE_DIRS) AC_SUBST(ICONV_LIB_DIRS) +dnl Allow to specify gmp options to the toplevel configure script +dnl so they can be properly passed to sub-builds. + +AC_ARG_WITH([gmp-includes], + [AC_HELP_STRING([--with-gmp-includes], + [directory containing gmp.h])], + [GMP_INCLUDE_DIRS=$withval]) + +AC_ARG_WITH([gmp-libraries], + [AC_HELP_STRING([--with-gmp-libraries], + [directory containing gmp library])], + [GMP_LIB_DIRS=$withval]) + +AC_SUBST(GMP_INCLUDE_DIRS) +AC_SUBST(GMP_LIB_DIRS) + dnl-------------------------------------------------------------------- dnl * Choose host(/target/build) platform dnl-------------------------------------------------------------------- -dnl We don't use the standard autoconf macros for this, but instead -dnl ask the bootstrapping compiler what platform it is for - -dnl Guess host/target/build platform(s) if necessary. -m4_divert_once([HELP_CANON], -[[ -System types: - --build=BUILD configure for building on BUILD [guessed] - --host=HOST cross-compile to build programs to run on HOST [guessed] - --target=TARGET configure for building compilers for TARGET [guessed]]])dnl +dnl If we aren't explicitly told what values to use with configure flags, +dnl we ask the bootstrapping compiler what platform it is for if test "${WithGhc}" != "" then @@ -307,20 +313,18 @@ case $host in ;; i386-apple-darwin|powerpc-apple-darwin) soext='.dylib' - CFLAGS="$CFLAGS -m32" - LDFLAGS="$LDFLAGS -m32" - CONF_CC_OPTS="$CONF_CC_OPTS -m32" - CONF_LD_OPTS="$CONF_LD_OPTS -m32" ;; x86_64-apple-darwin) soext='.dylib' - CFLAGS="$CFLAGS -m64" - LDFLAGS="$LDFLAGS -m64" - CONF_CC_OPTS="$CONF_CC_OPTS -m64" - CONF_LD_OPTS="$CONF_LD_OPTS -m64" ;; esac +FPTOOLS_SET_C_LD_FLAGS([target],[CFLAGS],[LDFLAGS]) +FPTOOLS_SET_C_LD_FLAGS([build],[CONF_CC_OPTS_STAGE0],[CONF_LD_OPTS_STAGE0]) +FPTOOLS_SET_C_LD_FLAGS([target],[CONF_CC_OPTS_STAGE1],[CONF_LD_OPTS_STAGE1]) +# Stage 3 won't be supported by cross-compilation +FPTOOLS_SET_C_LD_FLAGS([target],[CONF_CC_OPTS_STAGE2],[CONF_LD_OPTS_STAGE2]) + checkArch() { case $1 in alpha|arm|hppa|hppa1_1|i386|ia64|m68k|mips|mipseb|mipsel|powerpc|powerpc64|rs6000|s390|sparc|sparc64|vax|x86_64) @@ -426,6 +430,7 @@ then CC="$hardtop/inplace/mingw/bin/gcc.exe" LD="$hardtop/inplace/mingw/bin/ld.exe" NM="$hardtop/inplace/mingw/bin/nm.exe" + fp_prog_ar_raw="$hardtop/inplace/mingw/bin/ar.exe" if ! test -d inplace/mingw || test inplace/mingw -ot ghc-tarballs/mingw/binutils*.tar.gz || test inplace/mingw -ot ghc-tarballs/mingw/gcc-core*.tar.gz || @@ -562,8 +567,12 @@ FP_GCC_EXTRA_FLAGS dnl ** figure out how to invoke cpp directly (gcc -E is no good) AC_PROG_CPP -AC_SUBST(CONF_CC_OPTS) -AC_SUBST(CONF_LD_OPTS) +AC_SUBST(CONF_CC_OPTS_STAGE0) +AC_SUBST(CONF_CC_OPTS_STAGE1) +AC_SUBST(CONF_CC_OPTS_STAGE2) +AC_SUBST(CONF_LD_OPTS_STAGE0) +AC_SUBST(CONF_LD_OPTS_STAGE1) +AC_SUBST(CONF_LD_OPTS_STAGE2) dnl ** figure out how to do context diffs FP_PROG_CONTEXT_DIFF @@ -578,7 +587,7 @@ dnl If you can run configure, you certainly have /bin/sh AC_DEFINE([HAVE_BIN_SH], [1], [Define to 1 if you have /bin/sh.]) dnl ** how to invoke `ar' and `ranlib' -FP_PROG_AR_IS_GNU +FP_PROG_AR_SUPPORTS_ATFILE FP_PROG_AR_NEEDS_RANLIB FP_PROG_AR_SUPPORTS_INPUT @@ -659,7 +668,7 @@ dnl off_t, because it will affect the result of that test. AC_SYS_LARGEFILE dnl ** check for specific header (.h) files that we are interested in -AC_CHECK_HEADERS([bfd.h ctype.h dirent.h dlfcn.h errno.h fcntl.h grp.h limits.h locale.h nlist.h pthread.h pwd.h signal.h sys/mman.h sys/resource.h sys/select.h sys/time.h sys/timeb.h sys/timers.h sys/times.h sys/utsname.h sys/wait.h termios.h time.h utime.h windows.h winsock.h sched.h]) +AC_CHECK_HEADERS([bfd.h ctype.h dirent.h dlfcn.h errno.h fcntl.h grp.h limits.h locale.h nlist.h pthread.h pwd.h signal.h sys/cpuset.h sys/mman.h sys/resource.h sys/select.h sys/time.h sys/timeb.h sys/timers.h sys/times.h sys/utsname.h sys/wait.h termios.h time.h utime.h windows.h winsock.h sched.h]) dnl ** check if it is safe to include both and AC_HEADER_TIME @@ -832,6 +841,11 @@ AC_COMPILE_IFELSE( dnl *** check for GNU non-executable stack note support (ELF only) dnl (.section .note.GNU-stack,"",@progbits) +dnl This test doesn't work with "gcc -g" in gcc 4.4 (GHC trac #3889: +dnl Error: can't resolve `.note.GNU-stack' {.note.GNU-stack section} - `.Ltext0' {.text section} +dnl so we empty CFLAGS while running this test +CFLAGS2="$CFLAGS" +CFLAGS= AC_MSG_CHECKING(for GNU non-executable stack support) AC_COMPILE_IFELSE( [AC_LANG_PROGRAM([__asm__ (".section .note.GNU-stack,\"\",@progbits");], [0])], @@ -840,6 +854,7 @@ AC_COMPILE_IFELSE( [Define to 1 if GNU non-executable stack notes are supported.]) ], [AC_MSG_RESULT(no)]) +CFLAGS="$CFLAGS2" dnl ** check for librt AC_CHECK_LIB(rt, clock_gettime) @@ -917,7 +932,7 @@ if grep ' ' compiler/ghc.cabal.in 2>&1 >/dev/null; then AC_MSG_ERROR([compiler/ghc.cabal.in contains tab characters; please remove them]) fi -AC_CONFIG_FILES([mk/config.mk mk/install.mk mk/project.mk compiler/ghc.cabal ghc/ghc-bin.cabal ghc.spec extra-gcc-opts docs/users_guide/ug-book.xml docs/users_guide/ug-ent.xml libraries/prologue.txt distrib/ghc.iss distrib/configure.ac]) +AC_CONFIG_FILES([mk/config.mk mk/install.mk mk/project.mk compiler/ghc.cabal ghc/ghc-bin.cabal ghc.spec extra-gcc-opts docs/users_guide/ug-book.xml docs/users_guide/ug-ent.xml docs/index.html libraries/prologue.txt distrib/ghc.iss distrib/configure.ac]) AC_CONFIG_COMMANDS([mk/stamp-h],[echo timestamp > mk/stamp-h]) AC_OUTPUT