[project @ 2001-06-06 12:04:46 by simonmar]
[ghc-hetmet.git] / configure.in
index fbb093d..be31d69 100644 (file)
@@ -204,9 +204,10 @@ i[[3456]]86-*-mingw32*)
        exeext='.exe'
        # We assume you're using mingw32 via the gcc that comes
        # with cygwin, and not the native port, so let's augment
-       # the gcc command-line used here with -mno-cygwin to
-       # arrange for good things to happen.
-       CFLAGS="-mno-cygwin $CFLAGS"
+       # the gcc command-line used here with -mno-cygwin -mwin32
+       # to arrange for good things to happen.
+       CFLAGS="-mno-cygwin -mwin32 $CFLAGS"
+       CPPFLAGS="-mno-cygwin -mwin32 $CPPFLAGS"
         ;;
 m68k-next-nextstep2)
         HostPlatform_CPP='m68k_next_nextstep2'
@@ -271,6 +272,15 @@ powerpc-ibm-aix*)
         HostVendor_CPP='ibm'
         HostOS_CPP='aix'
         ;;
+powerpc-apple-macosx*)
+      HostPlatform=powerpc-apple-macosx
+      TargetPlatform=powerpc-apple-macosx #hack
+      BuildPlatform=powerpc-apple-macosx #hack
+        HostPlatform_CPP='powerpc_apple_macosx'
+        HostArch_CPP='powerpc'
+        HostVendor_CPP='apple'
+        HostOS_CPP='macosx'
+        ;;
 sparc-sun-sunos4*)
        HostPlatform=sparc-sun-sunos4
        TargetPlatform=sparc-sun-sunos4 #hack
@@ -346,15 +356,6 @@ if test "$GHC" = ""; then
   AC_PATH_PROG(GHC,ghc)
 fi
 
-AC_ARG_WITH(hc,
-[  --with-hc=<haskell compiler>
-        Use a command different from 'ghc' to compile generic Haskell code.
-],
-[WithHc="$withval"],
-[WithHc=$GHC]
-)
-AC_SUBST(WithHc)
-
 AC_ARG_WITH(ghc,
 [  --with-ghc=<haskell compiler>
         Use a command different from 'ghc' to compile GHC-specific Haskell code
@@ -365,6 +366,15 @@ AC_ARG_WITH(ghc,
 )
 AC_SUBST(WithGhc)
 
+AC_ARG_WITH(hc,
+[  --with-hc=<haskell compiler>
+        Use a command different from 'ghc' to compile generic Haskell code.
+],
+[WithHc="$withval"],
+[WithHc=$WithGhc]
+)
+AC_SUBST(WithHc)
+
 if test "$WithGhc" != ""; then
   FPTOOLS_GHC_VERSION([GhcVersion], [GhcMajVersion], [GhcMinVersion], [GhcPatchLevel])dnl
   AC_SUBST(GhcVersion)dnl
@@ -424,6 +434,20 @@ if test x"$EnableWin32DLLs" = "xYES" ; then
  AC_DEFINE(HAVE_WIN32_DLL_SUPPORT)
 fi
 
+dnl ** Building a Win32-friendlier compiler?
+dnl --------------------------------------------------------------
+AC_ARG_ENABLE(minimal-unix-deps,
+[  --enable-minimal-unix-deps
+        Build a compiler that minimizes dependencies on Unix-like tools
+       under Win32, allowing the user to operate the compiler without
+       having to install Cygwin toolchain (say). (You still need
+       that toolchain to build GHC from sources though).
+],
+[MinimalUnixDeps=YES],
+[MinimalUnixDeps=NO]
+)
+AC_SUBST(MinimalUnixDeps)
+
 dnl ** Enable the building of the OpenGL/GLUT binding in hslibs?
 dnl --------------------------------------------------------------
 AC_ARG_ENABLE(hopengl,
@@ -469,12 +493,12 @@ AC_SYS_INTERPRETER()
 dnl ** look for `perl', but only in /bin on Windows
 case $HostOS_CPP in
 cygwin32|mingw32)
-   AC_CHECK_PROG(PerlCmd,perl,/bin/perl,,/bin)
-   if test -z "$PerlCmd"; then
-      echo "You must install the version of Perl shipped with GHC"
-      echo "(or a compatible one) in /bin."
-      exit 1
-   fi
+      AC_CHECK_PROG(PerlCmd,perl,/bin/perl,,/bin)
+      if test -z "$PerlCmd"; then
+         echo "You must install the version of Perl shipped with GHC"
+         echo "(or a compatible one) in /bin."
+         exit 1
+      fi
    ;;
 *)
    AC_PATH_PROG(PerlCmd,perl)
@@ -501,6 +525,11 @@ FPTOOLS_HAVE_GCC
 
 dnl ** figure out how to invoke cpp directly (gcc -E is no good)
 AC_PROG_CPP
+case $HostOS_CPP in
+mingw32)
+   CPP="$CPP -mno-cygwin -mwin32"
+   ;;
+esac
 
 dnl ** figure out how to do context diffs
 FPTOOLS_PROG_DIFF
@@ -513,10 +542,10 @@ dnl (FPTOOLS_PROG_YACCY is AC_PROG_YACC, but with some extra testing
 dnl  on the suitability of the 'yacc' returned.)
 FPTOOLS_PROG_YACCY
 
-dnl ** Find lex command (lex or flex) and library (-ll or -lfl)
-dnl     ( not that we care about the latter, see mk/config.mk.in )
-AC_PROG_LEX
-
+dnl ** Find lex command (lex or flex) - *doesn't* use autoconf's
+dnl    AC_PROG_LEX, since it doesn't actually check whether 'lex'
+dnl    exists if 'flex' doesn't.
+AC_PROG_LEX_STRICT
 
 dnl ** figure out how to do a BSD-ish install
 AC_PROG_INSTALL
@@ -550,7 +579,7 @@ AC_PATH_PROGS(CompressCmd,gzip compress,gzip)
 dnl ** check for jade/openjade & determine a working catalog
 AC_PATH_PROGS(JadeCmd,openjade jade,jade)
 FPTOOLS_DOCBOOK_CATALOG(Catalog, $JadeCmd, docs/fptools-both.dsl, 
-                        /etc/sgml.catalog /usr/share/sgml/CATALOG.docbkdsl $hardtop/glafp-utils/docbook/CATALOG*)
+                        /etc/sgml/catalog /etc/sgml.catalog /usr/share/sgml/CATALOG.docbkdsl $hardtop/glafp-utils/docbook/CATALOG*)
 if test -z "$Catalog"; then
   AC_MSG_RESULT([Warning: You will not be able to build the documentation.])
 fi
@@ -568,7 +597,7 @@ AC_SUBST(CompressSuffix)
 
 dnl ** check for installed happy binary + version
 dnl    (don't do it if we're booting from .hc files though.)
-if (test "$BootingFromHc" = "NO"); then
+if test "$BootingFromHc" = "NO"; then
 FPTOOLS_HAPPY
 fi;
 
@@ -584,7 +613,7 @@ dnl ** check for full ANSI header (.h) files
 AC_HEADER_STDC
 
 dnl ** check for specific header (.h) files that we are interested in
-AC_CHECK_HEADERS(Files.h assert.h console.h ctype.h dirent.h errno.h fcntl.h float.h ftw.h grp.h ieee754.h malloc.h memory.h nlist.h pascal.h pwd.h sgtty.h siginfo.h signal.h stat.h stdint.h stdlib.h stdarg.h string.h sys/fault.h sys/file.h sys/ioctl.h sys/limits.h sys/mman.h sys/param.h sys/procfs.h sys/resource.h sys/signal.h sys/socket.h netinet/tcp.h sys/stat.h sys/syscall.h sys/time.h sys/timeb.h sys/timers.h sys/times.h sys/types.h sys/utsname.h sys/vadvise.h sys/wait.h termio.h termios.h time.h types.h unistd.h utime.h values.h vfork.h bfd.h winsock.h)
+AC_CHECK_HEADERS(Files.h arpa/inet.h assert.h console.h ctype.h dirent.h errno.h fcntl.h float.h ftw.h grp.h ieee754.h inttypes.h malloc.h memory.h nlist.h pascal.h pwd.h sgtty.h siginfo.h signal.h stat.h stdint.h stdlib.h stdarg.h string.h sys/fault.h sys/file.h sys/ioctl.h sys/limits.h sys/mman.h sys/param.h sys/procfs.h sys/resource.h sys/signal.h sys/socket.h netdb.h netinet/in.h netinet/tcp.h sys/stat.h sys/syscall.h sys/time.h sys/timeb.h sys/timers.h sys/times.h sys/types.h sys/un.h sys/utsname.h sys/vadvise.h sys/wait.h termio.h termios.h time.h types.h unistd.h utime.h values.h vfork.h bfd.h winsock.h)
 
 AC_CHECK_HEADER(readline/readline.h, HaveReadlineReadlineH=YES, HaveReadlineReadlineH=NO)
 AC_CHECK_HEADER(readline/history.h, HaveReadlineHistoryH=YES, HaveReadlineHistoryH=NO)
@@ -716,6 +745,8 @@ FPTOOLS_CHECK_HTYPE(GLdouble)
 FPTOOLS_CHECK_HTYPE(GLclampd)
 fi
 
+FPTOOLS_CHECK_CCONSTS(E2BIG EACCES EADDRINUSE EADDRNOTAVAIL EADV EAFNOSUPPORT EAGAIN EALREADY EBADF EBADMSG EBADRPC EBUSY ECHILD ECOMM ECONNABORTED ECONNREFUSED ECONNRESET EDEADLK EDESTADDRREQ EDIRTY EDOM EDQUOT EEXIST EFAULT EFBIG EFTYPE EHOSTDOWN EHOSTUNREACH EIDRM EILSEQ EINPROGRESS EINTR EINVAL EIO EISCONN EISDIR ELOOP EMFILE EMLINK EMSGSIZE EMULTIHOP ENAMETOOLONG ENETDOWN ENETRESET ENETUNREACH ENFILE ENOBUFS ENODATA ENODEV ENOENT ENOEXEC ENOLCK ENOLINK ENOMEM ENOMSG ENONET ENOPROTOOPT ENOSPC ENOSR ENOSTR ENOSYS ENOTBLK ENOTCONN ENOTDIR ENOTEMPTY ENOTSOCK ENOTTY ENXIO EOPNOTSUPP EPERM EPFNOSUPPORT EPIPE EPROCLIM EPROCUNAVAIL EPROGMISMATCH EPROGUNAVAIL EPROTO EPROTONOSUPPORT EPROTOTYPE ERANGE EREMCHG EREMOTE EROFS ERPCMISMATCH ERREMOTE ESHUTDOWN ESOCKTNOSUPPORT ESPIPE ESRCH ESRMNT ESTALE ETIME ETIMEDOUT ETOOMANYREFS ETXTBSY EUSERS EWOULDBLOCK EXDEV)
+
 dnl ** can we open files in binary mode?
 FPTOOLS_O_BINARY
 
@@ -824,19 +855,41 @@ fi
 
 if test $HaveLibTermcap = YES && test x"$HaveLibReadline" = xYES ; then
   AC_DEFINE(HAVE_READLINE_LIBS,1)
-  LibsReadline="-lreadline -l$LibTermcap"
+  LibsReadline="readline $LibTermcap"
 else
   AC_DEFINE(HAVE_READLINE_LIBS,0)
   LibsReadline=
 fi
 AC_SUBST(LibsReadline)
 
+if test "$HaveLibReadline"; then
+  AC_CHECK_LIB(readline, rl_erase_empty_line,
+    [AC_DEFINE(HAVE_READLINE_4, 1)],
+    [AC_DEFINE(HAVE_READLINE_4, 0)])
+  AC_CHECK_LIB(readline, rl_free_undo_list,
+    [AC_DEFINE(HAVE_READLINE_4_2, 1)],
+    [AC_DEFINE(HAVE_READLINE_4_2, 0)])
+else
+  AC_DEFINE(HAVE_READLINE_4, 0)
+  AC_DEFINE(HAVE_READLINE_4_2, 0)
+fi
+
+dnl ** check for math library
+FPTOOLS_CHECK_LIBM()
+AC_SUBST(LIBM)
+
 dnl ################################################################
 dnl Check for libraries
 dnl ################################################################
 
-FPTOOLS_CHECK_LIB_NOWARN(dl, dlopen)
-FPTOOLS_CHECK_LIB_NOWARN(dld, shl_load)
+AC_CHECK_LIB(dl, dlopen, 
+       [HaveLibDL=YES
+        AC_DEFINE(HAVE_LIBDL)
+        LIBS="$LIBS -ldl"], 
+       [HaveLibDL=NO])
+AC_CHECK_FUNCS(dlopen)
+AC_SUBST(HaveLibDL)
+
 FPTOOLS_CHECK_LIB_NOWARN(m, atan)
 
 dnl --------------------------------------------------
@@ -895,10 +948,3 @@ dnl ** code before data?
 FPTOOLS_CODE_BEFORE_DATA
 
 AC_OUTPUT(mk/config.mk, echo timestamp > mk/stamp-h )
-
-echo ''
-echo '************************************************'
-echo '*** NOW DO: gmake boot followed by gmake all'
-echo '***         (where gmake == GNU make)'
-echo '************************************************'
-exit 0