X-Git-Url: http://git.marmaro.de/?p=mmh;a=blobdiff_plain;f=configure.in;h=5176a8aaa19a5c638a82e88101580e3f5eb6aa8d;hp=6b4e237e3d75d491c85d2046612680d68738ce8d;hb=84b98d0484fe61d4ebe205016e35a06da194f525;hpb=4f09543a71a26f8f30d4bd0a83faede0a144f23d diff --git a/configure.in b/configure.in index 6b4e237..5176a8a 100644 --- a/configure.in +++ b/configure.in @@ -7,6 +7,21 @@ dnl AC_INIT(h/nmh.h) AC_CONFIG_HEADER(config.h) +AC_CANONICAL_SYSTEM + +dnl --------------------- +dnl define a macro or two +dnl --------------------- + +AC_DEFUN(NMH_PROG_GNU_LIBTOOL, [ + tmptest=`$LIBTOOL --version 2>&1 | grep GNU` + if test x"$tmptest" != x ; then + GNU_LIBTOOL=1 + AC_SUBST(GNU_LIBTOOL)dnl + fi +] ) + + dnl What version of nmh are we building? VERSION=`sed -e 's/nmh-//' ${srcdir}/VERSION` echo "configuring for nmh-$VERSION" @@ -149,6 +164,15 @@ AC_PROG_RANLIB dnl Check for `ranlib' AC_PROG_AWK dnl Check for mawk,gawk,nawk, then awk 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]) + + +dnl try to figure out which one we've got +AC_CHECK_PROG(LIBTOOL, libtool, libtool, , [$pathtmp]) +NMH_PROG_GNU_LIBTOOL + dnl Check for lorder and tsort commands AC_CHECK_PROG(LORDER, lorder, lorder, no)dnl AC_CHECK_PROG(TSORT, tsort, tsort, no)dnl @@ -159,11 +183,32 @@ if test x$ac_cv_prog_LORDER != xlorder -o x$ac_cv_prog_TSORT != xtsort; then TSORT=cat AC_SUBST(LORDER)dnl AC_SUBST(TSORT)dnl +dnl Mac OS X has lorder, but sh is too broken for it to work +dnl elif test -z "`lorder config/config.c 2>&1 | grep config/config.c`" ; then +dnl LORDER=echo +dnl TSORT=cat +dnl AC_SUBST(LORDER)dnl +dnl AC_SUBST(TSORT)dnl fi -dnl Look for `sendmail' -pathtmp=/usr/lib:/usr/sbin:/usr/etc:/usr/ucblib:/usr/bin:/bin -AC_PATH_PROG(sendmailpath, sendmail, no, [$pathtmp]) +dnl Look for `ls' +pathtmp=/usr/bin:/bin:/usr/local/bin:/usr/xpg4/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, + nmh_cv_ls_grpopt, + [if test x"`$lspath -dl / | $AWK '{print $9}'`" = x"/"; then + 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 + 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 @@ -176,6 +221,10 @@ if test -z "$pagerpath"; then 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, no, [$pathtmp]) + dnl Look for `vi' pathtmp=/usr/bin:/bin:/usr/ucb:/usr/local/bin AC_PATH_PROG(vipath, vi, no, [$pathtmp]) @@ -198,12 +247,12 @@ else fi]) if test "$nmh_cv_attvibug" = yes; then - AC_DEFINE(ATTVIBUG) + AC_DEFINE(ATTVIBUG)dnl fi -dnl --------------- -dnl FIND MAIL SPOOL -dnl --------------- +dnl ---------------------------------------------------------- +dnl FIND MAIL SPOOL AND SEE IF WE NEED TO MAKE inc SETGID MAIL +dnl ---------------------------------------------------------- AC_CACHE_CHECK(where mail spool is located, nmh_cv_mailspool, [for mailspool in /var/mail dnl /var/spool/mail dnl @@ -217,6 +266,32 @@ nmh_cv_mailspool=$mailspool mailspool=$nmh_cv_mailspool AC_SUBST(mailspool)dnl +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 + nmh_cv_mailspool_world_writable=no + else + nmh_cv_mailspool_world_writable=yes + fi]) +fi + +dnl ...If it's not, we need to #define MAILGROUP to 1 and make inc setgid. +if test x"$nmh_cv_mailspool_world_writable" = x"no"; then + dnl do we really need both of these? + AC_DEFINE(MAILGROUP)dnl + SETGID_MAIL=1 +fi +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 + dnl ------------------ dnl CHECK HEADER FILES dnl ------------------ @@ -227,9 +302,10 @@ 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 \ - sys/param.h sys/time.h sys/utsname.h arpa/inet.h \ + netdb.h sys/param.h sys/time.h sys/utsname.h arpa/inet.h \ arpa/ftp.h) + AC_CACHE_CHECK(POSIX termios, nmh_cv_sys_posix_termios, [AC_TRY_LINK([#include #include @@ -263,21 +339,63 @@ if test $nmh_cv_header_termios_h_tiocgwinsz = no; then fi fi +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) ]) ]) + AC_CHECK_HEADER([sys/ptem.h], AC_DEFINE(WINSIZE_IN_PTEM)) dnl --------------- dnl CHECK FUNCTIONS dnl --------------- AC_FUNC_VFORK +AC_CHECK_LIB(mkstemp,mkstemp) AC_CHECK_FUNCS(waitpid wait3 sigaction sigprocmask sigblock sigsetmask \ - sighold sigrelse writev lstat uname tzset killpg \ - sigsetjmp) + sighold sigrelse writev lstat uname tzset killpg mkstemp \ + sethostent) + +dnl solaris screws this up +AC_CHECK_FUNC(gethostbyname, [AC_DEFINE(HAVE_GETHOSTBYNAME)], + AC_CHECK_LIB(nsl, 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_REPLACE_FUNCS(snprintf strerror strdup) +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 +dnl any system header. +dnl +dnl On Solaris 2.[456], the declaration is in . On HP-UX 9-11 and +dnl (reportedly) FreeBSD 3.[23], it's in . Any other locations we +dnl need to check? +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)) + 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) AC_CHECK_NETLIBS @@ -291,6 +409,7 @@ for lib in $termcap_curses_order; do done AC_SUBST(TERMLIB)dnl + dnl -------------- dnl CHECK FOR NDBM dnl -------------- @@ -300,6 +419,11 @@ AC_CHECK_FUNC(dbm_open, , AC_CHECK_LIB(dbm, dbm_open))) dnl ---------------- +dnl CHECK FOR NDBM.H +dnl ---------------- +AC_CHECK_HEADERS(db1/ndbm.h) + +dnl ---------------- dnl CHECK FOR HESIOD dnl ---------------- if test x$with_hesiod != x -a x$with_hesiod != xno; then @@ -480,6 +604,53 @@ SIGNAL_H=$nmh_cv_path_signal_h AC_SUBST(SIGNAL_H)dnl dnl ---------------- +dnl OS SPECIFIC DEFINES +dnl ---------------- +case "$target_os" in + + solaris2*) + AC_DEFINE(SYS5) + AC_DEFINE(SVR4) + ;; + irix*) + AC_DEFINE(SYS5) + AC_DEFINE(SVR4) + ;; + osf*) + AC_DEFINE(SYS5) + AC_DEFINE(SVR4) + ;; + aix*) + AC_DEFINE(SYS5) + AC_DEFINE(SVR4) + ;; + sunos4*) + AC_DEFINE(BSD42) + ;; + freebsd*) + AC_DEFINE(BSD42) + AC_DEFINE(BSD44) + ;; + netbsd*) + AC_DEFINE(BSD42) + AC_DEFINE(BSD44) + ;; + openbsd*) + AC_DEFINE(BSD42) + AC_DEFINE(BSD44) + ;; + bsd/os*) + AC_DEFINE(BSD42) + AC_DEFINE(BSD44) + ;; + sco5*) + AC_DEFINE(SYS5) + AC_DEFINE(SCO_5_STDIO) + ;; +esac + + +dnl ---------------- dnl OUTPUT MAKEFILES dnl ---------------- AC_OUTPUT(Makefile config/Makefile h/Makefile sbr/Makefile uip/Makefile \ @@ -498,6 +669,7 @@ echo " nmh configuration ----------------- nmh version : ${VERSION} +target os : ${target} compiler : ${CC} compiler flags : ${CFLAGS} linker flags : ${LDFLAGS}