dnl $OpenLDAP$
dnl This work is part of OpenLDAP Software <http://www.openldap.org/>.
dnl
-dnl Copyright 1998-2009 The OpenLDAP Foundation.
+dnl Copyright 1998-2015 The OpenLDAP Foundation.
dnl All rights reserved.
dnl
dnl Redistribution and use in source and binary forms, with or without
define([AC_LIBTOOL_LANG_GCJ_CONFIG], [:])dnl
dnl ================================================================
dnl Configure.in for OpenLDAP
-AC_COPYRIGHT([[Copyright 1998-2009 The OpenLDAP Foundation. All rights reserved.
+AC_COPYRIGHT([[Copyright 1998-2015 The OpenLDAP Foundation. All rights reserved.
Restrictions apply, see COPYRIGHT and LICENSE files.]])
-AC_REVISION([$OpenLDAP$])
+AC_REVISION([$Id$])
AC_INIT([OpenLDAP],,[http://www.openldap.org/its/])
m4_define([AC_PACKAGE_BUGREPORT],[<http://www.openldap.org/its/>])
AC_CONFIG_SRCDIR(build/version.sh)dnl
TN="`$SHTOOL echo -e '%b' 2>/dev/null`"
fi
-OPENLDAP_CVS=""
-if test -d $ac_aux_dir/CVS; then
- OPENLDAP_CVS="(from CVS sources) "
+OPENLDAP_REPO=""
+if test -d $ac_aux_dir/../.git; then
+ OPENLDAP_REPO="(from Git clone) "
+elif test -d $ac_aux_dir/CVS; then
+ OPENLDAP_REPO="(from CVS checkout) "
fi
-echo "Configuring ${TB}${OL_STRING}${TN} ${OPENLDAP_CVS}..."
+echo "Configuring ${TB}${OL_STRING}${TN} ${OPENLDAP_REPO}..."
dnl Determine host platform
dnl we try not to use this for much
/* begin of portable.h.pre */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 1998-2009 The OpenLDAP Foundation
+ * Copyright 1998-2015 The OpenLDAP Foundation
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
auto, [auto yes no] )
OL_ARG_WITH(fetch,[ --with-fetch with fetch(3) URL support],
auto, [auto yes no] )
-OL_ARG_WITH(gssapi,[ --with-gssapi with GSSAPI support],
- auto, [auto yes no] )
OL_ARG_WITH(threads,[ --with-threads with threads],
auto, [auto nt posix mach pth lwp yes no manual] )
-OL_ARG_WITH(tls,[ --with-tls with TLS/SSL support auto|openssl|gnutls],
- auto, [auto openssl gnutls yes no] )
+OL_ARG_WITH(tls,[ --with-tls with TLS/SSL support auto|openssl|gnutls|moznss],
+ auto, [auto openssl gnutls moznss yes no] )
OL_ARG_WITH(yielding_select,
[ --with-yielding-select with implicitly yielding select],
auto, [auto yes no manual] )
dnssrv \
hdb \
ldap \
+ mdb \
meta \
monitor \
ndb \
yes, [no yes mod], ol_enable_backends)dnl
OL_ARG_ENABLE(ldap,[ --enable-ldap enable ldap backend],
no, [no yes mod], ol_enable_backends)dnl
+OL_ARG_ENABLE(mdb,[ --enable-mdb enable mdb database backend],
+ yes, [no yes mod], ol_enable_backends)dnl
OL_ARG_ENABLE(meta,[ --enable-meta enable metadirectory backend],
no, [no yes mod], ol_enable_backends)dnl
OL_ARG_ENABLE(monitor,[ --enable-monitor enable monitor backend],
retcode \
rwm \
seqmod \
+ sssvlv \
syncprov \
translucent \
unique \
OL_ARG_ENABLE(rwm,[ --enable-rwm Rewrite/Remap overlay],
no, [no yes mod], ol_enable_overlays)
OL_ARG_ENABLE(seqmod,[ --enable-seqmod Sequential Modify overlay],
- yes, [no yes mod], ol_enable_overlays)
+ no, [no yes mod], ol_enable_overlays)
+OL_ARG_ENABLE(sssvlv,[ --enable-sssvlv ServerSideSort/VLV overlay],
+ no, [no yes mod], ol_enable_overlays)
OL_ARG_ENABLE(syncprov,[ --enable-syncprov Syncrepl Provider overlay],
yes, [no yes mod], ol_enable_overlays)
OL_ARG_ENABLE(translucent,[ --enable-translucent Translucent Proxy overlay],
test $ol_enable_dnssrv = no &&
test $ol_enable_hdb = no &&
test $ol_enable_ldap = no &&
+ test $ol_enable_mdb = no &&
test $ol_enable_meta = no &&
test $ol_enable_monitor = no &&
test $ol_enable_ndb = no &&
BUILD_DNSSRV=no
BUILD_HDB=no
BUILD_LDAP=no
+BUILD_MDB=no
BUILD_META=no
BUILD_MONITOR=no
BUILD_NDB=no
BUILD_CONSTRAINT=no
BUILD_DDS=no
BUILD_DENYOP=no
+BUILD_DEREF=no
BUILD_DYNGROUP=no
BUILD_DYNLIST=no
BUILD_LASTMOD=no
BUILD_RETCODE=no
BUILD_RWM=no
BUILD_SEQMOD=no
+BUILD_SSSVLV=no
BUILD_SYNCPROV=no
BUILD_TRANSLUCENT=no
BUILD_UNIQUE=no
KRB4_LIBS=
KRB5_LIBS=
SASL_LIBS=
-GSSAPI_LIBS=
TLS_LIBS=
MODULES_LIBS=
SLAPI_LIBS=
LIBSLAPI=
-LIBSLAPITOOLS=
AUTH_LIBS=
ICU_LIBS=
AC_CHECK_LIB(V3, sigset)
fi
-if test $ol_cv_msvc ; then
+if test $ol_cv_msvc = yes ; then
ol_cv_winsock=yes
fi
AC_CACHE_CHECK([for winsock], [ol_cv_winsock],[
save_LIBS="$LIBS"
for curlib in none ws2_32 wsock32; do
- if test curlib != none ; then
+ if test $curlib != none ; then
LIBS="$save_LIBS -l$curlib"
fi
AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <winsock.h>
AC_CHECK_FUNC(socket, :, [
dnl hopefully we won't include too many libraries
AC_CHECK_LIB(socket, main)
- AC_CHECK_LIB(net, main)
+ AC_CHECK_LIB(net, socket)
AC_CHECK_LIB(nsl_s, main)
AC_CHECK_LIB(nsl, main)
AC_CHECK_LIB(inet, socket)
fi
fi
-dnl ----------------------------------------------------------------
-dnl GSSAPI
-ol_link_gssapi=no
-
-case $ol_with_gssapi in yes | auto)
-
- ol_header_gssapi=no
- AC_CHECK_HEADERS(gssapi/gssapi.h)
- if test $ac_cv_header_gssapi_gssapi_h = yes ; then
- ol_header_gssapi=yes
- else
- AC_CHECK_HEADERS(gssapi.h)
- if test $ac_cv_header_gssapi_h = yes ; then
- ol_header_gssapi=yes
- fi
-
- dnl## not every gssapi has gss_oid_to_str()
- dnl## as it's not defined in the GSSAPI V2 API
- dnl## anymore
- saveLIBS="$LIBS"
- LIBS="$LIBS $GSSAPI_LIBS"
- AC_CHECK_FUNCS(gss_oid_to_str)
- LIBS="$saveLIBS"
- fi
-
- if test $ol_header_gssapi = yes ; then
- dnl## we check for gss_wrap
- dnl## as it's new to the GSSAPI V2 API
- AC_CHECK_LIB(gssapi, gss_wrap,
- [ol_link_gssapi=yes;GSSAPI_LIBS="-lgssapi"],
- [ol_link_gssapi=no])
- if test $ol_link_gssapi != yes ; then
- AC_CHECK_LIB(gssapi_krb5, gss_wrap,
- [ol_link_gssapi=yes;GSSAPI_LIBS="-lgssapi_krb5"],
- [ol_link_gssapi=no])
- fi
- if test $ol_link_gssapi != yes ; then
- AC_CHECK_LIB(gss, gss_wrap,
- [ol_link_gssapi=yes;GSSAPI_LIBS="-lgss"],
- [ol_link_gssapi=no])
- fi
- fi
-
- ;;
-esac
-
-WITH_GSSAPI=no
-if test $ol_link_gssapi = yes; then
- AC_DEFINE(HAVE_GSSAPI, 1, [define if you have GSSAPI])
- WITH_GSSAPI=yes
-elif test $ol_with_gssapi = auto ; then
- AC_MSG_WARN([Could not locate GSSAPI package])
- AC_MSG_WARN([GSSAPI authentication not supported!])
-elif test $ol_with_gssapi = yes ; then
- AC_MSG_ERROR([GSSAPI detection failed])
-fi
-
dnl ----------------------------------------------------------------
dnl TLS/SSL
AC_CHECK_HEADERS(gnutls/gnutls.h)
if test $ac_cv_header_gnutls_gnutls_h = yes ; then
+ AC_PREPROC_IFELSE(
+ [[#include <gnutls/gnutls.h>]
+[#if GNUTLS_VERSION_NUMBER < 0x020c00]
+[#error "GnuTLS 2.12.0 or newer required"]
+[#endif]],
+ , [AC_MSG_FAILURE([GnuTLS is too old])])
+
AC_CHECK_LIB(gnutls, gnutls_init,
[have_gnutls=yes], [have_gnutls=no])
fi
fi
+dnl NOTE: caller must specify -I/path/to/nspr4 and -I/path/to/nss3
+dnl and -L/path/to/nspr4 libs and -L/path/to/nss3 libs if those libs
+dnl are not in the default system location
+if test $ol_link_tls = no ; then
+ if test $ol_with_tls = moznss || test $ol_with_tls = auto ; then
+ have_moznss=no
+ AC_CHECK_HEADERS([nssutil.h])
+ if test "$ac_cv_header_nssutil_h" = yes ; then
+ AC_CHECK_LIB([nss3], [NSS_Initialize],
+ [ have_moznss=yes ], [ have_moznss=no ])
+ fi
+
+ if test "$have_moznss" = yes ; then
+ ol_with_tls=moznss
+ ol_link_tls=yes
+ AC_DEFINE(HAVE_MOZNSS, 1,
+ [define if you have MozNSS])
+ TLS_LIBS="-lssl3 -lsmime3 -lnss3 -lnssutil3 -lplds4 -lplc4 -lnspr4"
+ else
+ if test $ol_with_tls = moznss ; then
+ AC_MSG_ERROR([MozNSS not found - please specify the location to the NSPR and NSS header files in CPPFLAGS and the location to the NSPR and NSS libraries in LDFLAGS (if not in the system location)])
+ fi
+ fi
+ fi
+fi
+
WITH_TLS=no
if test $ol_link_tls = yes ; then
AC_DEFINE(HAVE_TLS, 1, [define if you have TLS])
)
fi
fi
-
- dnl check for SunOS4 LWP
- AC_CHECK_HEADERS(lwp/lwp.h)
- if test $ac_cv_header_lwp_lwp_h = yes ; then
- AC_CHECK_LIB(lwp, lwp_create, [have_lwp=yes], [have_lwp=no])
-
- if test $have_lwp = yes ; then
- AC_DEFINE(HAVE_LWP,1,
- [if you have SunOS LWP package])
- LTHREAD_LIBS="$LTHREAD_LIBS -llwp"
- ol_link_threads=lwp
-
- if test $ol_with_yielding_select = auto ; then
- ol_with_yielding_select=no
- fi
- fi
- fi
;;
esac
OL_HEADER_LINUX_THREADS
AC_CHECK_HEADERS(mach/cthreads.h)
- AC_CHECK_HEADERS(lwp/lwp.h)
AC_CHECK_HEADERS(thread.h synch.h)
fi
dnl Tests for reentrant functions necessary to build -lldap_r
AC_CHECK_FUNCS( \
ctime_r \
+ gmtime_r localtime_r \
gethostbyname_r gethostbyaddr_r \
)
])
sql_LIBS="$LIBS"
- LIBS="$LTHREAD_LIBS"
+ LIBS="$LTHREAD_LIBS $LIBS"
if test $ol_with_odbc = auto ; then
ol_with_odbc="iodbc unixodbc odbc32"
odbc32)
AC_CHECK_LIB(odbc32, SQLDriverConnect, [have_odbc32=yes], [have_odbc32=no])
+
+ dnl The windows API uses __stdcall which cannot be detected by AC_CHECK_LIB
+ if test $have_odbc32 = no ; then
+ AC_MSG_CHECKING([for SQLDriverConnect in -lodbc32 with windows.h])
+ save_LIBS="$LIBS"
+ LIBS="$LIBS -lodbc32"
+ AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <windows.h>
+ #include <sqlext.h>
+ ]], [[
+ SQLDriverConnect(NULL,NULL,NULL,0,NULL,0,NULL,0);
+ ]])],[have_odbc32=yes], [have_odbc32=no])
+ LIBS="$save_LIBS"
+ AC_MSG_RESULT($have_odbc32)
+ fi
+
if test $have_odbc32 = yes ; then
ol_link_sql="-lodbc32"
fi
OL_LIB_FETCH
if test $ol_cv_lib_fetch != no ; then
- LUTIL_LIBS="$LUTIL_LIBS $ol_link_fetch"
+ LIBS="$LIBS $ol_link_fetch"
ol_link_fetch=freebsd
elif test $ol_with_fetch != auto ; then
geteuid \
getgrgid \
gethostname \
- getpass \
getpassphrase \
getpwuid \
getpwnam \
strtoq \
strtouq \
strtoll \
+ strtoull \
strspn \
sysconf \
waitpid \
fi
AC_CHECK_LIB(ltdl, lt_dlinit, [
SLAPI_LIBS=-lltdl
- LIBSLAPI=libslapi.a
- LIBSLAPITOOLS=../libslapi.a
+ LIBSLAPI=slapi/libslapi.la
AC_DEFINE(HAVE_LIBLTDL,1,[define if you have libtool -ltdl])
],[AC_MSG_ERROR([could not locate libtool -lltdl])])
AC_DEFINE_UNQUOTED(SLAPD_LDAP,$MFLAG,[define to support LDAP backend])
fi
+if test "$ol_enable_mdb" != no ; then
+ BUILD_SLAPD=yes
+ BUILD_MDB=$ol_enable_mdb
+ if test "$ol_enable_mdb" = mod ; then
+ SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-mdb"
+ MFLAG=SLAPD_MOD_DYNAMIC
+ else
+ SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-mdb"
+ MFLAG=SLAPD_MOD_STATIC
+ fi
+ AC_DEFINE_UNQUOTED(SLAPD_MDB,$MFLAG,[define to support MDB backend])
+fi
+
if test "$ol_enable_meta" != no ; then
BUILD_SLAPD=yes
BUILD_META=$ol_enable_meta
fi
if test "$ol_enable_deref" != no ; then
- BUILD_DDS=$ol_enable_deref
+ BUILD_DEREF=$ol_enable_deref
if test "$ol_enable_deref" = mod ; then
MFLAG=SLAPD_MOD_DYNAMIC
SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS deref.la"
AC_DEFINE_UNQUOTED(SLAPD_OVER_SEQMOD,$MFLAG,[define for Sequential Modify overlay])
fi
+if test "$ol_enable_sssvlv" != no ; then
+ BUILD_SSSVLV=$ol_enable_sssvlv
+ if test "$ol_enable_sssvlv" = mod ; then
+ MFLAG=SLAPD_MOD_DYNAMIC
+ SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS sssvlv.la"
+ else
+ MFLAG=SLAPD_MOD_STATIC
+ SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS sssvlv.o"
+ fi
+ AC_DEFINE_UNQUOTED(SLAPD_OVER_SSSVLV,$MFLAG,[define for ServerSideSort/VLV overlay])
+fi
+
if test "$ol_enable_syncprov" != no ; then
BUILD_SYNCPROV=$ol_enable_syncprov
if test "$ol_enable_syncprov" = mod ; then
AC_SUBST(BUILD_DNSSRV)
AC_SUBST(BUILD_HDB)
AC_SUBST(BUILD_LDAP)
+ AC_SUBST(BUILD_MDB)
AC_SUBST(BUILD_META)
AC_SUBST(BUILD_MONITOR)
AC_SUBST(BUILD_NDB)
AC_SUBST(BUILD_CONSTRAINT)
AC_SUBST(BUILD_DDS)
AC_SUBST(BUILD_DENYOP)
+ AC_SUBST(BUILD_DEREF)
AC_SUBST(BUILD_DYNGROUP)
AC_SUBST(BUILD_DYNLIST)
AC_SUBST(BUILD_LASTMOD)
AC_SUBST(BUILD_RETCODE)
AC_SUBST(BUILD_RWM)
AC_SUBST(BUILD_SEQMOD)
+ AC_SUBST(BUILD_SSSVLV)
AC_SUBST(BUILD_SYNCPROV)
AC_SUBST(BUILD_TRANSLUCENT)
AC_SUBST(BUILD_UNIQUE)
AC_SUBST(KRB4_LIBS)
AC_SUBST(KRB5_LIBS)
AC_SUBST(SASL_LIBS)
-AC_SUBST(GSSAPI_LIBS)
AC_SUBST(TLS_LIBS)
AC_SUBST(MODULES_LIBS)
AC_SUBST(SLAPI_LIBS)
AC_SUBST(LIBSLAPI)
-AC_SUBST(LIBSLAPITOOLS)
AC_SUBST(AUTH_LIBS)
AC_SUBST(ICU_LIBS)
[servers/slapd/back-hdb/Makefile:build/top.mk:servers/slapd/back-hdb/Makefile.in:build/mod.mk]
[servers/slapd/back-ldap/Makefile:build/top.mk:servers/slapd/back-ldap/Makefile.in:build/mod.mk]
[servers/slapd/back-ldif/Makefile:build/top.mk:servers/slapd/back-ldif/Makefile.in:build/mod.mk]
+[servers/slapd/back-mdb/Makefile:build/top.mk:servers/slapd/back-mdb/Makefile.in:build/mod.mk]
[servers/slapd/back-meta/Makefile:build/top.mk:servers/slapd/back-meta/Makefile.in:build/mod.mk]
[servers/slapd/back-monitor/Makefile:build/top.mk:servers/slapd/back-monitor/Makefile.in:build/mod.mk]
[servers/slapd/back-ndb/Makefile:build/top.mk:servers/slapd/back-ndb/Makefile.in:build/mod.mk]
cat > $BACKENDSC << ENDX
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 1998-2009 The OpenLDAP Foundation.
+ * Copyright 1998-2015 The OpenLDAP Foundation.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
cat > $OVERLAYSC << ENDX
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 1998-2009 The OpenLDAP Foundation.
+ * Copyright 1998-2015 The OpenLDAP Foundation.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without