AC_DEFINE_UNQUOTED(OPENLDAP_VERSION,"$VERSION",Version)
dnl We use autoconf features new to 2.13.
-dnl aclocal.m4 should be built using aclocal from automake 1.4
+dnl aclocal.m4 should be built using aclocal from automake 1.4
+dnl libtool 1.3.3 should be installed.
AC_PREREQ(2.13)dnl Required Autoconf version
AC_CONFIG_HEADER(include/portable.h include/ldap_features.h include/lber_types.h)dnl
-dnl
+dnl ----------------------------------------------------------------
dnl Start Args
AC_MSG_CHECKING(configure arguments)
AC_PREFIX_DEFAULT(/usr/local)
top_builddir=`pwd`
AC_SUBST(top_builddir)dnl
-AC_DEFINE(HAVE_MKVERSION, 1, [define this if you have mkversion])
-
ldap_subdir="openldap"
AC_ARG_WITH(subdir, [ --with-subdir=DIR change default subdirectory used for installs], [
dnl General "with" options
OL_ARG_ENABLE(dmalloc,[ --enable-dmalloc enable debug malloc support], no)dnl
+OL_ARG_WITH(cyrus_sasl,[ --with-cyrus-sasl with Cyrus SASL support],
+ auto, [auto yes no] )
+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])
OL_ARG_WITH(readline,[ --with-readline with readline support],
OL_ARG_ENABLE(cleartext,[ --enable-cleartext enable cleartext passwords], yes)dnl
OL_ARG_ENABLE(crypt,[ --enable-crypt enable crypt(3) passwords], auto)dnl
OL_ARG_ENABLE(modules,[ --enable-modules enable dynamic module support], no)dnl
+OL_ARG_ENABLE(multimaster,[ --enable-multimaster enable multimaster replication], no)dnl
OL_ARG_ENABLE(phonetic,[ --enable-phonetic enable phonetic/soundex], no)dnl
+OL_ARG_ENABLE(quipu,[ --enable-quipu build quipu migration tools], no)dnl
OL_ARG_ENABLE(rlookups,[ --enable-rlookups enable reverse lookups], auto)dnl
OL_ARG_ENABLE(wrappers,[ --enable-wrappers enable tcp wrapper support], no)dnl
if test $ol_enable_modules = yes ; then
AC_MSG_WARN([slapd disabled, ignoring --enable-modules argument])
fi
+ if test $ol_enable_multimaster = yes ; then
+ AC_MSG_WARN([slapd disabled, ignoring --enable-multimaster 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_quipu = yes ; then
+ AC_MSG_WARN([slapd disabled, ignoring --enable-quipu argument])
+ fi
if test $ol_enable_rlookups = yes ; then
AC_MSG_WARN([slapd disabled, ignoring --enable-rlookups argument])
fi
ol_enable_tcl=no
ol_enable_modules=no
+ ol_enable_multimaster=no
ol_enable_phonetic=no
+ ol_enable_quipu=no
ol_enable_rlookups=no
ol_enable_wrappers=no
## Initialize vars
LDAP_LIBS=
+LDIF_LIBS=
LDBM_LIBS=
LTHREAD_LIBS=
LUTIL_LIBS=
BUILD_LDBM=no
BUILD_PASSWD=no
BUILD_PERL=no
+BUILD_QUIPU=no
BUILD_SHELL=no
BUILD_TCL=no
BUILD_THREAD=no
KRB_LIBS=
READLINE_LIBS=
+SASL_LIBS=
TERMCAP_LIBS=
TLS_LIBS=
dnl AC_PROG_INSTALL
+AC_DEFINE(HAVE_MKVERSION, 1, [define this if you have mkversion])
+
+
+dnl
+dnl Determine which C translator to use
+dnl
+
dnl AIX Thread requires we use cc_r or xlc_r.
dnl But only do this IF AIX and CC is not set
dnl and threads are auto|yes|posix.
AC_PATH_PROG(EDITOR, vi, /usr/ucb/vi, $PATH:/usr/ucb)
AC_PATH_PROG(FINGER, finger, /usr/ucb/finger, $PATH:/usr/ucb)
-dnl
-dnl Check for module support
-dnl
-ol_link_modules=no
-if test $ol_enable_modules != no ; then
- AC_PATH_PROG(GLIBCONFIG, glib-config)
-
- if test "no$GLIBCONFIG" = "no" ; then
- if test $ol_enable_modules = yes ; then
- AC_MSG_ERROR([could not locate glib-config])
- fi
-
- else
- SLAPD_MODULES_VERSION="`$GLIBCONFIG --version gmodule`"
- SLAPD_MODULES_CPPFLAGS="`$GLIBCONFIG --cflags gmodule`"
- SLAPD_MODULES_LDFLAGS="`$GLIBCONFIG --libs gmodule`"
-
- dnl should check glib version
- ol_link_modules=yes
- fi
-else
- ol_with_bdb2_module=static
- ol_with_ldap_module=static
- ol_with_ldbm_module=static
- ol_with_passwd_module=static
- ol_with_perl_module=static
- ol_with_shell_module=static
- ol_with_tcl_module=static
-fi
-
ol_link_perl=no
if test $ol_enable_perl != no ; then
AC_PATH_PROG(PERLBIN, perl, /usr/bin/perl)
AC_ISC_POSIX
AC_MINIX
-dnl BeOS requires -lbe -lroot -lnet
-AC_CHECK_LIB(be, be_app, [LIBS="$LIBS -lbe -lroot -lnet"], :, [-lroot -lnet])
-
dnl Checks for system services
AC_CYGWIN
AC_MINGW32
AC_DEFINE_UNQUOTED( EXEEXT, "${EXEEXT}", [defined to be the EXE extension])
+dnl BeOS requires -lbe -lroot -lnet
+AC_CHECK_LIB(be, be_app, [LIBS="$LIBS -lbe -lroot -lnet"], :, [-lroot -lnet])
+
dnl OpenLDAP requires STDC features
AM_PROG_CC_STDC
if test "X${am_cv_prog_cc_stdc}" = "Xno" ; then
AC_MSG_ERROR([OpenLDAP requires compiler to support STDC constructs.])
fi
-dnl AM_C_PROTOTYPES
-
dnl Check cc depend flags
OL_MKDEPEND
if test "${ol_cv_mkdep}" = no ; then
AC_MSG_WARN([do not know how to generate dependencies])
fi
+dnl
+dnl Check for module support
+dnl
+ol_link_modules=no
+if test $ol_enable_modules != no ; then
+ AC_PATH_PROG(GLIBCONFIG, glib-config)
+
+ if test "no$GLIBCONFIG" = "no" ; then
+ if test $ol_enable_modules = yes ; then
+ AC_MSG_ERROR([could not locate glib-config])
+ fi
+
+ else
+ SLAPD_MODULES_VERSION="`$GLIBCONFIG --version gmodule`"
+ SLAPD_MODULES_CPPFLAGS="`$GLIBCONFIG --cflags gmodule`"
+ SLAPD_MODULES_LDFLAGS="`$GLIBCONFIG --libs gmodule`"
+
+ dnl should check glib version
+ ol_link_modules=yes
+ fi
+else
+ ol_with_bdb2_module=static
+ ol_with_ldap_module=static
+ ol_with_ldbm_module=static
+ ol_with_passwd_module=static
+ ol_with_perl_module=static
+ ol_with_shell_module=static
+ ol_with_tcl_module=static
+fi
+
+dnl ----------------------------------------------------------------
+dnl Checks for header files.
+OL_HEADER_STDC
+
+if test $ol_cv_header_stdc != yes; then
+ AC_MSG_WARN([could not locate Standard C compliant headers])
+fi
+
+AC_HEADER_DIRENT
+AC_HEADER_SYS_WAIT
+AM_HEADER_TIOCGWINSZ_NEEDS_SYS_IOCTL
+if test $am_cv_sys_posix_termios = yes ; then
+ AC_DEFINE(HAVE_POSIX_TERMIOS,1,
+ [define if you have POSIX termios])
+fi
+
+AC_CHECK_HEADERS( \
+ arpa/inet.h \
+ arpa/nameser.h \
+ assert.h \
+ crypt.h \
+ errno.h \
+ fcntl.h \
+ filio.h \
+ getopt.h \
+ grp.h \
+ libutil.h \
+ limits.h \
+ locale.h \
+ netinet/tcp.h \
+ malloc.h \
+ memory.h \
+ psap.h \
+ pwd.h \
+ resolv.h \
+ sgtty.h \
+ shadow.h \
+ stdarg.h \
+ stddef.h \
+ string.h \
+ strings.h \
+ sysexits.h \
+ sys/file.h \
+ sys/filio.h \
+ sys/errno.h \
+ sys/ioctl.h \
+ sys/param.h \
+ sys/resource.h \
+ sys/select.h \
+ sys/socket.h \
+ sys/syslog.h \
+ sys/time.h \
+ sys/types.h \
+ syslog.h \
+ termios.h \
+ unistd.h \
+)
+
+dnl ----------------------------------------------------------------
dnl Checks for libraries
dnl Find socket()
AC_CHECK_LIB(gen, main)
])
-dnl Check for resolver routines
-AC_CHECK_FUNCS(res_search)
-if test $ac_cv_func_res_search = "no" ; then
- AC_CHECK_LIB(bind, res_search)
- if test "$ac_cv_lib_bind_res_search" = "yes" ; then
- AC_DEFINE(HAVE_RES_SEARCH,1,
- [define if you have res_search()])
- else
- AC_CHECK_LIB(resolv, res_search)
- if test "$ac_cv_lib_resolv_res_search" = "yes" ; then
- AC_DEFINE(HAVE_RES_SEARCH,1,
- [define if you have res_search()])
- fi
- fi
-fi
+AC_CHECK_FUNC(select, :, AC_MSG_ERROR([select() required.]))
+
+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
-dnl HP-UX requires -lV3
-AC_CHECK_LIB(V3, sigset)
AC_CHECK_HEADERS( regex.h )
if test "$ac_cv_header_regex_h" != yes ; then
AC_MSG_ERROR([broken POSIX regex!])
fi
-AC_CHECK_FUNC(select, :, AC_MSG_ERROR([select() required.]))
-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
+dnl HP-UX requires -lV3
+AC_CHECK_LIB(V3, sigset)
+
+
+# find res_search
+if test $ol_enable_dns != no ; then
+ dnl Check for resolver routines
+ AC_CHECK_FUNC(res_search,:)
+ if test $ac_cv_func_res_search = no ; then
+ AC_CHECK_LIB(bind, res_search)
+ ac_cv_func_res_search=$ac_cv_lib_bind_res_search
+ fi
+ if test $ac_cv_func_res_search = no ; then
+ AC_CHECK_LIB(bind, __res_search)
+ ac_cv_func_res_search=$ac_cv_lib_bind___res_search
+ fi
+ if test $ac_cv_func_res_search = no ; then
+ AC_CHECK_LIB(resolv, res_search)
+ ac_cv_func_res_search=$ac_cv_lib_resolv_res_search
+ fi
+
+ if test "$ac_cv_func_res_search" = yes ; then
+ AC_DEFINE(HAVE_RES_SEARCH,1,
+ [define if you have res_search()])
+ elif test $ol_enable_dns = yes ; then
+ AC_MSG_ERROR([--enable-dns requires res_search])
+ else
+ AC_MSG_WARN([no res_search, disabling DNS support])
+ fi
+fi
+
# ISODE tests
ol_link_isode=no
AC_PATH_PROG(PEPSY, pepsy)
fi
+if test $ol_enable_quipu != no ; then
+ AC_CHECK_HEADERS(quipu/commonarg.h)
+
+ if test $ac_cv_header_quipu_commonarg_h = yes ; then
+ BUILD_QUIPU=yes
+ elif test $ol_enable_quipu = auto ; then
+ AC_MSG_WARN([no quipu for --enable-quipu=auto, disabling])
+ else
+ AC_MSG_ERROR(no quipu for --enable-quipu=$ol_enable_quipu)
+ fi
+fi
+
dnl
dnl check for kerberos
dnl
status = pthread_detach( t );
#endif
- if( status ) return status;
-
return status;
}
],
TERMCAP_LIBS=
fi
+dnl
+dnl Check for fetch URL support
+dnl should be extended to support other fetch URL APIs
+dnl
+ol_link_sasl=no
+if test $ol_with_cyrus_sasl != no ; then
+ AC_CHECK_HEADER(sasl.h)
+
+ if test $ac_cv_header_sasl_h = yes ; then
+ AC_CHECK_LIB(sasl, sasl_client_init,
+ [have_cyrus_sasl=yes], [have_cyrus_sasl=no])
+
+ if test $have_cyrus_sasl != no ; then
+ SASL_LIBS="-lsasl"
+ AC_DEFINE(HAVE_CYRUS_SASL,1,[define if you have Cyrus SASL])
+ ol_link_sasl=yes
+ fi
+ fi
+
+ if test $ol_link_sasl = no -a $ol_with_cyrus_sasl = yes ; then
+ AC_MSG_ERROR(no suitable API for --with-cyrus-sasl=$ol_with_cyrus_sasl)
+ fi
+fi
+
+dnl
+dnl Check for fetch URL support
+dnl should be extended to support other fetch URL APIs
+dnl
+ol_link_fetch=no
+if test $ol_with_fetch != no ; then
+ OL_LIB_FETCH
+
+ if test $ol_cv_lib_fetch != no ; then
+ LDIF_LIBS="$LDIF_LIBS $ol_link_fetch"
+ ol_link_fetch=freebsd
+
+ elif test $ol_with_fetch != auto ; then
+ AC_MSG_ERROR(no suitable API for --with-fetch=$ol_with_fetch)
+ fi
+fi
+
dnl
dnl Check for GNU readline
dnl
fi
fi
-dnl ----------------------------------------------------------------
-dnl Checks for header files.
-OL_HEADER_STDC
-
-if test $ol_cv_header_stdc != yes; then
- AC_MSG_WARN([could not locate Standard C compliant headers])
-fi
-
-AC_HEADER_DIRENT
-AC_HEADER_SYS_WAIT
-AM_HEADER_TIOCGWINSZ_NEEDS_SYS_IOCTL
-if test $am_cv_sys_posix_termios = yes ; then
- AC_DEFINE(HAVE_POSIX_TERMIOS,1,
- [define if you have POSIX termios])
-fi
-
-AC_CHECK_HEADERS( \
- arpa/inet.h \
- arpa/nameser.h \
- assert.h \
- crypt.h \
- errno.h \
- fcntl.h \
- filio.h \
- getopt.h \
- grp.h \
- libutil.h \
- limits.h \
- locale.h \
- malloc.h \
- memory.h \
- psap.h \
- pwd.h \
- resolv.h \
- sgtty.h \
- shadow.h \
- stdarg.h \
- stddef.h \
- string.h \
- strings.h \
- sysexits.h \
- sys/file.h \
- sys/filio.h \
- sys/errno.h \
- sys/ioctl.h \
- sys/param.h \
- sys/resource.h \
- sys/select.h \
- sys/socket.h \
- sys/syslog.h \
- sys/time.h \
- sys/types.h \
- syslog.h \
- termios.h \
- unistd.h \
-)
-
dnl ----------------------------------------------------------------
dnl Checks for typedefs, structures, and compiler characteristics.
AC_TYPE_GETGROUPS dnl requires AC_TYPE_UID_T
AC_FUNC_STRFTIME
dnl AM_FUNC_STRTOD
+OL_FUNC_INET_ATON
+
dnl we should use vfork instead of fork in a number of places...
dnl AC_FUNC_VFORK
AC_FUNC_VPRINTF
if test "$ol_enable_cleartext" != no ; then
AC_DEFINE(SLAPD_CLEARTEXT,1,[define to support cleartext passwords])
fi
+if test "$ol_enable_multimaster" != no ; then
+ AC_DEFINE(SLAPD_MULTIMASTER,1,[define to support multimaster replication])
+fi
if test "$ol_enable_phonetic" != no ; then
AC_DEFINE(SLAPD_PHONETIC,1,[define to support phonetic])
fi
AC_SUBST(BUILD_LDBM)
AC_SUBST(BUILD_PASSWD)
AC_SUBST(BUILD_PERL)
+ AC_SUBST(BUILD_QUIPU)
AC_SUBST(BUILD_SHELL)
AC_SUBST(BUILD_TCL)
AC_SUBST(BUILD_BDB2_DYNAMIC)
AC_SUBST(LDAP_LIBS)
AC_SUBST(LDAPD_LIBS)
+AC_SUBST(LDIF_LIBS)
AC_SUBST(SLAPD_LIBS)
AC_SUBST(SLURPD_LIBS)
AC_SUBST(LDBM_LIBS)
AC_SUBST(KRB_LIBS)
AC_SUBST(READLINE_LIBS)
+AC_SUBST(SASL_LIBS)
AC_SUBST(TERMCAP_LIBS)
AC_SUBST(TLS_LIBS)
servers/ldapd/Makefile:build/top.mk:servers/ldapd/Makefile.in:build/srv.mk \
servers/slapd/Makefile:build/top.mk:servers/slapd/Makefile.in:build/srv.mk \
servers/slapd/back-bdb2/Makefile:build/top.mk:servers/slapd/back-bdb2/Makefile.in:build/srv.mk \
-servers/slapd/back-ldap/Makefile:build/top.mk:servers/slapd/back-ldap/Makefile.in:build/srv.mk \
+servers/slapd/back-ldap/Makefile:build/top.mk:servers/slapd/back-ldap/Makefile.in:build/mod.mk \
servers/slapd/back-ldbm/Makefile:build/top.mk:servers/slapd/back-ldbm/Makefile.in:build/srv.mk \
servers/slapd/back-passwd/Makefile:build/top.mk:servers/slapd/back-passwd/Makefile.in:build/srv.mk \
servers/slapd/back-perl/Makefile:build/top.mk:servers/slapd/back-perl/Makefile.in:build/srv.mk \