X-Git-Url: http://git.marmaro.de/?p=mmh;a=blobdiff_plain;f=configure.ac;h=ad45c152ca8acaa95013be5653af0254425ed9d3;hp=2fba8974fae5da536d9948005fb6a949d723f7d8;hb=d4bcca1aa235370bc20bc2734c0cd6f700b17871;hpb=71b43c2803ffed08ec727c29d70a0d2de3ffb3f1 diff --git a/configure.ac b/configure.ac index 2fba897..ad45c15 100644 --- a/configure.ac +++ b/configure.ac @@ -1,12 +1,13 @@ dnl -dnl configure.ac -- autoconf template for nmh +dnl configure.ac -- autoconf template for mmh dnl dnl Move this up a bit AC_PREREQ(2.61) +dnl (I was able to configure with autoconf-2.59 --meillo 2012-03-22) AC_INIT(mmh, m4_normalize(m4_include([VERSION]))) -AC_CONFIG_SRCDIR(h/nmh.h) +AC_CONFIG_SRCDIR(h/mh.h) AC_CONFIG_HEADER(config.h) AC_CANONICAL_TARGET @@ -15,7 +16,7 @@ dnl --------------------- dnl define a macro or two dnl --------------------- -AC_DEFUN(NMH_PROG_GNU_LIBTOOL, [ +AC_DEFUN([NMH_PROG_GNU_LIBTOOL], [ if test -n "$LIBTOOL" ; then tmptest=`$LIBTOOL --version 2>&1 | grep GNU` if test x"$tmptest" != x ; then @@ -28,16 +29,16 @@ fi echo "configuring for AC_PACKAGE_NAME-AC_PACKAGE_VERSION" AC_SUBST(VERSION,AC_PACKAGE_VERSION)dnl -dnl What date of nmh are we building? +dnl What date of mmh are we building? DATE=`cat ${srcdir}/DATE` -echo "configuring for nmh dated $DATE" +echo "configuring for mmh dated $DATE" AC_SUBST(DATE)dnl dnl -------------------------- dnl CHECK COMMAND LINE OPTIONS dnl -------------------------- -dnl Do you want to debug nmh? +dnl Do you want to debug mmh? AC_ARG_ENABLE(debug, AS_HELP_STRING([--enable-debug],[enable nmh code debugging])) dnl The old redundant --enable-nmh-debug is deprecated and undocumented. @@ -45,39 +46,6 @@ if test x"$enable_nmh_debug" = x"yes"; then enable_debug=yes fi -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]), - [if test x"$enable_masquerade" = x"yes"; then - masquerade="draft_from mmailid username_extension" - else - masquerade="$enable_masquerade" - fi], [masquerade="draft_from mmailid username_extension"]) -AC_SUBST(masquerade)dnl - -dnl Do you want mhe support? -AC_ARG_ENABLE(mhe, - AS_HELP_STRING([--disable-mhe],[disable mhe support])) - -dnl mhe support is on by default, so define it unless --disable-mhe or the -dnl deprecated, undocumented --disable-nmh-mhe are specified. -if test x"$enable_mhe" != x"no" -a x"$enable_nmh_mhe" != x"no"; then - AC_DEFINE(MHE, 1, - [Define to compile in support for the Emacs front-end mh-e.])dnl -fi - -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]), -[if test x$enableval = xyes; then - AC_DEFINE(LOCALE) -fi], -AC_DEFINE(LOCALE) -) - dnl What method of locking to use? AC_ARG_WITH(locking, AS_HELP_STRING([--with-locking=@<:@dot|fcntl|flock|lockf@:>@], @@ -100,14 +68,20 @@ else AC_DEFINE(DOT_LOCKING)dnl fi -dnl What should be the default pager? -AC_ARG_WITH(pager, - AS_HELP_STRING([--with-pager=PAGER],[specify the default pager])) +dnl Should we use a locking directory? +AC_ARG_WITH(lockdir, + AS_HELP_STRING([--with-lockdir=dir], [Store dot-lock files in "dir"]), [ + AS_IF([test "x$with_lockdir" = xyes],[ + AC_MSG_ERROR([--with-lockdir requires an argument])]) +]) -if test -n "$with_pager"; then - pagerpath="$with_pager" +if test x"$with_lockdir" != x; then + LOCKDIR="$with_lockdir" + AC_DEFINE_UNQUOTED(LOCKDIR, ["$with_lockdir"], + [Directory to store dot-locking lock files.])dnl fi + dnl ---------------------------------------------------- dnl Default location is /usr/local/mmh/{bin,etc,lib,share/man} dnl ---------------------------------------------------- @@ -289,7 +263,7 @@ 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, nmh_cv_mailspool_world_writable, - [if test "`$lspath -dlL $mailspool | $cutpath -c9`" = "-"; then + [if test "`$lspath -dl $mailspool/ | $cutpath -c9`" = "-"; then nmh_cv_mailspool_world_writable=no else nmh_cv_mailspool_world_writable=yes @@ -351,17 +325,11 @@ case "$target_os" in esac AC_SUBST(OURDEFS) -AC_HEADER_DIRENT AC_HEADER_STDC -AC_HEADER_TIME -AC_HEADER_SYS_WAIT -AC_HEADER_STAT AC_HEADER_TIOCGWINSZ -AC_CHECK_HEADERS(string.h memory.h stdlib.h unistd.h errno.h fcntl.h \ - limits.h crypt.h termcap.h termio.h termios.h locale.h \ - langinfo.h wchar.h wctype.h iconv.h netdb.h \ - sys/param.h sys/time.h sys/utsname.h sys/stream.h \ - arpa/inet.h arpa/ftp.h) +AC_CHECK_HEADERS(fcntl.h crypt.h termcap.h \ + langinfo.h wchar.h wctype.h iconv.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 @@ -382,20 +350,7 @@ AC_CHECK_HEADER([sys/ptem.h], AC_DEFINE(WINSIZE_IN_PTEM,1, dnl --------------- dnl CHECK FUNCTIONS dnl --------------- -AC_FUNC_VFORK -AC_CHECK_LIB(mkstemp,mkstemp) -AC_CHECK_FUNCS(waitpid wait3 sigaction sigprocmask sigblock sigsetmask \ - sighold sigrelse lstat uname tzset killpg mkstemp \ - getutent nl_langinfo mbtowc wcwidth) - -dnl sigsetjmp may be a macro -AC_MSG_CHECKING(for sigsetjmp) -AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include ]], - [[sigsetjmp((void *)0, 0);]])],[AC_DEFINE(HAVE_SIGSETJMP, 1, - [Define to 1 if you have the `sigsetjmp'.]) AC_MSG_RESULT(yes)], - [AC_MSG_RESULT(no)]) - -AC_REPLACE_FUNCS(snprintf strdup) +AC_CHECK_FUNCS(nl_langinfo mbtowc wcwidth) 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 @@ -409,16 +364,6 @@ AC_EGREP_HEADER(initgroups, grp.h, AC_DEFINE(INITGROUPS_HEADER, ), AC_EGREP_HEADER(initgroups, unistd.h, AC_DEFINE(INITGROUPS_HEADER, ))) -dnl On AIX 4.1, snprintf() is defined in libc.a but there's no prototype in -dnl 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 has a prototype for snprintf().])) - 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 @@ -432,14 +377,17 @@ dnl ------------------- dnl Check location of modf AC_CHECK_FUNC(modf, , AC_CHECK_LIB(m, modf)) -dnl Checks for network libraries (nsl, socket) -AC_CHECK_NETLIBS - -termcap_curses_order="termcap curses ncurses" +termcap_curses_order="termcap curses ncurses tinfo" for lib in $termcap_curses_order; do AC_CHECK_LIB(${lib}, tgetent, [TERMLIB="-l$lib"; break]) done AC_SUBST(TERMLIB)dnl +if test "x$TERMLIB" = "x"; then + echo 'Could not find tgetent() in any library.' + echo 'Is there a ncurses-devel package that you can install?' + exit 1 +fi + dnl --------------- dnl CHECK FOR ICONV @@ -486,69 +434,6 @@ if test "x$ac_found_iconv" = "xyes"; then [Define as const if the declaration of iconv() needs const.]) fi -dnl -------------- -dnl CHECK FOR NDBM -dnl -------------- - -AC_ARG_WITH([ndbm],AS_HELP_STRING([--with-ndbm=ARG],[use -lARG to link with ndbm]), - [nmh_ndbm=$withval],[nmh_ndbm=autodetect]) -AC_ARG_WITH([ndbmheader],AS_HELP_STRING([--with-ndbmheader=ARG],[#include to use ndbm]), - [nmh_ndbmheader=$withval],[nmh_ndbmheader=autodetect]) - -if test "$nmh_ndbm" = "autodetect"; then - if test "$nmh_ndbmheader" != "autodetect"; then - AC_MSG_ERROR([must specify both --with-ndbm and --with-ndbmheader or neither]) - else - - dnl There are at least four implementations of ndbm, and - dnl several of those can be in different places at the whim - dnl of the system integrator. A good summary of this mess - dnl can be found at http://www.unixpapa.com/incnote/dbm.html - - dnl Classic ndbm with no library required (eg NetBSD): try this - dnl first so we don't accidentally link in a pointless but harmless - dnl library in one of the later ndbm.h+libfoo tests: - NMH_CHECK_NDBM(ndbm.h,,, - dnl Berkeley DBv2 emulating ndbm: header in db.h: - NMH_CHECK_NDBM(db.h,db,, - dnl Berkeley DBv1 emulating ndbm: - NMH_CHECK_NDBM(ndbm.h,db,, - NMH_CHECK_NDBM(ndbm.h,db1,, - dnl Classic ndbm: - NMH_CHECK_NDBM(ndbm.h,ndbm,, - dnl glibc2.1 systems put db1 in a subdir: - NMH_CHECK_NDBM(db1/ndbm.h,db1,, - dnl GNU gdbm emulating ndbm, with header possibly in gdbm/ - dnl and possibly needing gbdm_compat library: - NMH_CHECK_NDBM(gdbm/ndbm.h,gdbm,, - NMH_CHECK_NDBM(gdbm/ndbm.h,gdbm_compat -lgdbm,, - NMH_CHECK_NDBM(ndbm.h,gdbm,, - NMH_CHECK_NDBM(ndbm.h,gdbm_compat -lgdbm)))))))))) - - fi -else - dnl We don't really need to check that the user-specified values work, - dnl but it is a convenience to the user to bomb out early rather than - dnl after configure and half the compile process. - NMH_CHECK_NDBM([$nmh_ndbmheader],[$nmh_ndbm]) -fi - -if test "$nmh_ndbm_found" = "no"; then - AC_MSG_ERROR([could not find a working ndbm library/header combination]) -else - dnl Now export the lib/header to our makefile/config.h: - if test x"$nmh_ndbmheader" != x; then - AC_DEFINE_UNQUOTED(NDBM_HEADER, <$nmh_ndbmheader>, - [Define to the header containing the ndbm API prototypes.]) - fi - if test x"$nmh_ndbm" != x; then - NDBM_LIBS="-l$nmh_ndbm" - else - NDBM_LIBS= - fi - AC_SUBST(NDBM_LIBS) -fi - dnl --------------------- dnl CHECK TERMCAP LIBRARY @@ -559,35 +444,6 @@ dnl tests will find it when it tries to link test programs. nmh_save_LIBS="$LIBS" LIBS="$TERMLIB $LIBS" -dnl Checks for external variable ospeed in the termcap library. -AC_CACHE_CHECK(if an include file defines ospeed, -nmh_cv_decl_ospeed_include_defines, -[AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include -#if HAVE_TERMIOS_H -# include -#endif -#if HAVE_TERMCAP_H -# include -#endif]], [[ospeed = 0;]])], -nmh_cv_decl_ospeed_include_defines=yes,nmh_cv_decl_ospeed_include_defines=no)]) - -if test $nmh_cv_decl_ospeed_include_defines = no; then - AC_CACHE_CHECK(if you must define ospeed, - nmh_cv_decl_ospeed_must_define, - [AC_LINK_IFELSE([AC_LANG_PROGRAM([[]], - [[extern short ospeed; ospeed = 0;]])], - nmh_cv_decl_ospeed_must_define=yes,nmh_cv_decl_ospeed_must_define=no)]) -fi - -AH_TEMPLATE(HAVE_OSPEED, [Define to 1 if your termcap library has the ospeed variable.]) -if test $nmh_cv_decl_ospeed_include_defines = yes; then - AC_DEFINE(HAVE_OSPEED)dnl -elif test $nmh_cv_decl_ospeed_must_define = yes; then - AC_DEFINE(HAVE_OSPEED) - AC_DEFINE(MUST_DEFINE_OSPEED, 1, - [Define to 1 if you have ospeed, but it is not defined in termcap.h.]) -fi - 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(). @@ -602,7 +458,7 @@ main() { char buf[4096]; int r1 = tgetent(buf, "vt100"); - int r2 = tgetent((char*)0,"vt100"); + int r2 = tgetent(NULL,"vt100"); if (r1 >= 0 && r1 == r2) { char tbuf[1024], *u; u = tbuf; @@ -661,101 +517,22 @@ LIBS="$nmh_save_LIBS" dnl -------------- dnl CHECK TYPEDEFS dnl -------------- -AC_TYPE_SIGNAL AC_TYPE_PID_T AC_TYPE_OFF_T AC_TYPE_UID_T AC_TYPE_MODE_T AC_TYPE_SIZE_T -dnl Check for sigset_t. Currently I'm looking in -dnl and . Others might need -dnl to be added. -AC_CACHE_CHECK(for sigset_t, nmh_cv_type_sigset_t, -[AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include -#include ]], [[sigset_t tempsigset;]])], -nmh_cv_type_sigset_t=yes,nmh_cv_type_sigset_t=no)]) -if test $nmh_cv_type_sigset_t = no; then - AC_DEFINE(sigset_t, unsigned int, - [Define to `unsigned int' if or doesn't define.]) -fi - dnl ---------------- dnl CHECK STRUCTURES dnl ---------------- -AC_CHECK_MEMBERS(struct stat.st_blksize) - -AC_CHECK_MEMBERS(struct tm.tm_gmtoff,,, - [#ifdef TIME_WITH_SYS_TIME -# include -# include -#else -# ifdef TM_IN_SYS_TIME -# include -# else -# include -# endif -#endif]) - -AC_CHECK_MEMBERS(struct utmp.ut_type,,,[#include ]) - -AC_MSG_CHECKING(for union wait) -AC_CACHE_VAL(nmh_cv_union_wait, [dnl - AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include -#include ]], - [[union wait status; int pid; pid = wait (&status); -#ifdef WEXITSTATUS -/* Some POSIXoid systems have both the new-style macros and the old - union wait type, and they do not work together. If union wait - conflicts with WEXITSTATUS et al, we don't want to use it at all. */ - if (WEXITSTATUS (status) != 0) pid = -1; -#ifdef WTERMSIG - /* If we have WEXITSTATUS and WTERMSIG, just use them on ints. */ - -- blow chunks here -- -#endif -#endif -#ifdef HAVE_WAITPID - /* Make sure union wait works with waitpid. */ - pid = waitpid (-1, &status, 0); -#endif - ]])], - [nmh_cv_union_wait=yes], - [nmh_cv_union_wait=no])]) -if test "$nmh_cv_union_wait" = yes; then - AC_DEFINE(HAVE_UNION_WAIT, 1, - [Define to 1 if you have the \`union wait' type in .]) -fi -AC_MSG_RESULT($nmh_cv_union_wait) - -CHECK_TYPE_STRUCT_DIRENT_D_TYPE() - -dnl ------------- -dnl CHECK SIGNALS -dnl ------------- -dnl What style of signal do you have (POSIX, BSD, or SYSV)? -AH_TEMPLATE(RELIABLE_SIGNALS, [Define to 1 if you have reliable signals.]) -AC_MSG_CHECKING(what style of signals to use) -if test $ac_cv_func_sigaction = yes -a $ac_cv_func_sigprocmask = yes; then - signals_style=POSIX_SIGNALS - AC_DEFINE(POSIX_SIGNALS, 1, - [Define to 1 if you use POSIX style signal handling.]) - AC_DEFINE(RELIABLE_SIGNALS) -elif test $ac_cv_func_sigblock = yes -a $ac_cv_func_sigsetmask = yes; then - signals_style=BSD_SIGNALS - AC_DEFINE(BSD_SIGNALS,1, - [Define to 1 if you use BSD style signal handling (and can block signals).]) - AC_DEFINE(RELIABLE_SIGNALS) -elif test $ac_cv_func_sighold = yes -a $ac_cv_func_sigrelse = yes; then - signals_style=SYSV_SIGNALS - AC_DEFINE(SYSV_SIGNALS,1, - [Define to 1 if you use SYSV style signal handling (and can block signals).]) -else - signals_style=NO_SIGNAL_BLOCKING - AC_DEFINE(NO_SIGNAL_BLOCKING,1, - [Define to 1 if you have no signal blocking at all (bummer).]) -fi -AC_MSG_RESULT($signals_style) +dnl For platforms such as FreeBSD that have tm_gmtoff in struct tm. +dnl (FreeBSD has a timezone() function but not a timezone global +dnl variable that is visible). +AC_CHECK_MEMBERS([struct tm.tm_gmtoff],,,[#include ]) + +AC_STRUCT_DIRENT_D_TYPE dnl Where is located? Needed as input for signames.awk AC_CACHE_CHECK(where signal.h is located, nmh_cv_path_signal_h, @@ -775,40 +552,12 @@ nmh_cv_path_signal_h=$SIGNAL_H SIGNAL_H=$nmh_cv_path_signal_h AC_SUBST(SIGNAL_H)dnl -dnl ---------------- -dnl OS SPECIFIC DEFINES -dnl ---------------- -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 - - sunos4*) - AC_DEFINE(BSD42) - ;; - freebsd*) - AC_DEFINE(BSD42) - ;; - netbsd*) - AC_DEFINE(BSD42) - ;; - openbsd*) - AC_DEFINE(BSD42) - ;; - bsd/os*) - AC_DEFINE(BSD42) - ;; - sco5*) - AC_DEFINE(SCO_5_STDIO) - ;; -esac - dnl ---------------- dnl OUTPUT MAKEFILES dnl ---------------- AC_CONFIG_FILES(Makefile config/Makefile h/Makefile sbr/Makefile uip/Makefile \ - etc/Makefile docs/Makefile man/Makefile) + etc/Makefile man/Makefile) AC_CONFIG_COMMANDS([stamp],[test -z "$CONFIG_HEADERS" || echo > stamp-h]) AC_OUTPUT @@ -824,10 +573,10 @@ eval "nmhsysconf=${sysconfdir}"; eval "nmhsysconf=${nmhsysconf}" eval "nmhlib=${libdir}"; eval "nmhlib=${nmhlib}" eval "nmhman=${mandir}"; eval "nmhman=${nmhman}" -echo " -nmh configuration +cat <