]> diplodocus.org Git - nmh/blobdiff - configure.ac
Add a new (but incomplete) test for mhbuild's new functionality.
[nmh] / configure.ac
index 2ae8633830de635dd5b74a8fb7ceded65ec425d3..7c35047a7b86c9f8936d6fdcaa2b5193461f8f7f 100644 (file)
@@ -28,14 +28,6 @@ dnl Do you want to debug nmh?
 AC_ARG_ENABLE([debug],
   AS_HELP_STRING([--enable-debug],[enable nmh code debugging]))
 
 AC_ARG_ENABLE([debug],
   AS_HELP_STRING([--enable-debug],[enable nmh code debugging]))
 
-dnl Do you want to disable use of locale functions
-AH_TEMPLATE([LOCALE],
-[Undefine if you don't want locale features.  By default this is defined.])
-AC_ARG_ENABLE([locale],
-  [AS_HELP_STRING([--disable-locale], [turn off locale features])],
-  [AS_IF([test x$enableval = xyes], [AC_DEFINE(LOCALE)])],
-  [AC_DEFINE(LOCALE)])
-
 dnl Do you want client-side support for using SASL for authentication?
 dnl Note that this code will be enabled for both POP and SMTP
 AC_ARG_WITH([cyrus-sasl], AS_HELP_STRING([--with-cyrus-sasl],
 dnl Do you want client-side support for using SASL for authentication?
 dnl Note that this code will be enabled for both POP and SMTP
 AC_ARG_WITH([cyrus-sasl], AS_HELP_STRING([--with-cyrus-sasl],
@@ -119,6 +111,22 @@ if test -n "$auto_cflags"; then
        CFLAGS="$nmh_saved_cflags"])
     test "$nmh_cv_has_dash_ansi" = "yes"  &&  \
       CFLAGS="${CFLAGS:+$CFLAGS }-ansi -pedantic"
        CFLAGS="$nmh_saved_cflags"])
     test "$nmh_cv_has_dash_ansi" = "yes"  &&  \
       CFLAGS="${CFLAGS:+$CFLAGS }-ansi -pedantic"
+
+    dnl For Ubuntu gcc 4.8.1, with -O2.  It would be better to fix all these,
+    dnl but until then, suppress the warning.
+    AC_CACHE_CHECK([whether compiler needs -Wno-unused-result],
+                   [nmh_cv_needs_wnur],
+                   [nmh_saved_cflags="$CFLAGS"
+                    CFLAGS="$CFLAGS -Werror -O2"
+                    AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include <unistd.h>],
+                                        [extern const char *path;
+                                         chdir (path);
+                                         return 0;])],
+                                       [nmh_cv_needs_wnur=no],
+                                       [nmh_cv_needs_wnur=yes])
+                    CFLAGS="$nmh_saved_cflags"])
+    AS_IF([test "$nmh_cv_needs_wnur" = yes],
+          [CFLAGS="${CFLAGS:+$CFLAGS }-Wno-unused-result"])
   else
     dnl Use -v and some other options with SunStudio cc.  lex produces
     dnl code that causes unreachable-statement warnings.  It might be
   else
     dnl Use -v and some other options with SunStudio cc.  lex produces
     dnl code that causes unreachable-statement warnings.  It might be
@@ -148,40 +156,29 @@ fi
 dnl --------------
 dnl CUSTOMIZE LINK
 dnl --------------
 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
+AS_IF([test `uname` = OpenBSD],
+      dnl Munge "often/almost always misused" warnings from OpenBSD linker
+      dnl so that they don't color the waterfall.
+      [POSTLINK="2>&1 | sed -e \
+'s/: w\(arning: s.*() is .* misused, please use\)/: W\1/'"])
 AC_SUBST([POSTLINK])
 
 dnl -----------------
 dnl CUSTOMIZE LDFLAGS
 dnl -----------------
 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 Disable clang complaint about unused -ansi when linking.
+AC_CACHE_CHECK([whether linker supports -Qunused-arguments],
+               [nmh_cv_has_q_unused_arguments],
+               [AS_IF([test "$GCC" = yes  &&  `${CC} --version 2>&1 | \
+                       grep clang >/dev/null`],
+                      [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"],
+                       [nmh_cv_has_q_unused_arguments=no])])
+test "$nmh_cv_has_q_unused_arguments" = "yes"  &&  \
+  LDFLAGS="${LDFLAGS:+$LDFLAGS }-Qunused-arguments"
 
 dnl This hack turns off assertions by default, assuming
 dnl that configure still uses this shell variable.  Without
 
 dnl This hack turns off assertions by default, assuming
 dnl that configure still uses this shell variable.  Without
@@ -216,22 +213,6 @@ AS_CASE(["${MD5SUM}"],
        [MD5FMT="missing"])
 AC_SUBST([MD5FMT])
 
        [MD5FMT="missing"])
 AC_SUBST([MD5FMT])
 
-dnl ----------------------------------------------
-dnl check for lclint, and lint if it doesn't exist
-dnl ----------------------------------------------
-AC_CHECK_PROG([linttmp1], [lclint], [lclint], [no])dnl
-AS_IF([test x$ac_cv_prog_linttmp1 != xno],
-  [LINT=$ac_cv_prog_linttmp1
-  LINTFLAGS="-weak +posixlib -macrovarprefixexclude"],
-  [AC_CHECK_PROG([linttmp2], [lint], [lint], [no])dnl
-  AS_IF([test x$ac_cv_prog_linttmp2 != xno],
-    [LINT=$ac_cv_prog_linttmp2
-    LINTFLAGS=""],
-    [LINT="echo 'No lint program found'"
-    LINTFLAGS=""])])
-AC_SUBST([LINT])dnl
-AC_SUBST([LINTFLAGS])dnl
-
 dnl Look for `ls'
 pathtmp=/usr/xpg4/bin:/usr/bin:/bin:/usr/local/bin:/usr/ucb
 AC_PATH_PROG([lspath], [ls], [no], [$pathtmp])
 dnl Look for `ls'
 pathtmp=/usr/xpg4/bin:/usr/bin:/bin:/usr/local/bin:/usr/ucb
 AC_PATH_PROG([lspath], [ls], [no], [$pathtmp])
@@ -311,7 +292,7 @@ dnl If mailspool is not world-writable and dotlockfile is not setgid,
 dnl we need to #define MAILGROUP to 1 and make inc setgid.
 if test x"$LOCKTYPE" = x"dot" -a x"$nmh_cv_mailspool_world_writable" = x"no" -a x"$nmh_cv_dotlockfile_setgid" != x"yes" ; then
   dnl do we really need both of these?
 dnl we need to #define MAILGROUP to 1 and make inc setgid.
 if test x"$LOCKTYPE" = x"dot" -a x"$nmh_cv_mailspool_world_writable" = x"no" -a x"$nmh_cv_dotlockfile_setgid" != x"yes" ; then
   dnl do we really need both of these?
-  AC_DEFINE(MAILGROUP,1,
+  AC_DEFINE([MAILGROUP],[1],
     [Define to 1 if you need to make `inc' set-group-id because your mail spool is not world writable. There are no guarantees as to the safety of doing this, but this #define will add some extra security checks.])dnl
   SETGID_MAIL=1
 fi
     [Define to 1 if you need to make `inc' set-group-id because your mail spool is not world writable. There are no guarantees as to the safety of doing this, but this #define will add some extra security checks.])dnl
   SETGID_MAIL=1
 fi
@@ -322,7 +303,10 @@ AC_CACHE_CHECK(what group owns the mail spool, nmh_cv_ls_mail_grp,
 [nmh_cv_ls_mail_grp=`$lspath -dL $nmh_cv_ls_grpopt $mailspool|$AWK '{print $4}'`
 ])
 MAIL_SPOOL_GRP=$nmh_cv_ls_mail_grp
 [nmh_cv_ls_mail_grp=`$lspath -dL $nmh_cv_ls_grpopt $mailspool|$AWK '{print $4}'`
 ])
 MAIL_SPOOL_GRP=$nmh_cv_ls_mail_grp
-AC_SUBST(MAIL_SPOOL_GRP)dnl
+AC_SUBST([MAIL_SPOOL_GRP])dnl
+
+NMH_MIMETYPEPROC
+NMH_MIMEENCODINGPROC
 
 dnl ------------------
 dnl CHECK HEADER FILES
 
 dnl ------------------
 dnl CHECK HEADER FILES
@@ -345,8 +329,7 @@ AS_CASE(["$host_os"],
                 [CPPFLAGS="$CPPFLAGS -D_GNU_SOURCE"])])
 
 AC_HEADER_TIOCGWINSZ
                 [CPPFLAGS="$CPPFLAGS -D_GNU_SOURCE"])])
 
 AC_HEADER_TIOCGWINSZ
-AC_CHECK_HEADERS([fcntl.h ncurses/termcap.h termcap.h langinfo.h \
-                  wchar.h wctype.h sys/param.h sys/time.h sys/stream.h])
+AC_CHECK_HEADERS([fcntl.h wchar.h wctype.h sys/param.h sys/time.h sys/stream.h])
 
 AC_CHECK_HEADER([sys/ptem.h], AC_DEFINE(WINSIZE_IN_PTEM,1,
   [Define to 1 if `struct winsize' requires <sys/ptem.h>.]),,
 
 AC_CHECK_HEADER([sys/ptem.h], AC_DEFINE(WINSIZE_IN_PTEM,1,
   [Define to 1 if `struct winsize' requires <sys/ptem.h>.]),,
@@ -358,7 +341,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 arc4random])
+AC_CHECK_FUNCS([wcwidth mbtowc getutxent arc4random mkstemps])
 
 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 \
@@ -374,29 +357,29 @@ AC_SUBST([MULTIBYTE_ENABLED])
 dnl -------------------
 dnl CHECK FOR LIBRARIES
 dnl -------------------
 dnl -------------------
 dnl CHECK FOR LIBRARIES
 dnl -------------------
-dnl Check location of modf
-AC_CHECK_FUNC([modf], , AC_CHECK_LIB([m], [modf]))
-
 dnl Checks for network libraries (nsl, socket)
 NMH_CHECK_NETLIBS
 
 dnl Checks for network libraries (nsl, socket)
 NMH_CHECK_NETLIBS
 
-dnl Check for readline support
-NMH_READLINE
-
 dnl Check the locking functions supported and what we should use by default
 NMH_LOCKING
 
 dnl Check for iconv
 NMH_CHECK_ICONV
 
 dnl Check the locking functions supported and what we should use by default
 NMH_LOCKING
 
 dnl Check for iconv
 NMH_CHECK_ICONV
 
+dnl Check for tputs() callback argument
+NMH_TPUTS_PUTC_ARG
+
 termcap_curses_order="termcap curses ncurses"
 for lib in $termcap_curses_order; do
 termcap_curses_order="termcap curses ncurses"
 for lib in $termcap_curses_order; do
-  AC_CHECK_LIB(${lib}, tgetent, [TERMLIB="-l$lib"; break])
+  AC_CHECK_LIB([${lib}], [setupterm], [TERMLIB="-l$lib"; break])
 done
 AC_SUBST([TERMLIB])dnl
 AS_IF([test "x$TERMLIB" = "x"],
 done
 AC_SUBST([TERMLIB])dnl
 AS_IF([test "x$TERMLIB" = "x"],
-      [AC_MSG_FAILURE([Could not find tgetent in any library.  Is there a curses
-or ncurses library or package that you can install?])])
+      [AC_MSG_FAILURE([Could not find setupterm in any library.  Is there a
+curses or ncurses library or package that you can install?])])
+
+dnl Check for readline support
+NMH_READLINE
 
 dnl --------------
 dnl CHECK FOR NDBM
 
 dnl --------------
 dnl CHECK FOR NDBM
@@ -489,116 +472,31 @@ dnl CHECK FOR OPENSSL
 dnl -----------------
 
 AS_IF([test x"$tls_support" = x"yes"],[
 dnl -----------------
 
 AS_IF([test x"$tls_support" = x"yes"],[
+  dnl OpenBSD 5 needs the other-libraries (fourth argument) to the
+  dnl AC_CHECK_LIB for SSL_library_init, because it doesn't
+  dnl automatically append -lcrypto when linking with -lssl.
   AC_CHECK_HEADER([openssl/ssl.h], , [AC_MSG_ERROR([openssl/ssl.h not found])])
   AC_CHECK_LIB([crypto], [BIO_write], [TLSLIB="-lcrypto"],
     [AC_MSG_ERROR([OpenSSL crypto library not found])])
   AC_CHECK_LIB([ssl], [SSL_library_init], [TLSLIB="-lssl $TLSLIB"],
   AC_CHECK_HEADER([openssl/ssl.h], , [AC_MSG_ERROR([openssl/ssl.h not found])])
   AC_CHECK_LIB([crypto], [BIO_write], [TLSLIB="-lcrypto"],
     [AC_MSG_ERROR([OpenSSL crypto library not found])])
   AC_CHECK_LIB([ssl], [SSL_library_init], [TLSLIB="-lssl $TLSLIB"],
-    [AC_MSG_ERROR([OpenSSL library not found])])],
+    [AC_MSG_ERROR([OpenSSL library not found])],[$TLSLIB])],
   [TLSLIB=])
 AC_SUBST([TLSLIB])
 
   [TLSLIB=])
 AC_SUBST([TLSLIB])
 
-dnl ---------------------
-dnl CHECK TERMCAP LIBRARY
-dnl ---------------------
-
-dnl Add the termcap library, so that the following configure
-dnl tests will find it when it tries to link test programs.
-nmh_save_LIBS="$LIBS"
-LIBS="$TERMLIB $LIBS"
-
-dnl Check if tgetent accepts NULL (and will allocate its own termcap buffer)
-dnl Some termcaps reportedly accept a zero buffer, but then dump core
-dnl in tgetstr().
-dnl Under Cygwin test program crashes but exit code is still 0. So,
-dnl we test for a file that porgram should create
-AH_TEMPLATE([TGETENT_ACCEPTS_NULL],
-[Define to 1 if tgetent() accepts NULL as a buffer.])
-AC_CACHE_CHECK(if tgetent accepts NULL,
-nmh_cv_func_tgetent_accepts_null,
-[AC_TRY_RUN([
-main()
-{
-    char buf[4096];
-    int r1 = tgetent(buf, "vt100");
-    int r2 = tgetent((char*)0,"vt100");
-    if (r1 >= 0 && r1 == r2) {
-        char tbuf[1024], *u;
-        u = tbuf;
-       tgetstr("cl", &u);
-       creat("conftest.tgetent", 0640);
-    }
-    exit((r1 != r2) || r2 == -1);
-}
-],
-  if test -f conftest.tgetent; then
-    nmh_cv_func_tgetent_accepts_null=yes
-  else
-    nmh_cv_func_tgetent_accepts_null=no
-  fi,
-  nmh_cv_func_tgetent_accepts_null=no,
-  nmh_cv_func_tgetent_accepts_null=no)])
-if test x$nmh_cv_func_tgetent_accepts_null = xyes; then
-  AC_DEFINE(TGETENT_ACCEPTS_NULL)
-fi
-AC_CACHE_CHECK(if tgetent returns 0 on success,
-nmh_cv_func_tgetent_zero_success,
-[AC_TRY_RUN([
-main()
-{
-    char buf[4096];
-    int r1 = tgetent(buf, "!@#$%^&*");
-    int r2 = tgetent(buf, "vt100");
-    if (r1 < 0 && r2 == 0) {
-        char tbuf[1024], *u;
-        u = tbuf;
-       tgetstr("cl", &u);
-       creat("conftest.tgetent0", 0640);
-    }
-    exit(r1 == r2);
-}
-],
-  if test -f conftest.tgetent0; then
-    nmh_cv_func_tgetent_zero_success=yes
-  else
-    nmh_cv_func_tgetent_zero_success=no
-  fi,
-  nmh_cv_func_tgetent_zero_success=no,
-  nmh_cv_func_tgetent_zero_success=no)])
-AH_TEMPLATE([TGETENT_SUCCESS],
-[Define to what tgetent() returns on success (0 on HP-UX X/Open curses).])
-if test x$nmh_cv_func_tgetent_zero_success = xyes; then
-  AC_DEFINE(TGETENT_SUCCESS, 0)
-else
-  AC_DEFINE(TGETENT_SUCCESS, 1)
-fi
-
-dnl Now put the libraries back to what it was before we
-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 ----------------
 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 2.5.36 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=\
 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 $@'])
+'; sed -e "s/  int n;/ size_t n;/" $@ >$@.tmp && mv -f $@.tmp $@; true'],
+               [flex\ 2.5.36], [LFLAGS=\
+'; sed -s "s/\(        \)int i;/\1yy_size_t i;/" $@ >$.tmp && mv -f $@.tmp $@; true'])
        AC_SUBST([LFLAGS])])
 
        AC_SUBST([LFLAGS])])
 
-dnl --------------
-dnl CHECK TYPEDEFS
-dnl --------------
-AC_TYPE_PID_T
-AC_TYPE_OFF_T
-AC_TYPE_UID_T
-AC_TYPE_MODE_T
-AC_TYPE_SIZE_T
-
 dnl ----------------
 dnl CHECK STRUCTURES
 dnl ----------------
 dnl ----------------
 dnl CHECK STRUCTURES
 dnl ----------------
@@ -636,8 +534,7 @@ dnl exist.
 dnl
 
 AC_CONFIG_COMMANDS([build-directories],
 dnl
 
 AC_CONFIG_COMMANDS([build-directories],
-[test -d etc || AS_MKDIR_P([etc])
-test -d man || AS_MKDIR_P([man])])
+[test -d man || AS_MKDIR_P([man])])
 
 AC_CONFIG_COMMANDS_POST([
 
 
 AC_CONFIG_COMMANDS_POST([