X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=configure.ac;h=14d8710c079d2f73baa56c11c5b7ca7265c90981;hb=ce9a12321f228ab68934e3031c32ab7f9a2173fc;hp=d2cea57d4880cc2636025dcf074e5f27269e40f4;hpb=de4cc55e97ca2011ab3889a9e2dab9a745839a66;p=ghc-hetmet.git diff --git a/configure.ac b/configure.ac index d2cea57..14d8710 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,6 +89,22 @@ AC_ARG_WITH([ghc], fi WithGhc="$GHC"]) +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) + dnl ** Booting from unregisterised .hc files? dnl -------------------------------------------------------------- AC_ARG_ENABLE(hc-boot-unregisterised, @@ -120,26 +128,6 @@ 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_ARG_ENABLE(bootstrap-with-devel-snapshot, [AC_HELP_STRING([--enable-bootstrap-with-devel-snapshot], [Allow bootstrapping using a development snapshot of GHC. This is not guaranteed to work.])], @@ -164,6 +152,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 +190,9 @@ then fi AC_SUBST([WithGhc]) +dnl ** Without optimization some INLINE trickery fails for GHCi +SRC_CC_OPTS="-O" + dnl-------------------------------------------------------------------- dnl * Choose host(/target/build) platform dnl-------------------------------------------------------------------- @@ -201,7 +211,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 +223,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 +235,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 +257,17 @@ case $host in ;; i386-apple-darwin|powerpc-apple-darwin) soext='.dylib' + CFLAGS="$CFLAGS -m32" + LDFLAGS="$LDFLAGS -m32" + SRC_CC_OPTS="$SRC_CC_OPTS -m32" + SRC_LD_OPTS="$SRC_LD_OPTS -m32" ;; x86_64-apple-darwin) soext='.dylib' CFLAGS="$CFLAGS -m64" LDFLAGS="$LDFLAGS -m64" + SRC_CC_OPTS="$SRC_CC_OPTS -m64" + SRC_LD_OPTS="$SRC_LD_OPTS -m64" ;; esac @@ -282,7 +298,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 +415,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 +529,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) 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 @@ -738,7 +696,7 @@ fi dnl ** check for more functions dnl ** The following have been verified to be used in ghc/, but might be used somewhere else, too. -AC_CHECK_FUNCS([getclock getrusage gettimeofday setitimer siginterrupt sysconf times ctime_r, sched_setaffinity]) +AC_CHECK_FUNCS([getclock getrusage gettimeofday setitimer siginterrupt sysconf times ctime_r sched_setaffinity setlocale]) AC_TRY_RUN([ #include @@ -759,36 +717,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 +725,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 +836,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 +865,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 +939,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 ["---------------------------------------------------------------------- "]