[project @ 2001-06-18 03:45:23 by chak]
[ghc-hetmet.git] / configure.in
index 2c82bdc..be31d69 100644 (file)
@@ -183,7 +183,7 @@ i[[3456]]86-*-solaris2*)
         HostVendor_CPP='unknown'
         HostOS_CPP='solaris2'
         ;;
-i[[3456]]86-*-cygwin32*)
+i[[3456]]86-*-cygwin*)
        HostPlatform=i386-unknown-cygwin32 # hack again
        TargetPlatform=i386-unknown-cygwin32
        BuildPlatform=i386-unknown-cygwin32
@@ -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
@@ -332,20 +342,6 @@ dnl AC_SUBST(TargetVendor_CPP)
 
 AC_SUBST(exeext)
 
-if test "$GHC" = ""; then
-  AC_PATH_PROG(GHC,ghc)
-fi
-if test "$GHC" != ""; then
-  FPTOOLS_GHC_VERSION([GhcVersion], [GhcMajVersion], [GhcMinVersion], [GhcPatchLevel])dnl
-  AC_SUBST(GhcVersion)dnl
-  AC_SUBST(GhcMajVersion)dnl
-  AC_SUBST(GhcMinVersion)dnl
-  AC_SUBST(GhcPatchLevel)dnl
-fi
-
-AC_PATH_PROGS(NHC,nhc nhc98)
-AC_PATH_PROG(HBC,hbc)
-
 dnl --------------------------------------------------------------
 dnl * Project specific configuration options
 dnl --------------------------------------------------------------
@@ -356,17 +352,40 @@ dnl use either is considered a Feature.
 
 dnl ** What command to use to compile compiler sources ?
 dnl --------------------------------------------------------------
+if test "$GHC" = ""; then
+  AC_PATH_PROG(GHC,ghc)
+fi
+
+AC_ARG_WITH(ghc,
+[  --with-ghc=<haskell compiler>
+        Use a command different from 'ghc' to compile GHC-specific Haskell code
+           (including GHC itself).
+],
+[WithGhc="$withval"],
+[WithGhc=$GHC]
+)
+AC_SUBST(WithGhc)
+
 AC_ARG_WITH(hc,
 [  --with-hc=<haskell compiler>
-        Use a command different from 'ghc' to compile up Haskell code.
-        (no claims currently made that this will work with a compiler other than a
-         recent version of GHC, but you could always try...)
+        Use a command different from 'ghc' to compile generic Haskell code.
 ],
 [WithHc="$withval"],
-[WithHc=$GHC]
+[WithHc=$WithGhc]
 )
 AC_SUBST(WithHc)
 
+if test "$WithGhc" != ""; then
+  FPTOOLS_GHC_VERSION([GhcVersion], [GhcMajVersion], [GhcMinVersion], [GhcPatchLevel])dnl
+  AC_SUBST(GhcVersion)dnl
+  AC_SUBST(GhcMajVersion)dnl
+  AC_SUBST(GhcMinVersion)dnl
+  AC_SUBST(GhcPatchLevel)dnl
+fi
+
+AC_PATH_PROGS(NHC,nhc nhc98)
+AC_PATH_PROG(HBC,hbc)
+
 dnl ** Which gcc to use?
 dnl --------------------------------------------------------------
 AC_ARG_WITH(gcc,
@@ -415,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,
@@ -460,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)
@@ -492,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
@@ -504,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
@@ -541,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
@@ -559,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;
 
@@ -575,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)
@@ -707,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
 
@@ -815,22 +855,68 @@ 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 --------------------------------------------------
+dnl * test for GTK+
+dnl --------------------------------------------------
+
+AC_PATH_PROGS(GTK_CONFIG, gtk-config gtk12-config)
+if test "$GTK_CONFIG" != ""; then
+   AC_CACHE_CHECK([for version of GTK+], fptools_cv_gtk_version, [
+       fptools_cv_gtk_version=`$GTK_CONFIG --version`
+    ])
+    GTK_VERSION=$fptools_cv_gtk_version
+else
+    GTK_VERSION=
+fi
+
+case $fptools_cv_gtk_version in
+  1.[[23]].*) ;;
+  *) AC_MSG_WARN([GTK+ not usable; need at least version 1.2])
+     GTK_CONFIG=
+     ;;
+esac
+
+AC_SUBST(GTK_CONFIG)
+AC_SUBST(GTK_VERSION)
+
+dnl --------------------------------------------------
 dnl * Miscellaneous feature tests
 dnl --------------------------------------------------
 
@@ -862,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