X-Git-Url: http://git.marmaro.de/?a=blobdiff_plain;ds=sidebyside;f=configure.in;h=2485a5fe9a9694f8fb328f6e851d107bc20b7af9;hb=9a33ff618b5901a3af815650d4b84d39ee96e529;hp=167518da3c2bfd34d7d5387b9aeaeb65fbd28965;hpb=35dc2ac6e48a15b966865ec9d69326a6b2a281dd;p=mmh
diff --git a/configure.in b/configure.in
index 167518d..2485a5f 100644
--- a/configure.in
+++ b/configure.in
@@ -4,10 +4,17 @@ dnl
dnl $Id$
dnl
-AC_INIT(h/nmh.h)
+dnl 2.13 definitely chokes; 2.53 is the earliest version I've tested.
+dnl 2.50 is the major breakpoint between the old autoconf and the new,
+dnl so require that. If there are bug reports about 2.50-2.52 not working
+dnl we can always move this up a little.
+AC_PREREQ(2.50)
+
+AC_INIT(nmh, m4_normalize(m4_include([VERSION])))
+AC_CONFIG_SRCDIR(h/nmh.h)
AC_CONFIG_HEADER(config.h)
-AC_CANONICAL_SYSTEM
+AC_CANONICAL_TARGET
dnl ---------------------
dnl define a macro or two
@@ -23,11 +30,8 @@ if test -n "$LIBTOOL" ; then
fi
] )
-
-dnl What version of nmh are we building?
-VERSION=`sed -e 's/nmh-//' ${srcdir}/VERSION`
-echo "configuring for nmh-$VERSION"
-AC_SUBST(VERSION)dnl
+echo "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`
@@ -49,7 +53,6 @@ fi
AC_SUBST(APOPLIB)dnl
dnl Do you want to debug nmh?
-undefine([debug])dnl
AC_ARG_ENABLE(debug,
[ --enable-debug enable nmh code debugging])
dnl The old redundant --enable-nmh-debug is deprecated and undocumented.
@@ -58,7 +61,6 @@ if test x"$enable_nmh_debug" = x"yes"; then
fi
dnl Allow users to send email from addresses other than their default?
-undefine([masquerade])dnl
AC_ARG_ENABLE(masquerade,
[ --enable-masquerade[='draft_from mmailid username_extension']
enable up to 3 types of address masquerading [none]],
@@ -70,7 +72,6 @@ AC_ARG_ENABLE(masquerade,
AC_SUBST(masquerade)dnl
dnl Do you want mhe support?
-undefine([mhe])dnl
AC_ARG_ENABLE(mhe,
[ --enable-mhe enable mhe support (DEFAULT)])
@@ -81,7 +82,6 @@ if test x"$enable_mhe" != x"no" -a x"$enable_nmh_mhe" != x"no"; then
fi
dnl Do you want client-side support for pop?
-undefine([pop])dnl
AC_ARG_ENABLE(pop,
[ --enable-pop enable client-side support for plain POP3])
dnl The old redundant --enable-nmh-pop is deprecated and undocumented.
@@ -93,7 +93,7 @@ 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,
[ --with-cyrus-sasl=
Specify location of Cyrus SASL library for auth])
-if test x"$with_cyrus_sasl" != x -a x"$with_cyrus_sasl" != "no"; then
+if test x"$with_cyrus_sasl" != x -a x"$with_cyrus_sasl" != x"no"; then
AC_DEFINE(CYRUS_SASL)dnl
sasl_support=yes
else
@@ -101,7 +101,6 @@ else
fi
dnl What should be the default editor?
-undefine([editor])dnl
AC_ARG_WITH(editor,
[ --with-editor=EDITOR specify the default editor])
@@ -110,7 +109,6 @@ if test -n "$with_editor"; then
fi
dnl Set the backup prefix
-undefine([backup-prefix])dnl
AC_ARG_WITH([hash-backup],
[ --with-hash-backup use # as the backup prefix (default: ,)])
if test x"$with_hash_backup" != x -a x"$with_hash_backup" != x"no"; then
@@ -148,7 +146,6 @@ AC_SUBST(POPLIB)dnl
AC_SUBST(POPSED)dnl
dnl What method of locking to use?
-undefine([locking])dnl
AC_ARG_WITH(locking,
[ --with-locking=LOCKTYPE specify the file locking method
(one of dot, fcntl, flock, lockf)])
@@ -171,7 +168,6 @@ else
fi
dnl What method of posting should post use?
-undefine([mts])dnl
AC_ARG_WITH(mts,
[ --with-mts=MTS specify the default mail transport agent/service])
@@ -188,7 +184,6 @@ dnl Both the smtp and sendmail mail transport services use the smtp code
AC_DEFINE(SMTPMTS)dnl
dnl What should be the default pager?
-undefine([pager])dnl
AC_ARG_WITH(pager,
[ --with-pager=PAGER specify the default pager])
@@ -197,7 +192,6 @@ if test -n "$with_pager"; then
fi
dnl What should be the default mail server(s)?
-undefine([smtpservers])dnl
AC_ARG_WITH(smtpservers,
[ --with-smtpservers='SMTPSERVER1[ SMTPSERVER2...]'
specify the default SMTP server(s) [localhost]])
@@ -358,11 +352,11 @@ 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, no, [$pathtmp])
+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, no, [$pathtmp])
+AC_PATH_PROG(vipath, vi, /bin/vi, [$pathtmp])
dnl If editor is not specified yet,
dnl then use `vi' as the default.
@@ -374,7 +368,7 @@ AC_SUBST(editorpath)dnl
dnl Check for broken vi
AC_CACHE_CHECK(for broken vi, nmh_cv_attvibug,
[if echo 'r /nonexist-file
-q' | ex > /dev/null 2>&1
+q' | ex > /dev/null
then
nmh_cv_attvibug=no
else
@@ -454,26 +448,25 @@ AC_HEADER_SYS_WAIT
AC_HEADER_STAT
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 \
- netdb.h sys/param.h sys/time.h sys/utsname.h arpa/inet.h \
- arpa/ftp.h)
+ langinfo.h netdb.h sys/param.h sys/time.h sys/utsname.h \
+ iconv.h sys/stream.h arpa/inet.h arpa/ftp.h)
AC_CACHE_CHECK(POSIX termios, nmh_cv_sys_posix_termios,
-[AC_TRY_LINK([#include
+[AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include
#include
-#include ],
-[/* SunOS 4.0.3 has termios.h but not the library calls. */
-tcgetattr(0, 0);],
- nmh_cv_sys_posix_termios=yes, nmh_cv_sys_posix_termios=no)])
+#include ]],
+[[/* SunOS 4.0.3 has termios.h but not the library calls. */
+tcgetattr(0, 0);]])],
+nmh_cv_sys_posix_termios=yes, nmh_cv_sys_posix_termios=no)])
if test $nmh_cv_sys_posix_termios = yes; then
AC_CACHE_CHECK(TIOCGWINSZ in termios.h,
nmh_cv_header_termios_h_tiocgwinsz,
- [AC_TRY_LINK([#include
-#include ],
- [int x = TIOCGWINSZ;],
- nmh_cv_header_termios_h_tiocgwinsz=yes,
- nmh_cv_header_termios_h_tiocgwinsz=no)])
+ [AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include
+#include ]],
+ [[int x = TIOCGWINSZ;]])],
+ nmh_cv_header_termios_h_tiocgwinsz=yes,nmh_cv_header_termios_h_tiocgwinsz=no)])
else
nmh_cv_header_termios_h_tiocgwinsz=no
fi
@@ -481,11 +474,10 @@ fi
if test $nmh_cv_header_termios_h_tiocgwinsz = no; then
AC_CACHE_CHECK(TIOCGWINSZ in sys/ioctl.h,
nmh_cv_header_sys_ioctl_h_tiocgwinsz,
- [AC_TRY_LINK([#include
-#include ],
- [int x = TIOCGWINSZ;],
- nmh_cv_header_sys_ioctl_h_tiocgwinsz=yes,
- nmh_cv_header_sys_ioctl_h_tiocgwinsz=no)])
+ [AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include
+#include ]],
+ [[int x = TIOCGWINSZ;]])],
+ nmh_cv_header_sys_ioctl_h_tiocgwinsz=yes,nmh_cv_header_sys_ioctl_h_tiocgwinsz=no)])
if test $nmh_cv_header_sys_ioctl_h_tiocgwinsz = yes; then
AC_DEFINE(GWINSZ_IN_SYS_IOCTL)dnl
fi
@@ -500,7 +492,11 @@ AC_CHECK_HEADER(libio.h, [
AC_EGREP_HEADER(_IO_write_ptr, libio.h, [
AC_DEFINE(LINUX_STDIO) ]) ])
-AC_CHECK_HEADER([sys/ptem.h], AC_DEFINE(WINSIZE_IN_PTEM))
+AC_CHECK_HEADER([sys/ptem.h], AC_DEFINE(WINSIZE_IN_PTEM),,
+[[#if HAVE_SYS_STREAM_H
+# include
+#endif
+]])
dnl ---------------
dnl CHECK FUNCTIONS
@@ -509,7 +505,7 @@ AC_FUNC_VFORK
AC_CHECK_LIB(mkstemp,mkstemp)
AC_CHECK_FUNCS(waitpid wait3 sigaction sigprocmask sigblock sigsetmask \
sighold sigrelse writev lstat uname tzset killpg mkstemp \
- sethostent getutent)
+ sethostent getutent nl_langinfo)
dnl solaris screws this up
AC_CHECK_FUNC(gethostbyname, [AC_DEFINE(HAVE_GETHOSTBYNAME)],
@@ -517,8 +513,9 @@ AC_CHECK_FUNC(gethostbyname, [AC_DEFINE(HAVE_GETHOSTBYNAME)],
dnl sigsetjmp may be a macro
AC_MSG_CHECKING(for sigsetjmp)
-AC_TRY_LINK([#include ], [sigsetjmp((void *)0, 0);],
- [AC_DEFINE(HAVE_SIGSETJMP) AC_MSG_RESULT(yes)], AC_MSG_RESULT(no))
+AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include ]],
+ [[sigsetjmp((void *)0, 0);]])],[AC_DEFINE(HAVE_SIGSETJMP) AC_MSG_RESULT(yes)],
+ [AC_MSG_RESULT(no)])
AC_REPLACE_FUNCS(snprintf strerror strdup)
@@ -557,18 +554,113 @@ for lib in $termcap_curses_order; do
done
AC_SUBST(TERMLIB)dnl
+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
+ LIBS="-liconv $LIBS"
+ 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
+
+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 --------------
dnl CHECK FOR NDBM
dnl --------------
-dnl Checks for ndbm
-AC_CHECK_FUNC(dbm_open, ,
- AC_CHECK_LIB(ndbm, dbm_open, ,
- AC_CHECK_LIB(dbm, dbm_open)))
-dnl ----------------
-dnl CHECK FOR NDBM.H
-dnl ----------------
-AC_CHECK_HEADERS(db1/ndbm.h)
+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>)
+ 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 FOR HESIOD
@@ -629,7 +721,7 @@ AC_SUBST(KRB4_LIBS)dnl
dnl --------------------
dnl CHECK FOR CYRUS SASL
dnl --------------------
-if test x"$with_cyrus_sasl" != x -a x"$with_cyrus_sasl" != "no"; then
+if test x"$with_cyrus_sasl" != x -a x"$with_cyrus_sasl" != x"no"; then
if test x"$with_cyrus_sasl" != x"yes"; then
SASL_INCLUDES="-I$with_cyrus_sasl/include"
SASL_LIBS="-L$with_cyrus_sasl/lib"
@@ -645,8 +737,8 @@ if test x"$with_cyrus_sasl" != x -a x"$with_cyrus_sasl" != "no"; then
fi
save_LDFLAGS="$LDFLAGS"
LDFLAGS="$LDFLAGS $SASL_LIBS"
- AC_CHECK_LIB(sasl, sasl_client_new,
- [SASL_LIBS="$SASL_LIBS -lsasl"],
+ AC_CHECK_LIB(sasl2, sasl_client_new,
+ [SASL_LIBS="$SASL_LIBS -lsasl2"],
[AC_MSG_ERROR(Cyrus SASL library not found)])
LDFLAGS="$save_LDFLAGS"
fi
@@ -665,23 +757,21 @@ 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_TRY_LINK(
-[#include
+[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)])
+#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_TRY_LINK( ,[extern short ospeed; ospeed = 0;],
- nmh_cv_decl_ospeed_must_define=yes,
- nmh_cv_decl_ospeed_must_define=no)])
+ [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
if test $nmh_cv_decl_ospeed_include_defines = yes; then
@@ -721,10 +811,9 @@ 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_TRY_COMPILE(
-[#include
-#include ], [sigset_t tempsigset;],
- nmh_cv_type_sigset_t=yes, nmh_cv_type_sigset_t=no)])
+[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)
fi
@@ -732,11 +821,10 @@ fi
dnl ----------------
dnl CHECK STRUCTURES
dnl ----------------
-AC_STRUCT_ST_BLKSIZE
+AC_CHECK_MEMBERS(struct stat.st_blksize)
AC_CACHE_CHECK(for tm_gmtoff in struct tm, nmh_cv_struct_tm_gmtoff,
-[AC_TRY_COMPILE(
-[#ifdef TIME_WITH_SYS_TIME
+[AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#ifdef TIME_WITH_SYS_TIME
# include
# include
#else
@@ -745,13 +833,21 @@ AC_CACHE_CHECK(for tm_gmtoff in struct tm, nmh_cv_struct_tm_gmtoff,
# else
# include
# endif
-#endif],
-[struct tm temptm; temptm.tm_gmtoff = 0;],
- nmh_cv_struct_tm_gmtoff=yes, nmh_cv_struct_tm_gmtoff=no)])
+#endif]], [[struct tm temptm; temptm.tm_gmtoff = 0;]])],
+nmh_cv_struct_tm_gmtoff=yes,nmh_cv_struct_tm_gmtoff=no)])
if test $nmh_cv_struct_tm_gmtoff = yes; then
AC_DEFINE(HAVE_TM_GMTOFF)
fi
+AC_CACHE_CHECK(for ut_type in struct utmp, nmh_cv_struct_utmp_ut_type,
+[AC_TRY_COMPILE(
+[#include ],
+[struct utmp temputmp; temputmp.ut_type = 0;],
+ nmh_cv_struct_utmp_ut_type=yes, nmh_cv_struct_utmp_ut_type=no)])
+if test $nmh_cv_struct_utmp_ut_type = yes; then
+ AC_DEFINE(HAVE_UTMP_UT_TYPE)
+fi
+
dnl -------------
dnl CHECK SIGNALS
dnl -------------
@@ -843,10 +939,11 @@ esac
dnl ----------------
dnl OUTPUT MAKEFILES
dnl ----------------
-AC_OUTPUT(Makefile config/Makefile h/Makefile sbr/Makefile uip/Makefile \
- mts/Makefile mts/smtp/Makefile \
- etc/Makefile docs/Makefile man/Makefile, \
- [test -z "$CONFIG_HEADERS" || echo > stamp-h])
+AC_CONFIG_FILES(Makefile config/Makefile h/Makefile sbr/Makefile uip/Makefile \
+ mts/Makefile mts/smtp/Makefile \
+ etc/Makefile docs/Makefile man/Makefile)
+AC_CONFIG_COMMANDS([stamp],[test -z "$CONFIG_HEADERS" || echo > stamp-h])
+AC_OUTPUT
dnl Umm, what's the point of these assignments?? --
eval "nmhbin=${bindir}"; eval "nmhbin2=${nmhbin}"
@@ -872,7 +969,7 @@ fi
echo "
nmh configuration
-----------------
-nmh version : ${VERSION}
+nmh version : AC_PACKAGE_VERSION
target os : ${target}
compiler : ${CC}
compiler flags : ${CFLAGS}