# see what flags are available. (Better yet, read the documentation!)
#
-AC_INIT([The Glorious Glasgow Haskell Compilation System], [6.13], [glasgow-haskell-bugs@haskell.org], [ghc])
+AC_INIT([The Glorious Glasgow Haskell Compilation System], [7.1], [glasgow-haskell-bugs@haskell.org], [ghc])
# Set this to YES for a released version, otherwise NO
: ${RELEASE=NO}
;;
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)
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 ||
- test inplace/mingw -ot ghc-tarballs/mingw/gcc-g++*.tar.gz ||
- test inplace/mingw -ot ghc-tarballs/mingw/libcrypt*.tar.bz2 ||
- test inplace/mingw -ot ghc-tarballs/mingw/mingw-runtime*.tar.gz ||
- test inplace/mingw -ot ghc-tarballs/mingw/w32api*.tar.gz
+ test inplace/mingw -ot ghc-tarballs/mingw/binutils*.tar.lzma ||
+ test inplace/mingw -ot ghc-tarballs/mingw/gcc-core*.tar.lzma ||
+ test inplace/mingw -ot ghc-tarballs/mingw/gcc-c++*.tar.lzma ||
+ test inplace/mingw -ot ghc-tarballs/mingw/libgmp*.tar.gz ||
+ test inplace/mingw -ot ghc-tarballs/mingw/libmpc*.tar.gz ||
+ test inplace/mingw -ot ghc-tarballs/mingw/libmpfr*.tar.gz ||
+ test inplace/mingw -ot ghc-tarballs/mingw/mingwrt*-dev.tar.gz ||
+ test inplace/mingw -ot ghc-tarballs/mingw/mingwrt*-dll.tar.gz ||
+ test inplace/mingw -ot ghc-tarballs/mingw/w32api*.tar.lzma
then
AC_MSG_NOTICE([Making in-tree mingw tree])
rm -rf inplace/mingw
- mkdir inplace
+ test -d inplace || mkdir inplace
mkdir inplace/mingw
(
cd inplace/mingw &&
- tar -zxf ../../ghc-tarballs/mingw/binutils*.tar.gz &&
- tar -zxf ../../ghc-tarballs/mingw/gcc-core*.tar.gz &&
- tar -zxf ../../ghc-tarballs/mingw/gcc-g++*.tar.gz &&
- tar -jxf ../../ghc-tarballs/mingw/libcrypt*.tar.bz2 &&
- tar -zxf ../../ghc-tarballs/mingw/mingw-runtime*.tar.gz &&
- tar -zxf ../../ghc-tarballs/mingw/w32api*.tar.gz &&
+ tar --lzma -xf ../../ghc-tarballs/mingw/binutils*.tar.lzma &&
+ tar --lzma -xf ../../ghc-tarballs/mingw/gcc-core*.tar.lzma &&
+ tar --lzma -xf ../../ghc-tarballs/mingw/gcc-c++*.tar.lzma &&
+ tar --lzma -xf ../../ghc-tarballs/mingw/libgmp*.tar.lzma &&
+ tar --lzma -xf ../../ghc-tarballs/mingw/libmpc*.tar.lzma &&
+ tar --lzma -xf ../../ghc-tarballs/mingw/libmpfr*.tar.lzma &&
+ tar -z -xf ../../ghc-tarballs/mingw/mingwrt*-dev.tar.gz &&
+ tar -z -xf ../../ghc-tarballs/mingw/mingwrt*-dll.tar.gz &&
+ tar --lzma -xf ../../ghc-tarballs/mingw/w32api*.tar.lzma &&
mv bin/gcc.exe bin/realgcc.exe
)
- inplace/mingw/bin/realgcc.exe driver/gcc/gcc.c driver/utils/cwrapper.c driver/utils/getLocation.c -Idriver/utils -o inplace/mingw/bin/gcc.exe
+ PATH=`pwd`/inplace/mingw/bin:$PATH inplace/mingw/bin/realgcc.exe driver/gcc/gcc.c driver/utils/cwrapper.c driver/utils/getLocation.c -Idriver/utils -o inplace/mingw/bin/gcc.exe
+ if ! test -e inplace/mingw/bin/gcc.exe
+ then
+ AC_MSG_ERROR([GHC is required unless bootstrapping from .hc files.])
+ fi
AC_MSG_NOTICE([In-tree mingw tree created])
fi
if ! test -d inplace/perl ||
dnl If gcc, make sure it's at least 2.1
dnl
FP_HAVE_GCC
+
+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])
+
FP_GCC_EXTRA_FLAGS
dnl ** figure out how to invoke cpp directly (gcc -E is no good)
dnl as we need to know whether we need libm
dnl for math functions or not
dnl (see http://hackage.haskell.org/trac/ghc/ticket/3730)
-AC_SEARCH_LIBS(atan, m,
- [AC_DEFINE([HAVE_LIBM], [1], [Define to 1 if you need to link with libm])])
+AC_CHECK_LIB(m, atan, HaveLibM=YES, HaveLibM=NO)
+if test $HaveLibM = YES
+then
+ AC_DEFINE([HAVE_LIBM], [1], [Define to 1 if you need to link with libm])
+fi
dnl ** check whether this machine has BFD and liberty installed (used for debugging)
dnl the order of these tests matters: bfd needs liberty
[Define to 1 if we have printf$LDBLStub (Apple Mac OS >= 10.4, PPC).])
])
+dnl ** check for eventfd which is needed by the I/O manager
+AC_CHECK_HEADERS([sys/eventfd.h])
+AC_CHECK_FUNCS([eventfd])
+
# test for GTK+
AC_PATH_PROGS([GTK_CONFIG], [pkg-config])
if test -n "$GTK_CONFIG"; 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 docs/index.html 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 utils/runghc/runghc.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 distrib/MacOS/installer-scripts/create-links distrib/MacOS/installer-scripts/Uninstaller distrib/MacOS/GHC-system.pmdoc/index.xml])
AC_CONFIG_COMMANDS([mk/stamp-h],[echo timestamp > mk/stamp-h])
AC_OUTPUT