Wrapped setjmp(), sigsetjmp(), and vfork() calls to silence gcc -Wclobbered for good...
[mmh] / configure.ac
index 2a56e97..3491f96 100644 (file)
@@ -24,7 +24,7 @@ if test -n "$LIBTOOL" ; then
   fi
 fi
 ] )
-  
+
 echo "configuring for AC_PACKAGE_NAME-AC_PACKAGE_VERSION"
 AC_SUBST(VERSION,AC_PACKAGE_VERSION)dnl
 
@@ -218,6 +218,28 @@ fi
 
 AC_PROG_CC
 
+AC_SUBST(EXEEXT)dnl
+
+AC_CACHE_CHECK(whether preprocessor supports -Wunused-macros,
+  nmh_cv_has_unusedmacros,
+  [nmh_saved_cppflags="$CPPFLAGS"
+   CPPFLAGS="$CPPFLAGS -Wunused-macros -Wno-unused-macros"
+   AC_TRY_COMPILE([],[],nmh_cv_has_unusedmacros=yes,nmh_cv_has_unusedmacros=no)
+   CPPFLAGS="$nmh_saved_cppflags"])
+
+if test "$nmh_cv_has_unusedmacros" = 'yes'; then
+  test -z "$CPPLAGS"  &&  CPPFLAGS=-Wunused-macros \
+                      ||  CPPFLAGS="$CPPFLAGS -Wunused-macros"
+  DISABLE_UNUSED_MACROS_WARNING=-Wno-unused-macros
+fi
+AC_SUBST(DISABLE_UNUSED_MACROS_WARNING)dnl
+
+AC_CACHE_CHECK(whether compiler supports -Wextra, nmh_cv_wextra,
+[nmh_saved_cflags="$CFLAGS"
+ CFLAGS="$CFLAGS -Wextra"
+ AC_TRY_COMPILE([],[],nmh_cv_wextra=' -Wextra',echo -n no)
+ CFLAGS="$nmh_saved_cflags"])
+
 AC_CACHE_CHECK(whether compiler supports -Wno-pointer-sign, nmh_cv_has_noptrsign,
 [nmh_saved_cflags="$CFLAGS"
  CFLAGS="$CFLAGS -Wno-pointer-sign"
@@ -228,13 +250,14 @@ dnl if the user hasn't specified CFLAGS, then
 dnl   if compiler is gcc, then
 dnl     use -O2 and some warning flags
 dnl   else use -O
-dnl We use -Wall; if the compiler supports it we also use -Wno-pointer-sign,
-dnl because gcc 4 now produces a lot of new warnings which are probably mostly
-dnl spurious and which in any case we don't want to deal with now.
+dnl We use -Wall and -Wextra if supported.  If the compiler supports it we
+dnl also use -Wno-pointer-sign, because gcc 4 now produces a lot of new
+dnl warnings which are probably mostly spurious and which in any case we
+dnl don't want to deal with now.
 if test "$nmh_cv_has_noptrsign" = "yes"; then
-        nmh_gcc_warnflags="-Wall -Wno-pointer-sign"
+        nmh_gcc_warnflags="-Wall$nmh_cv_wextra -Wno-pointer-sign"
 else
-        nmh_gcc_warnflags="-Wall"
+        nmh_gcc_warnflags="-Wall$nmh_cv_wextra"
 fi
 
 if test -n "$auto_cflags"; then
@@ -340,7 +363,7 @@ AC_PATH_PROG(lspath, ls, no, [$pathtmp])
 
 dnl See how we get ls to display the owner and the group
 if test "$lspath" != "no"; then
-  AC_CACHE_CHECK(how to get ls to show us the group ownership of a file, 
+  AC_CACHE_CHECK(how to get ls to show us the group ownership of a file,
                 nmh_cv_ls_grpopt,
   [if test x"`$lspath -dl / | $AWK '{print $9}'`" = x"/"; then
     dnl There were 9 parameters, so unless this is a really bizarre, nonstandard
@@ -397,7 +420,7 @@ AC_SUBST(mailspool)dnl
 
 dnl See whether the mail spool directory is world-writable.
 if test "$lspath" != "no" -a "$cutpath" != "no"; then
-  AC_CACHE_CHECK(whether the mail spool is world-writable, 
+  AC_CACHE_CHECK(whether the mail spool is world-writable,
                 nmh_cv_mailspool_world_writable,
   [if test "`$lspath -dlL $mailspool | $cutpath -c9`" = "-"; then
     nmh_cv_mailspool_world_writable=no
@@ -456,18 +479,18 @@ dnl before system header files.
 case "$target_os" in
   linux*)
     # Like DEFS, but doesn't get stomped on by configure when using config.h:
-    OURDEFS="$OURDEFS -D_GNU_SOURCE"
+    test -z "$OURDEFS"  &&  OURDEFS="-D_GNU_SOURCE"  \
+                        ||  OURDEFS="$OURDEFS -D_GNU_SOURCE"
     ;;
 esac
 AC_SUBST(OURDEFS)
 
 AC_HEADER_STDC
-AC_HEADER_TIME
 AC_HEADER_TIOCGWINSZ
-AC_CHECK_HEADERS(errno.h fcntl.h crypt.h termcap.h \
+AC_CHECK_HEADERS(errno.h fcntl.h crypt.h ncurses/termcap.h termcap.h \
                  langinfo.h wchar.h wctype.h iconv.h netdb.h \
                  sys/param.h sys/time.h sys/stream.h)
+
 dnl
 dnl Checks for _IO_write_ptr. A Linuxism used by nmh on linux. We
 dnl really use a whole set of them, but this check should be
@@ -475,7 +498,7 @@ dnl sufficient.
 dnl
 AC_CHECK_HEADER(libio.h, [
   AC_EGREP_HEADER(_IO_write_ptr, libio.h, [
-    AC_DEFINE(LINUX_STDIO,1,[Use the Linux _IO_*_ptr defines from <libio.h>.]) ]) ]) 
+    AC_DEFINE(LINUX_STDIO,1,[Use the Linux _IO_*_ptr defines from <libio.h>.]) ]) ])
 
 AC_CHECK_HEADER([sys/ptem.h], AC_DEFINE(WINSIZE_IN_PTEM,1,
   [Define to 1 if `struct winsize' requires <sys/ptem.h>.]),,
@@ -487,29 +510,7 @@ AC_CHECK_HEADER([sys/ptem.h], AC_DEFINE(WINSIZE_IN_PTEM,1,
 dnl ---------------
 dnl CHECK FUNCTIONS
 dnl ---------------
-AC_CHECK_FUNCS(writev lstat tzset getutent nl_langinfo)
-
-dnl Look for the initgroups() declaration.  On AIX 4.[13], Solaris 4.1.3, and
-dnl ULTRIX 4.2A the function is defined in libc but there's no declaration in
-dnl any system header.  
-dnl
-dnl On Solaris 2.[456], the declaration is in <grp.h>.  On HP-UX 9-11 and
-dnl (reportedly) FreeBSD 3.[23], it's in <unistd.h>.  Any other locations we
-dnl need to check?
-AH_TEMPLATE(INITGROUPS_HEADER, [Define to the header containing the declaration of `initgroups'.])
-AC_EGREP_HEADER(initgroups, grp.h, AC_DEFINE(INITGROUPS_HEADER, <grp.h>),
-                AC_EGREP_HEADER(initgroups, unistd.h, 
-                                AC_DEFINE(INITGROUPS_HEADER, <unistd.h>)))
-
-dnl On AIX 4.1, snprintf() is defined in libc.a but there's no prototype in
-dnl <stdio.h> or elsewhere.  Apparently it's not officially supported (though it
-dnl seems to work perfectly and IBM apparently uses it in internal code).
-dnl Anyhow, if we omit our own snprintf() and vsnprintf() prototypes when we
-dnl HAVE_SNPRINTF, we get a billion warnings at compile time.  Use the C
-dnl preprocessor to preprocess stdio.h and make sure that there's actually a 
-dnl prototype. 
-AC_EGREP_HEADER(snprintf, stdio.h, AC_DEFINE(HAVE_SNPRINTF_PROTOTYPE,1,
-  [Define to 1 if <stdio.h> has a prototype for snprintf().]))
+AC_CHECK_FUNCS(writev lstat getutent nl_langinfo)
 
 dnl Check for multibyte character set support
 if test "x$ac_cv_header_wchar_h" = "xyes" -a "x$ac_cv_header_wctype_h" = "xyes" \
@@ -766,18 +767,6 @@ dnl ----------------
 dnl CHECK STRUCTURES
 dnl ----------------
 
-AC_CHECK_MEMBERS(struct tm.tm_gmtoff,,,
-  [#ifdef TIME_WITH_SYS_TIME
-# include <sys/time.h>
-# include <time.h>
-#else
-# ifdef TM_IN_SYS_TIME
-#  include <sys/time.h>
-# else
-#  include <time.h>
-# endif
-#endif])
-
 AC_CHECK_MEMBERS(struct utmp.ut_type,,,[#include <utmp.h>])
 
 AC_STRUCT_DIRENT_D_TYPE
@@ -801,59 +790,6 @@ SIGNAL_H=$nmh_cv_path_signal_h
 AC_SUBST(SIGNAL_H)dnl
 
 dnl ----------------
-dnl OS SPECIFIC DEFINES
-dnl ----------------
-AH_TEMPLATE(SYS5, [Defined for Solaris 2.x, Irix, OSF/1, HP-UX, AIX, SCO5; only used in vmh.c which is not built.])
-AH_TEMPLATE(SVR4, [Defined for Solaris 2.x, Irix, OSF/1, HP-UX, AIX; only used in vmh.c which is not built.])
-AH_TEMPLATE(BSD44, [Defined for SunOS 4, FreeBSD, NetBSD, OpenBSD, BSD/OS, Mac OS X/Rhapsody; only used in vmh.c which is not built.])
-AH_TEMPLATE(BSD42, [Defined for SunOS 4, FreeBSD, NetBSD, OpenBSD, BSD/OS, Mac OS X/Rhapsody -- does PicoBSD have uname?])
-AH_TEMPLATE(SCO_5_STDIO, [Defined for SCO5.])
-
-case "$target_os" in
-
-  solaris2*)
-    AC_DEFINE(SYS5)
-    AC_DEFINE(SVR4)
-    ;;
-  irix*)
-    AC_DEFINE(SYS5)
-    AC_DEFINE(SVR4)
-    ;;
-  osf*)
-    AC_DEFINE(SYS5)
-    AC_DEFINE(SVR4)
-    ;;
-  aix*)
-    AC_DEFINE(SYS5)
-    AC_DEFINE(SVR4)
-    ;;
-  sunos4*)
-    AC_DEFINE(BSD42)
-    ;;
-  freebsd*)  
-    AC_DEFINE(BSD42)
-    AC_DEFINE(BSD44)
-    ;;
-  netbsd*)
-    AC_DEFINE(BSD42)
-    AC_DEFINE(BSD44)
-    ;;
-  openbsd*)
-    AC_DEFINE(BSD42)
-    AC_DEFINE(BSD44)
-    ;;
-  bsd/os*)
-    AC_DEFINE(BSD42)
-    AC_DEFINE(BSD44)
-    ;;
-  sco5*)
-    AC_DEFINE(SYS5)
-    AC_DEFINE(SCO_5_STDIO)
-    ;;
-esac
-
-
-dnl ----------------
 dnl OUTPUT MAKEFILES
 dnl ----------------
 AC_CONFIG_FILES(Makefile config/Makefile h/Makefile sbr/Makefile uip/Makefile \