X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=configure.ac;h=5ba67073629971690864d73573007c0d60e9b5fb;hb=d6d0a196363d44008a4850cddf727f06b42644f9;hp=86ef9693f015c3fc252447cdaad0d538c41d9e35;hpb=1c83695b5b9ae3175c18908c1d58aeadb1f225ae;p=ghc-hetmet.git diff --git a/configure.ac b/configure.ac index 86ef969..5ba6707 100644 --- a/configure.ac +++ b/configure.ac @@ -33,6 +33,17 @@ fi AC_SUBST([CONFIGURE_ARGS], [$ac_configure_args]) +dnl ---------------------------------------------------------- +dnl ** Find unixy sort and find commands, +dnl ** which are needed by FP_SETUP_PROJECT_VERSION + +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 ---------------------------------------------------------- FP_SETUP_PROJECT_VERSION # Hmmm, we fix the RPM release number to 1 here... Is this convenient? @@ -58,25 +69,6 @@ if test x"$srcdir" != 'x.' ; then exit 1 fi -dnl-------------------------------------------------------------------- -dnl * Deal with arguments telling us gmp is somewhere odd -dnl-------------------------------------------------------------------- - -FP_ARG_GMP - -GMP_INCLUDE_DIRS= -GMP_LIB_DIRS= -if test "x$gmp_libraries" != "xNONE"; then - LDFLAGS="-L$gmp_libraries $LDFLAGS" - GMP_LIB_DIRS=$gmp_libraries -fi -if test "x$gmp_includes" != "xNONE"; then - CPPFLAGS="-I$gmp_includes $CPPFLAGS" - GMP_INCLUDE_DIRS=$gmp_includes -fi -AC_SUBST(GMP_INCLUDE_DIRS) -AC_SUBST(GMP_LIB_DIRS) - dnl -------------------------------------------------------------- dnl * Project specific configuration options dnl -------------------------------------------------------------- @@ -97,48 +89,21 @@ AC_ARG_WITH([ghc], fi WithGhc="$GHC"]) -dnl ** Booting from unregisterised .hc files? +dnl ** Booting from .hc files? dnl -------------------------------------------------------------- -AC_ARG_ENABLE(hc-boot-unregisterised, -[AC_HELP_STRING([--enable-hc-boot-unregisterised], -[ With --enable-hc-boot, treat the intermediate .hc files as - unregisterised rather than registerised code. +AC_ARG_ENABLE(hc-boot, +[AC_HELP_STRING([--enable-hc-boot], +[Boot the Glasgow Haskell Compiler from intermediate .hc files. (This option is mostly of interest to porters.) [default=no]])], [ if test x"$enableval" = x"yes"; then - BootingFromUnregisterisedHc=YES + BootingFromHc=YES else - BootingFromUnregisterisedHc=NO + BootingFromHc=NO fi ], -[BootingFromUnregisterisedHc=NO] +[BootingFromHc=NO] ) -AC_SUBST(BootingFromUnregisterisedHc) - -if test "$BootingFromHc" = "NO"; then -if test "$BootingFromUnregisterisedHc" = "YES"; then -AC_MSG_ERROR([--enable-hc-boot-unregisterised requires --enable-hc-boot.]) -fi; -fi; - -dnl ** Must have GHC to build GHC, unless --enable-hc-boot is on -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 - - if test `expr $GhcMinVersion % 2` = "1"; then - echo $EnableBootstrapWithDevelSnaphost - if test "$EnableBootstrapWithDevelSnaphost" = "NO"; then - AC_MSG_ERROR([ - $WithGhc is a development snapshot of GHC, version $GhcVersion. - Bootstrapping using this version of GHC is not supported, and may not - work. Use --enable-bootstrap-with-devel-snapshot to try it anyway, - or --with-ghc to specify a different GHC to use.]) - fi - fi -fi; +AC_SUBST(BootingFromHc) AC_ARG_ENABLE(bootstrap-with-devel-snapshot, [AC_HELP_STRING([--enable-bootstrap-with-devel-snapshot], @@ -164,6 +129,25 @@ if test "$WithGhc" != ""; then AC_SUBST(ghc_ge_609)dnl fi +dnl ** Must have GHC to build GHC, unless --enable-hc-boot is on +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 + + if test `expr $GhcMinVersion % 2` = "1"; then + if test "$EnableBootstrapWithDevelSnaphost" = "NO"; then + AC_MSG_ERROR([ + $WithGhc is a development snapshot of GHC, version $GhcVersion. + Bootstrapping using this version of GHC is not supported, and may not + work. Use --enable-bootstrap-with-devel-snapshot to try it anyway, + or --with-ghc to specify a different GHC to use.]) + fi + fi +fi; + # GHC is passed to Cabal, so we need a native path if test "${WithGhc}" != "" then @@ -183,6 +167,28 @@ then fi AC_SUBST([WithGhc]) +dnl ** Without optimization some INLINE trickery fails for GHCi +SRC_CC_OPTS="-O" + +dnl Allow to specify iconv options to the toplevel configure script +dnl so they can be properly passed to sub-builds. +dnl Note: ICONV_LIB_DIRS and ICONV_INCLUDE_DIRS are not predefined +dnl to the empty string to allow them to be overridden from the +dnl environment. + +AC_ARG_WITH([iconv-includes], + [AC_HELP_STRING([--with-iconv-includes], + [directory containing iconv.h])], + [ICONV_INCLUDE_DIRS=$withval]) + +AC_ARG_WITH([iconv-libraries], + [AC_HELP_STRING([--with-iconv-libraries], + [directory containing iconv library])], + [ICONV_LIB_DIRS=$withval]) + +AC_SUBST(ICONV_INCLUDE_DIRS) +AC_SUBST(ICONV_LIB_DIRS) + dnl-------------------------------------------------------------------- dnl * Choose host(/target/build) platform dnl-------------------------------------------------------------------- @@ -201,7 +207,7 @@ if test "$build" = "" then if test "${WithGhc}" != "" then - build=`${WithGhc} +RTS --info | grep '^ ,("Target platform"' | sed -e 's/.*, "//' -e 's/")//'` + build=`${WithGhc} +RTS --info | grep '^ ,("Target platform"' | sed -e 's/.*, "//' -e 's/")//' | tr -d '\r'` echo "Build platform inferred as: $build" else echo "Can't work out build platform" @@ -213,7 +219,7 @@ if test "$host" = "" then if test "${WithGhc}" != "" then - host=`${WithGhc} +RTS --info | grep '^ ,("Target platform"' | sed -e 's/.*, "//' -e 's/")//'` + host=`${WithGhc} +RTS --info | grep '^ ,("Target platform"' | sed -e 's/.*, "//' -e 's/")//' | tr -d '\r'` echo "Host platform inferred as: $host" else echo "Can't work out host platform" @@ -225,7 +231,7 @@ if test "$target" = "" then if test "${WithGhc}" != "" then - target=`${WithGhc} +RTS --info | grep '^ ,("Target platform"' | sed -e 's/.*, "//' -e 's/")//'` + target=`${WithGhc} +RTS --info | grep '^ ,("Target platform"' | sed -e 's/.*, "//' -e 's/")//' | tr -d '\r'` echo "Target platform inferred as: $target" else echo "Can't work out target platform" @@ -247,11 +253,17 @@ 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 @@ -282,7 +294,7 @@ checkOS() { linux|freebsd|netbsd|openbsd|osf1|osf3|hpux|linuxaout|kfreebsdgnu|freebsd2|solaris2|cygwin32|mingw32|darwin|gnu|nextstep2|nextstep3|sunos4|ultrix|irix|aix) ;; *) - echo "Unknown OS $1" + echo "Unknown OS '$1'" exit 1 ;; esac @@ -399,52 +411,6 @@ AC_ARG_WITH(ld, [FP_PROG_LD()] ) -dnl ** Build shared and/or static libs? -dnl -------------------------------------------------------------- -AC_ARG_ENABLE(shared, -[AC_HELP_STRING([--enable-shared], -[Build shared libraries, if available (EXPERIMENTAL, non-working). [default=no]])], -[ if test x"$enableval" = x"yes"; then - AC_MSG_WARN([--enable-shared is experimental and not fully supported at this time]) - BuildSharedLibs=YES - else - BuildSharedLibs=NO - fi -], -[BuildSharedLibs=NO] -) -AC_SUBST(BuildSharedLibs) - -# ToDo later: -# AC_ARG_ENABLE(static, -# [AC_HELP_STRING([--enable-static], -# [Build static libraries. [default=yes]])], -# [ if test x"$enableval" = x"yes"; then -# BuildStaticLibs=YES -# else -# BuildStaticLibs=NO -# fi -# ], -# [BuildStaticLibs=YES] -# ) -# AC_SUBST(BuildStaticLibs) - -dnl ** Booting from .hc files? -dnl -------------------------------------------------------------- -AC_ARG_ENABLE(hc-boot, -[AC_HELP_STRING([--enable-hc-boot], -[Boot the Glasgow Haskell Compiler from intermediate .hc files. - (This option is mostly of interest to porters.) [default=no]])], -[ if test x"$enableval" = x"yes"; then - BootingFromHc=YES - else - BootingFromHc=NO - fi -], -[BootingFromHc=NO] -) -AC_SUBST(BootingFromHc) - # This uses GHC, so put it after the "GHC is required" check above: FP_FIND_ROOT @@ -559,24 +525,12 @@ FP_GCC_EXTRA_FLAGS dnl ** figure out how to invoke cpp directly (gcc -E is no good) AC_PROG_CPP -dnl ** Without optimization some INLINE trickery fails for GHCi -SRC_CC_OPTS="-O" - -SRC_CC_OPTS="$SRC_CC_OPTS $CFLAGS" -SRC_LD_OPTS="$SRC_LD_OPTS $LDFLAGS" - -AC_SUBST(SRC_CC_OPTS) -AC_SUBST(SRC_LD_OPTS) +AC_SUBST(CONF_CC_OPTS) +AC_SUBST(CONF_LD_OPTS) dnl ** figure out how to do context diffs FP_PROG_CONTEXT_DIFF -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 Let's make sure install-sh is executable here. If we got it from dnl a darcs repo, it might not be (see bug #978). chmod +x install-sh @@ -759,36 +713,6 @@ AC_CHECK_DECLS([ctime_r], , , #define _POSIX_C_SOURCE 199506L #include ]) -dnl ** For ghc/rts/gmp: -AC_CHECK_FUNCS([getpagesize]) - -dnl ** check whether this machine has gmp3 installed -AC_CHECK_LIB(gmp, __gmpz_fdiv_qr, HaveLibGmp=YES; LibGmp=gmp, - AC_CHECK_LIB(gmp3, __gmpz_fdiv_qr, HaveLibGmp=YES; LibGmp=gmp3, - HaveLibGmp=NO; LibGmp=not-installed)) - if test $HaveLibGmp = YES; then - AC_DEFINE([HAVE_LIB_GMP], [1], [Define to 1 if GMP library is installed.]) - fi; -AC_SUBST(HaveLibGmp) -AC_SUBST(LibGmp) - -dnl ** (Mac OS X only: check for GMP.framework) -HaveFrameworkGMP=NO -case $HostPlatform in -*-apple-darwin) - AC_MSG_CHECKING([for GMP.framework]) - save_libs="$LIBS" - 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([$HaveFrameworkGMP]) - ;; -esac -AC_SUBST(HaveFrameworkGMP) - dnl ** check for mingwex library AC_CHECK_LIB(mingwex, closedir, HaveLibMingwEx=YES, HaveLibMingwEx=NO) AC_SUBST(HaveLibMingwEx) @@ -797,12 +721,6 @@ if test $HaveLibMingwEx = YES ; then AC_DEFINE([HAVE_MINGWEX], [1], [Define to 1 if you have the mingwex library.]) fi -if test "$HaveLibGmp" = "NO"; then -if test "$HostArch_CPP" = "ia64" -o "$HostArch_CPP" = "mipseb" ; then -AC_MSG_ERROR([You need to install libgmp (the in-tree version does not work on IA64 or mips64).]) -fi; -fi; - dnl ** check whether this machine has BFD and liberty installed (used for debugging) dnl the order of these tests matters: bfd needs liberty AC_CHECK_LIB(iberty, xmalloc) @@ -914,6 +832,8 @@ AC_CHECK_HEADER([papi.h], [HavePapiHeader=YES], [HavePapiHeader=NO]) AC_SUBST(HavePapiLib) AC_SUBST(HavePapiHeader) +AC_CHECK_FUNCS(__mingw_vfprintf) + if test "$HavePapiLib" = "YES" -a "$HavePapiHeader" = "YES"; then HavePapi=YES else @@ -941,7 +861,11 @@ fi AC_SUBST(BUILD_DOCBOOK_PS) AC_SUBST(BUILD_DOCBOOK_PDF) -AC_CONFIG_FILES([mk/config.mk mk/project.mk compiler/ghc.cabal ghc/ghc-bin.cabal ghc.spec extra-gcc-opts docs/users_guide/ug-book.xml distrib/ghc.iss]) +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 distrib/ghc.iss]) AC_CONFIG_COMMANDS([mk/stamp-h],[echo timestamp > mk/stamp-h]) AC_OUTPUT @@ -1011,9 +935,7 @@ fi echo ["\ Building DocBook HTML documentation : $BUILD_DOCBOOK_HTML Building DocBook PS documentation : $BUILD_DOCBOOK_PS - Building DocBook PDF documentation : $BUILD_DOCBOOK_PDF - - Building shared libraries : $BuildSharedLibs"] + Building DocBook PDF documentation : $BUILD_DOCBOOK_PDF"] echo ["---------------------------------------------------------------------- "]