Reworked enable/with options. Mostly works.

This commit is contained in:
Kurt Zeilenga 1998-09-20 05:35:00 +00:00
parent b5d6d5e2a8
commit 721a62af38
6 changed files with 2102 additions and 1348 deletions

270
aclocal.m4 vendored
View File

@ -1,50 +1,266 @@
dnl --------------------------------------------------------------------
dnl Restricted form of AC_ARG_ENABLE that ensures user doesn't give bogus
dnl values.
dnl
dnl Parameters:
dnl OpenLDAP Autoconf Macros
dnl
dnl --------------------------------------------------------------------
dnl Restricted form of AC_ARG_ENABLE that limits user options
dnl
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 $3 = default value (auto)
dnl $4 = allowed values (auto yes no)
AC_DEFUN([OL_ARG_ENABLE], [# OpenLDAP --enable-$1
AC_ARG_ENABLE($1,[$2 (]ifelse($3,,auto,$3)[)],[
ol_arg=invalid
for ol_val in ifelse($4,,[auto yes no],[$4]) ; do
if test "$enableval" = "$ol_val" ; then
ol_arg="$ol_val"
fi
done
if test "$ol_arg" = "invalid" ; then
AC_MSG_ERROR(bad value $enableval for --enable-$1)
fi
ol_enable_$1="$ol_arg"
],
[ ol_enable_$1=ifelse($3,,"auto","$3")])dnl
dnl AC_VERBOSE(OpenLDAP -enable-$1 $ol_enable_$1)
# end --enable-$1
])dnl
])])dnl
dnl
dnl --------------------------------------------------------------------
dnl Restricted form of AC_ARG_WITH that limits user options
dnl
dnl $1 = option name
dnl $2 = help-string
dnl $3 = default value (no)
dnl $4 = allowed values (yes or no)
AC_DEFUN([OL_ARG_WITH], [# OpenLDAP --with-$1
AC_ARG_WITH($1,[$2 (]ifelse($3,,yes,$3)[)],[
ol_arg=invalid
for ol_val in ifelse($4,,[yes no],[$4]) ; do
if test "$withval" = "$ol_val" ; then
ol_arg="$ol_val"
fi
done
if test "$ol_arg" = "invalid" ; then
AC_MSG_ERROR(bad value $withval for --with-$1)
fi
ol_with_$1="$ol_arg"
],
[ ol_with_$1=ifelse($3,,"no","$3")])dnl
dnl AC_VERBOSE(OpenLDAP --with-$1 $ol_with_$1)
# end --with-$1
])dnl
dnl
dnl ====================================================================
dnl Check if db.h is Berkeley DB2
AC_DEFUN([OL_HEADER_BERKELEY_DB2],
[AC_CHECK_HEADERS(db.h)
if test $ac_cv_header_db_h = yes ; then
AC_CACHE_CHECK(if db.h is DB2, [ol_cv_header_db2],[
AC_EGREP_CPP(__db_version_2,[
# include <db.h>
/* this check could be improved */
# ifdef DB_VERSION_MAJOR
# if DB_VERSION_MAJOR == 2
__db_version_2
# endif
# endif
], ol_cv_header_db2=yes, ol_cv_header_db2=no)])
fi
])dnl
dnl --------------------------------------------------------------------
dnl Check if Berkeley DB2 library exists
dnl Check for dbopen in standard libraries or -ldb
AC_DEFUN([OL_LIB_BERKELEY_DB2],
[AC_CACHE_CHECK(for DB2 library, [ol_cv_lib_db2],
[ ol_LIBS="$LIBS"
AC_CHECK_LIB(db,db_open,[ol_cv_lib_db2=-ldb],[ol_cv_lib_db2=no])
LIBS="$ol_LIBS"
])
])dnl
dnl
dnl --------------------------------------------------------------------
dnl Check if Berkeley db2 exists
AC_DEFUN([OL_BERKELEY_DB2],
[AC_REQUIRE([OL_LIB_BERKELEY_DB2])
AC_REQUIRE([OL_HEADER_BERKELEY_DB2])
AC_CACHE_CHECK(for Berkeley DB2, [ol_cv_berkeley_db2], [
if test $ol_cv_lib_db2 = no -o $ol_cv_header_db2 = no ; then
ol_cv_berkeley_db2=no
else
ol_cv_berkeley_db2=yes
fi
])
])dnl
dnl
dnl ====================================================================
dnl Check for db.h/db_185.h is Berkeley DB
AC_DEFUN([OL_HEADER_BERKELEY_DB],
[AC_REQUIRE([OL_HEADER_BERKELEY_DB2])
AC_CHECK_HEADERS(db_185.h)
if test $ol_cv_header_db2 = yes ; then
dnl db.h is db2!
ol_cv_header_db=$ac_cv_header_db_185_h
else
ol_cv_header_db=$ac_cv_header_db_h
fi
])dnl
dnl
dnl --------------------------------------------------------------------
dnl Check if Berkeley DB library exists
dnl Check for dbopen in standard libraries or -ldb
AC_DEFUN([OL_LIB_BERKELEY_DB],
[AC_CACHE_CHECK(for Berkeley DB library, [ol_cv_lib_db],
[ ol_LIBS="$LIBS"
AC_CHECK_FUNC(dbopen,[ol_cv_lib_db=yes], [
AC_CHECK_LIB(db,dbopen,[ol_cv_lib_db=-ldb],[ol_cv_lib_db=no])
])
LIBS="$ol_LIBS"
])
])dnl
dnl
dnl --------------------------------------------------------------------
dnl Check if db exists
AC_DEFUN([OL_BERKELEY_DB],
[AC_REQUIRE([OL_LIB_BERKELEY_DB])
AC_REQUIRE([OL_HEADER_BERKELEY_DB])
AC_CACHE_CHECK(for Berkeley DB, [ol_cv_berkeley_db], [
if test $ol_cv_lib_db = no -o $ol_cv_header_db = no ; then
ol_cv_berkeley_db=no
else
ol_cv_berkeley_db=yes
fi
])
])dnl
dnl
dnl ====================================================================
dnl Check if GDBM library exists
dnl Check for gdbm_open in standard libraries or -lgdbm
AC_DEFUN([OL_LIB_GDBM],
[AC_CACHE_CHECK(for GDBM library, [ol_cv_lib_gdbm],
[ ol_LIBS="$LIBS"
AC_CHECK_FUNC(gdbm_open,[ol_cv_lib_gdbm=yes], [
AC_CHECK_LIB(gdbm,gdbm_open,[ol_cv_lib_gdbm=-lgdbm],[ol_cv_lib_gdbm=no])
])
LIBS="$ol_LIBS"
])
])dnl
dnl
dnl --------------------------------------------------------------------
dnl Check if GDBM exists
AC_DEFUN([OL_GDBM],
[AC_REQUIRE([OL_LIB_GDBM])
AC_CHECK_HEADERS(gdbm.h)
AC_CACHE_CHECK(for db, [ol_cv_gdbm], [
if test $ol_cv_lib_gdbm = no -o $ac_cv_header_gdbm_h = no ; then
ol_cv_gdbm=no
else
ol_cv_gdbm=yes
fi
])
])dnl
dnl
dnl ====================================================================
dnl Check if NDBM library exists
dnl Check for dbm_open in standard libraries or -lndbm or -ldbm
AC_DEFUN([OL_LIB_NDBM],
[AC_CACHE_CHECK(for NDBM library, [ol_cv_lib_ndbm],
[ ol_LIBS="$LIBS"
AC_CHECK_FUNC(dbm_open,[ol_cv_lib_ndbm=yes], [
AC_CHECK_LIB(ndbm,dbm_open,[ol_cv_lib_ndbm=-lndbm], [
AC_CHECK_LIB(dbm,dbm_open,[ol_cv_lib_ndbm=-ldbm],
[ol_cv_lib_ndbm=no])dnl
])
])
LIBS="$ol_LIBS"
])
])dnl
dnl
dnl --------------------------------------------------------------------
dnl Check if NDBM exists
AC_DEFUN([OL_NDBM],
[AC_REQUIRE([OL_LIB_NDBM])
AC_CHECK_HEADERS(ndbm.h)
AC_CACHE_CHECK(for db, [ol_cv_ndbm], [
if test $ol_cv_lib_ndbm = no -o $ac_cv_header_ndbm_h = no ; then
ol_cv_ndbm=no
else
ol_cv_ndbm=yes
fi
])
])dnl
dnl
dnl ====================================================================
dnl Check POSIX Thread version
AC_DEFUN([OL_POSIX_THREAD_VERSION],
[AC_CACHE_CHECK([POSIX thread version],[ol_cv_pthread_version],[
AC_EGREP_CPP(final,[
# include <pthread.h>
/* this check could be improved */
# ifdef PTHREAD_ONCE_INIT
final
# endif
], ol_pthread_final=yes, ol_pthread_final=no)
AC_EGREP_CPP(draft4,[
# include <pthread.h>
/* this check could be improved */
# ifdef pthread_once_init
draft4
# endif
], ol_pthread_draft4=yes, ol_pthread_draft4=no)
if test $ol_pthread_final = yes -a $ol_pthread_draft4 = no; then
ol_cv_pthread_version=final
elif test $ol_pthread_final = no -a $ol_pthread_draft4 = yes; then
ol_cv_pthread_version=draft4
else
ol_cv_pthread_version=unknown
fi
])
])dnl
dnl
dnl --------------------------------------------------------------------
dnl Check LinuxThread
AC_DEFUN([OL_LINUX_THREADS],
[
AC_CACHE_CHECK([for LinuxThreads], [ol_cv_linux_threads], [
res=`grep Linuxthreads /usr/include/pthread.h 2>/dev/null | wc -l`
if test "$res" -gt 0 ; then
ol_cv_linux_threads=yes
else
ol_cv_linux_threads=no
fi
])
])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.
AC_DEFUN([CF_SYS_ERRLIST],
AC_DEFUN([OL_SYS_ERRLIST],
[
AC_MSG_CHECKING([declaration of sys_errlist])
AC_CACHE_VAL(cf_cv_dcl_sys_errlist,[
AC_CACHE_VAL(ol_cv_dcl_sys_errlist,[
AC_TRY_COMPILE([
#include <stdio.h>
#include <sys/types.h>
#include <errno.h> ],
[char *c = (char *) *sys_errlist],
[cf_cv_dcl_sys_errlist=yes],
[cf_cv_dcl_sys_errlist=no])])
AC_MSG_RESULT($cf_cv_dcl_sys_errlist)
[ol_cv_dcl_sys_errlist=yes],
[ol_cv_dcl_sys_errlist=no])])
AC_MSG_RESULT($ol_cv_dcl_sys_errlist)
# It's possible (for near-UNIX clones) that sys_errlist doesn't exist
if test $cf_cv_dcl_sys_errlist = no ; then
if test $ol_cv_dcl_sys_errlist = no ; then
AC_DEFINE(DECL_SYS_ERRLIST)
AC_MSG_CHECKING([existence of sys_errlist])
AC_CACHE_VAL(cf_cv_have_sys_errlist,[
AC_CACHE_VAL(ol_cv_have_sys_errlist,[
AC_TRY_LINK([#include <errno.h>],
[char *c = (char *) *sys_errlist],
[cf_cv_have_sys_errlist=yes],
[cf_cv_have_sys_errlist=no])])
AC_MSG_RESULT($cf_cv_have_sys_errlist)
[ol_cv_have_sys_errlist=yes],
[ol_cv_have_sys_errlist=no])])
AC_MSG_RESULT($ol_cv_have_sys_errlist)
fi
])dnl

2483
configure vendored

File diff suppressed because it is too large Load Diff

View File

@ -18,184 +18,177 @@ AC_CONFIG_AUX_DIR(build)
AC_CONFIG_HEADER(include/portable.h)dnl
dnl
dnl Start Args
AC_MSG_CHECKING(arguments)
AC_MSG_CHECKING(configure arguments)
AC_PREFIX_DEFAULT(/usr/local)
dnl General "enable" options
CF_ARG_OPTION(debug,[ --enable-debug enable debugging (yes)],[
LDAP_DEBUG=no],[LDAP_DEBUG=yes],yes)dnl
CF_ARG_OPTION(syslog,[ --enable-syslog enable syslog support (no)],[
LDAP_CLDAP=yes],[LDAP_CLDAP=no],no)dnl
CF_ARG_OPTION(libui,[ --enable-libui enable library user interface (yes)],[
LDAP_LIBUI=no],[LDAP_LIBUI=yes],yes)dnl
CF_ARG_OPTION(cache,[ --enable-cache enable caching (yes)],[
LDAP_CACHE=no],[LDAP_CACHE=yes],yes)dnl
CF_ARG_OPTION(dns,[ --enable-dns enable dns support (no)],[
LDAP_DNS=yes],[LDAP_DNS=no],no)dnl
CF_ARG_OPTION(referrals,[ --enable-referrals enable referrals (yes)],[
LDAP_REFERRALS=no],[LDAP_REFERRALS=yes],yes)dnl
CF_ARG_OPTION(cldap,[ --enable-clapd enable connectionless ldap (no)],[
LDAP_CLDAP=yes],[LDAP_CLDAP=no],no)dnl
OL_ARG_ENABLE(debug,[ --enable-debug enable debugging], yes)dnl
#OL_ARG_ENABLE(syslog,[ --enable-syslog enable syslog support], auto)dnl
OL_ARG_ENABLE(libui,[ --enable-libui enable library user interface], yes)dnl
OL_ARG_ENABLE(cache,[ --enable-cache enable caching], yes)dnl
OL_ARG_ENABLE(dns,[ --enable-dns enable dns support], auto)dnl
OL_ARG_ENABLE(referrals,[ --enable-referrals enable referrals], yes)dnl
OL_ARG_ENABLE(cldap,[ --enable-clapd enable connectionless ldap], no)dnl
dnl General "with" options
AC_ARG_WITH(kerberos,[ --with-kerberos use Kerberos (no)],[
opt_kerberos=yes],[opt_kerberos=no])
AC_ARG_WITH(kerberos-afs,[ --with-kerberos-afs use AFS Kerberos (no)],[
opt_kerberos_afs=yes],[opt_kerberos_afs=no])
AC_ARG_WITH(threads,[ --with-threads use threads (yes)],[
opt_threads=yes],[opt_threads=no])
OL_ARG_WITH(kerberos,[ --with-kerberos use Kerberos],
auto, [auto k5 k4 afs yes no])
OL_ARG_WITH(threads,[ --with-threads use threads],
auto, [auto posix dce mach yes no] )
dnl Server options
dnl LDAPD OPTIONS
CF_ARG_OPTION(ldapd,[ --enable-ldapd enable building ldapd (no)],[
BUILD_LDAPD=yes],[BUILD_LDAPD=no],no)dnl
OL_ARG_ENABLE(ldapd,[ --enable-ldapd enable building ldapd], no)dnl
dnl SLAPD OPTIONS
CF_ARG_OPTION(slapd,[ --enable-slapd enable building slapd (yes)],[
BUILD_SLAPD=no],[BUILD_SLAPD=yes],yes)dnl
CF_ARG_OPTION(aclgroup,[ --enable-aclgroup enable ACL group support (yes)],[
SLAPD_ACLGROUP=no],[SLAPD_ALCGROUP=yes],yes)dnl
CF_ARG_OPTION(crypt,[ --enable-crypt enable crypt(3) passwords (yes)],[
SLAPD_CRYPT=no],[SLAPD_CRYPT=yes],yes)dnl
CF_ARG_OPTION(md5,[ --enable-md5 enable MD5 passwords (yes)],[
SLAPD_MD5=no],[SLAPD_MD5=yes],yes)dnl
CF_ARG_OPTION(sha1,[ --enable-sha1 enable SHA1 passwords (yes)],[
SLAPD_SHA1=no],[SLAPD_SHA1=yes],yes)dnl
CF_ARG_OPTION(wrappers,[ --enable-wrappers enable tcp wrapper support (no)],[
SLAPD_TCP_WRAPPERS=yes],[SLAPD_TCP_WRAPPERS=no],no)dnl
CF_ARG_OPTION(phonetic,[ --enable-phonetic enable phonetic/soundex (no)],[
SLAPD_PHONETIC=yes],[SLAPD_PHONETIC=no],no)dnl
CF_ARG_OPTION(rlookups,[ --enable-rlookups enable reverse lookups (yes)],[
SLAPD_RLOOKUP=no],[SLAPD_RLOOKUP=yes],yes)dnl
OL_ARG_ENABLE(slapd,[ --enable-slapd enable building slapd], yes)dnl
OL_ARG_ENABLE(aclgroup,[ --enable-aclgroup enable ACL group support], auto)dnl
OL_ARG_ENABLE(crypt,[ --enable-crypt enable crypt(3) passwords], auto)dnl
OL_ARG_ENABLE(md5,[ --enable-md5 enable MD5 passwords], auto)dnl
OL_ARG_ENABLE(sha1,[ --enable-sha1 enable SHA1 passwords], auto)dnl
OL_ARG_ENABLE(wrappers,[ --enable-wrappers enable tcp wrapper support], no)dnl
OL_ARG_ENABLE(phonetic,[ --enable-phonetic enable phonetic/soundex], no)dnl
OL_ARG_ENABLE(rlookups,[ --enable-rlookups enable reverse lookups], auto)dnl
dnl SLAPD Backend options
CF_ARG_OPTION(ldbm,[ --enable-ldbm enable ldbm backend (yes)],[
SLAPD_LDBM=no],[SLAPD_LDBM=yes],yes)dnl
CF_ARG_OPTION(passwd,[ --enable-passwd enable passwd backend (yes)],[
SLAPD_PASSWD=no],[SLAPD_PASSWD=yes],yes)dnl
CF_ARG_OPTION(shell,[ --enable-shell enable shell backend (yes)],[
SLAPD_SHELL=no],[SLAPD_SHELL=yes],yes)dnl
OL_ARG_ENABLE(ldbm,[ --enable-ldbm enable ldbm backend], yes)dnl
OL_ARG_WITH(ldbm_api,[ --with-ldbm-api use LDBM API], auto,
[auto db2 db gdbm ndbm])
OL_ARG_WITH(ldbm_type,[ --with-ldbm-type use LDBM type], auto,
[auto btree hash])
AC_ARG_WITH(ndbm,[ --with-ndbm use NDB for LDBM backend (any)],[
opt_ndbm=yes],[opt_ndbm=no])
AC_ARG_WITH(gdbm,[ --with-gdbm use GDBM for LDBM backend (any)],[
opt_gdbm=yes],[opt_gdbm=no])
AC_ARG_WITH(dbhash,[ --with-dbhash use Berkeley DB Hash for LDBM backend (any)],[
opt_dbhash=yes],[opt_dbhash=no])
AC_ARG_WITH(dbbtree,[ --with-dbbtree use Berkeley DB Btrees for LDBM backend (any)],[
opt_dbbtree=yes],[opt_dbbtree=no])
AC_ARG_WITH(db2,[ --with-db2 use Berkeley DB2 API (any)],[
opt_db2=yes],[opt_db2=no])
OL_ARG_ENABLE(passwd,[ --enable-passwd enable passwd backend], no)dnl
OL_ARG_ENABLE(shell,[ --enable-shell enable shell backend], no)dnl
dnl SLURPD OPTIONS
CF_ARG_OPTION(slurpd,[ --enable-slurpd enable building slurpd (yes)],[
BUILD_SLURPD=no],[BUILD_SLURPD=yes],yes)dnl
OL_ARG_ENABLE(slurpd,[ --enable-slurpd enable building slurpd], auto)dnl
if test $ol_enable_slapd = no ; then
dnl SLAPD was specificallly disabled
if test $ol_enable_ldbm = yes ; then
AC_MSG_WARN([slapd disabled, ignoring --enable_ldbm argument]);
fi
if test $ol_enable_passwd = yes ; then
AC_MSG_WARN([slapd disabled, ignoring --enable_passwd argument]);
fi
if test $ol_enable_shell = yes ; then
AC_MSG_WARN([slapd disabled, ignoring --enable_shell argument]);
fi
if test $ol_enable_aclgroup = yes ; then
AC_MSG_WARN([slapd disabled, ignoring --enable_aclgroup argument]);
fi
if test $ol_enable_crypt = yes ; then
AC_MSG_WARN([slapd disabled, ignoring --enable_crypt argument]);
fi
if test $ol_enable_md5 = yes ; then
AC_MSG_WARN([slapd disabled, ignoring --enable_md5 argument]);
fi
if test $ol_enable_sha1 = yes ; then
AC_MSG_WARN([slapd disabled, ignoring --enable_sha1 argument]);
fi
if test $ol_enable_wrappers = yes ; then
AC_MSG_WARN([slapd disabled, ignoring --enable_wrappers argument]);
fi
if test $ol_enable_phonetic = yes ; then
AC_MSG_WARN([slapd disabled, ignoring --enable_phonetic argument]);
fi
if test $ol_enable_rlookups = yes ; then
AC_MSG_WARN([slapd disabled, ignoring --enable_rlookups argument]);
fi
if test $ol_with_ldbm_api != auto ; then
AC_MSG_WARN([slapd disabled, ignoring --with_ldbm_api argument]);
fi
if test $ol_with_ldbm_type != auto ; then
AC_MSG_WARN([slapd disabled, ignoring --with_ldbm_type argument]);
fi
if test $ol_enable_slurpd = yes ; then
AC_MSG_ERROR([slurpd requires slapd]);
fi
# force settings to no
ol_enable_ldbm=no
ol_enable_shell=no
ol_enable_passwd=no
ol_enable_aclgroup=no
ol_enable_crypt=no
ol_enable_md5=no
ol_enable_sha1=no
ol_enable_wrappers=no
ol_enable_phonetic=no
ol_enable_rlookups=no
ol_with_ldbm_api=no
ol_with_ldbm_type=no
ol_enable_slurpd=no
elif test $ol_enable_ldbm = no ; then
dnl SLAPD without LDBM
if test $ol_with_ldbm_api != auto ; then
AC_MSG_WARN([LDBM disabled, ignoring --with_ldbm_api argument]);
fi
if test $ol_with_ldbm_type != auto ; then
AC_MSG_WARN([LDBM disabled, ignoring --with_ldbm_type argument]);
fi
if test $ol_enable_passwd = no -a $ol_enable_shell = no ; then
AC_MSG_ERROR([slapd requires a backend]);
fi
ol_with_ldbm_api=no
ol_with_ldbm_type=no
else
dnl SLAPD with LDBM
if test $ol_with_ldbm_api = gdbm -a \
$ol_with_ldbm_type = btree ; then
AC_MSG_ERROR([GDBM only supports LDBM type hash]);
fi
if test $ol_with_ldbm_api = ndbm -a \
$ol_with_ldbm_type = btree ; then
AC_MSG_ERROR([NDBM only supports LDBM type hash]);
fi
fi
if test $ol_enable_slurpd = yes ; then
dnl SLURPD was specifically enabled
if test $ol_with_threads = no ; then
AC_MSG_ERROR([slurpd requires threads]);
fi
fi
AC_MSG_RESULT(done)
AC_MSG_CHECKING(LDBM preferences)
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"
SLAPD_LDBM="no"
SLAPD_PASSWD="no"
SLAPD_SHELL="no"
ldbm_prefer="none"
fi
## general LDAP arguments
## Initialize vars
LDAP_DEFS=
LDAP_LIBS=
LDBM_DEFS=
LDBM_LIBS=
LTHREAD_DEFS=
LTHREAD_LIBS=
LUTIL_DEFS=
LUTIL_LIBS=
if test "$LDAP_DEBUG" = "yes" ; then
LDAP_DEFS="$LDAP_DEFS -DLDAP_DEBUG"
fi
if test "$LDAP_SYSLOG" = "yes" ; then
LDAP_DEFS="$LDAP_DEFS -DLDAP_SYSLOG"
fi
if test "$LDAP_DNS" = "yes" ; then
dnl AC_DEFINE(LDAP_DNS,1)
LDAP_DEFS="$LDAP_DEFS -DLDAP_DNS"
fi
if test "$LDAP_REFERRALS" = "yes" ; then
dnl AC_DEFINE(LDAP_REFERRALS,1)
LDAP_DEFS="$LDAP_DEFS -DLDAP_REFERRALS"
fi
if test "$LDAP_CACHE" = "no" ; then
AC_DEFINE(LDAP_NOCACHE,1)
LDAP_DEFS="$LDAP_DEFS -DNO_CACHE"
fi
if test "$LDAP_CLDAP" = "yes" ; then
AC_DEFINE(LDAP_CONNECTIONLESS,1)
LDAP_DEFS="$LDAP_DEFS -DCLDAP"
fi
## ldapd arguments
LDAPD_DEFS=
LDAPD_LIBS=
## slapd arguments
SLAPD_DEFS=
SLAPD_LIBS=
if test "$SLAPD_PHONETIC" = "yes" ; then
AC_DEFINE(SLAPD_PHONETIC,1)
SLAPD_DEFS="$SLAPD_DEFS -DSOUNDEX"
fi
if test "$SLAPD_MD5" = "yes" ; then
dnl AC_DEFINE(SLAPD_MD5,1)
LUTIL_DEFS="$LUTIL_DEFS -DLDAP_MD5"
fi
if test "$SLAPD_SHA1" = "yes" ; then
dnl AC_DEFINE(SLAPD_SHA1,1)
LUTIL_DEFS="$LUTIL_DEFS -DLDAP_SHA1"
fi
BUILD_LDBM=no
if test "$SLAPD_LDBM" = "yes" ; then
dnl AC_DEFINE(SLAPD_LDBM,1)
BUILD_LDBM=yes
LDBM_DEFS="$LDBM_DEFS -DLDAP_LDBM"
fi
if test "$SLAPD_PASSWD" = "yes" ; then
dnl AC_DEFINE(SLAPD_PASSWD,1)
SLAPD_DEFS="$SLAPD_DEFS -DLDAP_PASSWD"
fi
if test "$SLAPD_SHELL" = "yes" ; then
dnl AC_DEFINE(SLAPD_SHELL,1)
SLAPD_DEFS="$SLAPD_DEFS -DLDAP_SHELL"
fi
dnl slurpd arguments
SLURPD_DEFS=
SLURPD_LIBS=
dnl End Args
BUILD_LDAPD=no
BUILD_SLAPD=no
BUILD_SLURPD=no
BUILD_LDBM=no
BUILD_PASSWD=no
BUILD_SHELL=no
dnl ----------------------------------------------------------------
dnl Checks for programs
AC_PROG_CC
AC_PROG_GCC_TRADITIONAL
@ -212,59 +205,27 @@ AC_PATH_PROG(FINGER, finger, /usr/ucb/finger, $PATH:/usr/ucb)
dnl ----------------------------------------------------------------
dnl Checks for libraries
LTHREAD_LIBS=
if test "$opt_thread" = "no" ; then
LTHREAD_DEFS="-DNO_THREADS"
BUILD_SLURPD=no
else
ol_link_threads=no
if test $ol_with_threads = auto -o $ol_with_threads = posix ; then
AC_CHECK_HEADERS(pthread.h sched.h)
if test "$ac_cv_header_pthread_h" = yes ; then
dnl We have some form of pthreads
AC_CACHE_CHECK([POSIX thread version],cf_cv_pthread_version,[
AC_EGREP_CPP(final,[
#include <pthread.h>
/* this check could be improved */
#ifdef PTHREAD_ONCE_INIT
final
#endif
], pthread_final=yes, pthread_final=no)
OL_POSIX_THREAD_VERSION
AC_EGREP_CPP(draft4,[
#include <pthread.h>
/* this check could be improved */
#ifdef pthread_once_init
draft4
#endif
], pthread_draft4=yes, pthread_draft4=no)
if test $pthread_final = yes -a $pthread_draft4 = no; then
cf_cv_pthread_version=final
elif test $pthread_final = no -a $pthread_draft4 = yes; then
cf_cv_pthread_version=draft4
else
cf_cv_pthread_version=unknown
fi
])
if test $cf_cv_pthread_version = final ; then
if test $ol_cv_pthread_version = final ; then
LTHREAD_DEFS="$LTHREAD_DEFS -DPOSIX_THREADS"
elif test $cf_cv_pthread_version = draft4 ; then
elif test $ol_cv_pthread_version = draft4 ; then
LTHREAD_DEFS="$LTHREAD_DEFS -DTHREAD_MIT_PTHREADS"
else
AC_MSG_ERROR(unknown pthread version)
AC_MSG_ERROR([unknown pthread version])
fi
AC_CACHE_CHECK([for LinuxThreads], cf_cv_linux_threads, [
res=`grep Linuxthreads /usr/include/pthread.h 2>/dev/null | wc -l`
if test "$res" -gt 0 ; then
cf_cv_linux_threads=yes
else
cf_cv_linux_threads=no
fi
])
# consider threads found
ol_with_threads="posix"
if test $cf_cv_linux_threads = yes ; then
OL_LINUX_THREADS
if test $ol_cv_linux_threads = yes ; then
dnl AC_DEFINE(HAVE_LINUX_THREADS,1)
LTHREAD_DEFS="$LTHREAD_DEFS -DHAVE_LINUX_THREADS"
fi
@ -272,170 +233,212 @@ dnl AC_DEFINE(HAVE_LINUX_THREADS,1)
dnl Now the hard part, how to link
dnl A few platforms have pthread support in standard libraries
AC_CHECK_FUNC(pthread_create,pthread_link=yes,pthread_link=no)
AC_CHECK_FUNC(pthread_create,ol_link_threads=yes)
if test $pthread_link = no ; then
if test $ol_link_threads = no ; then
dnl try -pthread
AC_CACHE_CHECK([for pthread_create with -pthread],
cf_cv_pthread_flag, [
[ol_cv_pthread_flag], [
dnl save the CPPFLAGS
save_LIBS="$LIBS"
LIBS="-pthread $LIBS"
AC_TRY_LINK([#include <pthread.h>],[
pthread_create((pthread_t*) 0,
(pthread_attr_t*) 0, 0, 0);
], cf_cv_pthread_flag=yes, cf_cv_pthread_flag=no)
], ol_cv_pthread_flag=yes, ol_cv_pthread_flag=no)
dnl restore the LIBS
LIBS="$save_LIBS"
])
if test $cf_cv_pthread_flag = yes ; then
if test $ol_cv_pthread_flag = yes ; then
LTHREAD_LIBS="$LTHREAD_LIBS -pthread"
pthread_link=yes
ol_link_threads=yes
fi
fi
if test $pthread_link = no ; then
if test $ol_link_threads = no ; then
dnl try -lpthread
save_LIBS="$LIBS"
AC_CHECK_LIB(pthread, pthread_create, [
pthread_link=yes
ol_link_threads=yes
LTHREAD_LIBS="$LTHREAD_LIBS -lpthread"])
LIBS="$save_LIBS"
fi
if test $pthread_link = no ; then
if test $ol_link_threads = no ; then
dnl try -lc_r
save_LIBS="$LIBS"
AC_CHECK_LIB(c_r, pthread_create, [
pthread_link=yes
ol_link_threads=yes
LTHREAD_LIBS="$LTHREAD_LIBS -lc_r"])
LIBS="$save_LIBS"
fi
if test $pthread_link = no ; then
if test $ol_link_threads = no ; then
dnl try DEC Threads
save_LIBS="$LIBS"
AC_CHECK_LIB(pthread, pthread_create, [
pthread_link=yes
ol_link_threads=yes
LTHREAD_DEFS="$LTHREAD_DEFS -DDEC_THREADS"
LTHREAD_LIBS="$LTHREAD_LIBS -lpthread -lmach -lexc -lc"],,
[-lmach -lexc -lc])
LIBS="$save_LIBS"
fi
else
LTHREAD_DEFS="-DNO_THREADS"
fi
fi
# check for strtok_r (and presumely other reentrant functions)
save_LIBS="$LIBS"
LIBS="$save_LIBS $LTHREAD_LIBS"
AC_CHECK_LIB(pthread,strtok_r)
if test $ac_cv_lib_pthread_strtok_r = no ; then
LIBS="$save_LIBS $LTHREAD_LIBS"
AC_CHECK_LIB(c_r,strtok_r)
AC_CHECK_FUNCS(strtok_r sched_yield)
if test $ac_cv_lib_c_r_strtok_r = yes ; then
LTHREAD_LIBS="$LTHREAD_LIBS -lc_r"
fi
else
AC_CHECK_FUNCS(strtok_r sched_yield)
fi
LIBS="$save_LIBS"
ldbm_use="none"
if test "$SLAPD_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
LDBM_LIBS="$LDBM_LIBS -ldb"
])
])
if test $ldbm_prefer = found ; then
if test $ldbm_use = dbhash ; then
dnl AC_DEFINE(LDBM_USE_DBHASH,1)
LDBM_DEFS="$LDBM_DEFS -DLDBM_USE_DBHASH"
else
dnl AC_DEFINE(LDBM_USE_DBBTREE,1)
LDBM_DEFS="$LDBM_DEFS -DLDBM_USE_DBBTREE"
fi
if test $ol_link_threads = no ; then
AC_MSG_ERROR([could not link with POSIX Threads])
fi
elif test $ol_with_threads = posix ; then
AC_MSG_ERROR([could not locate POSIX Threads])
fi
fi
AC_CACHE_CHECK(for db2, cf_cv_db2,[
AC_EGREP_CPP(__db_version_2,[
#include <db.h>
/* this check could be improved */
#ifdef DB_VERSION_MAJOR
#if DB_VERSION_MAJOR == 2
__db_version_2
#endif
#endif
], cf_cv_db2=yes, cf_cv_db2=no)])
if test $ol_link_threads = no ; then
if test $ol_with_threads = yes ; then
AC_MSG_ERROR([no suitable thread support])
fi
if test $cf_cv_db2 = yes ; then
if test $opt_db2 = yes ; then
LDBM_DEFS="$LDBM_DEFS -DLDBM_USE_DB2"
else
AC_CHECK_HEADERS(db_185.h)
if test $ac_cv_header_db_185_h = no ; then
AC_MSG_ERROR([select --with-db2 or install db2 with 1.85 compatibility])
fi
if test $ol_with_threads = auto ; then
AC_MSG_WARN([no suitable thread support, disabling threads])
$ol_with_threads = no
fi
LDBM_DEFS="$LDBM_DEFS -DLDBM_USE_DB2_COMPAT185"
fi
LTHREAD_DEFS="-DNO_THREADS"
LTHREAD_LIBS=""
fi
dnl # check for strtok_r (and presumely other reentrant functions)
dnl save_LIBS="$LIBS"
dnl LIBS="$save_LIBS $LTHREAD_LIBS"
dnl AC_CHECK_LIB(pthread,strtok_r)
dnl
dnl if test $ac_cv_lib_pthread_strtok_r = no ; then
dnl LIBS="$save_LIBS $LTHREAD_LIBS"
dnl AC_CHECK_LIB(c_r,strtok_r)
dnl AC_CHECK_FUNCS(strtok_r sched_yield)
dnl if test $ac_cv_lib_c_r_strtok_r = yes ; then
dnl LTHREAD_LIBS="$LTHREAD_LIBS -lc_r"
dnl fi
dnl else
dnl AC_CHECK_FUNCS(strtok_r sched_yield)
dnl fi
dnl
dnl LIBS="$save_LIBS"
ol_link_ldbm=no
if test $ol_with_ldbm_api = auto -o $ol_with_ldbm_api = db2 ; then
OL_BERKELEY_DB2
if test $ol_cv_berkeley_db2 = yes ; then
ol_link_ldbm=db2
ol_with_ldbm_api=db2
LDBM_DEFS="$LDBM_DEFS -DLDBM_USE_DB2"
if test $ol_with_ldbm_type = hash ; then
LDBM_DEFS="$LDBM_DEFS -DLDBM_USE_DBHASH"
else
if test $opt_db2 = yes ; then
AC_MSG_ERROR(could not local DB2)
fi
LDBM_DEFS="$LDBM_DEFS -DLDBM_USE_DBBTREE"
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
LDBM_LIBS="$LDBM_LIBS -lgdbm"
dnl AC_DEFINE(LDBM_USE_GDBM,1)
LDBM_DEFS="$LDBM_DEFS -DLDBM_USE_GDBM"
])
fi
if test $ldbm_prefer = any -o $ldbm_prefer = ndbm ; then
AC_CHECK_LIB(dbm,dbm_open,[
ldbm_use=ndbm
ldbm_prefer=found
LDBM_LIBS="$LDBM_LIBS -ldbm"
dnl AC_DEFINE(LDBM_USE_NDBM,1)
LDBM_DEFS="$LDBM_DEFS -DLDBM_USE_NDBM"
])
fi
if test $ldbm_prefer != found ; then
AC_MSG_ERROR(could not find suitable db for $ldbm_prefer backend)
fi
if test $ldbm_use = ndbm ; then
AC_MSG_WARN(LDBM using NDBM, functionality will be limited)
if test $ol_cv_lib_db2 != yes ; then
LDBM_LIBS="$LDBM_LIBS $ol_cv_lib_db2"
fi
fi
fi
if test "$SLAPD_TCP_WRAPPERS" = "yes" ; then
AC_CHECK_LIB(wrap, hosts_access, [
if test $ol_with_ldbm_api = auto -o $ol_with_ldbm_api = db ; then
OL_BERKELEY_DB
if test $ol_cv_berkeley_db = yes ; then
ol_link_ldbm=db
ol_with_ldbm_api=db
if test $ac_cv_header_db_185_h = yes ; then
LDBM_DEFS="$LDBM_DEFS -DLDBM_USE_DB2_COMPAT185"
fi
if test $ol_with_ldbm_type = hash ; then
LDBM_DEFS="$LDBM_DEFS -DLDBM_USE_DBHASH"
else
LDBM_DEFS="$LDBM_DEFS -DLDBM_USE_DBBTREE"
fi
if test $ol_cv_lib_db != yes ; then
LDBM_LIBS="$LDBM_LIBS $ol_cv_lib_db"
fi
fi
fi
if test $ol_link_ldbm = no -a $ol_with_ldbm_type = btree ; then
AC_MSG_WARN(Could not find LDBM with BTREE support);
$ol_with_ldbm_api=none
fi
if test $ol_with_ldbm_api = auto -o $ol_with_ldbm_api = gdbm ; then
OL_GDBM
if test $ol_cv_gdbm = yes ; then
ol_link_ldbm=gdbm
ol_with_ldbm_api=gdbm
LDBM_DEFS="$LDBM_DEFS -DLDBM_USE_GDBM"
if test $ol_cv_lib_db != yes ; then
LDBM_LIBS="$LDBM_LIBS $ol_cv_lib_gdbm"
fi
fi
fi
if test $ol_with_ldbm_api = auto -o $ol_with_ldbm_api = ndbm ; then
OL_NDBM
if test $ol_cv_ndbm = yes ; then
ol_link_ldbm=ndbm
ol_with_ldbm_api=ndbm
if test $ol_with_ldbm_api = ndbm ; then
AC_WARN([Attempting to use NDBM. Functionality will be limited.])
fi
LDBM_DEFS="$LDBM_DEFS -DLDBM_USE_NDBM"
if test $ol_cv_lib_db != yes ; then
LDBM_LIBS="$LDBM_LIBS $ol_cv_lib_ndbm"
fi
fi
fi
if test $ol_link_ldbm = no -a $ol_enable_ldbm != no ; then
AC_MSG_WARN(could not find suitable LDBM backend)
if test $ol_enable_ldbm = yes ; then
AC_MSG_ERROR(select appropriate LDBM options or disable)
fi
AC_MSG_WARN(disabling LDBM)
$ol_enable_ldbm=no
fi
if test $ol_enable_wrappers = yes ; then
AC_CHECK_LIB(wrap, hosts_access,
[have_wrappers=yes], [have_wrappers=no])
if test $have_wrappers = yes ; then
dnl LIBTCPD="-lwrap"
dnl AC_DEFINE(HAVE_TCPD)
SLAPD_DEFS="$SLAPD_DEFS -DTCP_WRAPPERS"
SLAPD_LIBS="$SLAPD_LIBS -lwrap"
])
else
AC_MSG_WARN(could not find -lwrap)
if test $ol_enable_wrappers = yes ; then
AC_MSG_ERROR(could not find wrappers, select appropriate options or disable)
fi
AC_MSG_WARN(disabling wrappers support)
ol_enable_wrappers=no
fi
fi
# ud needs termcap (should insert check here)
@ -443,7 +446,7 @@ LIBTERMCAP="-ltermcap"
AC_SUBST(LIBTERMCAP)
# FreeBSD (and others) have crypt(3) in -lcrypt
if test "$SLAPD_CRYPT" = "yes" ; then
if test $ol_enable_crypt != no ; then
AC_CHECK_FUNC(crypt, have_crypt=yes, [
AC_CHECK_LIB(crypt, crypt, [LUTIL_LIBS="$LUTIL_LIBS -lcrypt"
have_crypt=yes], [have_crypt=no])])
@ -452,7 +455,13 @@ if test "$SLAPD_CRYPT" = "yes" ; then
dnl AC_DEFINE(SLAPD_CRYPT,1)
LUTIL_DEFS="$LUTIL_DEFS -DLDAP_CRYPT"
else
AC_MSG_WARN(could not find crypt, disabling crypt support)
AC_MSG_WARN(could not find crypt)
if test $ol_enable_crypt = yes ; then
AC_MSG_ERROR(could not find crypt, select appropriate options or disable)
fi
AC_MSG_WARN(disabling crypt support)
ol_enable_crypt=no
fi
fi
@ -520,9 +529,86 @@ AC_REPLACE_FUNCS(strdup)
dnl ----------------------------------------------------------------
# Check Configuration
CF_SYS_ERRLIST
OL_SYS_ERRLIST
dnl ----------------------------------------------------------------
dnl Sort out defines
if test $ol_enable_debug != no ; then
LDAP_DEFS="$LDAP_DEFS -DLDAP_DEBUG"
fi
#if test $ol_enable_syslog != no ; then
# LDAP_DEFS="$LDAP_DEFS -DLDAP_SYSLOG"
#fi
if test $ol_enable_libui = no ; then
LDAP_DEFS="$LDAP_DEFS -DNO_USERINTERFACE"
fi
if test $ol_enable_cache = no ; then
LDAP_DEFS="$LDAP_DEFS -DNO_CACHE"
fi
if test $ol_enable_dns != no ; then
LDAP_DEFS="$LDAP_DEFS -DLDAP_DNS"
fi
if test $ol_enable_referrals != no ; then
LDAP_DEFS="$LDAP_DEFS -DLDAP_REFERRALS"
fi
if test $ol_enable_cldap != no ; then
LDAP_DEFS="$LDAP_DEFS -DCLDAP"
fi
if test $ol_enable_aclgroup != no ; then
AC_DEFINE(SLAPD_ACLGROUP,1)
SLAPD_DEFS="$SLAPD_DEFS -DACLGROUP"
fi
if test $ol_enable_md5 != no ; then
dnl AC_DEFINE(SLAPD_MD5,1)
LUTIL_DEFS="$LUTIL_DEFS -DLDAP_MD5"
fi
if test $ol_enable_sha1 != no ; then
dnl AC_DEFINE(SLAPD_SHA1,1)
LUTIL_DEFS="$LUTIL_DEFS -DLDAP_SHA1"
fi
if test $ol_enable_phonetic != no ; then
AC_DEFINE(SLAPD_PHONETIC,1)
SLAPD_DEFS="$SLAPD_DEFS -DSOUNDEX"
fi
if test $ol_enable_rlookups != no ; then
AC_DEFINE(SLAPD_RLOOKUPS,1)
SLAPD_DEFS="$SLAPD_DEFS -DREVERSE_LOOKUPS"
fi
if test $ol_link_ldbm != no ; then
dnl AC_DEFINE(SLAPD_LDBM,1)
BUILD_SLAPD=yes
BUILD_LDBM=yes
LDBM_DEFS="-DLDAP_LDBM $LDBM_DEFS"
fi
if test $ol_enable_passwd != no ; then
dnl AC_DEFINE(SLAPD_PASSWD,1)
BUILD_SLAPD=yes
BUILD_PASSWD=yes
SLAPD_DEFS="-DLDAP_PASSWD $SLAPD_DEFS"
fi
if test $ol_enable_shell != no ; then
dnl AC_DEFINE(SLAPD_SHELL,1)
BUILD_SLAPD=yes
BUILD_SHELL=yes
SLAPD_DEFS="-DLDAP_SHELL $SLAPD_DEFS"
fi
if test $ol_enable_slurpd != no -a $ol_link_threads != no -a \
$BUILD_SLAPD = yes ; then
BUILD_SLURPD=yes
fi
dnl ----------------------------------------------------------------
AC_SUBST(BUILD_LDAPD)
AC_SUBST(BUILD_SLAPD)
AC_SUBST(BUILD_LDBM)
@ -537,9 +623,6 @@ AC_SUBST(LDAPD_DEFS)
AC_SUBST(LDAPD_LIBS)
AC_SUBST(SLAPD_DEFS)
AC_SUBST(SLAPD_LIBS)
AC_SUBST(SLAPD_LDBM)
AC_SUBST(SLAPD_PASSWD)
AC_SUBST(SLAPD_SHELL)
AC_SUBST(SLURPD_DEFS)
AC_SUBST(SLURPD_LIBS)
AC_SUBST(LDBM_DEFS)

View File

@ -1,17 +1,17 @@
SRCS = idl.c add.c search.c cache.c dbcache.c dn2id.c id2entry.c \
index.c id2children.c nextid.c abandon.c compare.c \
index.c id2children.c nextid.c abandon.c compare.c group.c \
modify.c modrdn.c delete.c init.c config.c bind.c attr.c \
filterindex.c unbind.c kerberos.c close.c
OBJS = idl.o add.o search.o cache.o dbcache.o dn2id.o id2entry.o \
index.o id2children.o nextid.o abandon.o compare.o \
index.o id2children.o nextid.o abandon.o compare.o group.o \
modify.o modrdn.o delete.o init.o config.o bind.o attr.o \
filterindex.o unbind.o kerberos.o close.o
BUILD_OPT = "--enable-ldbm"
BUILD_SRV = @SLAPD_LDBM@
BUILD_SRV = @BUILD_LDBM@
XINCLUDEDIR = -I..
XDEFS = @LDBM_DEFS@ @LTHREAD_DEFS@ @LUTIL_DEFS@
XDEFS = @SLAPD_DEFS@ @LDBM_DEFS@ @LTHREAD_DEFS@ @LUTIL_DEFS@
PROGRAMS = libback-ldbm.a

View File

@ -2,7 +2,7 @@ SRCS = search.c config.c
OBJS = search.o config.o
BUILD_OPT = "--enable-passwd"
BUILD_SRV = @SLAPD_PASSWD@
BUILD_SRV = @BUILD_PASSWD@
PROGRAMS= libback-passwd.a
XINCLUDEDIR= -I..

View File

@ -4,7 +4,7 @@ OBJS = init.o config.o fork.o search.o bind.o unbind.o add.o delete.o \
modify.o modrdn.o compare.o abandon.o result.o
BUILD_OPT = "--enable-shell"
BUILD_SRV = @SLAPD_SHELL@
BUILD_SRV = @BUILD_SHELL@
PROGRAMS = libback-shell.a
XINCLUDEDIR = -I..