X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=configure.ac;h=1b8b729b4d48317e90441fe52f50f5dfc1721bf8;hb=444a39a6939ed1d2dce14436afb0d52f754d0d94;hp=6bbaa35aaa504f7fb974f4966c6c8525bb98f74a;hpb=f5d11ad4c5cd0c1e4f5fc95c43ba68da4e399bbe;p=ghc-hetmet.git diff --git a/configure.ac b/configure.ac index 6bbaa35..1b8b729 100644 --- a/configure.ac +++ b/configure.ac @@ -452,11 +452,16 @@ dnl Find 'hardtop_plat', the native format for 'hardtop' (i.e., right kind of \d dnl case $HostPlatform in i386-unknown-mingw32 | i386-unknown-cygwin32) - # convert $hardtop to a path that mingw will understand too - cyghardtop=${hardtop} - hardtop=`cygpath -w ${cyghardtop} | sed -e 's@\\\\@/@g'` - hardtop_plat=`cygpath -w ${cyghardtop} | sed -e 's@\\\\@\\\\\\\\@g'` - ;; + if test ${OSTYPE} != "msys" + then + # convert $hardtop to a path that mingw will understand too + cyghardtop=${hardtop} + hardtop=`cygpath -w ${cyghardtop} | sed -e 's@\\\\@/@g'` + hardtop_plat=`cygpath -w ${cyghardtop} | sed -e 's@\\\\@\\\\\\\\@g'` + else + hardtop_plat=${hardtop} + fi + ;; *) hardtop_plat=${hardtop} ;; @@ -478,24 +483,21 @@ dnl ** What command to use to compile compiler sources ? dnl -------------------------------------------------------------- AC_ARG_WITH(ghc, -[ --with-ghc= - 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= - 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] ) @@ -515,13 +517,16 @@ AC_PATH_PROG(HBC,hbc) dnl ** Which gcc to use? dnl -------------------------------------------------------------- AC_ARG_WITH(gcc, -[ --with-gcc= - 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 :/path/to/gcc - withval=`cygpath -w ${withval} | sed -e 's@\\\\@/@g' ` + if test "x$HostPlatform" = "xi386-unknown-mingw32" + then + if test ${OSTYPE} != "msys" + then + # Canonicalise to :/path/to/gcc + withval=`cygpath -w ${withval} | sed -e 's@\\\\@/@g' ` + fi fi; CC="$withval"], [WhatGccIsCalled="gcc"] @@ -531,11 +536,15 @@ AC_SUBST(WhatGccIsCalled) 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) @@ -543,12 +552,16 @@ 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) @@ -564,13 +577,17 @@ if test "$BootingFromHc" = "NO" -a "$WithGhc" = "" -a -d "$srcdir/ghc"; then AC_MSG_ERROR([GHC is required unless bootstrapping from .hc files.]) fi; -dnl ** Enable multi-thread friendly RTS? +dnl ** --enable-threaded-rts (not used any more) dnl -------------------------------------------------------------- AC_ARG_ENABLE(threaded-rts, -[ --enable-threaded-rts - Support better interop with OS threads. +[AC_HELP_STRING([--enable-threaded-rts], +[DEPRECATED (backwards compatibility only). [default=no]])], +[ if test x"$enableval" = x"yes"; then + ThreadedRts=YES + else + ThreadedRts=NO + fi ], -[ThreadedRts=YES], [ThreadedRts=NO] ) AC_SUBST(ThreadedRts) @@ -611,43 +628,43 @@ dnl fi 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) @@ -661,6 +678,16 @@ dnl -------------------------------------------------------------- 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() @@ -725,7 +752,8 @@ dnl If you can run configure, you certainly 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 +FP_PROG_AR_NEEDS_RANLIB +FP_PROG_AR_SUPPORTS_INPUT dnl ** Check to see whether ln -s works AC_PROG_LN_S @@ -756,7 +784,12 @@ case $Catalog in glafp*) case $HostOS_CPP in mingw32) - Catalog=`cygpath -w $hardtop/$Catalog` + if test ${OSTYPE} == "msys" + then + Catalog=$hardtop/$Catalog + else + Catalog=`cygpath -w $hardtop/$Catalog` + fi ;; *) Catalog=$hardtop/$Catalog ;; @@ -778,9 +811,8 @@ else fi AC_ARG_WITH(greencard, -[ --with-greencard= - 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) @@ -788,10 +820,15 @@ 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 @@ -801,20 +838,30 @@ FPTOOLS_HAPPY 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 @@ -846,13 +893,13 @@ AC_CHECK_HEADER(readline/readline.h, [HaveReadlineReadlineH=YES], [HaveReadlineR 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) @@ -860,12 +907,32 @@ 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 and AC_HEADER_TIME @@ -986,7 +1053,7 @@ 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) @@ -1009,41 +1076,11 @@ FP_CHECK_CONSTS([E2BIG EACCES EADDRINUSE EADDRNOTAVAIL EADV EAFNOSUPPORT EAGAIN dnl ** can we open files in binary mode? FP_CHECK_CONST([O_BINARY], [#include ], [0]) -dnl ** check for GetModuleFileName and WinExec (windows only) -dnl Old: AC_CHECK_FUNCS(WinExec GetModuleFileName) dnl Windows -dnl Doesn't work because the linker can't see the functions if -dnl you omit the #include . (I've no idea why not...) - -FPTOOLS_TRY_LINK_NOWARN(,[ -#if HAVE_WINDOWS_H -#include -#endif -main() { - WinExec("",0); - exit(0); -} -], -[have_winexec=1], -[have_winexec=0]) -if test "$have_winexec" = "1"; then - AC_DEFINE([HAVE_WINEXEC], [1], [Define to 1 if you have the WinExec function.]) -fi +FP_CHECK_FUNC([WinExec], + [@%:@include ], [WinExec("",0)]) -FPTOOLS_TRY_LINK_NOWARN(,[ -#if HAVE_WINDOWS_H -#include -#endif -main() { - char* dir; - GetModuleFileName((HMODULE)0,dir,0); - exit(0); -} -], -[have_getmodulefilename=1], -[have_getmodulefilename=0]) -if test "$have_getmodulefilename" = "1"; then -AC_DEFINE([HAVE_GETMODULEFILENAME], [1], [Define to 1 if you have the GetModuleFileName function.]) -fi +FP_CHECK_FUNC([GetModuleFileName], + [@%:@include ], [GetModuleFileName((HMODULE)0,(LPTSTR)0,0)]) dnl ** check return type of signal handlers dnl Foo: assumes we can use prototypes. @@ -1124,8 +1161,8 @@ if test $HaveLibMingwEx = YES ; then 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; @@ -1176,27 +1213,18 @@ else fi dnl ** check for math library -FPTOOLS_CHECK_LIBM() -AC_SUBST(LIBM) +AC_CHECK_LIB([m], [atan], [LIBS="-lm $LIBS"; 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 +if test "$no_x" = yes; then + GhcLibsWithX11=NO +else + GhcLibsWithX11=YES fi +AC_SUBST([GhcLibsWithX11]) dnl ################################################################ dnl Check for libraries @@ -1303,8 +1331,6 @@ else AC_SUBST(HaveRtldNow) fi -FPTOOLS_CHECK_LIB_NOWARN(m, atan) - dnl ---------- usleep ---------- dnl --- stolen from guile configure --- dnl --- FIXME: /usr/include/unistd.h can't be right? @@ -1350,25 +1376,15 @@ 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 @@ -1392,7 +1408,13 @@ FPTOOLS_UNDERSCORE dnl ** check for ld, and whether ld has -x option AC_PATH_PROG(LdCmdRaw, ld) case $HostOS_CPP in - mingw32) LdCmd=`cygpath -w ${LdCmdRaw} | sed -e 's@\\\\@/@g' ` + mingw32) + if test ${OSTYPE} == "msys" + then + LdCmd=${LdCmdRaw} + else + LdCmd=`cygpath -w ${LdCmdRaw} | sed -e 's@\\\\@/@g' ` + fi ;; *) LdCmd=${LdCmdRaw} ;; @@ -1400,6 +1422,8 @@ esac AC_SUBST(LdCmd) FPTOOLS_LD_X +FP_EMPTY_STRUCTS + AC_MSG_CHECKING([for SIGPOLL]) AC_EGREP_CPP(we_have_sigpoll, [#include