From: Kurt Zeilenga Date: Tue, 11 Aug 1998 19:23:43 +0000 (+0000) Subject: More autoconf changes. X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=0fb937d437bd0968179b70cecc55a28639df96e2;p=thirdparty%2Fopenldap.git More autoconf changes. Now builds everything, working on make depend/install support --- diff --git a/acconfig.h b/acconfig.h index e75f839047..327671c1b0 100644 --- a/acconfig.h +++ b/acconfig.h @@ -17,6 +17,18 @@ /* define this if sys_errlist is not defined in stdio.h or errno.h */ #undef DECL_SYS_ERRLIST +/* define this to use DB BTREES */ +#undef LDBM_USE_DBBTREE + +/* define this to use DB HASH */ +#undef LDBM_USE_DBHASH + +/* define this to use GNU DBM */ +#undef LDBM_USE_GDBM + +/* define this to use NDBM */ +#undef LDBM_USE_NDBM + /* Leave that blank line there!! Autoheader needs it. If you're adding to this file, keep in mind: diff --git a/aclocal.m4 b/aclocal.m4 index 15ff4746bc..1c2d16438e 100644 --- a/aclocal.m4 +++ b/aclocal.m4 @@ -1,7 +1,32 @@ +dnl Restricted form of AC_ARG_ENABLE that ensures user doesn't give bogus +dnl values. +dnl +dnl Parameters: +dnl $1 = option name +dnl $2 = help-string +dnl $3 = action to perform if option is not default +dnl $4 = action if perform if option is default +dnl $5 = default option value (either 'yes' or 'no') +AC_DEFUN([CF_ARG_OPTION], +[AC_ARG_ENABLE($1,[$2],[test "$enableval" != ifelse($5,no,yes,no) && enableval=ifelse($5,no,no,yes) + if test "$enableval" != "$5" ; then +ifelse($3,,[ :]dnl +,[ $3]) ifelse($4,,,[ + else + $4]) + fi],[enableval=$5 ifelse($4,,,[ + $4 +])dnl + ])])dnl +dnl +dnl Allow user to disable a normally-on option. +dnl +dnl AC_DEFUN([CF_ARG_DISABLE],[CF_ARG_OPTION($1,[$2 (default: on)],[$3],[$4],yes))dnl +dnl +dnl dnl Check for declaration of sys_errlist in one of stdio.h and errno.h. dnl Declaration of sys_errlist on BSD4.4 interferes with our declaration. dnl Reported by Keith Bostic. -dnl AC_DEFUN([CF_SYS_ERRLIST], [ AC_MSG_CHECKING([declaration of sys_errlist]) diff --git a/configure.in b/configure.in index bc96ed1763..9ebf611f92 100644 --- a/configure.in +++ b/configure.in @@ -9,21 +9,152 @@ dnl Do not use AutoConf 2.12; it produces a configuration script dnl that causes an "internal 2K buffer" error on HPUX when run dnl with /bin/sh. Autoconf 2.10 seems to be okay. AC_CONFIG_AUX_DIR(etc) -AC_PREFIX_DEFAULT(/usr/local) AC_CONFIG_HEADER(include/portable.h)dnl +dnl +dnl Start Args +AC_MSG_CHECKING(arguments) + +dnl server options +CF_ARG_OPTION(ldapd,[ --enable-ldapd enable building ldapd],[ + BUILD_LDAPD=yes],[BUILD_LDAPD=no],no)dnl +CF_ARG_OPTION(slapd,[ --enable-slapd enable building slapd],[ + BUILD_SLAPD=no],[BUILD_SLAPD=yes],yes)dnl +CF_ARG_OPTION(slurpd,[ --enable-slurpd enable building slurpd],[ + BUILD_SLURPD=no],[BUILD_SLURPD=yes],yes)dnl + +dnl Backend options +CF_ARG_OPTION(ldbm,[ --enable-ldbm enable ldbm backend],[ + BUILD_LDBM=no],[BUILD_LDBM=yes],yes)dnl +CF_ARG_OPTION(passwd,[ --enable-passwd enable passwd backend],[ + BUILD_PASSWD=no],[BUILD_PASSWD=yes],yes)dnl +CF_ARG_OPTION(shell,[ --enable-shell enable shell backend],[ + BUILD_SHELL=no],[BUILD_SHELL=yes],yes)dnl + +AC_ARG_WITH(ndbm,[ --with-ndbm use NDB for LDBM backend],[ + opt_ndbm=yes],[opt_ndbm=no]) +AC_ARG_WITH(gdbm,[ --with-gdbm use GDBM for LDBM backend],[ + opt_gdbm=yes],[opt_gdbm=no]) +AC_ARG_WITH(dbhash,[ --with-dbhash use Berkeley DB Hash for LDBM backend],[ + opt_dbhash=yes],[opt_dbhash=no]) +AC_ARG_WITH(dbbtree,[ --with-dbbtree use Berkeley DB Btrees for LDBM backend],[ + opt_dbbtree=yes],[opt_dbbtree=no]) + +AC_MSG_RESULT(done) + +AC_MSG_CHECKING(LDBM preference) +ldbm_prefer=any + +if test "$opt_ndbm" = yes ; then + ldbm_prefer=ndbm +fi +if test "$opt_gdbm" = yes ; then + ldbm_prefer=gdbm +fi +if test "$opt_dbhash" = yes ; then + ldbm_prefer=dbhash +fi +if test "$opt_dbbtree" = yes ; then + ldbm_prefer=dbbtree +fi +AC_MSG_RESULT($ldbm_prefer) + +if test "$BUILD_SLAPD" != "yes" ; then + BUILD_SLURPD="no" + BUILD_LDBM="no" + BUILD_PASSWD="no" + BUILD_SHELL="no" + ldbm_prefer="none" +fi + +AC_SUBST(BUILD_LDAPD) +AC_SUBST(BUILD_SLAPD) +AC_SUBST(BUILD_SLURPD) + +AC_SUBST(BUILD_LDBM) +AC_SUBST(BUILD_PASSWD) +AC_SUBST(BUILD_SHELL) + +dnl End Args dnl Checks for programs. AC_PROG_CC +AC_PROG_GCC_TRADITIONAL + AC_PROG_LN_S -AC_PROG_MAKE_SET +AC_PROG_INSTALL AC_PROG_RANLIB +AC_PROG_MAKE_SET -# FreeBSD (and others) have crypt(3) in -lcrypt -AC_CHECK_LIB(crypt, crypt) +AC_PATH_PROG(SENDMAIL, sendmail, /usr/lib/sendmail, + $PATH:/usr/libexec:/usr/lib:/usr/sbin:/usr/etc:etc) +AC_PATH_PROG(EDITOR, vi, /usr/ucb/vi, + $PATH:/usr/ucb) +AC_PATH_PROG(FINGER, finger, /usr/ucb/finger, + $PATH:/usr/ucb) + +ldbm_use="none" +LIBDB="" + +if test "$BUILD_LDBM" = "yes" ; then + if test $ldbm_prefer = any -o $ldbm_prefer = dbbtree \ + -o $ldbm_prefer = dbhash ; then + AC_CHECK_FUNC(dbopen,[ + ldbm_use=$ldbm_prefer + ldbm_prefer=found],[ + AC_CHECK_LIB(db,dbopen,[ + ldbm_use=$ldbm_prefer + ldbm_prefer=found + LIBDB="-ldb" + ]) + ]) + + if test $ldbm_prefer = found ; then + if test $ldbm_use = dbbhash ; then + AC_DEFINE(LDBM_USE_DBHASH,1) + else + AC_DEFINE(LDBM_USE_DBBTREE,1) + fi + fi + fi + if test $ldbm_prefer = any -o $ldbm_prefer = gdbm ; then + AC_CHECK_LIB(gdbm, gdbm_open,[ + ldbm_use=$ldbm_prefer + ldbm_prefer=found + LIBDB="-lgdbm" + AC_DEFINE(LDBM_USE_GDBM,1) + ]) + fi + if test $ldbm_prefer = any -o $ldbm_prefer = ndbm ; then + AC_CHECK_LIB(dbm,dbm_open,[ + ldbm_use=$ldbm_prefer + ldbm_prefer=found + LIBDB="-ldbm" + AC_DEFINE(LDBM_USE_NDBM,1) + ]) + fi + + if test $ldbm_prefer != found ; then + AC_MSG_ERROR(could not find suitable db for $ldbm_prefer backend) + fi +fi + +AC_SUBST(LIBDB) + +# ud needs termcap (should insert check here) +LIBTERMCAP="-ltermcap" +AC_SUBST(LIBTERMCAP) # FreeBSD has obsoleted re_comp(3) from -lc, needs -lcompat AC_CHECK_LIB(compat, re_comp) +# FreeBSD (and others) have crypt(3) in -lcrypt +LIBCRYPT= +AC_CHECK_FUNC(crypt, AC_DEFINE(HAVE_CRYPT), [ + AC_CHECK_LIB(crypt, crypt, [LIBCRYPT="-lcrypt" + AC_DEFINE(HAVE_CRYPT)]) +]) +AC_SUBST(LIBCRYPT) + dnl Checks for header files. AC_HEADER_DIRENT AC_HEADER_STDC @@ -52,7 +183,6 @@ AC_HEADER_TIME AC_STRUCT_TM dnl Checks for library functions. -AC_PROG_GCC_TRADITIONAL AC_FUNC_MEMCMP AC_TYPE_SIGNAL AC_FUNC_STRFTIME @@ -73,12 +203,9 @@ AC_CHECK_FUNCS( \ strtoul \ ) -AC_ARG_PROGRAM - # Check Configuration CF_SYS_ERRLIST - AC_OUTPUT( \ include/ldapconfig.h \ include/Makefile:etc/top.mk:include/Makefile.in \ @@ -98,13 +225,13 @@ libraries/libldbm/Makefile:etc/top.mk:libraries/libldbm/Makefile.in:etc/lib.mk \ libraries/libldif/Makefile:etc/top.mk:libraries/libldif/Makefile.in:etc/lib.mk \ libraries/liblthread/Makefile:etc/top.mk:libraries/liblthread/Makefile.in:etc/lib.mk \ servers/Makefile:etc/top.mk:servers/Makefile.in:etc/dir.mk \ -servers/ldapd/Makefile:etc/top.mk:servers/ldapd/Makefile.in:etc/rules.mk \ -servers/slapd/Makefile:etc/top.mk:servers/slapd/Makefile.in:etc/rules.mk \ +servers/ldapd/Makefile:etc/top.mk:servers/ldapd/Makefile.in:etc/srv.mk \ +servers/slapd/Makefile:etc/top.mk:servers/slapd/Makefile.in:etc/srv.mk \ servers/slapd/back-ldbm/Makefile:etc/top.mk:servers/slapd/back-ldbm/Makefile.in:etc/rules.mk \ servers/slapd/back-passwd/Makefile:etc/top.mk:servers/slapd/back-passwd/Makefile.in:etc/rules.mk \ servers/slapd/back-shell/Makefile:etc/top.mk:servers/slapd/back-shell/Makefile.in:etc/rules.mk \ servers/slapd/tools/Makefile:etc/top.mk:servers/slapd/tools/Makefile.in:etc/rules.mk \ servers/slapd/shell-backends/Makefile:etc/top.mk:servers/slapd/shell-backends/Makefile.in:etc/rules.mk \ -servers/slurpd/Makefile:etc/top.mk:servers/slurpd/Makefile.in:etc/rules.mk \ +servers/slurpd/Makefile:etc/top.mk:servers/slurpd/Makefile.in:etc/srv.mk \ Makefile:etc/top.mk:Makefile.in:etc/dir.mk, \ [date > stamp-h]) diff --git a/include/portable.h b/include/portable.h deleted file mode 100644 index c14594a68d..0000000000 --- a/include/portable.h +++ /dev/null @@ -1,153 +0,0 @@ -/* include/portable.h. Generated automatically by configure. */ -/* include/portable.h.in. Generated automatically from configure.in by autoheader. */ -/* - * Copyright (c) 1994 Regents of the University of Michigan. - * All rights reserved. - * - * Redistribution and use in source and binary forms are permitted - * provided that this notice is preserved and that due credit is given - * to the University of Michigan at Ann Arbor. The name of the University - * may not be used to endorse or promote products derived from this - * software without specific prior written permission. This software - * is provided ``as is'' without express or implied warranty. - */ - -#ifndef _LDAP_PORTABLE_H -#define _LDAP_PORTABLE_H - - -/* Define to empty if the keyword does not work. */ -/* #undef const */ - -/* Define to `int' if doesn't define. */ -/* #undef gid_t */ - -/* Define if you don't have vprintf but do have _doprnt. */ -/* #undef HAVE_DOPRNT */ - -/* Define if your struct stat has st_blksize. */ -#define HAVE_ST_BLKSIZE 1 - -/* Define if you have the strftime function. */ -#define HAVE_STRFTIME 1 - -/* Define if you have that is POSIX.1 compatible. */ -#define HAVE_SYS_WAIT_H 1 - -/* Define if you have the vprintf function. */ -#define HAVE_VPRINTF 1 - -/* Define if you have the wait3 system call. */ -#define HAVE_WAIT3 1 - -/* Define to `long' if doesn't define. */ -/* #undef off_t */ - -/* Define to `int' if doesn't define. */ -/* #undef pid_t */ - -/* Define as the return type of signal handlers (int or void). */ -#define RETSIGTYPE void - -/* Define to `unsigned' if doesn't define. */ -/* #undef size_t */ - -/* Define if you have the ANSI C header files. */ -#define STDC_HEADERS 1 - -/* Define if you can safely include both and . */ -#define TIME_WITH_SYS_TIME 1 - -/* Define if your declares struct tm. */ -/* #undef TM_IN_SYS_TIME */ - -/* Define to `int' if doesn't define. */ -/* #undef uid_t */ - -/* define this if sys_errlist is not defined in stdio.h or errno.h */ -/* #undef DECL_SYS_ERRLIST */ - -/* Define if you have the gethostname function. */ -#define HAVE_GETHOSTNAME 1 - -/* Define if you have the gettimeofday function. */ -#define HAVE_GETTIMEOFDAY 1 - -/* Define if you have the mktime function. */ -#define HAVE_MKTIME 1 - -/* Define if you have the select function. */ -#define HAVE_SELECT 1 - -/* Define if you have the socket function. */ -#define HAVE_SOCKET 1 - -/* Define if you have the strdup function. */ -#define HAVE_STRDUP 1 - -/* Define if you have the strerror function. */ -#define HAVE_STRERROR 1 - -/* Define if you have the strstr function. */ -#define HAVE_STRSTR 1 - -/* Define if you have the strtod function. */ -#define HAVE_STRTOD 1 - -/* Define if you have the strtol function. */ -#define HAVE_STRTOL 1 - -/* Define if you have the strtoul function. */ -#define HAVE_STRTOUL 1 - -/* Define if you have the header file. */ -#define HAVE_DIRENT_H 1 - -/* Define if you have the header file. */ -#define HAVE_FCNTL_H 1 - -/* Define if you have the header file. */ -#define HAVE_LIMITS_H 1 - -/* Define if you have the header file. */ -/* #undef HAVE_MALLOC_H */ - -/* Define if you have the header file. */ -/* #undef HAVE_NDIR_H */ - -/* Define if you have the header file. */ -#define HAVE_SGTTY_H 1 - -/* Define if you have the header file. */ -/* #undef HAVE_SYS_DIR_H */ - -/* Define if you have the header file. */ -#define HAVE_SYS_FILE_H 1 - -/* Define if you have the header file. */ -#define HAVE_SYS_IOCTL_H 1 - -/* Define if you have the header file. */ -/* #undef HAVE_SYS_NDIR_H */ - -/* Define if you have the header file. */ -#define HAVE_SYS_TIME_H 1 - -/* Define if you have the header file. */ -#define HAVE_SYSLOG_H 1 - -/* Define if you have the header file. */ -/* #undef HAVE_TERMIO_H */ - -/* Define if you have the header file. */ -#define HAVE_UNISTD_H 1 - -/* Define if you have the compat library (-lcompat). */ -#define HAVE_LIBCOMPAT 1 - -/* Define if you have the crypt library (-lcrypt). */ -#define HAVE_LIBCRYPT 1 - - -#include "bridge.h" -#endif /* _LDAP_PORTABLE_H */ diff --git a/libraries/libldbm/ldbm.c b/libraries/libldbm/ldbm.c index 6d15e4629e..3d4e1fd316 100644 --- a/libraries/libldbm/ldbm.c +++ b/libraries/libldbm/ldbm.c @@ -1,6 +1,9 @@ /* ldbm.c - ldap dbm compatibility routines */ #include + +#ifdef LDAP_LDBM + #include "ldbm.h" #ifdef LDBM_USE_GDBM @@ -346,3 +349,4 @@ ldbm_errno( LDBM ldbm ) #endif /* ndbm */ #endif /* db */ #endif /* gdbm */ +#endif /* ldbm */