X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=configure.in;h=38f838d7cce03340f43ae015e6966ebbd1b25e21;hb=46d103e953bdf0317b6de798ab96fb2550b2b692;hp=e9a6e18ef6bdf824d73f7a448d4b92b0bce8a258;hpb=a977810779813388908daa6dbe57d9d1a05baaa3;p=ghc-hetmet.git diff --git a/configure.in b/configure.in index e9a6e18..38f838d 100644 --- a/configure.in +++ b/configure.in @@ -16,6 +16,12 @@ dnl # First off, a distrib sanity check.. AC_INIT(mk/config.mk.in) +dnl * Declare subdirectories that have a private configure script +dnl +dnl After the toplevel configuration is complete, the script will recurse into +dnl these subdirectories (the use of cache values makes repeated checks cheap) +AC_CONFIG_SUBDIRS(ghc) + # ------------------------------------------------------------------------- # Prepare to generate the following header files # @@ -86,6 +92,24 @@ alpha-dec-osf[[34]]*) HostVendor_CPP='dec' HostOS_CPP='osf3' ;; +alpha-unknown-linux) + HostPlatform=alpha-unknown-linux + TargetPlatform=alpha-unknown-linux + BuildPlatform=alpha-unknown-linux + HostPlatform_CPP='alpha_unknown_linux' + HostArch_CPP='alpha' + HostVendor_CPP='unknown' + HostOS_CPP='linux' + ;; +alpha-unknown-freebsd*) + HostPlatform=alpha-unknown-freebsd + TargetPlatform=alpha-unknown-freebsd + BuildPlatform=alpha-unknown-freebsd + HostPlatform_CPP='alpha_unknown_freebsd' + HostArch_CPP='alpha' + HostVendor_CPP='unknown' + HostOS_CPP='freebsd' + ;; hppa1.1-hp-hpux*) HostPlatform=hppa1.1-hp-hpux # canonicalise for our purposes (hack) TargetPlatform=hppa1.1-hp-hpux @@ -113,14 +137,14 @@ i[[3456]]86-*-linux*) HostVendor_CPP='unknown' HostOS_CPP='linux' ;; -i[[3456]]86-*-freebsd3*) # FreeBSD 3.0+ uses ELF - HostPlatform=i386-unknown-freebsd3 # hack again - TargetPlatform=i386-unknown-freebsd3 - BuildPlatform=i386-unknown-freebsd3 - HostPlatform_CPP='i386_unknown_freebsd3' +i[[3456]]86-*-freebsd[[3-9]]*) # FreeBSD 3.0+ uses ELF + HostPlatform=i386-unknown-freebsd # hack again + TargetPlatform=i386-unknown-freebsd + BuildPlatform=i386-unknown-freebsd + HostPlatform_CPP='i386_unknown_freebsd' HostArch_CPP='i386' HostVendor_CPP='unknown' - HostOS_CPP='freebsd3' + HostOS_CPP='freebsd' ;; i[[3456]]86-*-freebsd2*) # Older FreeBSDs are a.out HostPlatform=i386-unknown-freebsd2 # hack again @@ -298,6 +322,10 @@ dnl AC_SUBST(TargetVendor_CPP) AC_SUBST(exeext) +AC_PATH_PROG(GHC,ghc) +AC_PATH_PROGS(NHC,nhc nhc98) +AC_PATH_PROG(HBC,hbc) + dnl -------------------------------------------------------------- dnl * Project specific configuration options dnl -------------------------------------------------------------- @@ -308,16 +336,16 @@ dnl use either is considered a Feature. dnl ** What command to use to compile compiler sources ? dnl -------------------------------------------------------------- -AC_ARG_WITH(ghc-hc, -[ --with-ghc-hc= - Use a command different from 'ghc-2.10' to compile up the GHC compiler sources. - (no claims currently made that this will work with a compiler other than a - recent version of GHC, but you could always try...) +AC_ARG_WITH(hc, +[ --with-hc= + Use a command different from 'ghc' to compile up Haskell code. + (no claims currently made that this will work with a compiler other than a + recent version of GHC, but you could always try...) ], -[WithGhcHc="$withval"], -[WithGhcHc="ghc"] +[WithHc="$withval"], +[WithHc=$GHC] ) -AC_SUBST(WithGhcHc) +AC_SUBST(WithHc) dnl ** Which gcc to use? dnl -------------------------------------------------------------- @@ -406,6 +434,8 @@ AC_PROG_CPP dnl ** figure out how to do context diffs FPTOOLS_PROG_DIFF +dnl ** Find find command (for Win32's benefit) +AC_PATH_PROG(FindCmd, find) dnl ** look for a decent parser generator (bison preferred) dnl (FPTOOLS_PROG_YACCY is AC_PROG_YACC, but with some extra testing @@ -474,7 +504,7 @@ dnl ** check for full ANSI header (.h) files AC_HEADER_STDC dnl ** check for specific header (.h) files that we are interested in -AC_CHECK_HEADERS(Files.h assert.h console.h ctype.h dirent.h errno.h fcntl.h float.h ftw.h grp.h ieee754.h malloc.h memory.h nlist.h pascal.h pwd.h sgtty.h siginfo.h signal.h stat.h stdlib.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 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/utsname.h sys/vadvise.h sys/wait.h termio.h termios.h time.h types.h unistd.h utime.h values.h vfork.h readline/readline.h bfd.h winsock.h) +AC_CHECK_HEADERS(Files.h assert.h console.h ctype.h dirent.h errno.h fcntl.h float.h ftw.h grp.h ieee754.h malloc.h memory.h nlist.h pascal.h pwd.h sgtty.h siginfo.h signal.h stat.h stdint.h stdlib.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 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/utsname.h sys/vadvise.h sys/wait.h termio.h termios.h time.h types.h unistd.h utime.h values.h vfork.h readline/readline.h readline/history.h bfd.h winsock.h) dnl ** check for DOS include files AC_CHECK_HEADERS(dos.h conio.h io.h std.h) @@ -507,22 +537,47 @@ FPTOOLS_ALTZONE dnl ** does struct stat contain st_blksize? AC_STRUCT_ST_BLKSIZE +dnl ** do we have long longs? +FPTOOLS_C_LONG_LONG + dnl ** what are the sizes of various types dnl (these must come before GHC_CHECK_ALIGNMENT) -AC_CHECK_SIZEOF(unsigned int,4) -AC_CHECK_SIZEOF(float, 4) -AC_CHECK_SIZEOF(double, 8) -AC_CHECK_SIZEOF(long, 4) -AC_CHECK_SIZEOF(void *, 4) +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 +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 +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(unsigned int) dnl redundant but harmless -FPTOOLS_CHECK_ALIGNMENT(long) -FPTOOLS_CHECK_ALIGNMENT(float) +FPTOOLS_CHECK_ALIGNMENT(char) FPTOOLS_CHECK_ALIGNMENT(double) - -dnl ** do we have long longs? -FPTOOLS_C_LONG_LONG +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) +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) +fi +FPTOOLS_CHECK_ALIGNMENT(unsigned short) +FPTOOLS_CHECK_ALIGNMENT(void *) dnl ** can we open files in binary mode? FPTOOLS_O_BINARY @@ -614,6 +669,23 @@ dnl the order of these tests matters: bfd needs liberty AC_CHECK_LIB(iberty, xmalloc) AC_CHECK_LIB(bfd, bfd_init) +dnl ** check for readline, for Hugs +dnl termcap is obsoleted by ncurses, but for compatibility, we have to +dnl check for both... +AC_SEARCH_LIBS(tputs, [ncurses termcap]) + +AC_CHECK_LIB(readline, readline, +[ +AC_DEFINE(HAVE_LIBREADLINE,1) +HaveLibReadline=YES +], +[ +AC_DEFINE(HAVE_LIBREADLINE,0) +HaveLibReadline=NO +]) +AC_SUBST(HaveLibReadline) + + dnl ################################################################ dnl Check for libraries dnl ################################################################ @@ -641,9 +713,6 @@ AC_C_BIGENDIAN errprint((fptools configure script wizard sez: "don't worry, the above warning is harmless (to us.)") ) -dnl ** determine the return type of signal() -AC_TYPE_SIGNAL - dnl ** check for leading underscores in symbol names FPTOOLS_UNDERSCORE