AC_MSG_ERROR([could not determine version])
fi
+dnl ----------------------------------------------------------------
+dnl Determine host platform
+dnl we try not to use this for much
+AC_CANONICAL_SYSTEM
+
AM_INIT_AUTOMAKE(OpenLDAP,[$OL_VERSION], [no defines])dnl
AC_SUBST(PACKAGE)
AC_SUBST(VERSION)
dnl aclocal.m4 should be built using aclocal from automake 1.4
AC_PREREQ(2.13)dnl Required Autoconf version
-AC_CONFIG_HEADER(include/portable.h include/ldap_features.h)dnl
+AC_CONFIG_HEADER(include/portable.h include/ldap_features.h include/lber_types.h)dnl
dnl
dnl Start Args
dnl SLAPD OPTIONS
AC_ARG_WITH(xxslapdoptions,[SLAPD Options:])
OL_ARG_ENABLE(slapd,[ --enable-slapd enable building slapd], yes)dnl
-OL_ARG_ENABLE(aclgroups,[ --enable-aclgroups enable ACL group support], auto)dnl
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
dnl SLAPD Backend options
OL_ARG_ENABLE(bdb2,[ --enable-bdb2 enable bdb2 backend], no)dnl
+OL_ARG_WITH(bdb2_module,[ --with-bdb2-module module type], static,
+ [static dynamic])
OL_ARG_ENABLE(ldap,[ --enable-ldap enable ldap backend], no)dnl
+OL_ARG_WITH(ldap_module,[ --with-ldap-module module type], static,
+ [static dynamic])
OL_ARG_ENABLE(ldbm,[ --enable-ldbm enable ldbm backend], yes)dnl
+OL_ARG_WITH(ldbm_module,[ --with-ldbm-module module type], static,
+ [static dynamic])
OL_ARG_WITH(ldbm_api,[ --with-ldbm-api use LDBM API], auto,
[auto db2 db mdbm gdbm ndbm manual])
OL_ARG_WITH(ldbm_type,[ --with-ldbm-type use LDBM type], auto,
[auto btree hash])
OL_ARG_ENABLE(passwd,[ --enable-passwd enable passwd backend], no)dnl
+OL_ARG_WITH(passwd_module,[ --with-passwd-module module type], static,
+ [static dynamic])
OL_ARG_ENABLE(perl,[ --enable-perl enable perl backend], no)dnl
+OL_ARG_WITH(perl_module,[ --with-perl-module module type], static,
+ [static dynamic])
OL_ARG_ENABLE(shell,[ --enable-shell enable shell backend], no)dnl
+OL_ARG_WITH(shell_module,[ --with-shell-module module type], static,
+ [static dynamic])
OL_ARG_ENABLE(tcl,[ --enable-tcl enable tcl backend], no)dnl
+OL_ARG_WITH(tcl_module,[ --with-tcl-module module type], static,
+ [static dynamic])
dnl SLURPD OPTIONS
AC_ARG_WITH(xxslurpdoptions,[SLURPD Options:])
OL_ARG_ENABLE(slurpd,[ --enable-slurpd enable building slurpd], auto)dnl
AC_ARG_WITH(xxliboptions,[Library Generation & Linking Options])
-AM_ENABLE_STATIC
-dnl AM_DISABLE_SHARED
-AM_ENABLE_SHARED
+AC_ENABLE_STATIC
+dnl AC_DISABLE_SHARED
+AC_ENABLE_SHARED
dnl General "enable" options
# validate options
if test $ol_enable_tcl = yes ; then
AC_MSG_WARN([slapd disabled, ignoring --enable-tcl argument])
fi
- if test $ol_enable_aclgroups = yes ; then
- AC_MSG_WARN([slapd disabled, ignoring --enable-aclgroups argument])
- fi
if test $ol_enable_modules = yes ; then
AC_MSG_WARN([slapd disabled, ignoring --enable-modules argument])
fi
if test $ol_with_ldbm_type != auto ; then
AC_MSG_WARN([slapd disabled, ignoring --with-ldbm-type argument])
fi
+ if test $ol_with_bdb2_module != static ; then
+ AC_MSG_WARN([slapd disabled, ignoring --with-bdb2-module argument])
+ fi
+ if test $ol_with_ldap_module != static ; then
+ AC_MSG_WARN([slapd disabled, ignoring --with-ldap-module argument])
+ fi
+ if test $ol_with_ldbm_module != static ; then
+ AC_MSG_WARN([slapd disabled, ignoring --with-ldbm-module argument])
+ fi
+ if test $ol_with_passwd_module != static ; then
+ AC_MSG_WARN([slapd disabled, ignoring --with-passwd-module argument])
+ fi
+ if test $ol_with_perl_module != static ; then
+ AC_MSG_WARN([slapd disabled, ignoring --with-perl-module argument])
+ fi
+ if test $ol_with_shell_module != static ; then
+ AC_MSG_WARN([slapd disabled, ignoring --with-shell-module argument])
+ fi
+ if test $ol_with_tcl_module != static ; then
+ AC_MSG_WARN([slapd disabled, ignoring --with-tcl-module argument])
+ fi
if test $ol_enable_slurpd = yes ; then
AC_MSG_ERROR([slurpd requires slapd])
fi
ol_enable_shell=no
ol_enable_tcl=no
- ol_enable_aclgroups=no
ol_enable_modules=no
ol_enable_phonetic=no
ol_enable_rlookups=no
ol_with_ldbm_api=no
ol_with_ldbm_type=no
+ 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
+
ol_enable_slurpd=no
elif test $ol_enable_ldbm = no ; then
AC_MSG_WARN([LDBM disabled, ignoring --with-ldbm-type argument])
fi
+ if test $ol_with_ldbm_module != static ; then
+ AC_MSG_WARN([LDBM disabled, ignoring --with-ldbm-module argument])
+ fi
+
if test $ol_enable_bdb2 = yes ; then
AC_MSG_ERROR([BDB2 requires --enable-ldbm])
fi
ol_with_ldbm_api=no
ol_with_ldbm_type=no
+ ol_with_ldbm_module=static
elif test $ol_enable_bdb2 = yes ; then
dnl SLAPD with BDB2
BUILD_TCL=no
BUILD_THREAD=no
+BUILD_BDB2_DYNAMIC=no
+BUILD_LDAP_DYNAMIC=no
+BUILD_LDBM_DYNAMIC=no
+BUILD_PASSWD_DYNAMIC=no
+BUILD_PERL_DYNAMIC=no
+BUILD_SHELL_DYNAMIC=no
+BUILD_TCL_DYNAMIC=no
+
SLAPD_MODULES_LDFLAGS=
SLAPD_MODULES_CPPFLAGS=
dnl AC_PROG_INSTALL
-dnl The default compiler is cc (NOT gcc)
-dnl (should check to see if 'cc' exists)
-CC=${CC-"cc"}
+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.
+dnl
+dnl If we find cc_r|xlc_r, force pthreads and assume
+dnl pthread_create is in $LIBS (ie: don't bring in
+dnl any additional thread libraries)
+dnl If we do not find cc_r|xlc_r, disable threads
+
+ol_aix_threads=no
+case "$target" in
+*-*-aix*) dnl all AIX is not a good idea.
+ if test -z "$CC" ; then
+ case "$ol_with_threads" in
+ auto | yes | posix) ol_aix_threads=yes ;;
+ esac
+ fi
+;;
+esac
+
+if test $ol_aix_threads = yes ; then
+ if test -z "${CC}" ; then
+ AC_CHECK_PROGS(CC,cc_r xlc_r cc)
+
+ if test "$CC" = cc ; then
+ dnl no CC! don't allow --with-threads
+ if test $ol_with_threads != auto ; then
+ AC_MSG_ERROR([--with-threads requires cc_r (or other suitable compiler) on AIX])
+ else
+ AC_MSG_WARN([disabling threads, no cc_r on AIX])
+ fi
+ ol_with_threads=no
+ fi
+ fi
+
+ if test "${CC}" = "cc_r" -o "${CC}" = "xlc_r" ; then
+ ol_with_threads=posix
+ ol_cv_pthread_create=yes
+ fi
+fi
+
+if test -z "${CC}"; then
+ AC_CHECK_PROGS(CC,cc)
+fi
dnl The default CFLAGS is empty NOT whatever AC_PROG_CC sets.
+dnl (for now, let autoconf sort this out)
dnl CFLAGS=${CFLAGS-""}
-AM_PROG_LIBTOOL
+AC_PROG_LIBTOOL
dnl AC_PROG_MAKE_SET
AC_PROG_AWK
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
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 prototypes.])
+ AC_MSG_ERROR([OpenLDAP requires compiler to support STDC constructs.])
fi
dnl AM_C_PROTOTYPES
dnl Check cc depend flags
-OL_CC_DEPEND
-
+OL_MKDEPEND
+if test "${ol_cv_mkdep}" = no ; then
+ # this will soon become an error
+ AC_MSG_WARN([do not know how to generate dependencies])
+fi
dnl Checks for libraries
fi
AC_CHECK_FUNC(regfree, :, AC_MSG_ERROR([POSIX regex required.]))
+OL_POSIX_REGEX
+if test "$ol_cv_c_posix_regex" = no ; then
+ AC_MSG_ERROR([broken POSIX regex!])
+fi
+
AC_CHECK_FUNC(select, :, AC_MSG_ERROR([select() required.]))
dnl Select arg types
# ISODE tests
ol_link_isode=no
if test $ol_enable_ldapd != no ; then
- AC_MSG_WARN([ldapd support deprecated. Manual intervention required.])
+ AC_MSG_WARN([ldapd is not supported and may suffer from bit rot.])
dnl look for ISODE libraries
AC_CHECK_LIB(xtpp, main, [
ol_link_tls=no
if test $ol_with_tls != no ; then
- AC_CHECK_HEADERS(ssl.h)
+ AC_CHECK_HEADERS(openssl/ssl.h ssl.h)
- if test $ac_cv_header_ssl_h = yes ; then
+ if test $ac_cv_header_openssl_ssl_h = yes -o $ac_cv_header_ssl_h = yes ; then
AC_CHECK_LIB(ssl, SSLeay_add_ssl_algorithms,
[have_ssleay=yes
need_rsaref=no],
[have_ssleay=no],
[-lcrypto])
+ if test $have_ssleay = no ; then
+ AC_CHECK_LIB(ssl, SSL_library_init,
+ [have_ssleay=yes
+ need_rsaref=no], [have_ssleay=no],
+ [-lcrypto])
+ fi
+
if test $have_ssleay = no ; then
AC_CHECK_LIB(ssl, ssl3_accept,
[have_ssleay=yes
dnl pthread_create() with -kthread (FreeBSD)
dnl pthread_create() with -pthread (FreeBSD/Digital Unix)
dnl pthread_create() with -pthreads (?)
+ dnl pthread_create() with -mthreads (AIX)
dnl pthread_create() with -thread (?)
dnl
dnl Check pthread (final) libraries
OL_PTHREAD_TRY_LINK([-kthread], [ol_cv_pthread_kthread])
OL_PTHREAD_TRY_LINK([-pthread], [ol_cv_pthread_pthread])
OL_PTHREAD_TRY_LINK([-pthreads],[ol_cv_pthread_pthreads])
+ OL_PTHREAD_TRY_LINK([-mthreads],[ol_cv_pthread_mthreads])
OL_PTHREAD_TRY_LINK([-thread], [ol_cv_pthread_thread])
OL_PTHREAD_TRY_LINK([-lpthread -lmach -lexc -lc_r],
AC_DEFINE(_THREAD_SAFE,1)
AC_DEFINE(THREADSAFE,1)
AC_DEFINE(_THREADSAFE,1)
+ AC_DEFINE(_SGI_MP_SOURCE,1)
dnl The errno declaration may dependent upon _REENTRANT.
dnl If it does, we must link with thread support.
pwd.h \
resolv.h \
sgtty.h \
+ shadow.h \
stdarg.h \
stddef.h \
string.h \
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
OL_C_UPPER_LOWER
AC_C_CONST
if test $cross_compiling = yes ; then
AC_DEFINE(CROSS_COMPILING, 1, [define if cross compiling])
+
+ AC_DEFINE(LBER_INT_T,long)
+ AC_DEFINE(LBER_TAG_T,long)
+ AC_DEFINE(LBER_SOCKET_T,int)
+
else
AC_C_BIGENDIAN
AC_CHECK_SIZEOF(short)
AC_CHECK_SIZEOF(int)
AC_CHECK_SIZEOF(long)
+
+ if test "$ac_cv_sizeof_int" -lt 4 ; then
+ AC_MSG_WARN([OpenLDAP requires 'int' to be 32 bits or greater.])
+
+ AC_DEFINE(LBER_INT_T,long)
+ AC_DEFINE(LBER_TAG_T,long)
+ AC_DEFINE(LBER_SOCKET_T,int)
+ else
+ AC_DEFINE(LBER_INT_T,int)
+ AC_DEFINE(LBER_TAG_T,long)
+ AC_DEFINE(LBER_SOCKET_T,int)
+ fi
fi
+AC_DEFINE(LBER_LEN_T,long)
+
dnl ----------------------------------------------------------------
dnl Checks for library functions.
AC_FUNC_MEMCMP
AC_CHECK_FUNCS( \
bcopy \
+ closesocket \
endgrent \
endpwent \
flock \
gethostname \
getpass \
getpwuid \
+ getpwnam \
+ getspnam \
gettimeofday \
initgroups \
lockf \
memcpy \
memmove \
mkstemp \
+ read \
recv \
recvfrom \
setpwfile \
sysconf \
waitpid \
wait4 \
+ write \
+ send \
+ sendto \
)
dnl We actually may need to replace more than this.
AC_DEFINE(LDAP_CONNECTIONLESS,1)
fi
-if test "$ol_enable_aclgroups" != no ; then
- AC_DEFINE(SLAPD_ACLGROUPS,1)
-fi
if test "$ol_enable_crypt" != no ; then
AC_DEFINE(SLAPD_CRYPT,1)
fi
AC_DEFINE(SLAPD_BDB2,1)
BUILD_SLAPD=yes
BUILD_BDB2=yes
+ if test "$ol_with_bdb2_module" != static ; then
+ AC_DEFINE(SLAPD_BDB2_DYNAMIC,1)
+ BUILD_BDB2_DYNAMIC=yes
+ fi
fi
if test "$ol_enable_ldap" != no ; then
AC_DEFINE(SLAPD_LDAP,1)
BUILD_SLAPD=yes
BUILD_LDAP=yes
+ if test "$ol_with_ldap_module" != static ; then
+ AC_DEFINE(SLAPD_LDAP_DYNAMIC,1)
+ BUILD_LDAP_DYNAMIC=yes
+ fi
fi
if test "$ol_link_ldbm" != no ; then
AC_DEFINE(SLAPD_LDBM,1)
BUILD_SLAPD=yes
BUILD_LDBM=yes
+ if test "$ol_with_ldbm_module" != static ; then
+ AC_DEFINE(SLAPD_LDBM_DYNAMIC,1)
+ BUILD_LDBM_DYNAMIC=yes
+ fi
fi
if test "$ol_enable_passwd" != no ; then
AC_DEFINE(SLAPD_PASSWD,1)
BUILD_SLAPD=yes
BUILD_PASSWD=yes
+ if test "$ol_with_passwd_module" != static ; then
+ AC_DEFINE(SLAPD_PASSWD_DYNAMIC,1)
+ BUILD_PASSWD_DYNAMIC=yes
+ fi
fi
if test "$ol_link_perl" != no ; then
AC_DEFINE(SLAPD_PERL,1)
BUILD_SLAPD=yes
BUILD_PERL=yes
+ if test "$ol_with_perl_module" != static ; then
+ AC_DEFINE(SLAPD_PERL_DYNAMIC,1)
+ BUILD_PERL_DYNAMIC=yes
+ fi
fi
if test "$ol_enable_shell" != no ; then
AC_DEFINE(SLAPD_SHELL,1)
BUILD_SLAPD=yes
BUILD_SHELL=yes
+ if test "$ol_with_shell_module" != static ; then
+ AC_DEFINE(SLAPD_SHELL_DYNAMIC,1)
+ BUILD_SHELL_DYNAMIC=yes
+ fi
fi
if test "$ol_enable_tcl" != no ; then
AC_DEFINE(SLAPD_TCL,1)
BUILD_SLAPD=yes
BUILD_TCL=yes
+ if test "$ol_with_tcl_module" != static; then
+ AC_DEFINE(SLAPD_TCL_DYNAMIC,1)
+ BUILD_TCL_DYNAMIC=yes
+ fi
fi
if test "$ol_enable_slurpd" != no -a "$ol_link_threads" != no -a \
AC_SUBST(BUILD_PERL)
AC_SUBST(BUILD_SHELL)
AC_SUBST(BUILD_TCL)
+ AC_SUBST(BUILD_BDB2_DYNAMIC)
+ AC_SUBST(BUILD_LDAP_DYNAMIC)
+ AC_SUBST(BUILD_LDBM_DYNAMIC)
+ AC_SUBST(BUILD_PASSWD_DYNAMIC)
+ AC_SUBST(BUILD_PERL_DYNAMIC)
+ AC_SUBST(BUILD_SHELL_DYNAMIC)
+ AC_SUBST(BUILD_TCL_DYNAMIC)
AC_SUBST(BUILD_SLURPD)
AC_SUBST(LDAP_LIBS)