[project @ 2001-07-23 22:19:59 by ken]
[ghc-hetmet.git] / configure.in
index 9b4947f..edbd886 100644 (file)
@@ -202,11 +202,6 @@ i[[3456]]86-*-mingw32*)
         HostVendor_CPP='unknown'
         HostOS_CPP='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"
         ;;
 m68k-next-nextstep2)
         HostPlatform_CPP='m68k_next_nextstep2'
@@ -355,15 +350,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
@@ -374,6 +360,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
@@ -391,7 +386,8 @@ AC_ARG_WITH(gcc,
 [  --with-gcc=<gcc command>
         Use a different command instead of 'gcc' for the GNU C compiler.
 ],
-[WhatGccIsCalled="$withval"],
+[WhatGccIsCalled="$withval"
+ CC="$withval"],
 [WhatGccIsCalled="gcc"]
 )
 AC_SUBST(WhatGccIsCalled)
@@ -463,6 +459,8 @@ AC_ARG_WITH(glut-xlib,
 test -n "$with_glut_xlib" && CPPFLAGS="$CPPFLAGS -DGLUT_XLIB_IMPLEMENTATION=$with_glut_xlib"
 
 
+
+
 dnl --------------------------------------------------------------
 dnl End of configure script option section
 dnl --------------------------------------------------------------
@@ -478,12 +476,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)
@@ -500,7 +498,6 @@ esac
 dnl ** does #! path/to/perl work? (sometimes it's too long...)
 FPTOOLS_SHEBANG_PERL
 
-
 dnl ** look for GCC and find out which version
 dnl     Figure out which C compiler to use.  Gcc is preferred.
 dnl     If gcc, make sure it's at least 2.1
@@ -511,6 +508,15 @@ FPTOOLS_HAVE_GCC
 dnl ** figure out how to invoke cpp directly (gcc -E is no good)
 AC_PROG_CPP
 
+dnl ** does the C compiler support the following options?
+FPTOOLS_CC_FLAG(-mwin32,CC_SUPPORTS_MWIN32)
+FPTOOLS_CC_FLAG(-mno-cygwin,CC_SUPPORTS_MNO_CYGWIN)
+
+EXTRA_CC_OPTS="$CC_SUPPORTS_MNO_CYGWIN $CC_SUPPORTS_MWIN32"
+SRC_CC_OPTS="-O $EXTRA_CC_OPTS"
+CPPFLAGS="$EXTRA_CC_OPTS $CPPFLAGS"
+AC_SUBST(SRC_CC_OPTS)
+
 dnl ** figure out how to do context diffs
 FPTOOLS_PROG_DIFF
 
@@ -522,10 +528,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
@@ -559,10 +565,18 @@ 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 glafp-utils/docbook/CATALOG*)
 if test -z "$Catalog"; then
   AC_MSG_RESULT([Warning: You will not be able to build the documentation.])
 fi
+case $HostOS_CPP in
+   mingw32)
+      Catalog=`cygpath -w $hardtop/$Catalog`
+      ;;
+   *)
+      Catalog=$hardtop/$Catalog
+      ;;
+esac   
 AC_SUBST(Catalog)
 
 compress_nm=`basename $CompressCmd`
@@ -577,7 +591,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;
 
@@ -593,7 +607,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 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 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)
@@ -835,19 +849,47 @@ 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)
+
+case $HostOS_CPP in
+cygwin32) ;;
+mingw32)  ;;
+*) AC_PATH_XTRA() ;;
+esac
+
 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 --------------------------------------------------
@@ -890,7 +932,9 @@ AC_C_PROTOTYPES
 dnl ** are we big endian?
 AC_C_BIGENDIAN
 # Allay users' general fear of warnings of any kind.
-errprint((fptools configure script wizard sez: "don't worry, the above warning is harmless (to us.)")
+errprint(fptools configure script wizard sez: autoconf-2.50 or later should produce no warnings
+)
+errprint(if you are using 2.13 or earlier, you may get a (harmless) warning message.
 )
 
 dnl ** check for leading underscores in symbol names
@@ -905,4 +949,5 @@ FPTOOLS_END_DATA_SECTION
 dnl ** code before data?
 FPTOOLS_CODE_BEFORE_DATA
 
+
 AC_OUTPUT(mk/config.mk, echo timestamp > mk/stamp-h )