X-Git-Url: https://diplodocus.org/git/nmh/blobdiff_plain/24ba06b111dbadb912fa97f74ec8595f71b04393..222746a55368b05ab933e63103743cbdc36dd850:/configure.ac diff --git a/configure.ac b/configure.ac index 0b512b3b..35118f34 100644 --- a/configure.ac +++ b/configure.ac @@ -3,12 +3,12 @@ dnl configure.ac -- autoconf template for nmh dnl dnl Move this up a bit -AC_PREREQ([2.61]) +AC_PREREQ([2.68]) AC_INIT([nmh], m4_normalize(m4_include([VERSION])), [nmh-workers@nongnu.org]) AC_CONFIG_SRCDIR([h/nmh.h]) AC_CONFIG_HEADER([config.h]) -AM_INIT_AUTOMAKE([-Wall -Werror foreign subdir-objects]) +AM_INIT_AUTOMAKE([-Wall foreign serial-tests subdir-objects 1.12]) AC_CANONICAL_HOST @@ -27,16 +27,6 @@ dnl -------------------------- dnl Do you want to debug nmh? AC_ARG_ENABLE([debug], AS_HELP_STRING([--enable-debug],[enable nmh code debugging])) -dnl The old redundant --enable-nmh-debug is deprecated and undocumented. -AS_IF([test x"$enable_nmh_debug" = x"yes"], [enable_debug=yes]) - -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], - [AC_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 @@ -56,12 +46,6 @@ AS_IF([test x"$with_tls" != x -a x"$with_tls" != x"no"],[ AC_DEFINE([TLS_SUPPORT], [1], [Support TLS for session encryption.])dnl tls_support=yes],[tls_support=no]) -dnl What should be the default editor? -AC_ARG_WITH([editor], - AS_HELP_STRING([--with-editor=EDITOR],[specify the default editor])) - -AS_IF([test -n "$with_editor"], [editorpath="$with_editor"]) - dnl Set the backup prefix AC_ARG_WITH([hash-backup], AS_HELP_STRING([--with-hash-backup],[use # as the backup prefix (default: ,)])) @@ -70,59 +54,22 @@ AS_IF([test x"$with_hash_backup" != x -a x"$with_hash_backup" != x"no"], AC_DEFINE_UNQUOTED([BACKUP_PREFIX], "$backup_prefix", [The prefix that is prepended to the name of message files when they are "removed" by rmm. This should typically be `,' or `#'.])dnl -dnl What method of locking to use? -AC_ARG_WITH(locking, - AS_HELP_STRING([--with-locking=@<:@dot|fcntl|flock|lockf@:>@], - [specify the file locking method])) - -if test x"$with_locking" = x"dot"; then - LOCKTYPE="dot" - AC_DEFINE(DOT_LOCKING, 1, [Define to use dot based file locking.])dnl -elif test x"$with_locking" = x"flock"; then - LOCKTYPE="flock" - AC_DEFINE(FLOCK_LOCKING, 1, [Define to use flock() based locking.])dnl -elif test x"$with_locking" = x"lockf"; then - LOCKTYPE="lockf" - AC_DEFINE(LOCKF_LOCKING, 1, [Define to use lockf() based locking.])dnl -elif test x"$with_locking" = x"fcntl"; then - LOCKTYPE="fcntl" - AC_DEFINE(FCNTL_LOCKING, 1, [Define to use fnctl() based locking.])dnl -else - LOCKTYPE="dot" - AC_DEFINE(DOT_LOCKING)dnl -fi - -dnl Should we use a locking directory? -AC_ARG_ENABLE([lockdir], [ - AS_HELP_STRING([--enable-lockdir=dir], [Store dot-lock files in "dir"])], [ - AS_IF([test "x$enableval" = xyes],[ - AC_MSG_ERROR([--enable-lockdir requires an argument])]) - AS_IF([test "x$LOCKTYPE" != xdot],[ - AC_MSG_ERROR([Can only use --enable-lockdir with dot locking])]) - AC_DEFINE_UNQUOTED([LOCKDIR], ["$enableval"], - [Directory to store dot-locking lock files]) -]) - dnl What method of posting should post use? AC_ARG_WITH([mts], - AS_HELP_STRING([--with-mts=@<:@smtp|sendmail@:>@], + AS_HELP_STRING([--with-mts=@<:@smtp|sendmail/smtp|sendmail/pipe@:>@], [specify the default mail transport agent/service])) AS_IF([test x"$with_mts" = x"smtp"], [MTS="smtp"], - [test x"$with_mts" = x"sendmail"], [MTS="sendmail"], + [test x"$with_mts" = x"sendmail"], [MTS="sendmail/smtp"], + [test x"$with_mts" = x"sendmail/smtp"], [MTS="sendmail/smtp"], + [test x"$with_mts" = x"sendmail/pipe"], [MTS="sendmail/pipe"], [MTS="smtp"]) AC_SUBST([MTS])dnl -dnl What should be the default pager? -AC_ARG_WITH([pager], - AS_HELP_STRING([--with-pager=PAGER],[specify the default pager])) - -AS_IF([test -n "$with_pager"], [pagerpath="$with_pager"]) - dnl What should be the default mail server(s)? -AC_ARG_WITH(smtpservers, - AS_HELP_STRING([--with-smtpservers='SMTPSERVER1@<:@ SMTPSERVER2...@:>@'], - [specify the default SMTP server(s) @<:@localhost@:>@])) +AC_ARG_WITH([smtpservers], + [AS_HELP_STRING([--with-smtpservers='SMTPSERVER1@<:@ SMTPSERVER2...@:>@'], + [specify the default SMTP server(s) @<:@localhost@:>@])]) AS_IF([test -n "$with_smtpservers"], [smtpservers="$with_smtpservers"], [smtpservers="localhost"]) AC_SUBST([smtpservers])dnl @@ -137,89 +84,108 @@ dnl CHECK THE COMPILER dnl ------------------ 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 +test -z "$CFLAGS" && auto_cflags=1 -AC_PROG_CC +AC_PROG_CC([cc gcc]) AM_PROG_CC_C_O -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 "$CPPFLAGS" && 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_has_wextra], -[nmh_saved_cflags="$CFLAGS" - CFLAGS="$CFLAGS -Wextra -Wno-clobbered" - AC_TRY_COMPILE([],[],nmh_cv_has_wextra=yes,nmh_cv_has_wextra=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" - AC_TRY_COMPILE([],[],nmh_cv_has_noptrsign=yes,nmh_cv_has_noptrsign=no) - CFLAGS="$nmh_saved_cflags"]) - -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 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 - if test "$nmh_cv_has_wextra" = "yes"; then - nmh_gcc_warnflags="-Wall -Wextra -Wno-clobbered -Wno-pointer-sign" - else - nmh_gcc_warnflags="-Wall -Wno-pointer-sign" - fi -else - if test "$nmh_cv_has_wextra" = "yes"; then - nmh_gcc_warnflags="-Wall -Wextra -Wno-clobbered" - else - nmh_gcc_warnflags="-Wall" - fi -fi - +dnl ---------------- +dnl CUSTOMIZE CFLAGS +dnl ---------------- if test -n "$auto_cflags"; then - if test x"$enable_debug" = x"yes"; then - if test -n "$GCC"; then - test -z "$CFLAGS" && CFLAGS="$nmh_gcc_warnflags -g" || CFLAGS="$CFLAGS $nmh_gcc_warnflags -g" - else - test -z "$CFLAGS" && CFLAGS=-g || CFLAGS="$CFLAGS -g" - fi + dnl The user didn't specify CFLAGS, so customize them. + if test "$GCC" = yes; then + dnl Can't use -ansi with gcc 4.5.3 on Cygwin, at least through setup + 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, with gcc. + AC_CACHE_CHECK([whether we can use -ansi with gcc], [nmh_cv_has_dash_ansi], + [nmh_saved_cppflags="$CPPFLAGS" + nmh_saved_cflags="$CFLAGS" + CPPFLAGS="-D_GNU_SOURCE" + CFLAGS="-ansi -Wall -Werror" + AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include ],[tzset();])], + [nmh_cv_has_dash_ansi=yes], + [nmh_cv_has_dash_ansi=no]) + CPPFLAGS="$nmh_saved_cppflags" + 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 ], + [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 - 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 + dnl Use -v and some other options with SunStudio cc. lex produces + dnl code that causes unreachable-statement warnings. It might be + dnl better to use an autoconf test, except -v will probably succeed + dnl with many other compilers but have different meaning. + AS_CASE([`${CC} -V 2>&1`], + [cc:\ Sun\ C*], [CFLAGS=\ +"${CFLAGS:+$CFLAGS }-v -errtags=yes -erroff=E_STATEMENT_NOT_REACHED"]) fi + + AC_CACHE_CHECK([whether compiler supports -Wall], [nmh_cv_has_wall], + [nmh_saved_cflags="$CFLAGS" + CFLAGS="$CFLAGS -Wall -Werror" + AC_TRY_COMPILE([],[],nmh_cv_has_wall=yes,nmh_cv_has_wall=no) + CFLAGS="$nmh_saved_cflags"]) + test "$nmh_cv_has_wall" = "yes" && CFLAGS="${CFLAGS:+$CFLAGS }-Wall" + + 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"]) + test "$nmh_cv_has_wextra" = "yes" && CFLAGS="${CFLAGS:+$CFLAGS }-Wextra" fi -AC_C_CONST dnl Does compiler support `const'. +dnl -------------- +dnl CUSTOMIZE LINK +dnl -------------- +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 ----------------- +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 it, AC_HEADER_ASSERT enables assertions by default. +test -z "$enable_assert" && enable_assert=no + +AC_HEADER_ASSERT dnl ------------------ dnl CHECK FOR PROGRAMS @@ -229,10 +195,12 @@ AC_PROG_INSTALL dnl Check for BSD compatible `install' AC_PROG_RANLIB dnl Check for `ranlib' AC_PROG_AWK dnl Check for mawk,gawk,nawk, then awk AC_PROG_SED dnl Check for Posix-compliant sed -AC_PROG_LEX dnl Check for lex/flex +AM_PROG_LEX dnl Check for lex/flex + +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 @@ -241,72 +209,36 @@ dnl AC_CHECK_PROGS([MD5SUM], [md5sum md5], [missing]) AS_CASE(["${MD5SUM}"], [md5sum], [MD5FMT="cat"], - [md5], [[MD5FMT="${SED} -e 's/MD5 *(\(.*\)) *= \([0-9a-f]*\)/\2 \1/'"]], + [md5], [[MD5FMT="${SED} -e 's/MD5 *(.*) *= \([0-9a-f]*\)/\1/'"]], [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 -if test x$ac_cv_prog_linttmp1 != xno ; then - LINT=$ac_cv_prog_linttmp1 - LINTFLAGS="-weak +posixlib -macrovarprefixexclude" -else - AC_CHECK_PROG(linttmp2, lint, lint, no)dnl - if test x$ac_cv_prog_linttmp2 != xno ; then - LINT=$ac_cv_prog_linttmp2 - LINTFLAGS="" - else - LINT="echo 'No lint program found'" - LINTFLAGS="" - fi -fi -AC_SUBST([LINT])dnl -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 -if test "$lspath" != "no"; then - AC_CACHE_CHECK([how to get ls to show us the group ownership of a file], +AS_IF([test "$lspath" != "no"], + [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 + [AS_IF([test x"`$lspath -dl / | $AWK '{print $9}'`" = x"/"],[ dnl There were 9 parameters, so unless this is a really bizarre, nonstandard dnl ls, it would seem -l gave us both the user and group. On this type of dnl ls, -g makes _only_ the group be displayed (and not the user). - nmh_cv_ls_grpopt="-l" - else + nmh_cv_ls_grpopt="-l"],[ dnl Looks like -l only gave us the user, so we need -g to get the group too. - nmh_cv_ls_grpopt="-lg" - fi]) -fi - -dnl Look for `more' -pathtmp=/usr/bin:/bin:/usr/ucb:/usr/local/bin -AC_PATH_PROG([morepath], [more], [no], [$pathtmp]) - -dnl If pager is not specified yet, -dnl then use `more' as the default. -if test -z "$pagerpath"; then - pagerpath="$morepath" -fi -AC_SUBST(pagerpath)dnl + 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 Look for `vi' -pathtmp=/usr/bin:/bin:/usr/ucb:/usr/local/bin -AC_PATH_PROG([vipath], [vi], [/bin/vi], [$pathtmp]) - -dnl If editor is not specified yet, -dnl then use `vi' as the default. -AS_IF([test -z "$editorpath"], [editorpath="$vipath"]) -AC_SUBST([editorpath])dnl +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], + [LN=ln]) +AC_SUBST([LN]) dnl ---------------------------------------------------------- dnl FIND MAIL SPOOL AND SEE IF WE NEED TO MAKE inc SETGID MAIL @@ -351,22 +283,30 @@ if test "$ac_cv_lib_lockfile_lockfile_create" != "no" ; then fi fi +dnl Provide a way for distcheck to disable setgid_mail via +dnl DISTCHECK_CONFIGURE_FLAGS. +AS_IF([test x"$DISABLE_SETGID_MAIL" != x -a x"$DISABLE_SETGID_MAIL" != x0], + [nmh_cv_dotlockfile_setgid=yes]) + 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? - 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 -AC_SUBST(SETGID_MAIL)dnl +AC_SUBST([SETGID_MAIL])dnl dnl Use ls to see which group owns the mail spool directory. 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 -AC_SUBST(MAIL_SPOOL_GRP)dnl +AC_SUBST([MAIL_SPOOL_GRP])dnl + +NMH_MIMETYPEPROC +NMH_MIMEENCODINGPROC dnl ------------------ dnl CHECK HEADER FILES @@ -388,20 +328,8 @@ AS_CASE(["$host_os"], AS_IF([test -z "$CPPFLAGS"],[CPPFLAGS="-D_GNU_SOURCE"], [CPPFLAGS="$CPPFLAGS -D_GNU_SOURCE"])]) -AC_HEADER_STDC AC_HEADER_TIOCGWINSZ -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 -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 .]) ]) ]) +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 .]),, @@ -413,79 +341,45 @@ AC_CHECK_HEADER([sys/ptem.h], AC_DEFINE(WINSIZE_IN_PTEM,1, dnl --------------- dnl CHECK FUNCTIONS dnl --------------- -AC_CHECK_FUNCS([wcwidth mbtowc writev lstat nl_langinfo]) +AC_CHECK_FUNCS([wcwidth mbtowc getutxent arc4random]) dnl Check for multibyte character set support -if test "x$ac_cv_header_wchar_h" = "xyes" -a "x$ac_cv_header_wctype_h" = "xyes" \ - -a "x$ac_cv_func_wcwidth" = "xyes" -a "x$ac_cv_func_mbtowc" = "xyes"; then - AC_DEFINE(MULTIBYTE_SUPPORT, 1, - [Define to enable support for multibyte character sets.]) -fi +AS_IF([test "x$ac_cv_header_wchar_h" = "xyes" -a \ + "x$ac_cv_header_wctype_h" = "xyes" -a \ + "x$ac_cv_func_wcwidth" = "xyes" -a \ + "x$ac_cv_func_mbtowc" = "xyes"], + [AC_DEFINE([MULTIBYTE_SUPPORT], [1], + [Define to enable support for multibyte character sets.]) + MULTIBYTE_ENABLED=1], + [MULTIBYTE_ENABLED=0]) +AC_SUBST([MULTIBYTE_ENABLED]) 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 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 - 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"], - [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 --------------- -dnl CHECK FOR ICONV -dnl --------------- - -dnl Find iconv. It may be in libiconv and may be iconv() or libiconv() -if test "x$ac_cv_header_iconv_h" = "xyes"; then - AC_CHECK_FUNC(iconv, ac_found_iconv=yes, ac_found_iconv=no) - if test "x$ac_found_iconv" = "xno"; then - AC_CHECK_LIB(iconv, iconv, ac_found_iconv=yes) - if test "x$ac_found_iconv" = "xno"; then - AC_CHECK_LIB(iconv, libiconv, ac_found_iconv=yes) - fi - if test "x$ac_found_iconv" != "xno"; then - ICONVLIB="-liconv" - fi - else - dnl Handle case where there is a native iconv but iconv.h is from libiconv - AC_CHECK_DECL(_libiconv_version, - [ AC_CHECK_LIB(iconv, libiconv, LIBS="-liconv $LIBS") ],, - [ #include ]) - fi -fi -if test "x$ac_found_iconv" = xyes; then - AC_DEFINE([HAVE_ICONV], [1], [Define if you have the iconv() function.]) -fi -AC_SUBST([ICONVLIB]) - -dnl Check if iconv uses const in prototype declaration -if test "x$ac_found_iconv" = "xyes"; then - AC_CACHE_CHECK(for iconv declaration, ac_cv_iconv_const, - [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include - #include ]], - [[#ifdef __cplusplus - "C" - #endif - #if defined(__STDC__) || defined(__cplusplus) - size_t iconv (iconv_t cd, char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft); - #else - size_t iconv(); - #endif]])], - [ac_cv_iconv_const=], - [ac_cv_iconv_const=const])]) - AC_DEFINE_UNQUOTED([ICONV_CONST], $ac_cv_iconv_const, - [Define as const if the declaration of iconv() needs const.]) -fi +dnl Check for readline support +NMH_READLINE dnl -------------- dnl CHECK FOR NDBM @@ -556,8 +450,8 @@ dnl ------------------ dnl nmhrpm is used in the final summary, see below. The default value is dnl reported there as ./RPM, consistent with the reporting of the default dnl source code location as ., but its absolute path is used in the Makefile. -AC_ARG_WITH(rpmdir, - AS_HELP_STRING([--with-rpmdir=RPMDIR], [RPM build directory @<:@RPM@:>@])) +AC_ARG_WITH([rpmdir], + [AS_HELP_STRING([--with-rpmdir=RPMDIR], [RPM build directory @<:@RPM@:>@])]) AS_IF([test x"$with_rpmdir" = x], [rpmdir='$(abs_srcdir)/RPM'; nmhrpm=./RPM], [rpmdir="$with_rpmdir"; eval "nmhrpm=${rpmdir}"]) AC_SUBST([rpmdir]) @@ -578,99 +472,30 @@ dnl CHECK FOR OPENSSL 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], , + AC_CHECK_LIB([crypto], [BIO_write], [TLSLIB="-lcrypto"], [AC_MSG_ERROR([OpenSSL crypto library not found])]) - AC_CHECK_LIB([ssl], [SSL_library_init], , - [AC_MSG_ERROR([OpenSSL library not found])])]) - -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" + AC_CHECK_LIB([ssl], [SSL_library_init], [TLSLIB="-lssl $TLSLIB"], + [AC_MSG_ERROR([OpenSSL library not found])],[$TLSLIB])], + [TLSLIB=]) +AC_SUBST([TLSLIB]) -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 FLEX FIXUP +dnl ---------------- +dnl Use LFLAGS make variable setting to work around bugs in flex +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=\ +'; 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])]) dnl ---------------- dnl CHECK STRUCTURES @@ -709,8 +534,7 @@ dnl exist. dnl AC_CONFIG_COMMANDS([build-directories], -[test -d etc || ${MKDIR_P} etc -test -d man || ${MKDIR_P} man]) +[test -d man || AS_MKDIR_P([man])]) AC_CONFIG_COMMANDS_POST([ @@ -744,10 +568,8 @@ man page install path : ${nmhman} RPM build root : ${nmhrpm} backup prefix : ${backup_prefix} transport system : ${MTS} -file locking type : ${LOCKTYPE} +spool default locking type : ${with_locking} default smtp servers : ${smtpservers} -default editor : ${editorpath} -default pager : ${pagerpath} SASL support : ${sasl_support} TLS support : ${tls_support} ])])dnl @@ -756,4 +578,5 @@ dnl --------------- dnl OUTPUT MAKEFILE dnl --------------- AC_CONFIG_FILES([Makefile test/common.sh]) +AC_CONFIG_FILES([uip/spost], [chmod +x uip/spost]) AC_OUTPUT