X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=configure.ac;h=81ac4fc5eb7f1658da10ac2fa839cad0091b00e1;hb=65fd4516b2c410f927337607254b46b5591dd85e;hp=547f864f94021ce9e62857924b4b1da4976ad751;hpb=a69327edb251674e7828445fbf1263ffc55823a2;p=ghc-hetmet.git diff --git a/configure.ac b/configure.ac index 547f864..81ac4fc 100644 --- a/configure.ac +++ b/configure.ac @@ -13,13 +13,15 @@ dnl # see what flags are available. (Better yet, read the documentation!) # +AC_INIT([fptools build system], [1.0], [cvs-fptools@haskell.org], [fptools]) + # First off, a distrib sanity check.. -AC_INIT(mk/config.mk.in) +AC_CONFIG_SRCDIR([mk/config.mk.in]) 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) +AC_PREREQ([2.52]) dnl * Declare subdirectories that have a private configure script dnl @@ -45,7 +47,7 @@ dnl * Choose host(/target/build) platform dnl-------------------------------------------------------------------- dnl Guess host/target/build platform(s) if necessary. -AC_CANONICAL_SYSTEM +AC_CANONICAL_TARGET # "$host" defaults to "$target" if test "x$host" = xNONE ; then @@ -105,6 +107,24 @@ alpha*-unknown-freebsd*) HostVendor_CPP='unknown' HostOS_CPP='freebsd' ;; +alpha*-unknown-openbsd*) + HostPlatform=alpha-unknown-openbsd + TargetPlatform=alpha-unknown-openbsd + BuildPlatform=alpha-unknown-openbsd + HostPlatform_CPP='alpha_unknown_openbsd' + HostArch_CPP='alpha' + HostVendor_CPP='unknown' + HostOS_CPP='openbsd' + ;; +amd64-*-openbsd*|x86_64-*-openbsd*) + HostPlatform=x86_64-unknown-openbsd + TargetPlatform=x86_64-unknown-openbsd + BuildPlatform=x86_64-unknown-openbsd + HostPlatform_CPP='x86_64_unknown_openbsd' + HostArch_CPP='x86_64' + HostVendor_CPP='unknown' + HostOS_CPP='openbsd' + ;; arm*-linux*) HostPlatform=arm-unknown-linux # hack again TargetPlatform=arm-unknown-linux @@ -114,6 +134,15 @@ arm*-linux*) HostVendor_CPP='unknown' HostOS_CPP='linux' ;; +arm*-openbsd*) + HostPlatform=arm-unknown-openbsd + TargetPlatform=arm-unknown-openbsd + BuildPlatform=arm-unknown-openbsd + HostPlatform_CPP='arm_unknown_openbsd' + HostArch_CPP='arm' + HostVendor_CPP='unknown' + HostOS_CPP='openbsd' + ;; hppa*-*-linux*) HostPlatform=hppa-unknown-linux # hack again TargetPlatform=hppa-unknown-linux @@ -123,6 +152,15 @@ hppa*-*-linux*) HostVendor_CPP='unknown' HostOS_CPP='linux' ;; +hppa*-*-openbsd*) + HostPlatform=hppa-unknown-openbsd # hack again + TargetPlatform=hppa-unknown-openbsd + BuildPlatform=hppa-unknown-openbsd + HostPlatform_CPP='hppa_unknown_openbsd' + HostArch_CPP='hppa' + HostVendor_CPP='unknown' + HostOS_CPP='openbsd' + ;; hppa1.1-hp-hpux*) HostPlatform=hppa1.1-hp-hpux # canonicalise for our purposes (hack) TargetPlatform=hppa1.1-hp-hpux @@ -290,6 +328,15 @@ m68k-sun-sunos4*) HostVendor_CPP='sun' HostOS_CPP='sunos4' ;; +m88k-*-openbsd*) + HostPlatform=m88k-unknown-openbsd + TargetPlatform=m88k-unknown-openbsd + BuildPlatform=m88k-unknown-openbsd + HostPlatform_CPP='m88k_unknown_openbsd' + HostArch_CPP='m88k' + HostVendor_CPP='unknown' + HostOS_CPP='openbsd' + ;; mips-*-linux*) HostPlatform=mips-unknown-linux # hack again TargetPlatform=mips-unknown-linux @@ -350,6 +397,15 @@ powerpc-unknown-linux*) HostVendor_CPP='unknown' HostOS_CPP='linux' ;; +powerpc-unknown-openbsd*) + HostPlatform=powerpc-unknown-openbsd + TargetPlatform=powerpc-unknown-openbsd + BuildPlatform=powerpc-unknown-openbsd + HostPlatform_CPP='powerpc_unknown_openbsd' + HostArch_CPP='powerpc' + HostVendor_CPP='unknown' + HostOS_CPP='openbsd' + ;; s390-ibm-linux*) HostPlatform=s390-ibm-linux TargetPlatform=s390-ibm-linux #hack @@ -395,6 +451,24 @@ sparc-*-openbsd*) HostVendor_CPP='unknown' HostOS_CPP='openbsd' ;; +sparc64-*-openbsd*) + HostPlatform=sparc64-unknown-openbsd + TargetPlatform=sparc64-unknown-openbsd + BuildPlatform=sparc64-unknown-openbsd + HostPlatform_CPP='sparc64_unknown_openbsd' + HostArch_CPP='sparc64' + HostVendor_CPP='unknown' + HostOS_CPP='openbsd' + ;; +vax-*-openbsd*) + HostPlatform=vax-unknown-openbsd + TargetPlatform=vax-unknown-openbsd + BuildPlatform=vax-unknown-openbsd + HostPlatform_CPP='vax_unknown_openbsd' + HostArch_CPP='vax' + HostVendor_CPP='unknown' + HostOS_CPP='openbsd' + ;; *) echo "Unrecognised platform: $HostPlatform" exit 1 @@ -448,11 +522,23 @@ dnl Remove common automounter nonsense dnl hardtop=`echo $hardtop | sed 's|^/tmp_mnt.*\(/local/.*\)$|\1|' | sed 's|^/tmp_mnt/|/|' | sed 's|^//\(.\)/|\1:/|' ` -dnl Find 'hardtop_plat', the native format for 'hardtop' (i.e., right kind of \dnl slashes on a Win32 box, but with b-slashes being escaped). +dnl Find 'hardtop_plat', the native format for 'hardtop' +dnl (i.e., right kind of \dnl slashes on a Win32 box, but with b-slashes being escaped). dnl +dnl Note OSTYPE: On Cygwin we need to use 'cygpath' to convert /cygdrive/c/foo to c:/foo +dnl but we must not do that if we aren't building using Cygwin (notably msys), +dnl because cygpath doesn't exist. It seems that 'bash' sets OSTYPE to 'cygwin' +dnl or 'msys' respectively, but cygwin's 'sh' does not. So we hackily assume +dnl that if the shell hasn't set it to 'msys' then we must be in Cygwin. Sigh. +dnl +dnl The Right Thing is probably to test $BuildPlatform instead, but we are sloppy +dnl about setting that correctly at the moment, so we just work around for now. +dnl +dnl The quotes round "$(OSTYPE)" are essential, for the Cygwin-sh case where OSTYPE +dnl is not set. case $HostPlatform in i386-unknown-mingw32 | i386-unknown-cygwin32) - if test ${OSTYPE} != "msys" + if test "${OSTYPE}" != "msys" then # convert $hardtop to a path that mingw will understand too cyghardtop=${hardtop} @@ -522,7 +608,7 @@ AC_ARG_WITH(gcc, [WhatGccIsCalled="$withval" if test "x$HostPlatform" = "xi386-unknown-mingw32" then - if test ${OSTYPE} != "msys" + if test "${OSTYPE}" != "msys" then # Canonicalise to :/path/to/gcc withval=`cygpath -w ${withval} | sed -e 's@\\\\@/@g' ` @@ -577,11 +663,11 @@ 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, [AC_HELP_STRING([--enable-threaded-rts], -[Support better interop with OS threads. [default=no]])], +[DEPRECATED (backwards compatibility only). [default=no]])], [ if test x"$enableval" = x"yes"; then ThreadedRts=YES else @@ -651,7 +737,7 @@ AC_ARG_ENABLE([openal], GhcLibsWithOpenAL=NO fi ], - [GhcLibsWithOpenAL=yes]) + [GhcLibsWithOpenAL=YES]) AC_SUBST([GhcLibsWithOpenAL]) @@ -752,7 +838,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 @@ -769,45 +856,13 @@ dnl ** check for tar dnl if GNU tar is named gtar, look for it first. AC_PATH_PROGS(TarCmd,gtar tar,tar) -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 /etc/sgml.catalog /usr/share/sgml/CATALOG.docbkdsl /usr/local/share/sgml/catalog glafp-utils/docbook/CATALOG*) -if test -z "$Catalog"; then - AC_MSG_RESULT([Warning: You will not be able to build the documentation.]) -fi -case $Catalog in - yes) # assume it is provided by other means (e.g., SGML_CATALOG_FILES env var). - Catalog= - ;; - glafp*) - case $HostOS_CPP in - mingw32) - if test ${OSTYPE} == "msys" - then - Catalog=$hardtop/$Catalog - else - Catalog=`cygpath -w $hardtop/$Catalog` - fi - ;; - *) Catalog=$hardtop/$Catalog - ;; - esac - ;; -esac -AC_SUBST(Catalog) - +dnl ** check for DocBook toolchain +FP_CHECK_DOCBOOK_DTD +FP_DIR_DOCBOOK_XSL([/usr/share/xml/docbook/stylesheet/nwalsh/current /usr/share/xml/docbook/stylesheet/nwalsh /usr/share/sgml/docbook/docbook-xsl-stylesheets* /usr/share/sgml/docbook/xsl-stylesheets* /opt/kde?/share/apps/ksgmltools2/docbook/xsl /usr/share/docbook-xsl /usr/share/sgml/docbkxsl]) +FP_PROG_FO_PROCESSOR dnl ** check for ghc-pkg command -changequote(, )dnl -ghc_pkg_guess=`echo $WithGhc | sed 's@ghc\([^/\\]*\)$@ghc-pkg\1@'` -changequote([, ])dnl -if $ghc_pkg_guess -l >/dev/null 2>/dev/null; then - GhcPkgCmd=$ghc_pkg_guess - AC_MSG_NOTICE([using $ghc_pkg_guess for ghc-pkg]) -else - AC_PATH_PROG(GhcPkgCmd,ghc-pkg) -fi +FP_PROG_GHC_PKG AC_ARG_WITH(greencard, [AC_HELP_STRING([--with-greencard=ARG], @@ -885,11 +940,12 @@ dnl off_t, because it will affect the result of that test. 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 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_HEADERS([bfd.h ctype.h dirent.h dlfcn.h errno.h fcntl.h grp.h limits.h locale.h nlist.h pthread.h pwd.h signal.h sys/mman.h sys/resource.h sys/time.h sys/timeb.h sys/timers.h sys/times.h sys/utsname.h sys/wait.h termios.h time.h utime.h windows.h winsock.h]) -AC_CHECK_HEADER(readline/readline.h, [HaveReadlineReadlineH=YES], [HaveReadlineReadlineH=NO]) -AC_CHECK_HEADER(readline/history.h, [HaveReadlineHistoryH=YES], [HaveReadlineHistoryH=NO]) +AC_CHECK_HEADER([unistd.h], [AC_CHECK_FUNCS(lchown)]) + +AC_CHECK_HEADER([readline/readline.h], [HaveReadlineReadlineH=YES], [HaveReadlineReadlineH=NO]) +AC_CHECK_HEADER([readline/history.h], [HaveReadlineHistoryH=YES], [HaveReadlineHistoryH=NO]) if test $HaveReadlineReadlineH = YES && test $HaveReadlineHistoryH = YES ; then GhcLibsWithReadline=YES @@ -900,12 +956,6 @@ else fi 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 @@ -936,18 +986,9 @@ CPPFLAGS="$fp_save_cppflags" dnl ** check if it is safe to include both and AC_HEADER_TIME -dnl dynamic loading include files -AC_CHECK_HEADERS(dlfcn.h dl.h) - -dnl ** check for farcalloc (in bcc) -AC_CHECK_HEADER(alloc.h,[AC_CHECK_FUNCS(farcalloc)]) - -dnl ** check for valloc (in sunos, solaris, mips, amiga, next, minix, ultrix) -AC_CHECK_HEADER(malloc.h,[AC_CHECK_FUNCS(valloc)]) - dnl ** check for POSIX regex HavePosixRegex=NO -AC_CHECK_HEADERS(regex.h,[AC_CHECK_FUNC(regcomp, [HavePosixRegex=YES])]) +AC_CHECK_HEADERS([regex.h], [AC_CHECK_FUNCS(regcomp, [HavePosixRegex=YES])]) AC_SUBST(HavePosixRegex) dnl ** how do we get a timezone name, and UTC offset ? @@ -956,24 +997,9 @@ AC_STRUCT_TIMEZONE dnl ** do we have altzone? FP_DECL_ALTZONE -dnl ** does struct stat contain st_blksize? -AC_STRUCT_ST_BLKSIZE - dnl ** do we have long longs? AC_CHECK_TYPES([long long]) -dnl ** check what fields struct msghdr contains -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 -#endif -#if HAVE_SYS_SOCKET_H -# include -#endif -#if HAVE_SYS_UIO_H -# include -#endif]) - dnl ** what are the sizes of various types AC_CHECK_SIZEOF(char, 1) AC_CHECK_SIZEOF(double, 8) @@ -1085,16 +1111,16 @@ dnl ** check return type of signal handlers dnl Foo: assumes we can use prototypes. dnl On BCC, signal handlers have type "int(void)", elsewhere its "void(int)". dnl AC_CACHE_CHECK([type of signal handlers], ac_cv_type_signal_handler, -dnl [AC_TRY_COMPILE([#include +dnl [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include dnl #include dnl #ifdef signal dnl #undef signal dnl #endif dnl void (*signal (int, void (*)(int)))(int); -dnl ], -dnl [int i;], -dnl ac_cv_type_signal_handler=void_int, -dnl ac_cv_type_signal_handler=int_void)]) +dnl ]], +dnl [[int i;]])], +dnl [ac_cv_type_signal_handler=void_int], +dnl [ac_cv_type_signal_handler=int_void])]) dnl if test "$ac_cv_type_signal_handler" = void_int; then dnl AC_DEFINE(VOID_INT_SIGNALS) dnl fi @@ -1106,20 +1132,7 @@ if test "$ac_cv_type_signal" = void; then fi dnl ** check for more functions -AC_CHECK_FUNCS(strcasecmp _stricmp stricmp strcmpi) -AC_CHECK_FUNCS(strcmp) -AC_CHECK_FUNCS(realpath _fullpath) -AC_CHECK_FUNCS(PBHSetVolSync macsystem) -AC_CHECK_FUNCS(fgetpos fsetpos fseek ftell) -AC_CHECK_FUNCS(vsnprintf _vsnprintf) -AC_CHECK_FUNCS(snprintf _snprintf ) -AC_CHECK_FUNCS(popen _popen ) -AC_CHECK_FUNCS(pclose _pclose ) -AC_CHECK_FUNCS(setenv unsetenv) - - -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 siginterrupt symlink sysconf timelocal times vadvise localtime_r gmtime_r readdir_r getgrgid_r getgrnam_r getpwuid_r getpwnam_r) +AC_CHECK_FUNCS([ftime getclock getgrgid_r getgrnam_r getpagesize getpwnam_r getpwuid_r getpwnam getpwuid getrusage gettimeofday gmtime_r localtime_r lstat readdir_r readlink setenv setitimer siginterrupt symlink sysconf times unsetenv]) dnl ** Solaris2 needs additionl flag for getpw*_r() case "$TargetPlatform" in @@ -1173,9 +1186,7 @@ AC_CHECK_LIB(bfd, bfd_init) dnl ** check for wide-char classifications dnl FreeBSD has an emtpy wctype.h, so test one of the affected dnl functions if it's really there. -AC_CHECK_HEADERS(wctype.h, - [AC_CHECK_FUNCS(iswspace)] -) +AC_CHECK_HEADERS([wctype.h], [AC_CHECK_FUNCS(iswspace)]) dnl ** check for readline, for Hugs and hslibs' Readline dnl ncurses supersedes termcap and curses, but for compatibility, @@ -1218,6 +1229,13 @@ AC_SUBST([LIBM]) dnl ** check for X Window System AC_PATH_XTRA() +if test "$no_x" = yes; then + GhcLibsWithX11=NO +else + GhcLibsWithX11=YES +fi +AC_SUBST([GhcLibsWithX11]) + dnl ################################################################ dnl Check for libraries dnl ################################################################ @@ -1247,7 +1265,6 @@ else AC_DEFINE([HAVE_LIBDL], [1], [Define to 1 if you need -ldl to get dlopen().]) LIBS="$LIBS -ldl"], [HaveLibDL=NO]) - AC_CHECK_FUNCS(dlopen) AC_SUBST(HaveLibDL) dnl ** sometimes RTLD_NEXT is hidden in #ifdefs we really don't wan to set @@ -1341,30 +1358,6 @@ case "$cv_func_usleep_return_type" in esac dnl -------------------------------------------------- -dnl * test for in_addr_t -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], [1], [Define to 1 if in_addr_t is available.]) AC_MSG_RESULT(yes) ], - AC_MSG_RESULT(no)) - -dnl -------------------------------------------------- -dnl * test for Linux sendfile(2) -dnl -------------------------------------------------- -AC_MSG_CHECKING(for sendfile in sys/sendfile.h) -AC_EGREP_HEADER(sendfile, sys/sendfile.h, - [ 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 * test for BSD sendfile(2) -dnl -------------------------------------------------- -AC_MSG_CHECKING(for sendfile in sys/socket.h) -AC_EGREP_HEADER(sendfile, sys/socket.h, - [ 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 * test for GTK+ dnl -------------------------------------------------- @@ -1386,7 +1379,7 @@ dnl ** can we get alloca? AC_FUNC_ALLOCA dnl ** Working vfork? -AC_FUNC_VFORK +AC_FUNC_FORK dnl ** determine whether or not const works AC_C_CONST @@ -1395,13 +1388,13 @@ dnl ** are we big endian? AC_C_BIGENDIAN dnl ** check for leading underscores in symbol names -FPTOOLS_UNDERSCORE +FP_LEADING_UNDERSCORE dnl ** check for ld, and whether ld has -x option AC_PATH_PROG(LdCmdRaw, ld) case $HostOS_CPP in mingw32) - if test ${OSTYPE} == "msys" + if test "${OSTYPE}" == "msys" then LdCmd=${LdCmdRaw} else @@ -1416,37 +1409,6 @@ FPTOOLS_LD_X FP_EMPTY_STRUCTS -AC_MSG_CHECKING([for SIGPOLL]) -AC_EGREP_CPP(we_have_sigpoll, -[#include -#ifdef SIGPOLL -we_have_sigpoll -#endif -], 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]) -AC_EGREP_CPP(we_have_that_sysconf_thing, -[ -#include -#ifdef _SC_GETGR_R_SIZE_MAX -we_have_that_sysconf_thing -#endif -], -[AC_MSG_RESULT([yes]) -AC_DEFINE([HAVE_SC_GETGR_R_SIZE_MAX], [1], [Define to 1 if defines _SC_GETGR_R_SIZE_MAX.])], -[AC_MSG_RESULT([no])]) - -AC_MSG_CHECKING([for _SC_GETPW_R_SIZE_MAX]) -AC_EGREP_CPP(we_have_that_sysconf_thing, -[ -#include -#ifdef _SC_GETPW_R_SIZE_MAX -we_have_that_sysconf_thing -#endif -], -[AC_MSG_RESULT([yes]) -AC_DEFINE([HAVE_SC_GETPW_R_SIZE_MAX], [1], [Define to 1 if defines _SC_GETPW_R_SIZE_MAX.])], -[AC_MSG_RESULT([no])]) - -AC_OUTPUT(mk/config.mk, echo timestamp > mk/stamp-h ) +AC_CONFIG_FILES([mk/config.mk]) +AC_CONFIG_COMMANDS([mk/stamp-h],[echo timestamp > mk/stamp-h]) +AC_OUTPUT