X-Git-Url: http://git.marmaro.de/?a=blobdiff_plain;f=configure.ac;h=c3ebacf08d60cbad6637bc8431b8abe72626137c;hb=e69044f7624abe5cb2cb796d528c0cc5f29515f7;hp=10da4b34c962c438c1a292e7f83c8bfd4c8794c8;hpb=e6d71f88fe62d7508ccd1809cd7e822bbb116b00;p=mmh diff --git a/configure.ac b/configure.ac index 10da4b3..c3ebacf 100644 --- a/configure.ac +++ b/configure.ac @@ -8,16 +8,16 @@ AC_PREREQ([2.61]) 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 subdir-objects]) AC_CANONICAL_HOST -echo "configuring for AC_PACKAGE_NAME-AC_PACKAGE_VERSION" +AC_MSG_NOTICE([configuring for AC_PACKAGE_NAME-AC_PACKAGE_VERSION]) AC_SUBST(VERSION,AC_PACKAGE_VERSION)dnl dnl What date of nmh are we building? DATE=`cat ${srcdir}/DATE` -echo "configuring for nmh dated $DATE" +AC_MSG_NOTICE([configuring for nmh dated $DATE]) AC_SUBST([DATE])dnl dnl -------------------------- @@ -30,21 +30,11 @@ AC_ARG_ENABLE([debug], dnl The old redundant --enable-nmh-debug is deprecated and undocumented. AS_IF([test x"$enable_nmh_debug" = x"yes"], [enable_debug=yes]) -dnl Allow users to send email from addresses other than their default? -AC_ARG_ENABLE(masquerade, - AS_HELP_STRING([--enable-masquerade='draft_from mmailid username_extension'], - [enable up to 3 types of address masquerading]), - [AS_IF([test x"$enable_masquerade" = x"yes"], - [masquerade="draft_from mmailid username_extension"], - [masquerade="$enable_masquerade"])], - [masquerade="draft_from mmailid username_extension"]) -AC_SUBST(masquerade)dnl - 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_HELP_STRING([--disable-locale], [turn off locale features])], [AS_IF([test x$enableval = xyes], [AC_DEFINE(LOCALE)])], [AC_DEFINE(LOCALE)]) @@ -75,15 +65,18 @@ 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: ,)])) -if test x"$with_hash_backup" != x -a x"$with_hash_backup" != x"no"; then - backup_prefix="#" -else - backup_prefix="," -fi +AS_IF([test x"$with_hash_backup" != x -a x"$with_hash_backup" != x"no"], + [backup_prefix="#"], [backup_prefix=","]) 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? +AS_CASE(["$host_os"], + [aix*|cygwin*|linux*], + [default_locktype="fcntl"; default_locking=FCNTL_LOCKING], + [freebsd*|openbsd*|darwin*], [default_locktype="flock"; default_locking=FLOCK_LOCKING], + [default_locktype="dot"; default_locking=DOT_LOCKING]) + AC_ARG_WITH(locking, AS_HELP_STRING([--with-locking=@<:@dot|fcntl|flock|lockf@:>@], [specify the file locking method])) @@ -101,13 +94,13 @@ 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 + LOCKTYPE="$default_locktype" + AC_DEFINE_UNQUOTED($default_locking, 1)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"])], [ +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],[ @@ -118,25 +111,30 @@ AC_ARG_ENABLE([lockdir], [ 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 Both the smtp and sendmail mail transport services use the smtp code -AC_DEFINE([SMTPMTS], [1], - [Define if you want SMTP (simple mail transport protocol) support.])dnl - dnl What should be the default pager? AC_ARG_WITH([pager], AS_HELP_STRING([--with-pager=PAGER],[specify the default pager])) -if test -n "$with_pager"; then - pagerpath="$with_pager" +AS_IF([test -n "$with_pager"], [pagerpath="$with_pager"]) + +dnl If a pager is not explicitly specified, then look for one. +dnl Fall back to `cat', to avoid catastrophic failure of +dnl `mhshow', et al., if pagerpath is set to `no'. +if test -z "$pagerpath"; then + pathtmp=/usr/bin:/bin:/usr/ucb:/usr/local/bin + AC_PATH_PROGS([pagerpath], [more less most cat], [no], [$pathtmp]) fi +AC_SUBST(pagerpath)dnl dnl What should be the default mail server(s)? AC_ARG_WITH(smtpservers, @@ -172,12 +170,25 @@ AC_CACHE_CHECK([whether preprocessor supports -Wunused-macros], CPPFLAGS="$nmh_saved_cppflags"]) if test "$nmh_cv_has_unusedmacros" = 'yes'; then - test -z "$CPPLAGS" && CPPFLAGS=-Wunused-macros \ + 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 -Wno-sign-compare], + [nmh_cv_has_nosigncompare], + [nmh_saved_cppflags="$CPPFLAGS" + CPPFLAGS="$CPPFLAGS -Wno-sign-compare" + AC_TRY_COMPILE([],[],nmh_cv_has_nosigncompare=yes, + nmh_cv_has_nosigncompare=no) + CPPFLAGS="$nmh_saved_cppflags"]) + +if test "$nmh_cv_has_nosigncompare" = 'yes'; then + DISABLE_SIGN_COMPARE_WARNING=-Wno-sign-compare +fi +AC_SUBST(DISABLE_SIGN_COMPARE_WARNING)dnl + AC_CACHE_CHECK([whether compiler supports -Wextra], [nmh_cv_has_wextra], [nmh_saved_cflags="$CFLAGS" CFLAGS="$CFLAGS -Wextra -Wno-clobbered" @@ -190,6 +201,25 @@ AC_CACHE_CHECK([whether compiler supports -Wno-pointer-sign], [nmh_cv_has_noptrs AC_TRY_COMPILE([],[],nmh_cv_has_noptrsign=yes,nmh_cv_has_noptrsign=no) CFLAGS="$nmh_saved_cflags"]) +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. +if test "$GCC" = yes; then + 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"]) +else + nmh_cv_has_dash_ansi=no +fi + dnl if the user hasn't specified CFLAGS, then dnl if compiler is gcc, then dnl use -O2 and some warning flags @@ -199,16 +229,22 @@ 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_dash_ansi" = "yes"; then + nmh_gcc_common_flags="-ansi -pedantic -Wall" + else + nmh_gcc_common_flags="-Wall" + fi if test "$nmh_cv_has_wextra" = "yes"; then - nmh_gcc_warnflags="-Wall -Wextra -Wno-clobbered -Wno-pointer-sign" + nmh_gcc_warnflags="${nmh_gcc_common_flags} -Wextra -Wno-clobbered "\ +"-Wno-pointer-sign" else - nmh_gcc_warnflags="-Wall -Wno-pointer-sign" + nmh_gcc_warnflags="${nmh_gcc_common_flags} -Wno-pointer-sign" fi else if test "$nmh_cv_has_wextra" = "yes"; then - nmh_gcc_warnflags="-Wall -Wextra -Wno-clobbered" + nmh_gcc_warnflags="${nmh_gcc_common_flags} -Wextra -Wno-clobbered" else - nmh_gcc_warnflags="-Wall" + nmh_gcc_warnflags="${nmh_gcc_common_flags}" fi fi @@ -252,7 +288,17 @@ AC_PROG_LEX dnl Check for lex/flex dnl Look for `cut' pathtmp=/usr/bin:/bin:/usr/local/bin:/usr/xpg4/bin:/usr/ucb -AC_PATH_PROG(cutpath, cut, no, [$pathtmp]) +AC_PATH_PROG([cutpath], [cut], [no], [$pathtmp]) + +dnl +dnl Check for MD5 program and formatting command +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/'"]], + [MD5FMT="missing"]) +AC_SUBST([MD5FMT]) dnl ---------------------------------------------- dnl check for lclint, and lint if it doesn't exist @@ -293,17 +339,6 @@ if test "$lspath" != "no"; then 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 - dnl Look for `sendmail' pathtmp=/usr/lib:/usr/sbin:/usr/etc:/usr/ucblib:/usr/bin:/bin AC_PATH_PROG([sendmailpath], [sendmail], [/usr/sbin/sendmail], [$pathtmp]) @@ -317,6 +352,13 @@ 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 dnl ---------------------------------------------------------- @@ -331,7 +373,7 @@ done nmh_cv_mailspool=$mailspool ]) mailspool=$nmh_cv_mailspool -AC_SUBST(mailspool)dnl +AC_SUBST([mailspool])dnl dnl See whether the mail spool directory is world-writable. if test "$lspath" != "no" -a "$cutpath" != "no"; then @@ -345,7 +387,7 @@ if test "$lspath" != "no" -a "$cutpath" != "no"; then fi dnl Also, check for liblockfile (as found on Debian systems) -AC_CHECK_HEADER([lockfile.h], AC_CHECK_LIB(lockfile, lockfile_create) ) +AC_CHECK_HEADER([lockfile.h], [AC_CHECK_LIB(lockfile, lockfile_create)]) dnl and whether its companion program dotlockfile is setgid AC_PATH_PROG(dotlockfilepath, dotlockfile, no) @@ -360,6 +402,12 @@ 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. +if test x"$DISABLE_SETGID_MAIL" != x -a x"$DISABLE_SETGID_MAIL" != x0; then + nmh_cv_dotlockfile_setgid=yes +fi + 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 @@ -391,20 +439,17 @@ dnl because it must be set before any system header is included and there's no dnl portable way to make sure that files generated by lex include config.h dnl before system header files. -case "$host_os" in - linux*) - # Like DEFS, but doesn't get stomped on by configure when using config.h: - test -z "$OURDEFS" && OURDEFS="-D_GNU_SOURCE" \ - || OURDEFS="$OURDEFS -D_GNU_SOURCE" - ;; -esac -AC_SUBST(OURDEFS) +AS_CASE(["$host_os"], + [linux*], + [# Like DEFS, but doesn't get stomped on by configure when using config.h: + 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) +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 @@ -425,14 +470,18 @@ AC_CHECK_HEADER([sys/ptem.h], AC_DEFINE(WINSIZE_IN_PTEM,1, dnl --------------- dnl CHECK FUNCTIONS dnl --------------- -AC_CHECK_FUNCS(writev lstat nl_langinfo) +AC_CHECK_FUNCS([wcwidth mbtowc writev lstat nl_langinfo getutxent]) 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 @@ -443,6 +492,8 @@ AC_CHECK_FUNC([modf], , AC_CHECK_LIB([m], [modf])) dnl Checks for network libraries (nsl, socket) NMH_CHECK_NETLIBS +NMH_READLINE + termcap_curses_order="termcap curses ncurses" for lib in $termcap_curses_order; do AC_CHECK_LIB(${lib}, tgetent, [TERMLIB="-l$lib"; break]) @@ -727,7 +778,7 @@ test -d man || ${MKDIR_P} man]) AC_CONFIG_COMMANDS_POST([ dnl These odd looking assignments are done to expand out unexpanded -dnl variables in bindir et al (for instance mandir is '${datarootdir}/man', +dnl variables in bindir et al (for instance mandir is '${datarootdir}/man'), dnl but expanding that gives '${prefix}/share/man', so we need to expand dnl again to get the final answer. dnl We only use the expanded versions to print the install paths in @@ -739,7 +790,7 @@ eval "nmhlib=${libdir}"; eval "nmhlib=${nmhlib}" eval "nmhman=${mandir}"; eval "nmhman=${nmhman}" eval "nmhrpm=${nmhrpm}"; -echo " +AC_MSG_NOTICE([ nmh configuration ----------------- nmh version : AC_PACKAGE_VERSION @@ -747,7 +798,7 @@ host os : ${host} compiler : ${CC} compiler flags : ${CFLAGS} linker flags : ${LDFLAGS} -definitions : ${OURDEFS} +preprocessor flags : ${CPPFLAGS} source code location : ${srcdir} binary install path : ${nmhbin} library install path : ${nmhlib} @@ -760,13 +811,13 @@ file locking type : ${LOCKTYPE} default smtp servers : ${smtpservers} default editor : ${editorpath} default pager : ${pagerpath} -email address masquerading : ${masquerade} SASL support : ${sasl_support} -TLS support : ${tls_support}" -echo ""]) +TLS support : ${tls_support} +])])dnl dnl --------------- dnl OUTPUT MAKEFILE dnl --------------- -AC_CONFIG_FILES([Makefile]) +AC_CONFIG_FILES([Makefile test/common.sh]) +AC_CONFIG_FILES([uip/spost], [chmod +x uip/spost]) AC_OUTPUT