dnl == autoconf source for the Glasgow FP tools ==
-dnl (run "grep '^dnl \*' configure.in | sed -e 's/dnl / /g; s/\*\*/ +/g;'"
+dnl (run "grep '^dnl \*' configure.ac | sed -e 's/dnl / /g; s/\*\*/ +/g;'"
dnl (or some such) to see the outline of this file)
dnl
#
# First off, a distrib sanity check..
AC_INIT(mk/config.mk.in)
-dnl * We require autoconf version 2.53 due to the use of AC_SYS_LARGEFILE
+dnl * We require autoconf version 2.52
+dnl We need 2.50 due to the use of AC_SYS_LARGEFILE and AC_MSG_NOTICE.
+dnl We need 2.52 due to the use of AS_TR_CPP and AS_TR_SH.
AC_PREREQ(2.52)
dnl * Declare subdirectories that have a private configure script
UseQuartzOpenGL=NO
if test x"$TargetOS_CPP" = x"darwin"; then
if test x"$enable_hopengl" != x"x11"; then
- AC_DEFINE(USE_QUARTZ_OPENGL)
+ AC_DEFINE([USE_QUARTZ_OPENGL], [1],
+ [Define to 1 if native OpenGL should be used on Mac OS X])
UseQuartzOpenGL=YES
fi
fi
[ --enable-dotnet
Build .NET interop layer.
],
-[DotnetSupport=YES; AC_DEFINE(WANT_DOTNET_SUPPORT)],
+[DotnetSupport=YES; AC_DEFINE([WANT_DOTNET_SUPPORT], [1], [Define to 1 if you want to include .NET interop support.])],
[DotnetSupport=NO]
)
AC_SUBST(DotnetSupport)
dnl ** Without optimization some INLINE trickery fails for GHCi
SRC_CC_OPTS="-O"
-dnl ** Try to add -mno-cygwin to the C compiler options for mingw32 targets
-if test x"$TargetOS_CPP" = x"mingw32"; then
- FPTOOLS_CC_FLAG(-mno-cygwin,CC_SUPPORTS_MNO_CYGWIN)
- SRC_CC_OPTS="$CC_SUPPORTS_MNO_CYGWIN $SRC_CC_OPTS"
- CPPFLAGS="$CC_SUPPORTS_MNO_CYGWIN $CPPFLAGS"
-fi
+dnl ** Try to add -mno-cygwin to the C compiler options
+FP_CHECK_FLAG([-mno-cygwin], [
+SRC_CC_OPTS="-mno-cygwin $SRC_CC_OPTS"
+CPPFLAGS="-mno-cygwin $CPPFLAGS"])
AC_SUBST(SRC_CC_OPTS)
dnl ** figure out how to do context diffs
-FPTOOLS_PROG_DIFF
+FP_PROG_CONTEXT_DIFF
dnl ** Find find command (for Win32's benefit)
FPTOOLS_FIND_FIND
-dnl ** look for a decent parser generator (bison preferred)
-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) - *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
dnl If you can run configure, you certainly have /bin/sh
-AC_DEFINE(HAVE_BIN_SH)
+AC_DEFINE([HAVE_BIN_SH], [1], [Define to 1 if you have /bin/sh.])
dnl ** how to invoke `ar' and `ranlib'
FPTOOLS_PROG_AR_AND_RANLIB
AC_SYS_LARGEFILE
dnl ** check for specific header (.h) files that we are interested in
-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 limits.h malloc.h memory.h nlist.h pascal.h pwd.h sgtty.h siginfo.h signal.h stat.h stdint.h stdlib.h stddef.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 bfd.h winsock.h pthread.h sys/uio.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 limits.h locale.h malloc.h memory.h nlist.h pascal.h pwd.h sgtty.h siginfo.h signal.h stat.h stdint.h stdlib.h stddef.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 bfd.h winsock.h pthread.h sys/uio.h)
AC_CHECK_HEADER(unistd.h,[AC_CHECK_FUNCS(lchown)])
AC_CHECK_HEADER(readline/readline.h, [HaveReadlineReadlineH=YES], [HaveReadlineReadlineH=NO])
if test $HaveReadlineReadlineH = YES && test $HaveReadlineHistoryH = YES ; then
HaveReadlineHeaders=YES
- AC_DEFINE(HAVE_READLINE_HEADERS,1)
+ AC_DEFINE([HAVE_READLINE_HEADERS], [1], [Define to 1 if readline/readline.h and readline/history.h exist.])
else
HaveReadlineHeaders=NO
- AC_DEFINE(HAVE_READLINE_HEADERS,0)
+ AC_DEFINE([HAVE_READLINE_HEADERS], [0], [Define to 1 if readline/readline.h and readline/history.h exist.])
fi
AC_SUBST(HaveReadlineHeaders)
dnl ** how do we get a timezone name, and UTC offset ?
AC_STRUCT_TIMEZONE
-dnl ** what's the type of timezone?
-FPTOOLS_HAVE_TIMEZONE
-FPTOOLS_TYPE_TIMEZONE
-
dnl ** do we have altzone?
-FPTOOLS_ALTZONE
+FP_DECL_ALTZONE
dnl ** does struct stat contain st_blksize?
AC_STRUCT_ST_BLKSIZE
dnl ** do we have long longs?
-FPTOOLS_C_LONG_LONG
+AC_CHECK_TYPES([long long])
dnl ** check what fields struct msghdr contains
-FPTOOLS_MSGHDR_MSG_ACCRIGHTS
-FPTOOLS_MSGHDR_MSG_CONTROL
+AC_CHECK_HEADERS([sys/types.h sys/socket.h sys/uio.h])
+AC_CHECK_MEMBERS([struct msghdr.msg_control, struct msghdr.msg_accrights], [], [], [#if HAVE_SYS_TYPES_H
+# include <sys/types.h>
+#endif
+#if HAVE_SYS_SOCKET_H
+# include <sys/socket.h>
+#endif
+#if HAVE_SYS_UIO_H
+# include <sys/uio.h>
+#endif])
dnl ** what are the sizes of various types
-dnl (these must come before GHC_CHECK_ALIGNMENT)
AC_CHECK_SIZEOF(char, 1)
AC_CHECK_SIZEOF(double, 8)
AC_CHECK_SIZEOF(float, 4)
AC_CHECK_SIZEOF(int, 4)
AC_CHECK_SIZEOF(long, 4)
-if test "$fptools_cv_have_long_long" = yes; then
+if test "$ac_cv_type_long_long" = yes; then
AC_CHECK_SIZEOF(long long, 8)
fi
AC_CHECK_SIZEOF(short, 2)
AC_CHECK_SIZEOF(unsigned char, 1)
AC_CHECK_SIZEOF(unsigned int, 4)
AC_CHECK_SIZEOF(unsigned long, 4)
-if test "$fptools_cv_have_long_long" = yes; then
+if test "$ac_cv_type_long_long" = yes; then
AC_CHECK_SIZEOF(unsigned long long, 8)
fi
AC_CHECK_SIZEOF(unsigned short, 2)
AC_CHECK_SIZEOF(void *, 4)
dnl ** what are alignment constraints on various types
-FPTOOLS_CHECK_ALIGNMENT(char)
-FPTOOLS_CHECK_ALIGNMENT(double)
-FPTOOLS_CHECK_ALIGNMENT(float)
-FPTOOLS_CHECK_ALIGNMENT(int)
-FPTOOLS_CHECK_ALIGNMENT(long)
-if test "$fptools_cv_have_long_long" = yes; then
-FPTOOLS_CHECK_ALIGNMENT(long long)
+FP_CHECK_ALIGNMENT(char)
+FP_CHECK_ALIGNMENT(double)
+FP_CHECK_ALIGNMENT(float)
+FP_CHECK_ALIGNMENT(int)
+FP_CHECK_ALIGNMENT(long)
+if test "$ac_cv_type_long_long" = yes; then
+FP_CHECK_ALIGNMENT(long long)
fi
-FPTOOLS_CHECK_ALIGNMENT(short)
-FPTOOLS_CHECK_ALIGNMENT(unsigned char)
-FPTOOLS_CHECK_ALIGNMENT(unsigned int)
-FPTOOLS_CHECK_ALIGNMENT(unsigned long)
-if test "$fptools_cv_have_long_long" = yes; then
-FPTOOLS_CHECK_ALIGNMENT(unsigned long long)
+FP_CHECK_ALIGNMENT(short)
+FP_CHECK_ALIGNMENT(unsigned char)
+FP_CHECK_ALIGNMENT(unsigned int)
+FP_CHECK_ALIGNMENT(unsigned long)
+if test "$ac_cv_type_long_long" = yes; then
+FP_CHECK_ALIGNMENT(unsigned long long)
fi
-FPTOOLS_CHECK_ALIGNMENT(unsigned short)
-FPTOOLS_CHECK_ALIGNMENT(void *)
+FP_CHECK_ALIGNMENT(unsigned short)
+FP_CHECK_ALIGNMENT(void *)
dnl ** map standard C types and ISO types to Haskell types
FPTOOLS_CHECK_HTYPE(char)
FPTOOLS_CHECK_HTYPE(unsigned int)
FPTOOLS_CHECK_HTYPE(long)
FPTOOLS_CHECK_HTYPE(unsigned long)
-if test "$fptools_cv_have_long_long" = yes; then
+if test "$ac_cv_type_long_long" = yes; then
FPTOOLS_CHECK_HTYPE(long long)
FPTOOLS_CHECK_HTYPE(unsigned long long)
fi
[have_winexec=1],
[have_winexec=0])
if test "$have_winexec" = "1"; then
-AC_DEFINE(HAVE_WINEXEC)
+ AC_DEFINE([HAVE_WINEXEC], [1], [Define to 1 if you have the WinExec function.])
fi
FPTOOLS_TRY_LINK_NOWARN(,[
[have_getmodulefilename=1],
[have_getmodulefilename=0])
if test "$have_getmodulefilename" = "1"; then
-AC_DEFINE(HAVE_GETMODULEFILENAME)
+AC_DEFINE([HAVE_GETMODULEFILENAME], [1], [Define to 1 if you have the GetModuleFileName function.])
fi
dnl ** check return type of signal handlers
dnl On BCC, signal handlers have type "int(void)", elsewhere its "void(int)".
AC_TYPE_SIGNAL
if test "$ac_cv_type_signal" = void; then
-AC_DEFINE(VOID_INT_SIGNALS)
+ AC_DEFINE([VOID_INT_SIGNALS], [1], [Define to 1 if signal handlers have type void (*)(int). Otherwise, they're assumed to have type int (*)(void).])
fi
dnl ** check for more functions
LIBS="-framework HaskellSupport"
AC_TRY_LINK_FUNC(__gmpz_fdiv_qr, HaveFrameworkHaskellSupport=YES,)
if test $HaveFrameworkHaskellSupport = YES; then
- AC_DEFINE(HAVE_FRAMEWORK_HASKELLSUPPORT)
+ AC_DEFINE([HAVE_FRAMEWORK_HASKELLSUPPORT], [1], [Define to 1 if the HaskellSupport.framework is installed (Mac OS X only).])
fi;
LIBS="$save_libs"
AC_MSG_RESULT([$HaveFrameworkHaskellSupport])
AC_SUBST(HaveLibMingwEx)
if test $HaveLibMingwEx = YES ; then
- AC_DEFINE(HAVE_MINGWEX)
+ AC_DEFINE([HAVE_MINGWEX], [1], [Define to 1 if you have the mingwex library.])
fi
if test "$HaveLibGmp" = "NO"; then
fi;
fi;
-dnl ** check whether this machine has GNU regex in libc.
-FPTOOLS_REGEX_IN_LIBC
-
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)
AC_CHECK_LIB(bfd, bfd_init)
+dnl ** check for wide-char classifications
+AC_CHECK_HEADERS(wctype.h)
+
dnl ** check for readline, for Hugs and hslibs' Readline
dnl ncurses supersedes termcap and curses, but for compatibility,
dnl we have to check for all...
fi
if test $HaveLibTermcap = YES && test x"$HaveLibReadline" = xYES ; then
- AC_DEFINE(HAVE_READLINE_LIBS,1)
+ AC_DEFINE([HAVE_READLINE_LIBS], [1], [Define to 1 if readline plus any additional libs needed for it exist.])
LibsReadline="readline $LibTermcap"
else
- AC_DEFINE(HAVE_READLINE_LIBS,0)
+ AC_DEFINE([HAVE_READLINE_LIBS], [0], [Define to 1 if readline plus any additional libs needed for it exist.])
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_DEFINE([HAVE_READLINE_4], [1], [Define to 1 if readline has version >= 4.0.])],
+ [AC_DEFINE([HAVE_READLINE_4], [0], [Define to 1 if readline has version >= 4.0.])])
AC_CHECK_LIB(readline, rl_free_undo_list,
- [AC_DEFINE(HAVE_READLINE_4_2, 1)],
- [AC_DEFINE(HAVE_READLINE_4_2, 0)])
+ [AC_DEFINE([HAVE_READLINE_4_2], [1], [Define to 1 if readline has version >= 4.2.])],
+ [AC_DEFINE([HAVE_READLINE_4_2], [0], [Define to 1 if readline has version >= 4.2.])])
else
- AC_DEFINE(HAVE_READLINE_4, 0)
- AC_DEFINE(HAVE_READLINE_4_2, 0)
+ AC_DEFINE([HAVE_READLINE_4], [0], [Define to 1 if readline has version >= 4.0.])
+ AC_DEFINE([HAVE_READLINE_4_2], [0], [Define to 1 if readline has version >= 4.2.])
fi
dnl ** check for math library
HaveLibDL=NO
HaveRtldNext=NO
HaveRtldLocal=YES
- AC_DEFINE(HAVE_RTLDLOCAL)
+ AC_DEFINE([HAVE_RTLDLOCAL], [1], [Define to 1 if RTLD_LOCAL is available.])
HaveRtldGlobal=YES
- AC_DEFINE(HAVE_RTLDGLOBAL)
+ AC_DEFINE([HAVE_RTLDGLOBAL], [1], [Define to 1 if RTLD_GLOBAL is available.])
HaveRtldNow=YES
- AC_DEFINE(HAVE_RTLDNOW)
+ AC_DEFINE([HAVE_RTLDNOW], [1], [Define to 1 if we can see RTLD_NOW in dlfcn.h.])
AC_SUBST(HaveLibDL)
AC_SUBST(HaveRtldNext)
AC_SUBST(HaveRtldLocal)
else
AC_CHECK_LIB(dl, dlopen,
[HaveLibDL=YES
- AC_DEFINE(HAVE_LIBDL)
+ AC_DEFINE([HAVE_LIBDL], [1], [Define to 1 if you need -ldl to get dlopen().])
LIBS="$LIBS -ldl"],
[HaveLibDL=NO])
AC_CHECK_FUNCS(dlopen)
#endif
], [
AC_MSG_RESULT(yes)
- AC_DEFINE(HAVE_RTLDNEXT)
+ AC_DEFINE([HAVE_RTLDNEXT], [1], [Define to 1 if we can see RTLD_NEXT in dlfcn.h.])
HaveRtldNext=YES
], [
AC_MSG_RESULT(no)
[cv_func_usleep_return_type=int])])
case "$cv_func_usleep_return_type" in
"void" )
- AC_DEFINE(USLEEP_RETURNS_VOID, 1,
- [Define if the system headers declare usleep to return void.])
+ AC_DEFINE([USLEEP_RETURNS_VOID], [1], [Define if the system headers declare usleep to return void.])
;;
esac
dnl --------------------------------------------------
AC_MSG_CHECKING(for in_addr_t in netinet/in.h)
AC_EGREP_HEADER(in_addr_t, netinet/in.h,
- [ AC_DEFINE(HAVE_IN_ADDR_T) AC_MSG_RESULT(yes) ],
+ [ AC_DEFINE([HAVE_IN_ADDR_T], [1], [Define to 1 if in_addr_t is available.]) AC_MSG_RESULT(yes) ],
AC_MSG_RESULT(no))
dnl --------------------------------------------------
dnl --------------------------------------------------
AC_MSG_CHECKING(for sendfile in sys/sendfile.h)
AC_EGREP_HEADER(sendfile, sys/sendfile.h,
- [ AC_DEFINE(HAVE_LINUX_SENDFILE) AC_MSG_RESULT(yes) ],
+ [ AC_DEFINE([HAVE_LINUX_SENDFILE], [1], [Define to 1 if you have a Linux sendfile(2) implementation.]) AC_MSG_RESULT(yes) ],
AC_MSG_RESULT(no))
dnl --------------------------------------------------
dnl --------------------------------------------------
AC_MSG_CHECKING(for sendfile in sys/socket.h)
AC_EGREP_HEADER(sendfile, sys/socket.h,
- [ AC_DEFINE(HAVE_BSD_SENDFILE) AC_MSG_RESULT(yes) ],
+ [ AC_DEFINE([HAVE_BSD_SENDFILE], [1], [Define to 1 if you have a BSDish sendfile(2) implementation.]) AC_MSG_RESULT(yes) ],
AC_MSG_RESULT(no))
dnl --------------------------------------------------
dnl ** determine whether or not const works
AC_C_CONST
-dnl ** determine whether ANSI-function prototypes work?
-AC_C_PROTOTYPES
-
dnl ** are we big endian?
AC_C_BIGENDIAN
#ifdef SIGPOLL
we_have_sigpoll
#endif
-], AC_DEFINE(HAVE_SIGPOLL) haveSIGPOLL=yes, haveSIGPOLL=no)
+], AC_DEFINE([HAVE_SIGPOLL], [1], [Define to 1 if you have the sigpoll() function.]) haveSIGPOLL=yes, haveSIGPOLL=no)
AC_MSG_RESULT([$haveSIGPOLL])
AC_MSG_CHECKING([for _SC_GETGR_R_SIZE_MAX])
#endif
],
[AC_MSG_RESULT([yes])
-AC_DEFINE(HAVE_SC_GETGR_R_SIZE_MAX)],
+AC_DEFINE([HAVE_SC_GETGR_R_SIZE_MAX], [1], [Define to 1 if <unistd.h> defines _SC_GETGR_R_SIZE_MAX.])],
[AC_MSG_RESULT([no])])
AC_MSG_CHECKING([for _SC_GETPW_R_SIZE_MAX])
#endif
],
[AC_MSG_RESULT([yes])
-AC_DEFINE(HAVE_SC_GETPW_R_SIZE_MAX)],
+AC_DEFINE([HAVE_SC_GETPW_R_SIZE_MAX], [1], [Define to 1 if <unistd.h> defines _SC_GETPW_R_SIZE_MAX.])],
[AC_MSG_RESULT([no])])
AC_OUTPUT(mk/config.mk, echo timestamp > mk/stamp-h )