dnl --------------------------------------------------------------
AC_ARG_WITH(ghc,
-[ --with-ghc=<haskell compiler>
- Use a command different from 'ghc' to compile GHC-specific Haskell code
- (including GHC itself).
-],
+[AC_HELP_STRING([--with-ghc=ARG],
+ [Use ARG as the path to GHC [default=autodetect]])],
[ WithGhc="$withval" ],
[
if test "$GHC" = ""; then
AC_PATH_PROG(GHC,ghc)
fi
WithGhc=$GHC
-]
-)
+])
AC_SUBST(WithGhc)
AC_ARG_WITH(hc,
-[ --with-hc=<haskell compiler>
- Use a command different from 'ghc' to compile generic Haskell code.
-],
+[AC_HELP_STRING([--with-hc=ARG],
+ [Use ARG as the path to the compiler for compiling ordinary
+ Haskell code (default= value of --with-ghc)])],
[WithHc="$withval"],
[WithHc=$WithGhc]
)
dnl ** Which gcc to use?
dnl --------------------------------------------------------------
AC_ARG_WITH(gcc,
-[ --with-gcc=<gcc command>
- Use a different command instead of 'gcc' for the GNU C compiler.
-],
+[AC_HELP_STRING([--with-gcc=ARG],
+ [Use ARG as the path to GCC [default=autodetect]])],
[WhatGccIsCalled="$withval"
if test "x$HostPlatform" = "xi386-unknown-mingw32"; then
# Canonicalise to <drive>:/path/to/gcc
dnl ** Booting from .hc files?
dnl --------------------------------------------------------------
AC_ARG_ENABLE(hc-boot,
-[ --enable-hc-boot
- Boot the Glasgow Haskell Compiler from intermediate .hc files.
- (This option is mostly of interest to porters.)
+[AC_HELP_STRING([--enable-hc-boot],
+[Boot the Glasgow Haskell Compiler from intermediate .hc files.
+ (This option is mostly of interest to porters.) [default=no]])],
+[ if test x"$enableval" = x"yes"; then
+ BootingFromHc=YES
+ else
+ BootingFromHc=NO
+ fi
],
-[BootingFromHc=YES],
[BootingFromHc=NO]
)
AC_SUBST(BootingFromHc)
dnl ** Booting from unregisterised .hc files?
dnl --------------------------------------------------------------
AC_ARG_ENABLE(hc-boot-unregisterised,
-[ --enable-hc-boot-unregisterised
- With --enable-hc-boot, treat the intermediate .hc files as
- unregisterised rather than registerised code.
- (This option is mostly of interest to porters.)
+[AC_HELP_STRING([--enable-hc-boot-unregisterised],
+[ With --enable-hc-boot, treat the intermediate .hc files as
+ unregisterised rather than registerised code.
+ (This option is mostly of interest to porters.) [default=no]])],
+[ if test x"$enableval" = x"yes"; then
+ BootingFromUnregisterisedHc=YES
+ else
+ BootingFromUnregisterisedHc=NO
+ fi
],
-[BootingFromUnregisterisedHc=YES],
[BootingFromUnregisterisedHc=NO]
)
AC_SUBST(BootingFromUnregisterisedHc)
dnl ** Enable multi-thread friendly RTS?
dnl --------------------------------------------------------------
AC_ARG_ENABLE(threaded-rts,
-[ --enable-threaded-rts
- Support better interop with OS threads.
+[AC_HELP_STRING([--enable-threaded-rts],
+[Support better interop with OS threads. [default=no]])],
+[ if test x"$enableval" = x"yes"; then
+ ThreadedRts=YES
+ else
+ ThreadedRts=NO
+ fi
],
-[ThreadedRts=YES],
[ThreadedRts=NO]
)
AC_SUBST(ThreadedRts)
dnl ** Enable the building of the ObjectIO?
dnl --------------------------------------------------------------
AC_ARG_ENABLE(objectio,
-[ --enable-objectio
- Build ObjectIO, a portable GUI library for Haskell.
+[AC_HELP_STRING([--enable-objectio],
+[Build ObjectIO, a portable GUI library for Haskell. [default=no]])],
+[ if test x"$enableval" = x"yes"; then
+ GhcLibsWithObjectIO=YES
+ else
+ GhcLibsWithObjectIO=NO
+ fi
],
-[GhcLibsWithObjectIO=YES],
[GhcLibsWithObjectIO=NO]
)
AC_SUBST(GhcLibsWithObjectIO)
-dnl ** Enable the building of the OpenGL/GLUT binding in hslibs?
+dnl ** Enable the building of the OpenAL binding?
dnl --------------------------------------------------------------
-AC_ARG_ENABLE(hopengl,
-[ --enable-hopengl
- Build HOpenGL, a Haskell binding for OpenGL/GLUT.
- On Mac OS X, use --enable-hopengl=x11 to use X11 instead
- of the "native" libraries.
-],
-[GhcLibsWithHOpenGL=YES],
-[GhcLibsWithHOpenGL=NO]
-)
-UseQuartzOpenGL=NO
-if test x"$TargetOS_CPP" = x"darwin"; then
- if test x"$enable_hopengl" != x"x11"; then
- AC_DEFINE([USE_QUARTZ_OPENGL], [1],
- [Define to 1 if native OpenGL should be used on Mac OS X])
- UseQuartzOpenGL=YES
- fi
-fi
-
-AC_SUBST(GhcLibsWithHOpenGL)
+AC_ARG_ENABLE([openal],
+ AC_HELP_STRING([--enable-openal],
+ [Build OpenAL binding [[default=autodetect]]]),
+ [ if test x"$enableval" = x"yes"; then
+ GhcLibsWithOpenAL=YES
+ else
+ GhcLibsWithOpenAL=NO
+ fi
+ ],
+ [GhcLibsWithOpenAL=yes])
+
+AC_SUBST([GhcLibsWithOpenAL])
dnl ** .NET interop support?
dnl --------------------------------------------------------------
AC_ARG_ENABLE(dotnet,
-[ --enable-dotnet
- Build .NET interop layer.
-],
-[DotnetSupport=YES; AC_DEFINE([WANT_DOTNET_SUPPORT], [1], [Define to 1 if you want to include .NET interop support.])],
+[AC_HELP_STRING([--enable-dotnet],
+[Build .NET interop layer. [default=no]])],
+[ if test x"$enableval" = x"yes"; then
+ DotnetSupport=YES; AC_DEFINE([WANT_DOTNET_SUPPORT], [1], [Define to 1 if you want to include .NET interop support.])
+ else
+ DotnetSupport=NO
+ fi],
[DotnetSupport=NO]
)
AC_SUBST(DotnetSupport)
dnl * General configuration checks
dnl --------------------------------------------------------------
+dnl ** Can the unix package be built?
+dnl --------------------------------------------------------------
+
+if test x"$TargetPlatform" = x"i386-unknown-mingw32"; then
+ GhcLibsWithUnix=NO
+else
+ GhcLibsWithUnix=YES
+fi
+AC_SUBST([GhcLibsWithUnix])
+
dnl ** does #! work?
AC_SYS_INTERPRETER()
FP_PROG_CONTEXT_DIFF
dnl ** Find find command (for Win32's benefit)
-FPTOOLS_FIND_FIND
+FP_PROG_FIND
dnl ** figure out how to do a BSD-ish install
AC_PROG_INSTALL
fi
AC_ARG_WITH(greencard,
-[ --with-greencard=<greencard compiler>
- Use a command different from 'greencard' to compile GreenCard files
-],
+[AC_HELP_STRING([--with-greencard=ARG],
+ [Use ARG as the path to greencard [default=autodetct]])],
[
GreenCardCmd=$withval;
FPTOOLS_GREENCARD(3.00)
)
AC_ARG_ENABLE(src-tree-happy,
-[ --enable-src-tree-happy
- Build and use source tree (fptools/happy) version of Happy.
+[AC_HELP_STRING([--enable-src-tree-happy],
+ [Build and use source tree (fptools/happy) version of Happy.
+ [default=autodetect]])],
+[ if test x"$enableval" = x"yes"; then
+ UseSrcTreeHappy=YES
+ else
+ UseSrcTreeHappy=NO
+ fi
],
-[UseSrcTreeHappy=YES],
[UseSrcTreeHappy=NO]
)
dnl ** check for installed happy binary + version
fi;
AC_ARG_ENABLE(src-tree-haddock,
-[ --enable-src-tree-haddock
- Build and use source tree (fptools/haddock) version of Haddock.
+[AC_HELP_STRING([--enable-src-tree-haddock],
+ [Build and use source tree (fptools/haddock) version of Haddock.
+ [default=autodetect]])],
+[ if test x"$enableval" = x"yes"; then
+ UseSrcTreeHaddock=YES
+ else
+ UseSrcTreeHaddock=NO
+ fi
],
-[UseSrcTreeHaddock=YES],
[UseSrcTreeHaddock=NO]
)
dnl ** check for installed haddock
FPTOOLS_HADDOCK
AC_ARG_ENABLE(src-tree-alex,
-[ --enable-src-tree-alex
- Build and use source tree (fptools/alex) version of Alex.
+[AC_HELP_STRING([--enable-src-tree-alex],
+ [Build and use source tree (fptools/alex) version of Alex.
+ [default=autodetect]])],
+[ if test x"$enableval" = x"yes"; then
+ UseSrcTreeAlex=YES
+ else
+ UseSrcTreeAlex=NO
+ fi
],
-[UseSrcTreeAlex=YES],
[UseSrcTreeAlex=NO]
)
dnl ** check for installed alex binary + version
AC_CHECK_HEADER(readline/history.h, [HaveReadlineHistoryH=YES], [HaveReadlineHistoryH=NO])
if test $HaveReadlineReadlineH = YES && test $HaveReadlineHistoryH = YES ; then
- HaveReadlineHeaders=YES
+ GhcLibsWithReadline=YES
AC_DEFINE([HAVE_READLINE_HEADERS], [1], [Define to 1 if readline/readline.h and readline/history.h exist.])
else
- HaveReadlineHeaders=NO
+ GhcLibsWithReadline=NO
AC_DEFINE([HAVE_READLINE_HEADERS], [0], [Define to 1 if readline/readline.h and readline/history.h exist.])
fi
-AC_SUBST(HaveReadlineHeaders)
+AC_SUBST(GhcLibsWithReadline)
dnl ** check for DOS include files
AC_CHECK_HEADERS(dos.h conio.h io.h std.h)
dnl ** check for Windows include files
AC_CHECK_HEADERS(windows.h)
+dnl ** check for OpenGL/GLUT include paths and libraries
+FP_CHECK_GLUT
+
+if test x"$no_GLU" = xyes; then
+ GhcLibsWithOpenGL=NO
+else
+ GhcLibsWithOpenGL=YES
+fi
+AC_SUBST([GhcLibsWithOpenGL])
+
+if test x"$no_GLUT" = xyes; then
+ GhcLibsWithGLUT=NO
+else
+ GhcLibsWithGLUT=YES
+fi
+AC_SUBST([GhcLibsWithGLUT])
+
dnl ** check for OpenGL include files
-if test $UseQuartzOpenGL = YES ; then
- AC_CHECK_HEADERS(OpenGL/gl.h)
+fp_save_cppflags="$CPPFLAGS"
+CPPFLAGS="$CPPFLAGS $X_CFLAGS"
+if test x"$use_quartz_opengl" = xyes; then
+ AC_CHECK_HEADERS([OpenGL/gl.h])
else
- AC_CHECK_HEADERS(GL/gl.h)
+ AC_CHECK_HEADERS([GL/gl.h])
fi
+CPPFLAGS="$fp_save_cppflags"
dnl ** check if it is safe to include both <time.h> and <sys/time.h>
AC_HEADER_TIME
dnl ** check for POSIX regex
HavePosixRegex=NO
-AC_CHECK_HEADER(regex.h,[AC_CHECK_FUNC(regcomp, [HavePosixRegex=YES])])
+AC_CHECK_HEADERS(regex.h,[AC_CHECK_FUNC(regcomp, [HavePosixRegex=YES])])
AC_SUBST(HavePosixRegex)
dnl ** how do we get a timezone name, and UTC offset ?
FPTOOLS_CHECK_HTYPE(nlink_t)
FPTOOLS_CHECK_HTYPE(ssize_t)
FPTOOLS_CHECK_HTYPE(rlim_t)
+FPTOOLS_CHECK_HTYPE(wint_t)
dnl ** Map OpenGL data types to Haskell types
-if test $GhcLibsWithHOpenGL = YES ; then
+if test $GhcLibsWithOpenGL = YES ; then
FPTOOLS_CHECK_HTYPE(GLboolean)
FPTOOLS_CHECK_HTYPE(GLbyte)
FPTOOLS_CHECK_HTYPE(GLubyte)
dnl ** check for specific library functions that we are interested in
-AC_CHECK_FUNCS(access ftime getclock getpagesize getrusage gettimeofday mktime mprotect readlink setitimer stat lstat symlink sysconf timelocal times vadvise localtime_r gmtime_r readdir_r getgrgid_r getgrnam_r getpwuid_r getpwnam_r)
+AC_CHECK_FUNCS(access ftime getclock getpagesize getrusage gettimeofday mktime mprotect readlink setitimer stat lstat siginterrupt symlink sysconf timelocal times vadvise localtime_r gmtime_r readdir_r getgrgid_r getgrnam_r getpwuid_r getpwnam_r)
dnl ** Solaris2 needs additionl flag for getpw*_r()
case "$TargetPlatform" in
fi
if test "$HaveLibGmp" = "NO"; then
-if test "$HostArch_CPP" = "ia64"; then
-AC_MSG_ERROR([You need to install libgmp (the in-tree version does not work on IA64).])
+if test "$HostArch_CPP" = "ia64" -o "$HostArch_CPP" = "mipseb" ; then
+AC_MSG_ERROR([You need to install libgmp (the in-tree version does not work on IA64 or mips64).])
fi;
fi;
fi
dnl ** check for math library
-FPTOOLS_CHECK_LIBM()
-AC_SUBST(LIBM)
+AC_CHECK_LIB([m], [main], [LIBM="-lm"], [LIBM=])
+AC_SUBST([LIBM])
dnl ** check for X Window System
AC_PATH_XTRA()
-dnl ** check for OpenGL/GLUT/GLX include paths and libraries
-if test $GhcLibsWithHOpenGL = YES ; then
- if test $UseQuartzOpenGL = YES ; then
- dnl Take a shortcut for Mac OS X native OpenGL:
- dnl It's in a non-standard location, but it's always there
- GL_CFLAGS=
- GL_LIBS=
- GLUT_LIBS=
- AC_SUBST(GL_CFLAGS)
- AC_SUBST(GL_LIBS)
- AC_SUBST(GLUT_LIBS)
- else
- FPTOOLS_HAVE_OPENGL
- fi
-fi
-
dnl ################################################################
dnl Check for libraries
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=
+AC_PATH_PROGS([GTK_CONFIG], [gtk-config gtk12-config])
+if test -n "$GTK_CONFIG"; then
+ AC_CACHE_CHECK([for version of GTK+], [fp_cv_gtk_version],
+ [fp_cv_gtk_version=`$GTK_CONFIG --version`])
+ FP_COMPARE_VERSIONS([$fp_cv_gtk_version], [-lt], [1.2],
+ [AC_MSG_WARN([GTK+ not usable, need at least version 1.2])
+ GTK_CONFIG=])
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)
+AC_SUBST([GTK_CONFIG])
dnl --------------------------------------------------
dnl * Miscellaneous feature tests
AC_SUBST(LdCmd)
FPTOOLS_LD_X
+FP_EMPTY_STRUCTS
+
AC_MSG_CHECKING([for SIGPOLL])
AC_EGREP_CPP(we_have_sigpoll,
[#include <signal.h>