]> diplodocus.org Git - nmh/blobdiff - configure.ac
Added POSTLINK to remainder of executables in Makefile.am.
[nmh] / configure.ac
index de7f93f147327075a587410075401561e89360ee..868b43bb3794fbe56df274374d58120a29b0a1ec 100644 (file)
@@ -93,29 +93,25 @@ dnl ------------------
 dnl We want these before the checks,
 dnl so the checks can modify their values.
 test -z "$CFLAGS" && CFLAGS= auto_cflags=1
 dnl We want these before the checks,
 dnl so the checks can modify their values.
 test -z "$CFLAGS" && CFLAGS= auto_cflags=1
-if test x"$enable_debug" = x"yes"; then
-  test -z "$LDFLAGS" && LDFLAGS=-g
-fi
 
 
-AC_PROG_CC
+AC_PROG_CC([cc gcc])
 AM_PROG_CC_C_O
 
 AM_PROG_CC_C_O
 
+dnl Use -v and some other options with SunStudio cc.
+AS_CASE([`${CC} -V 2>&1`],
+       [cc:\ Sun\ C*], [CFLAGS="${CFLAGS:+$CFLAGS }-v -errtags=yes"
+                        CFLAGS="${CFLAGS} -erroff=E_STATEMENT_NOT_REACHED"])
+
 AC_CACHE_CHECK([whether compiler supports -Wextra], [nmh_cv_has_wextra],
 [nmh_saved_cflags="$CFLAGS"
  CFLAGS="$CFLAGS -Wextra -Werror"
  AC_TRY_COMPILE([],[],nmh_cv_has_wextra=yes,nmh_cv_has_wextra=no)
  CFLAGS="$nmh_saved_cflags"])
 
 AC_CACHE_CHECK([whether compiler supports -Wextra], [nmh_cv_has_wextra],
 [nmh_saved_cflags="$CFLAGS"
  CFLAGS="$CFLAGS -Wextra -Werror"
  AC_TRY_COMPILE([],[],nmh_cv_has_wextra=yes,nmh_cv_has_wextra=no)
  CFLAGS="$nmh_saved_cflags"])
 
-AC_CACHE_CHECK([whether compiler supports -Wno-clobbered], [nmh_cv_has_noclobbered],
-[nmh_saved_cflags="$CFLAGS"
- CFLAGS="$CFLAGS -Wno-clobbered -Werror"
- AC_TRY_COMPILE([],[],nmh_cv_has_noclobbered=yes,nmh_cv_has_noclobbered=no)
- CFLAGS="$nmh_saved_cflags"])
-
 dnl Can't use -ansi with gcc 4.5.3 on Cygwin, at least through setup
 dnl Can't use -ansi with gcc 4.5.3 on Cygwin, at least through setup
-dnl setup version 2.763, because it disables some features in the
-dnl system system header files and warns about them with -Wall.  Try
-dnl to test for that generally, though still with gcc.
+dnl version 2.763, because it disables some features in the system
+dnl header files and warns about them with -Wall.  Try to test for
+dnl that generally, though still with gcc.
 if test "$GCC" = yes; then
   AC_CACHE_CHECK([whether we can use -ansi with gcc], [nmh_cv_has_dash_ansi],
     [nmh_saved_cppflags="$CPPFLAGS"
 if test "$GCC" = yes; then
   AC_CACHE_CHECK([whether we can use -ansi with gcc], [nmh_cv_has_dash_ansi],
     [nmh_saved_cppflags="$CPPFLAGS"
@@ -147,9 +143,6 @@ fi
 if test "$nmh_cv_has_wextra" = "yes"; then
     nmh_gcc_warnflags="${nmh_gcc_warnflags} -Wextra"
 fi
 if test "$nmh_cv_has_wextra" = "yes"; then
     nmh_gcc_warnflags="${nmh_gcc_warnflags} -Wextra"
 fi
-if test "$nmh_cv_has_noclobbered" = "yes"; then
-    nmh_gcc_warnflags="${nmh_gcc_warnflags} -Wno-clobbered"
-fi
 
 if test -n "$auto_cflags"; then
   if test x"$enable_debug" = x"yes"; then
 
 if test -n "$auto_cflags"; then
   if test x"$enable_debug" = x"yes"; then
@@ -159,26 +152,59 @@ if test -n "$auto_cflags"; then
       test -z "$CFLAGS" && CFLAGS=-g || CFLAGS="$CFLAGS -g"
     fi
   else
       test -z "$CFLAGS" && CFLAGS=-g || CFLAGS="$CFLAGS -g"
     fi
   else
-    if test -z "$LDFLAGS"; then
-      case "$build_os" in
-       darwin*)
-         LDFLAGS=
-          ;;
-       *)
-         LDFLAGS=-s
-         ;;
-      esac
-    fi
     if test -n "$GCC"; then
       test -z "$CFLAGS" && CFLAGS="$nmh_gcc_warnflags -O2" || CFLAGS="$CFLAGS $nmh_gcc_warnflags -O2"
     else
       test -z "$CFLAGS" && CFLAGS=-O  || CFLAGS="$CFLAGS -O"
     fi
     if test -n "$GCC"; then
       test -z "$CFLAGS" && CFLAGS="$nmh_gcc_warnflags -O2" || CFLAGS="$CFLAGS $nmh_gcc_warnflags -O2"
     else
       test -z "$CFLAGS" && CFLAGS=-O  || CFLAGS="$CFLAGS -O"
     fi
-    AC_DEFINE([NDEBUG], [1],
-              [Define to disable run-time debugging and asserts.])
   fi
 fi
 
   fi
 fi
 
+dnl --------------
+dnl CUSTOMIZE LINK
+dnl --------------
+if test `uname` = OpenBSD; then
+  dnl Filter out "often/almost always misused" warnings from OpenBSD linker.
+  [POSTLINK="2>&1 | egrep -v ': [w]arning: s[a-z]+\(\) is \
+(almost always|often) misused, please use'; true"]
+fi
+AC_SUBST([POSTLINK])
+
+dnl -----------------
+dnl CUSTOMIZE LDFLAGS
+dnl -----------------
+if test "$GCC" = yes; then
+  dnl Disable clang complaint about unused -ansi when linking.
+  AC_CACHE_CHECK([whether linker supports -Qunused-arguments],
+                 [nmh_cv_has_q_unused_arguments],
+                 [nmh_saved_ldflags="$LDFLAGS"
+                  LDFLAGS="$LDFLAGS -Qunused-arguments"
+                  AC_TRY_LINK([],[],nmh_cv_has_q_unused_arguments=yes,
+                                    nmh_cv_has_q_unused_arguments=no)
+                  LDFLAGS="$nmh_saved_ldflags"])
+  test "$nmh_cv_has_q_unused_arguments" = "yes"  &&  \
+    LDFLAGS="${LDFLAGS:+$LDFLAGS }-Qunused-arguments"
+fi
+
+dnl This really shouldn't be necessary.  And we really shouldn't add -s.
+if test x"$enable_debug" = x"yes"; then
+  test -z "$LDFLAGS" && LDFLAGS=-g
+else
+  if test -z "$LDFLAGS"; then
+    case "$build_os" in
+      darwin*) LDFLAGS= ;;
+            *) LDFLAGS=-s ;;
+    esac
+  fi
+fi
+
+dnl This hack turns off assertions by default, assuming
+dnl that configure still uses this shell variable.  Without
+dnl it, AC_HEADER_ASSERT enables assertions by default.
+test -z "$enable_assert"  &&  enable_assert=no
+
+AC_HEADER_ASSERT
+
 dnl ------------------
 dnl CHECK FOR PROGRAMS
 dnl ------------------
 dnl ------------------
 dnl CHECK FOR PROGRAMS
 dnl ------------------
@@ -192,7 +218,7 @@ AM_PROG_LEX             dnl Check for lex/flex
 AM_PROG_AR
 
 dnl Look for `cut'
 AM_PROG_AR
 
 dnl Look for `cut'
-pathtmp=/usr/bin:/bin:/usr/local/bin:/usr/xpg4/bin:/usr/ucb
+pathtmp=/usr/xpg4/bin:/usr/bin:/bin:/usr/local/bin:/usr/ucb
 AC_PATH_PROG([cutpath], [cut], [no], [$pathtmp])
 
 dnl
 AC_PATH_PROG([cutpath], [cut], [no], [$pathtmp])
 
 dnl
@@ -222,7 +248,7 @@ AC_SUBST([LINT])dnl
 AC_SUBST([LINTFLAGS])dnl
 
 dnl Look for `ls'
 AC_SUBST([LINTFLAGS])dnl
 
 dnl Look for `ls'
-pathtmp=/usr/bin:/bin:/usr/local/bin:/usr/xpg4/bin:/usr/ucb
+pathtmp=/usr/xpg4/bin:/usr/bin:/bin:/usr/local/bin:/usr/ucb
 AC_PATH_PROG([lspath], [ls], [no], [$pathtmp])
 
 dnl See how we get ls to display the owner and the group
 AC_PATH_PROG([lspath], [ls], [no], [$pathtmp])
 
 dnl See how we get ls to display the owner and the group
@@ -238,13 +264,13 @@ AS_IF([test "$lspath" != "no"],
     nmh_cv_ls_grpopt="-lg"])])])
 
 dnl Look for `sendmail'
     nmh_cv_ls_grpopt="-lg"])])])
 
 dnl Look for `sendmail'
-pathtmp=/usr/lib:/usr/sbin:/usr/etc:/usr/ucblib:/usr/bin:/bin
+pathtmp=/usr/sbin:/usr/lib:/usr/etc:/usr/ucblib:/usr/bin:/bin
 AC_PATH_PROG([sendmailpath], [sendmail], [/usr/sbin/sendmail], [$pathtmp])
 
 dnl Cygwin FAT filesystems do not support hard links.  So default to
 dnl cp instead, even if running on an NTFS or other filesystem.
 AS_CASE(["$host_os"],
 AC_PATH_PROG([sendmailpath], [sendmail], [/usr/sbin/sendmail], [$pathtmp])
 
 dnl Cygwin FAT filesystems do not support hard links.  So default to
 dnl cp instead, even if running on an NTFS or other filesystem.
 AS_CASE(["$host_os"],
-  [cygwin*],[LN=cp],
+  [cygwin*], [LN=cp],
   [LN=ln])
 AC_SUBST([LN])
 
   [LN=ln])
 AC_SUBST([LN])
 
@@ -347,7 +373,7 @@ AC_CHECK_HEADER([sys/ptem.h], AC_DEFINE(WINSIZE_IN_PTEM,1,
 dnl ---------------
 dnl CHECK FUNCTIONS
 dnl ---------------
 dnl ---------------
 dnl CHECK FUNCTIONS
 dnl ---------------
-AC_CHECK_FUNCS([wcwidth mbtowc writev lstat nl_langinfo getutxent])
+AC_CHECK_FUNCS([wcwidth mbtowc writev lstat nl_langinfo getutxent arc4random])
 
 dnl Check for multibyte character set support
 AS_IF([test "x$ac_cv_header_wchar_h" = "xyes" -a \
 
 dnl Check for multibyte character set support
 AS_IF([test "x$ac_cv_header_wchar_h" = "xyes" -a \
@@ -565,6 +591,20 @@ dnl Now put the libraries back to what it was before we
 dnl starting checking the termcap library.
 LIBS="$nmh_save_LIBS"
 
 dnl starting checking the termcap library.
 LIBS="$nmh_save_LIBS"
 
+dnl ----------------
+dnl CHECK FLEX FIXUP
+dnl ----------------
+dnl Use LFLAGS make variable setting to work around bugs in flex
+dnl 2.5.35-37 that cause signed/unsigned mismatch,
+dnl http://sourceforge.net/p/flex/bugs/140/
+AS_IF([test "$LEX" = flex],
+      [AS_CASE([`$LEX -V`],
+               [flex\ 2.5.35], [LFLAGS=\
+'; printf "%s\n" '\''1,$$s/(size_t) \(num_to_read\)/\1/'\'' w q | ed -s $@'],
+               [flex\ 2.5.3@<:@67@:>@], [LFLAGS=\
+'; printf "%s\n" '\''1,$$s/\(  \)int i;/\1yy_size_t i;/'\'' w q | ed -s $@'])
+       AC_SUBST([LFLAGS])])
+
 dnl --------------
 dnl CHECK TYPEDEFS
 dnl --------------
 dnl --------------
 dnl CHECK TYPEDEFS
 dnl --------------