[project @ 1999-07-27 10:53:53 by sof]
[ghc-hetmet.git] / aclocal.m4
index accbaa3..9ae6449 100644 (file)
@@ -1,4 +1,4 @@
-dnl $Id: aclocal.m4,v 1.31 1998/11/17 01:24:58 reid Exp $
+dnl $Id: aclocal.m4,v 1.43 1999/07/14 13:26:48 simonmar Exp $
 dnl 
 dnl Extra autoconf macros for the Glasgow fptools
 dnl
 dnl 
 dnl Extra autoconf macros for the Glasgow fptools
 dnl
@@ -7,6 +7,28 @@ dnl prefixed with FPTOOLS_ to ensure we don't clash
 dnl with any pre-supplied autoconf ones.
 
 dnl
 dnl with any pre-supplied autoconf ones.
 
 dnl
+dnl Is timezone around? (in a header file)
+dnl 
+AC_DEFUN(FPTOOLS_HAVE_TIMEZONE,
+[AC_CACHE_CHECK([timezone], fptools_cv_have_timezone,
+[AC_TRY_COMPILE([#if TIME_WITH_SYS_TIME
+# include <sys/time.h>
+# include <time.h>
+#else
+# if HAVE_SYS_TIME_H
+#  include <sys/time.h>
+# else
+#  include <time.h>
+# endif
+#endif
+], [return timezone;], 
+fptools_cv_have_timezone=yes, fptools_cv_have_timezone=no)])
+if test "$fptools_cv_have_timezone" = yes; then
+  AC_DEFINE(HAVE_TIMEZONE)
+fi
+])
+
+dnl
 dnl Has timezone the type time_t or long (HP-UX 10.20 apparently
 dnl has `long'..)
 dnl 
 dnl Has timezone the type time_t or long (HP-UX 10.20 apparently
 dnl has `long'..)
 dnl 
@@ -23,7 +45,7 @@ AC_DEFUN(FPTOOLS_TYPE_TIMEZONE,
 # endif
 #endif
 
 # endif
 #endif
 
-extern time_t timezone;
+extern time_t timezone;        
 ],
 [int i;], fptools_cv_type_timezone=time_t, fptools_cv_type_timezone=long)])
 AC_DEFINE_UNQUOTED(TYPE_TIMEZONE, $fptools_cv_type_timezone)
 ],
 [int i;], fptools_cv_type_timezone=time_t, fptools_cv_type_timezone=long)])
 AC_DEFINE_UNQUOTED(TYPE_TIMEZONE, $fptools_cv_type_timezone)
@@ -50,6 +72,7 @@ if test "$fptools_cv_altzone" = yes; then
 fi
 ])
 
 fi
 ])
 
+
 dnl ** check for leading underscores in symbol names
 dnl 
 dnl Test for determining whether symbol names have a leading
 dnl ** check for leading underscores in symbol names
 dnl 
 dnl Test for determining whether symbol names have a leading
@@ -70,11 +93,14 @@ dnl
 dnl Hack!: nlist() under Digital UNIX insist on there being an _,
 dnl but symbol table listings shows none. What is going on here?!?
 dnl
 dnl Hack!: nlist() under Digital UNIX insist on there being an _,
 dnl but symbol table listings shows none. What is going on here?!?
 dnl
+dnl Another hack: cygwin doesn't come with nlist.h , so we hardwire
+dnl the underscoredness of that "platform"
 changequote(<<, >>)dnl
 <<
 case $HostPlatform in
 alpha-dec-osf*) fptools_cv_lead_uscore='no';;
 changequote(<<, >>)dnl
 <<
 case $HostPlatform in
 alpha-dec-osf*) fptools_cv_lead_uscore='no';;
-*cygwin32)      fptools_cv_lead_uscore='yes';;
+*cygwin32) fptools_cv_lead_uscore='yes';;
+*mingw32) fptools_cv_lead_uscore='yes';;
 *) >>
 changequote([, ])dnl
 AC_TRY_RUN([#ifdef HAVE_NLIST_H
 *) >>
 changequote([, ])dnl
 AC_TRY_RUN([#ifdef HAVE_NLIST_H
@@ -111,7 +137,7 @@ dnl
 dnl Check for Happy and version.
 dnl
 AC_DEFUN(FPTOOLS_HAPPY,
 dnl Check for Happy and version.
 dnl
 AC_DEFUN(FPTOOLS_HAPPY,
-[AC_PATH_PROG(HappyCmd,happy)
+[AC_PATH_PROG(HappyCmd,happy,,$PATH ${hardtop}/happy/src)
 AC_CACHE_CHECK([for version of happy], fptools_cv_happy_version,
 [if test x"$HappyCmd" != x; then
    fptools_cv_happy_version="`$HappyCmd -v |
 AC_CACHE_CHECK([for version of happy], fptools_cv_happy_version,
 [if test x"$HappyCmd" != x; then
    fptools_cv_happy_version="`$HappyCmd -v |
@@ -277,36 +303,6 @@ HaveGcc=`echo $fptools_cv_have_gcc | sed 'y/yesno/YESNO/'`
 AC_SUBST(HaveGcc)
 ])
 
 AC_SUBST(HaveGcc)
 ])
 
-dnl
-dnl FPTOOLS_PROG_GNUCPP gathers the path to the cpp that the
-dnl gcc driver calls upon.
-dnl
-dnl Substitutes: GNUCPP and RAWCPP (latter is 'GNUCPP -traditional')
-dnl
-AC_DEFUN(FPTOOLS_PROG_GNUCPP,
-[AC_CACHE_CHECK([how to invoke GNU cpp directly], fptools_cv_gnu_cpp,
-[if test "$HaveGcc" = "YES"; then
-       echo > conftest.c
-       gcc -v -E conftest.c >/dev/null 2>conftest.out
-       # \x5c = backslash
-       echo 'tr/\x5c/\//; /(\S+\/)cpp/ && print "[$]{1}cpp -iprefix [$]1";' > conftest.pl
-       fptools_cv_gnu_cpp="`eval $PerlCmd -n conftest.pl conftest.out`"
-       rm -fr conftest*
- else
-       # We need to be able to invoke CPP directly, preferably
-       # with input from stdin (mkdependHS and hscpp depend on
-       # this at the moment).
-       # Take a guess at what to use, this probably won't work.
-       echo Warning: GNU cpp not found, using $CPP
-       fptools_cv_gnu_cpp = $CPP
- fi
-])
-GNUCPP=$fptools_cv_gnu_cpp
-RAWCPP="$GNUCPP -traditional"
-AC_SUBST(GNUCPP)
-AC_SUBST(RAWCPP)
-])
-
 dnl Small feature test for perl version. Assumes PerlCmd
 dnl contains path to perl binary
 dnl
 dnl Small feature test for perl version. Assumes PerlCmd
 dnl contains path to perl binary
 dnl
@@ -441,7 +437,7 @@ int i;
 int main() { return ((char*)&f > (char*)&i); }
 
 ],
 int main() { return ((char*)&f > (char*)&i); }
 
 ],
-fptools_cv_code_bef_data=yes, fptools_cv_code_bef_data=no)])
+fptools_cv_code_bef_data=yes, fptools_cv_code_bef_data=no,false)])
 if test "$fptools_cv_code_bef_data" = yes; then
   AC_DEFINE(CODE_BEFORE_DATA)
 fi
 if test "$fptools_cv_code_bef_data" = yes; then
   AC_DEFINE(CODE_BEFORE_DATA)
 fi
@@ -454,50 +450,56 @@ AC_DEFUN(FPTOOLS_IN_SCOPE,AC_TRY_LINK([extern char* $1;],[return (int)&$2], $3=y
 dnl *** What's the end-of-text-section marker called? ***
 dnl
 AC_DEFUN(FPTOOLS_END_TEXT_SECTION,
 dnl *** What's the end-of-text-section marker called? ***
 dnl
 AC_DEFUN(FPTOOLS_END_TEXT_SECTION,
-[AC_CACHE_CHECK([for end of text section marker], fptools_cv_end_of_text,
-[
+[AC_MSG_CHECKING([for end of text section marker])
 not_done=1
 not_done=1
-for i in etext _etext __etext; do
-  FPTOOLS_IN_SCOPE($i,$i,fptools_cv_end_of_text)
-  if test "$fptools_cv_end_of_text" = yes; then
-   AC_DEFINE_UNQUOTED(TEXT_SECTION_END_MARKER, $i)
+for i in data_start _data_start etext _etext __etext; do
+  FPTOOLS_IN_SCOPE($i,$i,fptools_end_of_text)
+  if test "$fptools_end_of_text" = yes; then
+   AC_CACHE_VAL([fptools_cv_end_of_text_decl], AC_DEFINE_UNQUOTED(TEXT_SECTION_END_MARKER_DECL, $i))
+   AC_CACHE_VAL([fptools_cv_end_of_text], AC_DEFINE_UNQUOTED(TEXT_SECTION_END_MARKER, $i))
    not_done=0
    break
   fi
 done
 if test "$not_done" = 1; then
    not_done=0
    break
   fi
 done
 if test "$not_done" = 1; then
-FPTOOLS_IN_SCOPE(etext asm("etext"),etext,fptools_cv_end_of_text);
-if test "$fptools_cv_end_of_text" = yes; then
-  AC_DEFINE(TEXT_SECTION_END_MARKER, etext asm("etext"))
+FPTOOLS_IN_SCOPE(etext asm("etext"),etext,fptools_end_of_text);
+if test "$fptools_end_of_text" = yes; then
+  AC_CACHE_VAL([fptools_cv_end_of_text], AC_DEFINE_UNQUOTED(TEXT_SECTION_END_MARKER, etext))
+  AC_CACHE_VAL([fptools_cv_end_of_text_decl], AC_DEFINE_UNQUOTED(TEXT_SECTION_END_MARKER_DECL, etext asm("etext")))
 else
 else
-  AC_DEFINE(TEXT_SECTION_END_MARKER, dunno_what_it_is)
+  AC_DEFINE_UNQUOTED(TEXT_SECTION_END_MARKER_DECL, dunno_what_it_is)
+  AC_DEFINE_UNQUOTED(TEXT_SECTION_END_MARKER, dunno_what_it_is)
 fi
 fi
 fi
 fi
-])])
+AC_MSG_RESULT([$]fptools_cv_end_of_text)
+])
 
 dnl *** What's the end-of-data-section marker called? ***
 dnl
 AC_DEFUN(FPTOOLS_END_DATA_SECTION,
 
 dnl *** What's the end-of-data-section marker called? ***
 dnl
 AC_DEFUN(FPTOOLS_END_DATA_SECTION,
-[AC_CACHE_CHECK([for end of data section marker], fptools_cv_end_of_data,
-[
+[AC_MSG_CHECKING([for end of data section marker])
 not_done=1
 for i in end _end __end; do
 not_done=1
 for i in end _end __end; do
-  FPTOOLS_IN_SCOPE($i,$i,fptools_cv_end_of_data)
-  if test "$fptools_cv_end_of_data" = yes; then
-   AC_DEFINE_UNQUOTED(DATA_SECTION_END_MARKER, $i)
+  FPTOOLS_IN_SCOPE($i,$i,fptools_end_of_data)
+  if test "$fptools_end_of_data" = yes; then
+   AC_CACHE_VAL([fptools_cv_end_of_data_decl], [AC_DEFINE_UNQUOTED(DATA_SECTION_END_MARKER_DECL, $i)])
+   AC_CACHE_VAL([fptools_cv_end_of_data], [AC_DEFINE_UNQUOTED(DATA_SECTION_END_MARKER, $i)])
    not_done=0
    break
   fi
 done
 if test "$not_done" = 1; then
    not_done=0
    break
   fi
 done
 if test "$not_done" = 1; then
-FPTOOLS_IN_SCOPE(end asm("end"),end,fptools_cv_end_of_data);
-if test "$fptools_cv_end_of_data" = yes; then
-  AC_DEFINE(DATA_SECTION_END_MARKER, end asm("end"))
+FPTOOLS_IN_SCOPE(end asm("end"),end,fptools_end_of_data);
+if test "$fptools_end_of_data" = yes; then
+  AC_CACHE_VAL([fptools_cv_end_of_data_decl], [AC_DEFINE_UNQUOTED(DATA_SECTION_END_MARKER_DECL, end asm("end"))])
+  AC_CACHE_VAL([fptools_cv_end_of_data], [AC_DEFINE_UNQUOTED(DATA_SECTION_END_MARKER, end)])
 else
 else
-  AC_DEFINE(DATA_SECTION_END_MARKER, dunno_what_it_is)
+  AC_CACHE_VAL([fptools_cv_end_of_data_decl], [AC_DEFINE_UNQUOTED(DATA_SECTION_END_MARKER_DECL, dunno_what_it_is)])
+  AC_CACHE_VAL([fptools_cv_end_of_data], [AC_DEFINE_UNQUOTED(DATA_SECTION_END_MARKER, dunno_what_it_is)])
 fi
 fi
 fi
 fi
-])])
+AC_MSG_RESULT([$]fptools_cv_end_of_data)
+])