]> git.sur5r.net Git - openldap/blobdiff - configure.in
Delete obsolete symbols acl_access_allowed and acl_get_applicable
[openldap] / configure.in
index db0146a6154c004a907ebd3e061cae7eb102dd4c..8824fd806d2405b7111db39929672f82b2809c6f 100644 (file)
@@ -109,7 +109,7 @@ OL_ARG_WITH(cyrus_sasl,[  --with-cyrus-sasl with Cyrus SASL support],
 OL_ARG_WITH(fetch,[  --with-fetch              with fetch URL support],
        auto, [auto yes no] )
 OL_ARG_WITH(kerberos,[  --with-kerberos        with Kerberos support],
-       auto, [auto k5 k4 afs yes no])
+       auto, [auto k5 kth k4 afs yes no])
 OL_ARG_WITH(readline,[  --with-readline        with readline support],
        auto, [auto yes no] )
 OL_ARG_WITH(threads,[  --with-threads  use threads],
@@ -140,6 +140,7 @@ OL_ARG_ENABLE(rlookups,[    --enable-rlookups       enable reverse lookups], auto)dnl
 OL_ARG_ENABLE(aci,[    --enable-aci    enable per-object ACIs], no)dnl
 OL_ARG_ENABLE(discreteaci,[    --enable-discreteaci    enable discrete rights in ACIs], no)dnl
 OL_ARG_ENABLE(wrappers,[    --enable-wrappers  enable tcp wrapper support], no)dnl
+OL_ARG_ENABLE(dynamic,[    --enable-dynamic    enable linking built binaries with dynamic libs], no)dnl
 
 dnl SLAPD Backend options
 OL_ARG_ENABLE(bdb2,[    --enable-bdb2  enable bdb2 backend], no)dnl
@@ -289,6 +290,7 @@ if test $ol_enable_slapd = no ; then
        ol_enable_aci=no
        ol_enable_discreteaci=no
        ol_enable_wrappers=no
+       ol_enable_dynamic=no
 
        ol_with_ldbm_api=no
        ol_with_ldbm_type=no
@@ -418,8 +420,10 @@ SLAPD_MODULES_CPPFLAGS=
 SLAPD_MODULES_LIST=
 
 SLAPD_PERL_LDFLAGS=
-SLAPD_PERL_CPPFLAGS=
+MOD_PERL_LDFLAGS=
+PERL_CPPFLAGS=
 
+MOD_TCL_LIB=
 KRB_LIBS=
 READLINE_LIBS=
 SASL_LIBS=
@@ -488,6 +492,7 @@ dnl The default CFLAGS is empty NOT whatever AC_PROG_CC sets.
 dnl (for now, let autoconf sort this out)
 dnl CFLAGS=${CFLAGS-""}
 
+AC_LIBTOOL_WIN32_DLL
 AC_LIBTOOL_DLOPEN
 AC_PROG_LIBTOOL
 
@@ -516,9 +521,12 @@ if test $ol_enable_perl != no ; then
                fi
 
        else
-               SLAPD_PERL_LDFLAGS="`$PERLBIN -MExtUtils::Embed -e ldopts|sed -e s/-lc//`"
-               SLAPD_PERL_CPPFLAGS="`$PERLBIN -MExtUtils::Embed -e ccopts`"
-
+               PERL_CPPFLAGS="`$PERLBIN -MExtUtils::Embed -e ccopts`"
+               if test x"$ol_with_perl_module" == "xstatic" ; then
+                       SLAPD_PERL_LDFLAGS="`$PERLBIN -MExtUtils::Embed -e ldopts|sed -e s/-lc//`"
+               else
+                       MOD_PERL_LDFLAGS="`$PERLBIN -MExtUtils::Embed -e ldopts|sed -e s/-lc//`"
+               fi
                dnl should check perl version
                ol_link_perl=yes
        fi
@@ -584,12 +592,15 @@ if test $ol_enable_modules != no ; then
                AC_MSG_ERROR([could not locate libtool ltdl.h])
        fi
 
-       AC_CHECK_LIB(ltdl, lt_dlinit)
+       AC_CHECK_LIB(ltdl, lt_dlinit, [
+           MODULES_LIBS=-lltdl
+           AC_DEFINE(HAVE_LIBLTDL,1,[define if you have libtool -ltdl])
+       ])
+
        if test "$ac_cv_lib_ltdl_lt_dlinit" = no ; then
                AC_MSG_ERROR([could not locate libtool -lltdl])
        fi
        ol_link_modules=yes
-
 else
        ol_with_bdb2_module=static
        ol_with_ldap_module=static
@@ -620,12 +631,15 @@ AC_CHECK_HEADERS( \
        arpa/inet.h             \
        arpa/nameser.h  \
        assert.h                \
+       conio.h                 \
        crypt.h                 \
+       direct.h                \
        errno.h                 \
        fcntl.h                 \
        filio.h                 \
        getopt.h                \
        grp.h                   \
+       io.h                    \
        libutil.h               \
        limits.h                \
        locale.h                \
@@ -634,6 +648,7 @@ AC_CHECK_HEADERS(   \
        memory.h                \
        psap.h                  \
        pwd.h                   \
+       process.h               \
        resolv.h                \
        sgtty.h                 \
        shadow.h                \
@@ -657,12 +672,39 @@ AC_CHECK_HEADERS( \
        unistd.h                \
 )
 
+dnl Check for winsock.h on a Mingw32 system
+if test "$ac_cv_mingw32" = yes ; then
+    AC_CHECK_HEADERS(winsock.h)
+fi
+
 dnl ----------------------------------------------------------------
 dnl Checks for libraries
 
 dnl HP-UX requires -lV3
 AC_CHECK_LIB(V3, sigset)
 
+dnl Gotta check for winsock manually
+if test "${ac_cv_header_winsock_h}" = yes; then
+    AC_MSG_CHECKING(for winsock support)
+    AC_TRY_LINK([
+#include <winsock.h>
+    ],[
+socket(0,0,0);
+select(0,NULL,NULL,NULL,NULL);
+closesocket(0);
+gethostname(NULL,0);
+    ],[
+       AC_MSG_RESULT(yes)
+       AC_DEFINE(HAVE_WINSOCK,1,[define if you have winsock])
+       ac_cv_func_socket=yes
+       ac_cv_func_select=yes
+       ac_cv_func_closesocket=yes
+       ac_cv_func_gethostname=yes
+    ],[
+       AC_MSG_RESULT(no)
+    ])
+fi
+
 dnl Find socket()
 dnl Likely combinations:
 dnl            -lsocket [ -lnsl_s | -lnsl ]
@@ -683,10 +725,12 @@ dnl require select
 AC_CHECK_FUNC(select, :, AC_MSG_ERROR([select() required.]))
 dnl AC_CHECK_FUNCS(socketpair)
 
-dnl Select arg types
-dnl (if this detection becomes permenent, it and the select() detection
-dnl should be done before the yielding select test) 
-AC_FUNC_SELECT_ARGTYPES
+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 should be done before the yielding select test) 
+    AC_FUNC_SELECT_ARGTYPES
+fi
 
 dnl check to see if system call automatically restart
 dnl AC_SYS_RESTARTABLE_SYSCALLS
@@ -824,8 +868,10 @@ des_debug = 1;
        fi
 fi
 
-if test $ol_with_kerberos = auto -o $ol_with_kerberos = k4 ; then
-       AC_CHECK_HEADERS(krb.h des.h)
+if test $ol_with_kerberos = auto -o $ol_with_kerberos = k4 \
+       -o $ol_with_kerberos = kth ; then
+
+       AC_CHECK_HEADERS(krb.h des.h krb-archaeology.h )
 
        if test $ac_cv_header_krb_h = yes ; then
                AC_CHECK_LIB(krb, main, [have_k4=yes], [have_k4=no], [-ldes])
@@ -835,12 +881,20 @@ if test $ol_with_kerberos = auto -o $ol_with_kerberos = k4 ; then
                        ol_link_kerberos=yes
 
                        KRB_LIBS="-lkrb -ldes"
+
+                       if test $ac_cv_header_krb_archaeology_h = yes ; then
+                               AC_DEFINE(HAVE_KTH_KERBEROS, 1,
+                                       [define if you have Kth Kerberos])
+                       fi
                fi
        fi
 fi
 
 if test $ol_link_kerberos = yes ; then
        AC_DEFINE(HAVE_KERBEROS, 1, [define if you have Kerberos])
+
+elif test $ol_with_kerberos != auto -a $ol_with_kerberos != no ; then
+       AC_ERROR([Kerberos detection failed.])
 fi
 
 dnl ----------------------------------------------------------------
@@ -938,6 +992,17 @@ fi
 dnl ----------------------------------------------------------------
 dnl Threads?
 ol_link_threads=no
+
+dnl Not much to check. If we're in mingw32, we assume win32 threads.
+if test "$ac_cv_mingw32" = yes ; then
+    ol_link_threads=nt
+    ol_with_threads=found
+    ol_with_yielding_select=yes
+    AC_MSG_CHECKING(for NT threads)
+    AC_MSG_RESULT(yes)
+    AC_DEFINE(HAVE_NT_THREADS,1,[if you have NT threads])
+fi
+
 if test $ol_with_threads = auto -o $ol_with_threads = yes \
        -o $ol_with_threads = posix ; then
 
@@ -1369,7 +1434,7 @@ if test $ol_with_threads = manual ; then
        AC_CHECK_HEADERS(thread.h synch.h)
 fi
 
-if test $ol_link_threads != no ; then  
+if test $ol_link_threads != no -a $ol_link_threads != nt ; then  
        dnl needed to get reentrant/threadsafe versions
        dnl
        AC_DEFINE(REENTRANT,1)
@@ -1599,6 +1664,13 @@ if test $ol_link_ldbm = no -a $ol_enable_ldbm != no ; then
        ol_enable_ldbm=no
 fi
 
+dnl ----------------------------------------------------------------
+if test $ol_enable_dynamic = yes -a $enable_shared = yes ; then
+       LINK_BINS_DYNAMIC="yes"
+else
+       LINK_BINS_DYNAMIC="no"
+fi
+
 dnl ----------------------------------------------------------------
 if test $ol_enable_wrappers != no ; then
        AC_CHECK_HEADERS(tcpd.h)
@@ -1654,21 +1726,15 @@ if test $ol_enable_tcl != no ; then
        if test $ac_cv_header_tcl_h != yes ; then
                have_tcl=no
        else
-               AC_CHECK_LIB(tcl,main,
-                       [have_tcl=yes; SLAPD_LIBS="$SLAPD_LIBS -ltcl"],
-                       [have_tcl=no])
-
-               if test $have_tcl != yes; then
-                       AC_CHECK_LIB(tcl7.6,main,
-                               [have_tcl=yes; SLAPD_LIBS="$SLAPD_LIBS -ltcl7.6"],
-                               [have_tcl=no])
-               fi
-
-               if test $have_tcl != yes; then
-                       AC_CHECK_LIB(tcl8.0,main,
-                               [have_tcl=yes; SLAPD_LIBS="$SLAPD_LIBS -ltcl8.0"],
-                               [have_tcl=no])
-               fi
+               for lib in tcl tcl7.6 tcl8.0 tcl8.2 ; do
+                       AC_CHECK_LIB($lib,main,
+                         [have_tcl=yes
+                          if test x"$ol_with_tcl_module" == "xstatic" ; then
+                              SLAPD_LIBS="$SLAPD_LIBS -l${lib}"
+                          else
+                              MOD_TCL_LIB="-l${lib}"
+                          fi;break],[have_tcl=no])
+               done
        fi
 
        if test $have_tcl != yes ; then
@@ -1711,8 +1777,7 @@ fi
 
 dnl ----------------------------------------------------------------
 dnl
-dnl Check for fetch URL support
-dnl            should be extended to support other fetch URL APIs
+dnl Check for Cyrus SASL
 dnl
 ol_link_sasl=no
 if test $ol_with_cyrus_sasl != no ; then
@@ -1734,6 +1799,27 @@ if test $ol_with_cyrus_sasl != no ; then
        fi
 fi
 
+dnl ----------------------------------------------------------------
+dnl Check for entropy sources
+if test $cross_compiling != yes ; then
+       dev=no
+       if test -r /dev/urandom ; then
+               dev="/dev/urandom";
+       elif test -r /idev/urandom ; then
+               dev="/idev/urandom";
+       elif test -r /dev/srandom ; then
+               dev="/dev/srandom";
+       elif test -r /dev/random ; then
+               dev="/dev/random";
+       elif test -r /idev/random ; then
+               dev="/idev/random";
+       fi
+
+       if test $dev != no ; then
+               AC_DEFINE_UNQUOTED(URANDOM_DEVICE,"$dev",[set to urandom device])
+       fi
+fi
+
 dnl ----------------------------------------------------------------
 dnl
 dnl Check for fetch URL support
@@ -1809,7 +1895,8 @@ if test $ol_enable_proctitle != no ; then
                        [have_setproctitle=yes
                        LUTIL_LIBS="$LUTIL_LIBS -lutil"],
                        [have_setproctitle=no
-                       LIBOBJS="$LIBOBJS setproctitle.o"])])
+                       LIBOBJS="$LIBOBJS setproctitle.o"
+                       LIBSRCS="$LIBSRCS setproctitle.c"])])
 
        if test $have_setproctitle = yes ; then
                AC_DEFINE(HAVE_SETPROCTITLE,1,
@@ -1819,20 +1906,25 @@ fi
 
 dnl ----------------------------------------------------------------
 dnl Checks for typedefs, structures, and compiler characteristics.
-AC_TYPE_GETGROUPS dnl requires AC_TYPE_UID_T
 AC_TYPE_MODE_T
 AC_TYPE_OFF_T
 AC_TYPE_PID_T
 AM_TYPE_PTRDIFF_T
 AC_TYPE_SIGNAL
-OL_TYPE_SIG_ATOMIC_T
 AC_TYPE_SIZE_T
 OL_TYPE_SOCKLEN_T
 AC_STRUCT_ST_BLKSIZE
 AC_HEADER_TIME
 AC_STRUCT_TM
-OL_STRUCT_PASSWD_PW_GECOS
-OL_STRUCT_PASSWD_PW_PASSWD
+AC_TYPE_UID_T
+OL_TYPE_SIG_ATOMIC_T
+
+dnl only check these if we're not Mingw32
+if test "$ac_cv_mingw32" != yes ; then
+    AC_TYPE_GETGROUPS
+    OL_STRUCT_PASSWD_PW_GECOS
+    OL_STRUCT_PASSWD_PW_PASSWD
+fi
 
 OL_C_UPPER_LOWER
 AC_C_CONST
@@ -1875,6 +1967,21 @@ dnl AM_FUNC_STRTOD
 
 OL_FUNC_INET_ATON
 
+dnl Check for Mingw32 specific functions.
+if test "$ac_cv_mingw32" = yes ; then
+    AC_CHECK_FUNC(_snprintf, [
+       ac_cv_func_snprintf=yes
+       AC_DEFINE(snprintf, _snprintf, [define to snprintf routine])
+    ])
+
+    AC_CHECK_FUNC(_vsnprintf, [
+       ac_cv_func_vsnprintf=yes
+       AC_DEFINE(vsnprintf, _vsnprintf, [define to vsnprintf routine])
+    ])
+
+    AC_CHECK_FUNC(_spawnlp, AC_DEFINE(HAVE_SPAWNLP,1,[if you have spawnlp()]))
+fi
+
 dnl we should use vfork instead of fork in a number of places...
 dnl AC_FUNC_VFORK
 AC_FUNC_VPRINTF
@@ -1937,6 +2044,14 @@ AC_CHECK_FUNCS(          \
 dnl We actually may need to replace more than this.
 AC_REPLACE_FUNCS(getopt tempnam)
 
+if test "$ac_cv_func_getopt" != yes; then
+    LIBSRCS="$LIBSRCS getopt.c"
+fi
+
+if test "$ac_cv_func_tempnam" != yes; then
+    LIBSRCS="$LIBSRCS tempnam.c"
+fi
+
 dnl ----------------------------------------------------------------
 # Check Configuration
 OL_SYS_ERRLIST
@@ -1999,7 +2114,6 @@ fi
 if test "$ol_link_modules" != no ; then
        AC_DEFINE(SLAPD_MODULES,1,[define to support modules])
        BUILD_SLAPD=yes
-       MODULES_LIBS=-lltdl
        SLAPD_MODULES_LDFLAGS="-dlopen self"
 fi
 
@@ -2105,6 +2219,29 @@ fi
 
 dnl ----------------------------------------------------------------
 
+if test "$LINK_BINS_DYNAMIC" = yes; then
+    LIB_LINKAGE=DYN
+    LT_LIB_LINKAGE=shared
+else
+    LIB_LINKAGE=STAT
+    LT_LIB_LINKAGE=static
+fi
+
+if test "$ac_cv_mingw32" = yes ; then
+    PLAT=NT
+    DYN_EXT=dll
+else
+    PLAT=UNIX
+    DYN_EXT=so
+fi
+
+AC_SUBST(LIBSRCS)
+
+AC_SUBST(PLAT)
+AC_SUBST(LIB_LINKAGE)
+AC_SUBST(LT_LIB_LINKAGE)
+AC_SUBST(DYN_EXT)
+
 AC_SUBST(BUILD_LDAPD)
 AC_SUBST(BUILD_SLAPD)
   AC_SUBST(BUILD_BDB2)
@@ -2132,13 +2269,17 @@ AC_SUBST(SLURPD_LIBS)
 AC_SUBST(LDBM_LIBS)
 AC_SUBST(LTHREAD_LIBS)
 AC_SUBST(LUTIL_LIBS)
+AC_SUBST(WRAP_LIBS)
+AC_SUBST(MOD_TCL_LIB)
+AC_SUBST(LINK_BINS_DYNAMIC)
 
 AC_SUBST(SLAPD_MODULES_CPPFLAGS)
 AC_SUBST(SLAPD_MODULES_LDFLAGS)
 AC_SUBST(SLAPD_MODULES_LIST)
 
-AC_SUBST(SLAPD_PERL_CPPFLAGS)
+AC_SUBST(PERL_CPPFLAGS)
 AC_SUBST(SLAPD_PERL_LDFLAGS)
+AC_SUBST(MOD_PERL_LDFLAGS)
 
 AC_SUBST(KRB_LIBS)
 AC_SUBST(READLINE_LIBS)