X-Git-Url: http://git.megacz.com/?p=ghc-hetmet.git;a=blobdiff_plain;f=configure.ac;h=e2d7536b9fcd8811988967693190ac3a860e4bdd;hp=cf21e3922e9aed44754da95be7fbf0e38149976b;hb=c69886a17db51737b2b81f778b64262e11083d0e;hpb=cc8f20ad72bc67f61a8a079d3ef0e7a715ad18e5 diff --git a/configure.ac b/configure.ac index cf21e39..e2d7536 100644 --- a/configure.ac +++ b/configure.ac @@ -3,23 +3,25 @@ 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 # -# (c) The AQUA Project, Glasgow University, 1994-1998 +# (c) The AQUA Project, Glasgow University, 1994-2004 # # Configure script template for the Glasgow functional programming tools # -# Process with 'autoconf' to get a working configure script. +# Process with 'autoreconf' to get a working configure script. # # For the generated configure script, do "./configure --help" to # 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 @@ -404,6 +406,16 @@ powerpc-unknown-openbsd*) HostVendor_CPP='unknown' HostOS_CPP='openbsd' ;; +powerpc64-unknown-linux*) + HostPlatform=powerpc64-unknown-linux + TargetPlatform=powerpc64-unknown-linux + BuildPlatform=powerpc64-unknown-linux + HostPlatform_CPP='powerpc64_unknown_linux' + HostArch_CPP='powerpc64' + HostVendor_CPP='unknown' + HostOS_CPP='linux' + ;; + s390-ibm-linux*) HostPlatform=s390-ibm-linux TargetPlatform=s390-ibm-linux #hack @@ -566,17 +578,15 @@ dnl use either is considered a Feature. dnl ** What command to use to compile compiler sources ? dnl -------------------------------------------------------------- -AC_ARG_WITH(ghc, +AC_ARG_WITH([ghc], [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) + [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) + WithGhc="$GHC"]) +AC_SUBST([WithGhc]) AC_ARG_WITH(hc, [AC_HELP_STRING([--with-hc=ARG], @@ -612,7 +622,9 @@ AC_ARG_WITH(gcc, withval=`cygpath -w ${withval} | sed -e 's@\\\\@/@g' ` fi fi; - CC="$withval"], + CC="$withval" + export CC + ], [WhatGccIsCalled="gcc"] ) AC_SUBST(WhatGccIsCalled) @@ -724,21 +736,6 @@ AC_ARG_ENABLE(objectio, ) AC_SUBST(GhcLibsWithObjectIO) -dnl ** Enable the building of the OpenAL binding? -dnl -------------------------------------------------------------- -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, @@ -807,9 +804,8 @@ 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 dnl -AC_PROG_CC -FPTOOLS_HAVE_GCC -FPTOOLS_GCC_NEEDS_NO_OMIT_LFPTR +FP_HAVE_GCC +FP_MINGW_GCC dnl ** figure out how to invoke cpp directly (gcc -E is no good) AC_PROG_CPP @@ -940,8 +936,6 @@ AC_SYS_LARGEFILE dnl ** check for specific header (.h) files that we are interested in 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([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]) @@ -954,33 +948,6 @@ else fi AC_SUBST(GhcLibsWithReadline) -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 -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]) -fi -CPPFLAGS="$fp_save_cppflags" - dnl ** check if it is safe to include both and AC_HEADER_TIME @@ -995,9 +962,6 @@ 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]) @@ -1039,69 +1003,6 @@ fi 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(signed char) -FPTOOLS_CHECK_HTYPE(unsigned char) -FPTOOLS_CHECK_HTYPE(short) -FPTOOLS_CHECK_HTYPE(unsigned short) -FPTOOLS_CHECK_HTYPE(int) -FPTOOLS_CHECK_HTYPE(unsigned int) -FPTOOLS_CHECK_HTYPE(long) -FPTOOLS_CHECK_HTYPE(unsigned long) -if test "$ac_cv_type_long_long" = yes; then -FPTOOLS_CHECK_HTYPE(long long) -FPTOOLS_CHECK_HTYPE(unsigned long long) -fi -FPTOOLS_CHECK_HTYPE(float) -FPTOOLS_CHECK_HTYPE(double) -FPTOOLS_CHECK_HTYPE(ptrdiff_t) -FPTOOLS_CHECK_HTYPE(size_t) -FPTOOLS_CHECK_HTYPE(wchar_t) -dnl Int32 is a HACK for non-ISO C compilers -FPTOOLS_CHECK_HTYPE(sig_atomic_t, Int32) -FPTOOLS_CHECK_HTYPE(clock_t) -FPTOOLS_CHECK_HTYPE(time_t) -FPTOOLS_CHECK_HTYPE(dev_t, Word32) -FPTOOLS_CHECK_HTYPE(ino_t) -FPTOOLS_CHECK_HTYPE(mode_t) -FPTOOLS_CHECK_HTYPE(off_t) -FPTOOLS_CHECK_HTYPE(pid_t) -FPTOOLS_CHECK_HTYPE(gid_t) -FPTOOLS_CHECK_HTYPE(uid_t) -FPTOOLS_CHECK_HTYPE(cc_t) -FPTOOLS_CHECK_HTYPE(speed_t) -FPTOOLS_CHECK_HTYPE(tcflag_t) -FPTOOLS_CHECK_HTYPE(blkcnt_t) -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 $GhcLibsWithOpenGL = YES ; then -FPTOOLS_CHECK_HTYPE(GLboolean) -FPTOOLS_CHECK_HTYPE(GLbyte) -FPTOOLS_CHECK_HTYPE(GLubyte) -FPTOOLS_CHECK_HTYPE(GLshort) -FPTOOLS_CHECK_HTYPE(GLushort) -FPTOOLS_CHECK_HTYPE(GLint) -FPTOOLS_CHECK_HTYPE(GLuint) -FPTOOLS_CHECK_HTYPE(GLsizei) -FPTOOLS_CHECK_HTYPE(GLenum) -FPTOOLS_CHECK_HTYPE(GLbitfield) -FPTOOLS_CHECK_HTYPE(GLfloat) -FPTOOLS_CHECK_HTYPE(GLclampf) -FPTOOLS_CHECK_HTYPE(GLdouble) -FPTOOLS_CHECK_HTYPE(GLclampd) -fi - -FP_CHECK_CONSTS([E2BIG EACCES EADDRINUSE EADDRNOTAVAIL EADV EAFNOSUPPORT EAGAIN EALREADY EBADF EBADMSG EBADRPC EBUSY ECHILD ECOMM ECONNABORTED ECONNREFUSED ECONNRESET EDEADLK EDESTADDRREQ EDIRTY EDOM EDQUOT EEXIST EFAULT EFBIG EFTYPE EHOSTDOWN EHOSTUNREACH EIDRM EILSEQ EINPROGRESS EINTR EINVAL EIO EISCONN EISDIR ELOOP EMFILE EMLINK EMSGSIZE EMULTIHOP ENAMETOOLONG ENETDOWN ENETRESET ENETUNREACH ENFILE ENOBUFS ENODATA ENODEV ENOENT ENOEXEC ENOLCK ENOLINK ENOMEM ENOMSG ENONET ENOPROTOOPT ENOSPC ENOSR ENOSTR ENOSYS ENOTBLK ENOTCONN ENOTDIR ENOTEMPTY ENOTSOCK ENOTTY ENXIO EOPNOTSUPP EPERM EPFNOSUPPORT EPIPE EPROCLIM EPROCUNAVAIL EPROGMISMATCH EPROGUNAVAIL EPROTO EPROTONOSUPPORT EPROTOTYPE ERANGE EREMCHG EREMOTE EROFS ERPCMISMATCH ERREMOTE ESHUTDOWN ESOCKTNOSUPPORT ESPIPE ESRCH ESRMNT ESTALE ETIME ETIMEDOUT ETOOMANYREFS ETXTBSY EUSERS EWOULDBLOCK EXDEV], [#include -#include ]) - -dnl ** can we open files in binary mode? -FP_CHECK_CONST([O_BINARY], [#include ], [0]) - FP_CHECK_FUNC([WinExec], [@%:@include ], [WinExec("",0)]) @@ -1112,16 +1013,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 @@ -1133,15 +1034,10 @@ if test "$ac_cv_type_signal" = void; then fi dnl ** check for more functions -AC_CHECK_FUNCS([ftime getclock getgrgid_r getgrnam_r getpagesize getpwnam_r getpwuid_r 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 - *-solaris2*) - unix_SRC_HSC2HS_OPTS="-D_POSIX_PTHREAD_SEMANTICS" - AC_SUBST(unix_SRC_HSC2HS_OPTS) - ;; -esac +dnl ** The following have been verified to be used in ghc/, but might be used somewhere else, too. +AC_CHECK_FUNCS([getclock getrusage gettimeofday setitimer siginterrupt sysconf times]) +dnl ** For ghc/rts/gmp: +AC_CHECK_FUNCS([getpagesize]) dnl ** check whether this machine has gmp3 installed AC_CHECK_LIB(gmp, __gmpz_fdiv_qr, HaveLibGmp=YES; LibGmp=gmp, @@ -1184,11 +1080,6 @@ 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 -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)]) - 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... @@ -1227,16 +1118,6 @@ dnl ** check for math library AC_CHECK_LIB([m], [atan], [LIBS="-lm $LIBS"; LIBM="-lm"], [LIBM=]) 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 ################################################################ @@ -1341,37 +1222,6 @@ else AC_SUBST(HaveRtldNow) fi -dnl ---------- usleep ---------- -dnl --- stolen from guile configure --- -dnl --- FIXME: /usr/include/unistd.h can't be right? - -### On some systems usleep has no return value. If it does have one, -### we'd like to return it; otherwise, we'll fake it. -AC_CACHE_CHECK([return type of usleep], cv_func_usleep_return_type, - [AC_EGREP_HEADER(changequote(<, >)changequote([, ]), - /usr/include/unistd.h, - [cv_func_usleep_return_type=void], - [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.]) - ;; -esac - -dnl -------------------------------------------------- -dnl * test for GTK+ -dnl -------------------------------------------------- - -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 -AC_SUBST([GTK_CONFIG]) - dnl -------------------------------------------------- dnl * Miscellaneous feature tests dnl -------------------------------------------------- @@ -1380,7 +1230,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 @@ -1408,15 +1258,6 @@ esac AC_SUBST(LdCmd) 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_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