X-Git-Url: http://git.marmaro.de/?p=mmh;a=blobdiff_plain;f=configure.in;h=e52c5e607ca14a793bd9059a9f0af9671e69a747;hp=287875bc95dc6948ff218ba5e32ddb4c2b575bc1;hb=389877bae1fe1a9f7259b8979f6a930744d90fab;hpb=56539e8eafef3e955be9d08254d61b139faf34f1 diff --git a/configure.in b/configure.in index 287875b..e52c5e6 100644 --- a/configure.in +++ b/configure.in @@ -352,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. @@ -517,7 +517,7 @@ 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) +AC_REPLACE_FUNCS(snprintf 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 @@ -602,19 +602,65 @@ 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, , - AC_CHECK_LIB(db1, dbm_open, , - AC_CHECK_LIB(gdbm, dbm_open, , - AC_CHECK_LIB(db, __db_ndbm_open)))))) -dnl ---------------- -dnl CHECK FOR NDBM.H -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>) + fi + if test x"$nmh_ndbm" != x; then + NDBM_LIBS="-l$nmh_ndbm" + else + NDBM_LIBS= + fi + AC_SUBST(NDBM_LIBS) +fi -AC_CHECK_HEADERS(db1/ndbm.h gdbm/ndbm.h db.h, break, ) dnl ---------------- dnl CHECK FOR HESIOD