]> git.sur5r.net Git - openldap/blobdiff - configure.in
Do not require ac/string.h for lber_pvt.h
[openldap] / configure.in
index 72cd4c0631fb2e0f29b8d66eb4786d97441f5249..60c446096383f3cc7459a1e861ae9397a2d3fecf 100644 (file)
@@ -1,7 +1,7 @@
 dnl $OpenLDAP$
 dnl This work is part of OpenLDAP Software <http://www.openldap.org/>.
 dnl
-dnl Copyright 1998-2015 The OpenLDAP Foundation.
+dnl Copyright 1998-2018 The OpenLDAP Foundation.
 dnl All rights reserved.
 dnl
 dnl Redistribution and use in source and binary forms, with or without
@@ -23,7 +23,7 @@ define([AC_LIBTOOL_LANG_F77_CONFIG], [:])dnl
 define([AC_LIBTOOL_LANG_GCJ_CONFIG], [:])dnl
 dnl ================================================================
 dnl Configure.in for OpenLDAP
-AC_COPYRIGHT([[Copyright 1998-2015 The OpenLDAP Foundation. All rights reserved.
+AC_COPYRIGHT([[Copyright 1998-2018 The OpenLDAP Foundation. All rights reserved.
 Restrictions apply, see COPYRIGHT and LICENSE files.]])
 AC_REVISION([$Id$])
 AC_INIT([OpenLDAP],,[http://www.openldap.org/its/])
@@ -98,7 +98,7 @@ AH_TOP([
 /* begin of portable.h.pre */
 /* This work is part of OpenLDAP Software <http://www.openldap.org/>.
  *
- * Copyright 1998-2015 The OpenLDAP Foundation
+ * Copyright 1998-2018 The OpenLDAP Foundation
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -288,6 +288,7 @@ Backends="bdb \
        ldap \
        mdb \
        meta \
+       asyncmeta \
        monitor \
        ndb \
        null \
@@ -296,7 +297,8 @@ Backends="bdb \
        relay \
        shell \
        sock \
-       sql"
+       sql \
+       wt"
 
 AC_ARG_ENABLE(xxslapbackends,[
 SLAPD Backend Options:])
@@ -315,6 +317,8 @@ 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(asyncmeta,[    --enable-asyncmeta          enable asynchronous metadirectory backend],
+       no, [no yes mod], ol_enable_backends)dnl
 OL_ARG_ENABLE(monitor,[    --enable-monitor      enable monitor backend],
        yes, [no yes mod], ol_enable_backends)dnl
 OL_ARG_ENABLE(ndb,[    --enable-ndb      enable MySQL NDB Cluster backend],
@@ -333,11 +337,14 @@ OL_ARG_ENABLE(sock,[    --enable-sock       enable sock backend],
        no, [no yes mod], ol_enable_backends)dnl
 OL_ARG_ENABLE(sql,[    --enable-sql      enable sql backend],
        no, [no yes mod], ol_enable_backends)dnl
+OL_ARG_ENABLE(wt,[    --enable-wt        enable WiredTiger backend],
+       no, [no yes mod], ol_enable_backends)dnl
 
 dnl ----------------------------------------------------------------
 dnl SLAPD Overlay Options
 Overlays="accesslog \
        auditlog \
+       autoca \
        collect \
        constraint \
        dds \
@@ -366,6 +373,8 @@ OL_ARG_ENABLE(accesslog,[    --enable-accesslog       In-Directory Access Logging ov
        no, [no yes mod], ol_enable_overlays)
 OL_ARG_ENABLE(auditlog,[    --enable-auditlog    Audit Logging overlay],
        no, [no yes mod], ol_enable_overlays)
+OL_ARG_ENABLE(autoca,[    --enable-autoca        Automatic Certificate Authority overlay],
+       no, [no yes mod], ol_enable_overlays)
 OL_ARG_ENABLE(collect,[    --enable-collect      Collect overlay],
        no, [no yes mod], ol_enable_overlays)
 OL_ARG_ENABLE(constraint,[    --enable-constraint        Attribute Constraint overlay],
@@ -413,7 +422,7 @@ dnl ----------------------------------------------------------------
 
 # validate options
 if test $ol_enable_slapd = no ; then
-       dnl SLAPD was specificallly disabled
+       dnl SLAPD was specifically disabled
        if test $ol_enable_slapi = yes ; then
                AC_MSG_WARN([slapd disabled, ignoring --enable-slapi argument])
        fi
@@ -477,6 +486,7 @@ elif test $ol_enable_modules != yes &&
        test $ol_enable_ldap = no &&
        test $ol_enable_mdb = no &&
        test $ol_enable_meta = no &&
+       test $ol_enable_asyncmeta = no &&
        test $ol_enable_monitor = no &&
        test $ol_enable_ndb = no &&
        test $ol_enable_null = no &&
@@ -485,7 +495,8 @@ elif test $ol_enable_modules != yes &&
        test $ol_enable_relay = no &&
        test $ol_enable_shell = no &&
        test $ol_enable_sock = no &&
-       test $ol_enable_sql = no ; then
+       test $ol_enable_sql = no &&
+       test $ol_enable_wt = no ; then
        dnl no slapd backend
 
        if test $ol_enable_slapd = yes ; then
@@ -500,6 +511,10 @@ if test $ol_enable_meta/$ol_enable_ldap = yes/no ; then
        AC_MSG_ERROR([--enable-meta requires --enable-ldap])
 fi
 
+if test $ol_enable_asyncmeta/$ol_enable_ldap = yes/no ; then
+       AC_MSG_ERROR([--enable-asyncmeta requires --enable-ldap])
+fi
+
 if test $ol_enable_lmpasswd = yes ; then
        if test $ol_with_tls = no ; then
                AC_MSG_ERROR([LAN Manager passwords require OpenSSL])
@@ -539,6 +554,7 @@ BUILD_HDB=no
 BUILD_LDAP=no
 BUILD_MDB=no
 BUILD_META=no
+BUILD_ASYNCMETA=no
 BUILD_MONITOR=no
 BUILD_NDB=no
 BUILD_NULL=no
@@ -548,9 +564,11 @@ BUILD_RELAY=no
 BUILD_SHELL=no
 BUILD_SOCK=no
 BUILD_SQL=no
+BUILD_WT=no
 
 BUILD_ACCESSLOG=no
 BUILD_AUDITLOG=no
+BUILD_AUTOCA=no
 BUILD_CONSTRAINT=no
 BUILD_DDS=no
 BUILD_DENYOP=no
@@ -592,6 +610,7 @@ KRB4_LIBS=
 KRB5_LIBS=
 SASL_LIBS=
 TLS_LIBS=
+WITH_TLS_TYPE=
 MODULES_LIBS=
 SLAPI_LIBS=
 LIBSLAPI=
@@ -951,7 +970,7 @@ AC_CHECK_FUNC(select, :, AC_MSG_ERROR([select() required.]))
 
 if test "${ac_cv_header_winsock_h}" != yes; then
        dnl Select arg types
-       dnl (if this detection becomes permenent, it and the select() detection
+       dnl (if this detection becomes permanent, it and the select() detection
        dnl should be done before the yielding select test) 
        AC_FUNC_SELECT_ARGTYPES
 fi
@@ -977,6 +996,18 @@ if test "${ac_cv_header_sys_epoll_h}" = yes; then
        AC_DEFINE(HAVE_EPOLL,1, [define if your system supports epoll])],[AC_MSG_RESULT(no)],[AC_MSG_RESULT(no)])
 fi
 
+dnl ----------------------------------------------------------------
+AC_CHECK_HEADERS( sys/event.h )
+if test "${ac_cv_header_sys_event_h}" = yes; then
+AC_MSG_CHECKING(for kqueue system call)
+AC_RUN_IFELSE([AC_LANG_SOURCE([[int main(int argc, char **argv)
+{
+       int kqfd = kqueue();
+       exit (kqfd == -1 ? 1 : 0);
+}]])],[AC_MSG_RESULT(yes)
+AC_DEFINE(HAVE_KQUEUE,1, [define if your system supports kqueue])],[AC_MSG_RESULT(no)],[AC_MSG_RESULT(no)])
+fi
+
 dnl ----------------------------------------------------------------
 AC_CHECK_HEADERS( sys/devpoll.h )
 dnl "/dev/poll" needs <sys/poll.h> as well...
@@ -1165,7 +1196,7 @@ if test $ol_with_tls = openssl || test $ol_with_tls = auto ; then
        AC_CHECK_HEADERS(openssl/ssl.h)
 
        if test $ac_cv_header_openssl_ssl_h = yes ; then
-               AC_CHECK_LIB(ssl, SSL_library_init,
+               AC_CHECK_LIB(ssl, SSL_CTX_set_msg_callback,
                        [have_openssl=yes
                        need_rsaref=no], [have_openssl=no],
                        [-lcrypto])
@@ -1180,6 +1211,7 @@ if test $ol_with_tls = openssl || test $ol_with_tls = auto ; then
                if test $have_openssl = yes ; then
                        ol_with_tls=openssl
                        ol_link_tls=yes
+                       WITH_TLS_TYPE=openssl
 
                        AC_DEFINE(HAVE_OPENSSL, 1, 
                                [define if you have OpenSSL])
@@ -1207,11 +1239,11 @@ if test $ol_link_tls = no ; then
                AC_CHECK_HEADERS(gnutls/gnutls.h)
 
                if test $ac_cv_header_gnutls_gnutls_h = yes ; then
-                       AC_PREPROC_IFELSE(
+                       AC_PREPROC_IFELSE([AC_LANG_SOURCE(
                                [[#include <gnutls/gnutls.h>]
 [#if GNUTLS_VERSION_NUMBER < 0x020c00]
 [#error "GnuTLS 2.12.0 or newer required"]
-[#endif]],
+[#endif]])],
                                        , [AC_MSG_FAILURE([GnuTLS is too old])])
 
                        AC_CHECK_LIB(gnutls, gnutls_init,
@@ -1220,6 +1252,7 @@ if test $ol_link_tls = no ; then
                        if test $have_gnutls = yes ; then
                                ol_with_tls=gnutls
                                ol_link_tls=yes
+                               WITH_TLS_TYPE=gnutls
 
                                TLS_LIBS="-lgnutls"
 
@@ -1473,7 +1506,7 @@ pthread_rwlock_t rwlock;
                        AC_DEFINE(HAVE_PTHREAD_DETACH,1,
                                [define if you have pthread_detach function])
 
-                       dnl Check for setconcurreny functions
+                       dnl Check for setconcurrency functions
                        AC_CHECK_FUNCS( \
                                pthread_setconcurrency \
                                pthread_getconcurrency \
@@ -1488,7 +1521,7 @@ pthread_rwlock_t rwlock;
                                AC_MSG_ERROR([LinuxThreads header/library mismatch]);
                        fi
 
-                       AC_CACHE_CHECK([if pthread_create() works],
+                       AC_CACHE_CHECK([AC_LANG_SOURCE([if pthread_create() works])],
                                ol_cv_pthread_create_works,[
                        AC_RUN_IFELSE([OL_PTHREAD_TEST_PROGRAM],
                                [ol_cv_pthread_create_works=yes],
@@ -1719,7 +1752,7 @@ case $ol_with_threads in auto | yes | lwp)
                                ol_with_yielding_select=yes
                        fi
 
-                       dnl Check for setconcurreny functions
+                       dnl Check for setconcurrency functions
                        AC_CHECK_FUNCS( \
                                thr_setconcurrency \
                                thr_getconcurrency \
@@ -1954,7 +1987,7 @@ hosts_access(req)
                AC_DEFINE(HAVE_TCPD,1, [define if you have -lwrap])
                WRAP_LIBS="-lwrap"
        elif test $ol_enable_wrappers = yes ; then
-               AC_MSG_ERROR([could not find TCP wrappers, select apppropriate options or disable])
+               AC_MSG_ERROR([could not find TCP wrappers, select appropriate options or disable])
        else
                AC_MSG_WARN([could not find TCP wrappers, support disabled])
                WRAP_LIBS=""
@@ -2082,6 +2115,33 @@ if test $ol_enable_ndb != no ; then
        fi
 fi
 
+dnl ----------------------------------------------------------------
+dnl WiredTiger
+ol_link_wt=no
+if test $ol_enable_wt != no ; then
+       AC_CHECK_PROG(PKGCONFIG,pkg-config,yes)
+       if test "$PKGCONFIG" != yes ; then
+               AC_MSG_ERROR([could not locate pkg-config])
+       fi
+       WT_INCS=`pkg-config --cflags wiredtiger`
+       WT_LIBS=`pkg-config --libs wiredtiger`
+
+       save_CFLAGS="$CFLAGS"
+       save_LDFLAGS="$LDFLAGS"
+       CFLAGS="$WT_INCS"
+       CPPFLAGS="$WT_INCS"
+       LDFLAGS="$WT_LIBS"
+       AC_CHECK_HEADERS([wiredtiger.h])
+       AC_CHECK_LIB(wiredtiger,wiredtiger_version,[: ok],[
+               AC_MSG_ERROR([could not locate wiredtiger library])
+       ])
+       CFLAGS="$save_CFLAGS"
+       CPPFLAGS="$save_CPPFLAGS"
+       LDFLAGS="$save_LDFLAGS"
+       SLAPD_LIBS="$SLAPD_LIBS \$(WT_LIBS)"
+       ol_link_wt=yes
+fi
+
 dnl ----------------------------------------------------------------
 dnl International Components for Unicode
 OL_ICU
@@ -2197,10 +2257,16 @@ if test $ol_enable_crypt != no ; then
                AC_CHECK_LIB(crypt, crypt, [LUTIL_LIBS="$LUTIL_LIBS -lcrypt"
                        have_crypt=yes], [have_crypt=no])])
 
+       LIBS="$TLS_LIBS $LIBS"
+       AC_CHECK_LIB(crypt, crypt_r, [have_crypt_r=yes], [have_crypt_r=no])
+
        LIBS="$save_LIBS"
 
        if test $have_crypt = yes ; then
                AC_DEFINE(HAVE_CRYPT,1, [define if crypt(3) is available])
+               if test $have_crypt_r = yes ; then
+                       AC_DEFINE(HAVE_CRYPT_R, 1, [define if crypt_r() is also available])
+               fi
        else
                AC_MSG_WARN([could not find crypt])
                if test $ol_enable_crypt = yes ; then
@@ -2505,7 +2571,7 @@ if test "$ac_cv_func_getpeereid" != yes; then
                fi
                AC_CHECK_MEMBERS([struct stat.st_fstype, struct stat.st_vfstype])
                if test "$ac_cv_member_struct_stat_st_fstype" = yes; then
-                       AC_COMPILE_IFELSE([struct stat st; char *ptr=st.st_fstype;],
+                       AC_COMPILE_IFELSE([AC_LANG_SOURCE([struct stat st; char *ptr=st.st_fstype;])],
                                AC_DEFINE([HAVE_STRUCT_STAT_ST_FSTYPE_CHAR],1,[define to 1 if st_fstype is char *]),
                                AC_DEFINE([HAVE_STRUCT_STAT_ST_FSTYPE_INT],1,[define to 1 if st_fstype is int]))
                fi
@@ -2704,6 +2770,20 @@ if test "$ol_enable_meta" != no ; then
        AC_DEFINE_UNQUOTED(SLAPD_META,$MFLAG,[define to support LDAP Metadirectory backend])
 fi
 
+if test "$ol_enable_asyncmeta" != no ; then
+       BUILD_SLAPD=yes
+       BUILD_ASYNCMETA=$ol_enable_asyncmeta
+       BUILD_REWRITE=yes
+       if test "$ol_enable_asyncmeta" = mod ; then
+               SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-asyncmeta"
+               MFLAG=SLAPD_MOD_DYNAMIC
+       else
+               SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-asyncmeta"
+               MFLAG=SLAPD_MOD_STATIC
+       fi
+       AC_DEFINE_UNQUOTED(SLAPD_ASYNCMETA,$MFLAG,[define to support LDAP Async Metadirectory backend])
+fi
+
 if test "$ol_enable_ndb" != no ; then
        BUILD_SLAPD=yes
        BUILD_NDB=$ol_enable_ndb
@@ -2811,6 +2891,19 @@ if test "$ol_link_sql" != no ; then
        AC_DEFINE_UNQUOTED(SLAPD_SQL,$MFLAG,[define to support SQL backend])
 fi
 
+if test "$ol_link_wt" != no ; then
+       BUILD_SLAPD=yes
+       BUILD_WT=$ol_enable_wt
+       if test "$ol_enable_wt" = mod; then
+               SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-wt"
+               MFLAG=SLAPD_MOD_DYNAMIC
+       else
+               SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-wt"
+               MFLAG=SLAPD_MOD_STATIC
+       fi
+       AC_DEFINE_UNQUOTED(SLAPD_WT,$MFLAG,[define to support WiredTiger backend])
+fi
+
 if test "$ol_enable_accesslog" != no ; then
        BUILD_ACCESSLOG=$ol_enable_accesslog
        if test "$ol_enable_accesslog" = mod ; then
@@ -2835,6 +2928,18 @@ if test "$ol_enable_auditlog" != no ; then
        AC_DEFINE_UNQUOTED(SLAPD_OVER_AUDITLOG,$MFLAG,[define for Audit Logging overlay])
 fi
 
+if test "$ol_enable_autoca" != no ; then
+       BUILD_AUTOCA=$ol_enable_autoca
+       if test "$ol_enable_autoca" = mod ; then
+               MFLAG=SLAPD_MOD_DYNAMIC
+               SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS autoca.la"
+       else
+               MFLAG=SLAPD_MOD_STATIC
+               SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS autoca.o"
+       fi
+       AC_DEFINE_UNQUOTED(SLAPD_OVER_AUTOCA,$MFLAG,[define for Automatic Certificate Authority overlay])
+fi
+
 if test "$ol_enable_collect" != no ; then
         BUILD_COLLECT=$ol_enable_collect
         if test "$ol_enable_collect" = mod ; then
@@ -3097,6 +3202,7 @@ dnl backends
   AC_SUBST(BUILD_LDAP)
   AC_SUBST(BUILD_MDB)
   AC_SUBST(BUILD_META)
+  AC_SUBST(BUILD_ASYNCMETA)
   AC_SUBST(BUILD_MONITOR)
   AC_SUBST(BUILD_NDB)
   AC_SUBST(BUILD_NULL)
@@ -3106,9 +3212,11 @@ dnl backends
   AC_SUBST(BUILD_SHELL)
   AC_SUBST(BUILD_SOCK)
   AC_SUBST(BUILD_SQL)
+  AC_SUBST(BUILD_WT)
 dnl overlays
   AC_SUBST(BUILD_ACCESSLOG)
   AC_SUBST(BUILD_AUDITLOG)
+  AC_SUBST(BUILD_AUTOCA)
   AC_SUBST(BUILD_COLLECT)
   AC_SUBST(BUILD_CONSTRAINT)
   AC_SUBST(BUILD_DDS)
@@ -3156,6 +3264,7 @@ AC_SUBST(KRB4_LIBS)
 AC_SUBST(KRB5_LIBS)
 AC_SUBST(SASL_LIBS)
 AC_SUBST(TLS_LIBS)
+AC_SUBST(WITH_TLS_TYPE)
 AC_SUBST(MODULES_LIBS)
 AC_SUBST(SLAPI_LIBS)
 AC_SUBST(LIBSLAPI)
@@ -3169,6 +3278,9 @@ AC_SUBST(SLAPD_SQL_LDFLAGS)
 AC_SUBST(SLAPD_SQL_LIBS)
 AC_SUBST(SLAPD_SQL_INCLUDES)
 
+AC_SUBST(WT_INCS)
+AC_SUBST(WT_LIBS)
+
 dnl ----------------------------------------------------------------
 dnl final help output
 AC_ARG_WITH(xxinstall,[
@@ -3204,6 +3316,7 @@ AC_CONFIG_FILES([Makefile:build/top.mk:Makefile.in:build/dir.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-asyncmeta/Makefile:build/top.mk:servers/slapd/back-asyncmeta/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]
 [servers/slapd/back-null/Makefile:build/top.mk:servers/slapd/back-null/Makefile.in:build/mod.mk]
@@ -3213,6 +3326,7 @@ AC_CONFIG_FILES([Makefile:build/top.mk:Makefile.in:build/dir.mk]
 [servers/slapd/back-shell/Makefile:build/top.mk:servers/slapd/back-shell/Makefile.in:build/mod.mk]
 [servers/slapd/back-sock/Makefile:build/top.mk:servers/slapd/back-sock/Makefile.in:build/mod.mk]
 [servers/slapd/back-sql/Makefile:build/top.mk:servers/slapd/back-sql/Makefile.in:build/mod.mk]
+[servers/slapd/back-wt/Makefile:build/top.mk:servers/slapd/back-wt/Makefile.in:build/mod.mk]
 [servers/slapd/shell-backends/Makefile:build/top.mk:servers/slapd/shell-backends/Makefile.in:build/srv.mk]
 [servers/slapd/slapi/Makefile:build/top.mk:servers/slapd/slapi/Makefile.in:build/lib.mk:build/lib-shared.mk]
 [servers/slapd/overlays/Makefile:build/top.mk:servers/slapd/overlays/Makefile.in:build/lib.mk]
@@ -3229,7 +3343,7 @@ rm -f $BACKENDSC
 cat > $BACKENDSC << ENDX
 /* This work is part of OpenLDAP Software <http://www.openldap.org/>.
  *
- * Copyright 1998-2015 The OpenLDAP Foundation.
+ * Copyright 1998-2018 The OpenLDAP Foundation.
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -3280,7 +3394,7 @@ rm -f $OVERLAYSC
 cat > $OVERLAYSC << ENDX
 /* This work is part of OpenLDAP Software <http://www.openldap.org/>.
  *
- * Copyright 1998-2015 The OpenLDAP Foundation.
+ * Copyright 1998-2018 The OpenLDAP Foundation.
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without