mirror of
https://git.openldap.org/openldap/openldap.git
synced 2025-01-18 11:05:48 +08:00
a451ccc50b
Add check for to configure.in vsprintf, since HAVE_VSPRINTF is presumably what was intended there. Finally, also protected a bunch of if test expressions with double quotes, as they were producing illegal test commands.
1350 lines
34 KiB
Plaintext
1350 lines
34 KiB
Plaintext
dnl Copyright 1998 The OpenLDAP Foundation. All Rights Reserved.
|
|
dnl
|
|
dnl Redistribution and use in source and binary forms are permitted only
|
|
dnl as authorized by the OpenLDAP Public License. A copy of this
|
|
dnl license is available at http://www.OpenLDAP.org/license.html or
|
|
dnl in file LICENSE in the top-level directory of the distribution.
|
|
dnl ----
|
|
|
|
dnl Configure.in for OpenLDAP
|
|
AC_INIT(include/ldap.h)dnl
|
|
AC_CONFIG_AUX_DIR(build)dnl
|
|
AM_INIT_AUTOMAKE(OpenLDAP,[2.0-devel], [no ac_define])dnl
|
|
|
|
dnl Do not use AutoConf 2.12; it produces a configuration script
|
|
dnl that causes an "internal 2K buffer" error on HPUX when run
|
|
dnl with /bin/sh. Autoconf 2.10 seems to be okay.
|
|
AC_PREREQ(2.10)dnl Required Autoconf version
|
|
|
|
AC_CONFIG_HEADER(include/portable.h include/ldap_features.h)dnl
|
|
|
|
dnl
|
|
dnl Start Args
|
|
AC_MSG_CHECKING(configure arguments)
|
|
AC_PREFIX_DEFAULT(/usr/local)
|
|
|
|
top_builddir=`pwd`
|
|
AC_SUBST(top_builddir)dnl
|
|
|
|
ldap_subdir="openldap"
|
|
|
|
AC_ARG_WITH(subdir, [ --with-subdir=DIR change default subdirectory used for installs], [
|
|
if test "$withval" = "no"; then
|
|
ldap_subdir=""
|
|
elif test "$withval" != "yes"; then
|
|
ldap_subdir="$withval"
|
|
fi
|
|
])dnl
|
|
|
|
AC_SUBST(ldap_subdir)dnl
|
|
|
|
OL_ARG_ENABLE(debug,[ --enable-debug enable debugging], yes)dnl
|
|
ol_enable_syslog=no
|
|
dnl OL_ARG_ENABLE(syslog,[ --enable-syslog enable syslog support], auto)dnl
|
|
OL_ARG_ENABLE(proctitle,[ --enable-proctitle enable proctitle support], yes)dnl
|
|
OL_ARG_ENABLE(cache,[ --enable-cache enable caching], yes)dnl
|
|
OL_ARG_ENABLE(dns,[ --enable-dns enable V2 DNS extension], no)dnl
|
|
OL_ARG_ENABLE(referrals,[ --enable-referrals enable V2 Referrals extension], yes)dnl
|
|
OL_ARG_ENABLE(cldap,[ --enable-cldap enable connectionless ldap], no)dnl
|
|
OL_ARG_ENABLE(x_compile,[ --enable-x-compile enable cross compiling],
|
|
no, [yes no])dnl
|
|
|
|
|
|
dnl General "with" options
|
|
OL_ARG_ENABLE(dmalloc,[ --enable-dmalloc enable debug malloc support], no)dnl
|
|
|
|
OL_ARG_WITH(kerberos,[ --with-kerberos use Kerberos],
|
|
auto, [auto k5 k4 afs yes no])
|
|
OL_ARG_WITH(threads,[ --with-threads use threads],
|
|
auto, [auto posix mach lwp yes no manual] )
|
|
OL_ARG_WITH(yielding_select,[ --with-yielding-select with implicitly yielding select],
|
|
auto, [auto yes no manual] )
|
|
|
|
dnl Server options
|
|
|
|
dnl LDAPD OPTIONS
|
|
AC_ARG_WITH(xxldapdoptions,[LDAPD Options:])
|
|
OL_ARG_ENABLE(ldapd,[ --enable-ldapd enable building ldapd], no)dnl
|
|
|
|
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(wrappers,[ --enable-wrappers enable tcp wrapper support], no)dnl
|
|
OL_ARG_ENABLE(phonetic,[ --enable-phonetic enable phonetic/soundex], no)dnl
|
|
OL_ARG_ENABLE(rlookups,[ --enable-rlookups enable reverse lookups], auto)dnl
|
|
|
|
dnl SLAPD Backend options
|
|
OL_ARG_ENABLE(ldbm,[ --enable-ldbm enable ldbm backend], yes)dnl
|
|
OL_ARG_WITH(ldbm_api,[ --with-ldbm-api use LDBM API], auto,
|
|
[auto db2 db 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_ENABLE(shell,[ --enable-shell enable shell backend], no)dnl
|
|
|
|
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
|
|
|
|
dnl General "enable" options
|
|
# validate options
|
|
if test $ol_enable_referrals = no ; then
|
|
if test $ol_enable_dns = yes ; then
|
|
AC_MSG_WARN([dns disabled, ignoring --enable-dns argument])
|
|
fi
|
|
ol_enable_dns=no
|
|
fi
|
|
|
|
if test $ol_enable_slapd = no ; then
|
|
dnl SLAPD was specificallly disabled
|
|
if test $ol_enable_ldbm = yes ; then
|
|
AC_MSG_WARN([slapd disabled, ignoring --enable_ldbm argument])
|
|
fi
|
|
if test $ol_enable_passwd = yes ; then
|
|
AC_MSG_WARN([slapd disabled, ignoring --enable_passwd argument])
|
|
fi
|
|
if test $ol_enable_shell = yes ; then
|
|
AC_MSG_WARN([slapd disabled, ignoring --enable_shell argument])
|
|
fi
|
|
if test $ol_enable_aclgroups = yes ; then
|
|
AC_MSG_WARN([slapd disabled, ignoring --enable_aclgroups 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_rlookups = yes ; then
|
|
AC_MSG_WARN([slapd disabled, ignoring --enable_rlookups argument])
|
|
fi
|
|
if test $ol_with_ldbm_api != auto ; then
|
|
AC_MSG_WARN([slapd disabled, ignoring --with_ldbm_api argument])
|
|
fi
|
|
if test $ol_with_ldbm_type != auto ; then
|
|
AC_MSG_WARN([slapd disabled, ignoring --with_ldbm_type argument])
|
|
fi
|
|
if test $ol_enable_slurpd = yes ; then
|
|
AC_MSG_ERROR([slurpd requires slapd])
|
|
fi
|
|
|
|
# force settings to no
|
|
ol_enable_ldbm=no
|
|
ol_enable_shell=no
|
|
ol_enable_passwd=no
|
|
ol_enable_aclgroups=no
|
|
ol_enable_wrappers=no
|
|
ol_enable_phonetic=no
|
|
ol_enable_rlookups=no
|
|
ol_with_ldbm_api=no
|
|
ol_with_ldbm_type=no
|
|
ol_enable_slurpd=no
|
|
|
|
elif test $ol_enable_ldbm = no ; then
|
|
dnl SLAPD without LDBM
|
|
|
|
if test $ol_with_ldbm_api != auto ; then
|
|
AC_MSG_WARN([LDBM disabled, ignoring --with_ldbm_api argument])
|
|
fi
|
|
|
|
if test $ol_with_ldbm_type != auto ; then
|
|
AC_MSG_WARN([LDBM disabled, ignoring --with_ldbm_type argument])
|
|
fi
|
|
|
|
if test $ol_enable_passwd = no -a $ol_enable_shell = no ; then
|
|
AC_MSG_ERROR([slapd requires a backend])
|
|
fi
|
|
|
|
ol_with_ldbm_api=no
|
|
ol_with_ldbm_type=no
|
|
|
|
else
|
|
dnl SLAPD with LDBM
|
|
|
|
if test $ol_with_ldbm_api = gdbm -a \
|
|
$ol_with_ldbm_type = btree ; then
|
|
AC_MSG_ERROR([GDBM only supports LDBM type hash])
|
|
fi
|
|
if test $ol_with_ldbm_api = ndbm -a \
|
|
$ol_with_ldbm_type = btree ; then
|
|
AC_MSG_ERROR([NDBM only supports LDBM type hash])
|
|
fi
|
|
fi
|
|
|
|
if test $ol_enable_slurpd = yes ; then
|
|
dnl SLURPD was specifically enabled
|
|
if test $ol_with_threads = no ; then
|
|
AC_MSG_ERROR([slurpd requires threads])
|
|
fi
|
|
fi
|
|
|
|
AC_MSG_RESULT(done)
|
|
|
|
AC_CANONICAL_HOST
|
|
|
|
## Initialize vars
|
|
LDAP_LIBS=
|
|
LDBM_LIBS=
|
|
LTHREAD_LIBS=
|
|
LUTIL_LIBS=
|
|
|
|
LDAPD_LIBS=
|
|
SLAPD_LIBS=
|
|
SLURPD_LIBS=
|
|
|
|
BUILD_LDAPD=no
|
|
BUILD_SLAPD=no
|
|
BUILD_SLURPD=no
|
|
|
|
BUILD_LDBM=no
|
|
BUILD_PASSWD=no
|
|
BUILD_SHELL=no
|
|
BUILD_THREAD=no
|
|
|
|
KRB_LIBS=
|
|
TERMCAP_LIBS=
|
|
|
|
dnl ----------------------------------------------------------------
|
|
dnl Checks for programs
|
|
|
|
AC_PROG_INSTALL
|
|
AM_PROG_LIBTOOL
|
|
dnl AC_PROG_MAKE_SET
|
|
|
|
AC_PATH_PROG(SENDMAIL, sendmail, /usr/lib/sendmail,
|
|
$PATH:/usr/libexec:/usr/lib:/usr/sbin:/usr/etc:/etc)
|
|
AC_PATH_PROG(EDITOR, vi, /usr/ucb/vi, $PATH:/usr/ucb)
|
|
AC_PATH_PROG(FINGER, finger, /usr/ucb/finger, $PATH:/usr/ucb)
|
|
|
|
dnl Checks the compiler and UNIX Variants
|
|
|
|
if test $cross_compiling = yes -a $ol_enable_x_compile = yes; then
|
|
AC_MSG_WARN([cross compiling.... some functionality will be removed.])
|
|
|
|
elif test $cross_compiling = no -a $ol_enable_x_compile = yes; then
|
|
AC_MSG_WARN([programs compiled here do run here...])
|
|
AC_MSG_ERROR([ if not cross compiling, use --disable-x-compile.])
|
|
|
|
elif test $cross_compiling = yes -a $ol_enable_x_compile = no; then
|
|
AC_MSG_WARN([programs compiled here do not run here...])
|
|
AC_MSG_ERROR([ if cross compiling, add --enable-x-compile.])
|
|
fi
|
|
|
|
AC_PROG_CPP
|
|
|
|
AC_AIX
|
|
AC_ISC_POSIX
|
|
AC_MINIX
|
|
|
|
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.])
|
|
fi
|
|
|
|
dnl AM_C_PROTOTYPES
|
|
|
|
dnl Checks for libraries
|
|
|
|
dnl Find socket()
|
|
dnl Likely combinations:
|
|
dnl -lsocket [ -lnsl_s | -lnsl ]
|
|
dnl -linet
|
|
|
|
AC_CHECK_FUNC(socket, [have_socket=yes], [
|
|
dnl
|
|
dnl hopefully we won't include too many libraries
|
|
dnl
|
|
AC_CHECK_LIB(socket, main)
|
|
AC_CHECK_LIB(net, main)
|
|
AC_CHECK_LIB(nsl_s, main)
|
|
AC_CHECK_LIB(nsl, main)
|
|
AC_CHECK_LIB(inet, socket)
|
|
AC_CHECK_LIB(gen, main)
|
|
])
|
|
|
|
dnl Check for resolv
|
|
AC_CHECK_LIB(resolv, res_search)
|
|
|
|
dnl HP-UX requires -lV3
|
|
AC_CHECK_LIB(V3, sigset)
|
|
|
|
# ISODE tests
|
|
ol_link_isode=no
|
|
if test $ol_enable_ldapd != no ; then
|
|
dnl look for ISODE libraries
|
|
AC_CHECK_LIB(xtpp, main, [
|
|
ol_link_isode=yes
|
|
AC_DEFINE(HAVE_XTPP,1)
|
|
LDAPD_LIBS="$LDAPD_LIBS -lxtpp -lxtdsap -lxtisode -losi"
|
|
],:,[-lxtdsap -lxtisode -losi])
|
|
AC_CHECK_LIB(dsap, main, [
|
|
ol_link_isode=yes
|
|
AC_DEFINE(HAVE_DSAP,1)
|
|
LDAPD_LIBS="$LDAPD_LIBS -ldsap"
|
|
],:,[-lisode])
|
|
AC_CHECK_LIB(isode, main, [
|
|
ol_link_isode=yes
|
|
AC_DEFINE(HAVE_ISODE,1)
|
|
LDAPD_LIBS="$LDAPD_LIBS -lisode"
|
|
],:)
|
|
fi
|
|
|
|
if test $ol_link_isode != no; then
|
|
AC_CHECK_LIB(pp, main, [
|
|
AC_DEFINE(HAVE_PP,1)
|
|
LDAPD_LIBS="-lpp $LDAPD_LIBS"
|
|
],:)
|
|
|
|
AC_PATH_PROG(PEPSY, pepsy)
|
|
fi
|
|
|
|
dnl
|
|
dnl check for kerberos
|
|
dnl
|
|
ol_link_kerberos=no
|
|
|
|
if test $ol_with_kerberos = auto -o $ol_with_kerberos = k5 ; then
|
|
AC_CHECK_HEADERS(kerberosIV/krb.h kerberosIV/des.h)
|
|
|
|
if test $ac_cv_header_kerberosIV_krb_h = yes ; then
|
|
AC_CHECK_LIB(krb4, main, [have_k5=yes], [have_k5=no],
|
|
[-lkrb5 -ldes425])
|
|
|
|
if test $have_k5 = yes ; then
|
|
ol_with_kerberos=found
|
|
ol_link_kerberos=yes
|
|
|
|
AC_DEFINE(HAVE_KERBEROS)
|
|
KRB_LIBS="-lkrb4 -lkrb5 -ldes425"
|
|
fi
|
|
fi
|
|
fi
|
|
|
|
if test $ol_with_kerberos = auto -o $ol_with_kerberos = k4 ; then
|
|
AC_CHECK_HEADERS(krb.h des.h)
|
|
|
|
if test $ac_cv_header_krb_h = yes ; then
|
|
AC_CHECK_LIB(krb, main, [have_k4=yes], [have_k4=no], [-ldes])
|
|
|
|
if test $have_k4 = yes ; then
|
|
ol_with_kerberos=found
|
|
ol_link_kerberos=yes
|
|
|
|
AC_DEFINE(HAVE_KERBEROS)
|
|
KRB_LIBS="-lkrb -ldes"
|
|
fi
|
|
fi
|
|
fi
|
|
|
|
dnl if test $ol_link_kerberos = yes ; then
|
|
dnl save_LIBS=$LIBS
|
|
dnl LIBS="$KRB_LIBS $LIBS"
|
|
dnl AC_CHECK_FUNCS(des_string_to_key)
|
|
dnl LIBS=$save_LIBS
|
|
dnl fi
|
|
|
|
ol_link_threads=no
|
|
if test $ol_with_threads = auto -o $ol_with_threads = yes \
|
|
-o $ol_with_threads = posix ; then
|
|
|
|
AC_CHECK_HEADERS(pthread.h sched.h)
|
|
|
|
if test $ac_cv_header_pthread_h = yes ; then
|
|
OL_POSIX_THREAD_VERSION
|
|
|
|
if test $ol_cv_pthread_version = final ; then
|
|
AC_DEFINE(HAVE_PTHREADS_FINAL)
|
|
elif test $ol_cv_pthread_version = draft4 ; then
|
|
AC_DEFINE(HAVE_PTHREADS_D4)
|
|
else
|
|
AC_MSG_ERROR([unknown pthread version])
|
|
fi
|
|
|
|
# consider threads found
|
|
ol_with_threads=found
|
|
|
|
OL_LINUX_THREADS
|
|
|
|
if test $ol_cv_linux_threads = yes ; then
|
|
AC_DEFINE(HAVE_LINUX_THREADS,1)
|
|
fi
|
|
|
|
dnl Now the hard part, how to link
|
|
|
|
dnl Check for pthread support in current $LIBS
|
|
AC_CHECK_FUNC(pthread_create,[ol_link_threads=yes])
|
|
|
|
if test $ol_link_threads = no ; then
|
|
dnl try -pthread
|
|
AC_CACHE_CHECK([for pthread_create with -pthread],
|
|
[ol_cv_pthread_flag], [
|
|
dnl save the flags
|
|
save_LIBS="$LIBS"
|
|
LIBS="-pthread $LIBS"
|
|
AC_TRY_LINK([char pthread();],[
|
|
pthread_create();
|
|
], ol_cv_pthread_flag=yes, ol_cv_pthread_flag=no)
|
|
dnl restore the LIBS
|
|
LIBS="$save_LIBS"
|
|
])
|
|
|
|
if test $ol_cv_pthread_flag = yes ; then
|
|
LTHREAD_LIBS="$LTHREAD_LIBS -pthread"
|
|
ol_link_threads=posix
|
|
fi
|
|
fi
|
|
|
|
if test $ol_link_threads = no ; then
|
|
dnl try -pthreads
|
|
AC_CACHE_CHECK([for pthread_create with -pthreads],
|
|
[ol_cv_pthreads_flag], [
|
|
dnl save the flags
|
|
save_LIBS="$LIBS"
|
|
LIBS="-pthreads $LIBS"
|
|
AC_TRY_LINK([char pthread();],[
|
|
pthread_create();
|
|
], ol_cv_pthreads_flag=yes, ol_cv_pthreads_flag=no)
|
|
dnl restore the LIBS
|
|
LIBS="$save_LIBS"
|
|
])
|
|
|
|
if test $ol_cv_pthreads_flag = yes ; then
|
|
LTHREAD_LIBS="$LTHREAD_LIBS -pthreads"
|
|
ol_link_threads=posix
|
|
fi
|
|
fi
|
|
|
|
if test $ol_link_threads = no ; then
|
|
dnl try -thread
|
|
AC_CACHE_CHECK([for pthread_create with -thread],
|
|
[ol_cv_thread_flag], [
|
|
dnl save the flags
|
|
save_LIBS="$LIBS"
|
|
LIBS="-thread $LIBS"
|
|
AC_TRY_LINK([char pthread();],[
|
|
pthread_create();
|
|
], ol_cv_thread_flag=yes, ol_cv_thread_flag=no)
|
|
dnl restore the LIBS
|
|
LIBS="$save_LIBS"
|
|
])
|
|
|
|
if test $ol_cv_thread_flag = yes ; then
|
|
LTHREAD_LIBS="$LTHREAD_LIBS -thread"
|
|
ol_link_threads=posix
|
|
fi
|
|
fi
|
|
|
|
if test $ol_link_threads = no ; then
|
|
dnl try DEC Threads -lpthread -lexc
|
|
save_LIBS="$LIBS"
|
|
AC_CHECK_LIB(pthread, pthread_join, [
|
|
ol_link_threads=posix
|
|
LTHREAD_LIBS="$LTHREAD_LIBS -lpthread -lexc"
|
|
if test $ol_with_yielding_select = auto ; then
|
|
ol_with_yielding_select=yes
|
|
fi
|
|
],,[-lexc])
|
|
LIBS="$save_LIBS"
|
|
fi
|
|
|
|
if test $ol_link_threads = no ; then
|
|
dnl try DEC Threads -lpthreads -lmach -lexc -lc_r
|
|
save_LIBS="$LIBS"
|
|
AC_CHECK_LIB(pthreads, pthread_join, [
|
|
ol_link_threads=posix
|
|
LTHREAD_LIBS="$LTHREAD_LIBS -lpthreads -lmach -lexc -lc_r"
|
|
if test $ol_with_yielding_select = auto ; then
|
|
ol_with_yielding_select=yes
|
|
fi
|
|
],,[-lmach -lexc -lc_r])
|
|
LIBS="$save_LIBS"
|
|
fi
|
|
|
|
if test $ol_link_threads = no ; then
|
|
dnl try -lpthread
|
|
save_LIBS="$LIBS"
|
|
AC_CHECK_LIB(pthread, pthread_create, [
|
|
ol_link_threads=posix
|
|
LTHREAD_LIBS="$LTHREAD_LIBS -lpthread"])
|
|
LIBS="$save_LIBS"
|
|
fi
|
|
|
|
if test $ol_link_threads = no ; then
|
|
dnl try -lc_r
|
|
save_LIBS="$LIBS"
|
|
AC_CHECK_LIB(c_r, pthread_create, [
|
|
ol_link_threads=posix
|
|
LTHREAD_LIBS="$LTHREAD_LIBS -lc_r"])
|
|
LIBS="$save_LIBS"
|
|
fi
|
|
|
|
if test $ol_link_threads = no ; then
|
|
dnl try -lpthreads
|
|
save_LIBS="$LIBS"
|
|
AC_CHECK_LIB(pthreads, pthread_create, [
|
|
ol_link_threads=posix
|
|
LTHREAD_LIBS="$LTHREAD_LIBS -lpthreads"])
|
|
LIBS="$save_LIBS"
|
|
fi
|
|
|
|
if test $ol_link_threads != no ; then
|
|
AC_DEFINE(HAVE_PTHREADS)
|
|
|
|
dnl save flags
|
|
save_CPPFLAGS="$CPPFLAGS"
|
|
save_LIBS="$LIBS"
|
|
LIBS="$LTHREAD_LIBS $LIBS"
|
|
|
|
dnl All POSIX Thread (final) implementations should have
|
|
dnl sched_yield instead of pthread yield.
|
|
dnl check for both
|
|
AC_CHECK_FUNCS(sched_yield pthread_yield)
|
|
|
|
if test $ac_cv_func_sched_yield = no -a \
|
|
$ac_cv_func_pthread_yield = no ; then
|
|
dnl Digital UNIX has sched_yield() in -lrt
|
|
AC_CHECK_LIB(rt, sched_yield,
|
|
[LTHREAD_LIBS="$LTHREAD_LIBS -lrt"
|
|
AC_DEFINE(HAVE_SCHED_YIELD,1)
|
|
ac_cv_func_sched_yield=yes],
|
|
[ac_cv_func_sched_yield=no])
|
|
fi
|
|
if test $ac_cv_func_sched_yield = no -a \
|
|
$ac_cv_func_pthread_yield = no ; then
|
|
dnl Solaris has sched_yield() in -lposix4
|
|
AC_CHECK_LIB(posix4, sched_yield,
|
|
[LTHREAD_LIBS="$LTHREAD_LIBS -lposix4"
|
|
AC_DEFINE(HAVE_SCHED_YIELD,1)
|
|
ac_cv_func_sched_yield=yes],
|
|
[ac_cv_func_sched_yield=no])
|
|
fi
|
|
if test $ac_cv_func_sched_yield = no -a \
|
|
$ac_cv_func_pthread_yield = no ; then
|
|
AC_MSG_WARN([could not locate sched_yield() or pthread_yield()])
|
|
AC_MSG_ERROR([POSIX Threads are not usable])
|
|
fi
|
|
|
|
dnl Check functions for compatibility
|
|
AC_CHECK_FUNCS(pthread_kill)
|
|
AC_CHECK_FUNCS( \
|
|
pthread_attr_create pthread_attr_init \
|
|
pthread_attr_destroy pthread_attr_delete \
|
|
pthread_attr_setdetachstate pthread_attr_setdetach_np \
|
|
)
|
|
|
|
dnl Check for setconcurreny functions
|
|
AC_CHECK_FUNCS( \
|
|
pthread_setconcurrency \
|
|
thr_setconcurrency \
|
|
)
|
|
|
|
AC_MSG_CHECKING([if pthread_create() works])
|
|
AC_CACHE_VAL(ol_cv_pthread_create_works,[
|
|
AC_TRY_RUN([
|
|
#include <pthread.h>
|
|
#ifndef NULL
|
|
#define NULL (void*)0
|
|
#endif
|
|
|
|
static void *task(p)
|
|
void *p;
|
|
{
|
|
return (void *) (p == NULL);
|
|
}
|
|
|
|
int main(argc, argv)
|
|
int argc;
|
|
char **argv;
|
|
{
|
|
pthread_t t;
|
|
exit(pthread_create(&t, NULL, task, NULL));
|
|
}
|
|
],
|
|
[ol_cv_pthread_create_works=yes],
|
|
[ol_cv_pthread_create_works=no],
|
|
[dnl assume yes
|
|
ol_cv_pthread_create_works=yes])])
|
|
AC_MSG_RESULT($ol_cv_pthread_create_works)
|
|
|
|
if test $ol_cv_pthread_create_works = no ; then
|
|
AC_MSG_ERROR([pthread.h and pthread_create are not compatible])
|
|
fi
|
|
|
|
dnl Check if select causes an yield
|
|
if test $ol_with_yielding_select = auto ; then
|
|
AC_MSG_CHECKING([if select yields when using pthreads])
|
|
AC_CACHE_VAL(ol_cv_pthread_select_yields,[
|
|
AC_TRY_RUN([
|
|
#include <sys/types.h>
|
|
#include <sys/time.h>
|
|
#include <unistd.h>
|
|
#include <pthread.h>
|
|
#ifndef NULL
|
|
#define NULL (void*) 0
|
|
#endif
|
|
|
|
static int fildes[2];
|
|
|
|
static void *task(p)
|
|
void *p;
|
|
{
|
|
int i;
|
|
struct timeval tv;
|
|
|
|
fd_set rfds;
|
|
|
|
tv.tv_sec=10;
|
|
tv.tv_usec=0;
|
|
|
|
FD_ZERO(&rfds);
|
|
FD_SET(fildes[0], &rfds);
|
|
|
|
/* we're not interested in any fds */
|
|
i = select(FD_SETSIZE, &rfds, NULL, NULL, &tv);
|
|
|
|
if(i < 0) {
|
|
perror("select");
|
|
exit(10);
|
|
}
|
|
|
|
exit(0); /* if we exit here, the select blocked the whole process */
|
|
}
|
|
|
|
int main(argc, argv)
|
|
int argc;
|
|
char **argv;
|
|
{
|
|
pthread_t t;
|
|
|
|
/* create a pipe to select */
|
|
if(pipe(&fildes[0])) {
|
|
perror("select");
|
|
exit(1);
|
|
}
|
|
|
|
#ifdef HAVE_PTHREAD_SETCONCURRENCY
|
|
(void) pthread_setconcurrency(2);
|
|
#else
|
|
#ifdef HAVE_THR_SETCONCURRENCY
|
|
/* Set Solaris LWP concurrency to 2 */
|
|
thr_setconcurrency(2);
|
|
#endif
|
|
#endif
|
|
|
|
pthread_create(&t, NULL, task, NULL);
|
|
|
|
#if HAVE_SCHED_YIELD
|
|
sched_yield(); /* make sure task runs first */
|
|
#else
|
|
#ifdef HAVE_PTHREAD_YIELD
|
|
pthread_yield(); /* make sure task runs first */
|
|
#endif
|
|
#endif
|
|
|
|
exit(2);
|
|
}],
|
|
[ol_cv_pthread_select_yields=no],
|
|
[ol_cv_pthread_select_yields=yes], [
|
|
AC_MSG_ERROR([crossing compiling: use --with-yielding_select=yes|no|manual])])])
|
|
AC_MSG_RESULT($ol_cv_pthread_select_yields)
|
|
|
|
if test $ol_cv_pthread_select_yields = yes ; then
|
|
ol_with_yielding_select=yes
|
|
fi
|
|
fi
|
|
|
|
dnl restore flags
|
|
CPPFLAGS="$save_CPPFLAGS"
|
|
LIBS="$save_LIBS"
|
|
else
|
|
AC_MSG_ERROR([could not link with POSIX Threads])
|
|
fi
|
|
fi
|
|
|
|
if test $ol_with_threads = posix ; then
|
|
AC_MSG_ERROR([could not locate POSIX Threads])
|
|
fi
|
|
fi
|
|
|
|
if test $ol_with_threads = auto -o $ol_with_threads = yes \
|
|
-o $ol_with_threads = mach ; then
|
|
|
|
dnl check for Mach CThreads
|
|
AC_CHECK_HEADERS(mach/cthreads.h)
|
|
if test $ac_cv_header_mach_cthreads_h = yes ; then
|
|
ol_with_threads=found
|
|
|
|
dnl check for cthread support in current $LIBS
|
|
AC_CHECK_FUNC(cthread_fork,[ol_link_threads=yes])
|
|
|
|
if test $ol_link_threads = no ; then
|
|
dnl try -all_load
|
|
dnl this test needs work
|
|
AC_CACHE_CHECK([for cthread_fork with -all_load],
|
|
[ol_cv_cthread_all_load], [
|
|
dnl save the flags
|
|
save_LIBS="$LIBS"
|
|
LIBS="-all_load $LIBS"
|
|
AC_TRY_LINK([#include <mach/cthreads.h>],[
|
|
cthread_fork((void *)0, (void *)0);
|
|
], ol_cv_cthread_all_load=yes, ol_cv_cthread_all_load=no)
|
|
dnl restore the LIBS
|
|
LIBS="$save_LIBS"
|
|
])
|
|
|
|
if test $ol_cv_cthread_all_load = yes ; then
|
|
LTHREAD_LIBS="$LTHREAD_LIBS -all_load"
|
|
ol_link_threads=mach
|
|
fi
|
|
fi
|
|
|
|
if test $ol_link_threads != no ; then
|
|
: check for cthread specific functionality here
|
|
AC_DEFINE(HAVE_MACH_CTHREADS,1)
|
|
else
|
|
AC_MSG_ERROR([could not link with Mach CThreads])
|
|
fi
|
|
fi
|
|
|
|
if test $ol_with_threads = mach ; then
|
|
AC_MSG_ERROR([could not locate Mach CThreads])
|
|
fi
|
|
fi
|
|
|
|
if test $ol_with_threads = auto -o $ol_with_threads = yes \
|
|
-o $ol_with_threads = lwp ; then
|
|
|
|
dnl check for SunOS5 LWP
|
|
AC_CHECK_HEADERS(thread.h synch.h)
|
|
if test $ac_cv_header_thread_h = yes -a $ac_cv_header_synch_h = yes ; then
|
|
AC_CHECK_LIB(thread, thr_create, [have_thr=yes], [have_thr=no])
|
|
|
|
if test $have_thr = yes ; then
|
|
AC_DEFINE(HAVE_THR)
|
|
LTHREAD_LIBS="$LTHREAD_LIBS -lthread"
|
|
ol_link_threads=thr
|
|
|
|
if test $ol_with_yielding_select = auto ; then
|
|
ol_with_yielding_select=yes
|
|
fi
|
|
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)
|
|
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
|
|
fi
|
|
|
|
if test $ol_with_yielding_select = yes ; then
|
|
AC_DEFINE(HAVE_YIELDING_SELECT,1)
|
|
fi
|
|
|
|
if test $ol_with_threads = manual ; then
|
|
dnl User thinks he can manually configure threads.
|
|
ol_link_threads=yes
|
|
|
|
AC_MSG_WARN([thread defines and link options must be set manually])
|
|
|
|
AC_CHECK_HEADERS(pthread.h sched.h)
|
|
AC_CHECK_FUNCS(sched_yield pthread_yield)
|
|
OL_LINUX_THREADS
|
|
|
|
AC_CHECK_HEADERS(mach/cthreads.h)
|
|
AC_CHECK_HEADERS(lwp/lwp.h)
|
|
AC_CHECK_HEADERS(thread.h synch.h)
|
|
fi
|
|
|
|
if test $ol_link_threads != no ; then
|
|
dnl needed to get reentrant/threadsafe versions
|
|
dnl
|
|
AC_DEFINE(REENTRANT,1)
|
|
AC_DEFINE(_REENTRANT,1)
|
|
AC_DEFINE(THREAD_SAFE,1)
|
|
AC_DEFINE(_THREAD_SAFE,1)
|
|
AC_DEFINE(THREADSAFE,1)
|
|
AC_DEFINE(_THREADSAFE,1)
|
|
|
|
dnl this might cause the errno symbol to be
|
|
dnl replaced with a function to get a thread specific errno.
|
|
dnl check to see if everything needs to be compiled
|
|
dnl with the thread libraries
|
|
AC_CACHE_CHECK([for thread specific errno],
|
|
[ol_cv_errno_thread_specific], [
|
|
AC_TRY_LINK([
|
|
#include <errno.h>
|
|
], [
|
|
int x = errno;
|
|
],
|
|
[ol_cv_errno_thread_specific=yes],
|
|
[ol_cv_errno_thread_specific=no])
|
|
])
|
|
|
|
if test $ol_cv_errno_thread_specific != yes ; then
|
|
LIBS="$LTHREAD_LIBS $LIBS"
|
|
LTHREAD_LIBS=""
|
|
fi
|
|
|
|
dnl When in thread environment, use
|
|
dnl #if defined( HAVE_REENTRANT_FUNCTIONS ) \
|
|
dnl || defined( HAVE_FUNC_R )
|
|
dnl func_r(...);
|
|
dnl #else
|
|
dnl # if defined( HAVE_THREADS )
|
|
dnl /* lock */
|
|
dnl # endif
|
|
dnl func(...);
|
|
dnl # if defined( HAVE_THREADS )
|
|
dnl /* unlock */
|
|
dnl # endif
|
|
dnl #endif
|
|
dnl
|
|
dnl HAVE_REENTRANT_FUNCTIONS is derived from:
|
|
dnl _POSIX_REENTRANT_FUNCTIONS
|
|
dnl _POSIX_THREAD_SAFE_FUNCTIONS
|
|
dnl _POSIX_THREADSAFE_FUNCTIONS
|
|
dnl
|
|
dnl and is currently defined in lthread.h
|
|
dnl
|
|
dnl HAVE_THREADS is defined by lthread.h iff -UNO_THREADS
|
|
dnl
|
|
dnl libldap/*.c should only include <lthread.h> iff
|
|
dnl LDAP_R_COMPILE is defined. ie:
|
|
dnl #ifdef LDAP_R_COMPILE
|
|
dnl # include LDAP_R_COMPILE
|
|
dnl #endif
|
|
dnl
|
|
dnl LDAP_R_COMIPLE is defined by libldap_r/Makefile.in
|
|
dnl specifically for compiling the threadsafe version of
|
|
dnl the ldap library (-lldap_r).
|
|
dnl
|
|
dnl dnl check for reentrant/threadsafe functions
|
|
dnl dnl
|
|
dnl dnl note: these should only be used when linking
|
|
dnl dnl with $LTHREAD_LIBS
|
|
dnl dnl
|
|
dnl save_CPPFLAGS="$CPPFLAGS"
|
|
dnl save_LIBS="$LIBS"
|
|
dnl LIBS="$LTHREAD_LIBS $LIBS"
|
|
dnl AC_CHECK_FUNCS( \
|
|
dnl strtok_r \
|
|
dnl gmtime_r \
|
|
dnl gethostbyaddr_r gethostbyname_r \
|
|
dnl feof_unlocked unlocked_feof \
|
|
dnl putc_unlocked unlocked_putc \
|
|
dnl flockfile ftrylockfile \
|
|
dnl )
|
|
dnl CPPFLAGS="$save_CPPFLAGS"
|
|
dnl LIBS="$save_LIBS"
|
|
fi
|
|
|
|
dnl ----------------------------------------------------------------
|
|
|
|
if test $ol_link_threads = no ; then
|
|
if test $ol_with_threads = yes ; then
|
|
AC_MSG_ERROR([no suitable thread support])
|
|
fi
|
|
|
|
if test $ol_with_threads = auto ; then
|
|
AC_MSG_WARN([no suitable thread support, disabling threads])
|
|
ol_with_threads=no
|
|
fi
|
|
|
|
AC_DEFINE(NO_THREADS,1)
|
|
LTHREAD_LIBS=""
|
|
fi
|
|
|
|
ol_link_ldbm=no
|
|
if test $ol_with_ldbm_api = auto -o $ol_with_ldbm_api = db2 ; then
|
|
OL_BERKELEY_DB2
|
|
|
|
if test $ol_cv_berkeley_db2 = yes ; then
|
|
ol_link_ldbm=db2
|
|
ol_with_ldbm_api=db2
|
|
|
|
if test $ol_with_ldbm_type = hash ; then
|
|
AC_DEFINE(LDBM_USE_DBHASH,1)
|
|
else
|
|
AC_DEFINE(LDBM_USE_DBBTREE,1)
|
|
fi
|
|
|
|
dnl $ol_cv_lib_db2 should be yes or -ldb
|
|
dnl (it could be no, but that would be an error
|
|
if test $ol_cv_lib_db2 != yes ; then
|
|
LDBM_LIBS="$LDBM_LIBS $ol_cv_lib_db2"
|
|
fi
|
|
fi
|
|
fi
|
|
|
|
if test $ol_with_ldbm_api = auto -o $ol_with_ldbm_api = db ; then
|
|
OL_BERKELEY_DB
|
|
|
|
if test $ol_cv_berkeley_db = yes ; then
|
|
ol_link_ldbm=db
|
|
ol_with_ldbm_api=db
|
|
|
|
if test $ol_with_ldbm_type = hash ; then
|
|
AC_DEFINE(LDBM_USE_DBHASH,1)
|
|
else
|
|
AC_DEFINE(LDBM_USE_DBBTREE,1)
|
|
fi
|
|
|
|
dnl $ol_cv_lib_db should be yes or -ldb
|
|
dnl (it could be no, but that would be an error
|
|
if test $ol_cv_lib_db != yes ; then
|
|
LDBM_LIBS="$LDBM_LIBS $ol_cv_lib_db"
|
|
fi
|
|
fi
|
|
fi
|
|
|
|
if test $ol_with_ldbm_api = manual ; then
|
|
dnl User thinks he can manually configure LDBM api.
|
|
ol_link_ldbm=yes
|
|
|
|
AC_MSG_WARN([LDBM defines and link options must be set manually])
|
|
|
|
AC_CHECK_HEADERS(db.h db_185.h gdbm.h ndbm.h)
|
|
fi
|
|
|
|
if test $ol_link_ldbm = no -a $ol_with_ldbm_type = btree ; then
|
|
AC_MSG_WARN(Could not find LDBM with BTREE support)
|
|
ol_with_ldbm_api=none
|
|
fi
|
|
|
|
if test $ol_with_ldbm_api = auto -o $ol_with_ldbm_api = gdbm ; then
|
|
OL_GDBM
|
|
|
|
if test $ol_cv_gdbm = yes ; then
|
|
ol_link_ldbm=gdbm
|
|
ol_with_ldbm_api=gdbm
|
|
|
|
if test $ol_cv_lib_gdbm != yes ; then
|
|
LDBM_LIBS="$LDBM_LIBS $ol_cv_lib_gdbm"
|
|
fi
|
|
fi
|
|
fi
|
|
|
|
if test $ol_with_ldbm_api = auto ; then
|
|
AC_MSG_WARN([skipping automatic checking for NDBM, must be manually enabled.])
|
|
elif test $ol_with_ldbm_api = ndbm ; then
|
|
OL_NDBM
|
|
|
|
if test $ol_cv_ndbm = yes ; then
|
|
ol_link_ldbm=ndbm
|
|
ol_with_ldbm_api=ndbm
|
|
|
|
if test $ol_cv_lib_ndbm != yes ; then
|
|
LDBM_LIBS="$LDBM_LIBS $ol_cv_lib_ndbm"
|
|
fi
|
|
fi
|
|
fi
|
|
|
|
if test $ol_link_ldbm = no -a $ol_enable_ldbm != no ; then
|
|
AC_MSG_WARN(could not find suitable LDBM backend)
|
|
if test $ol_enable_ldbm = yes ; then
|
|
AC_MSG_ERROR(select appropriate LDBM options or disable)
|
|
fi
|
|
|
|
AC_MSG_WARN(disabling LDBM)
|
|
ol_enable_ldbm=no
|
|
fi
|
|
|
|
if test $ol_enable_wrappers != no ; then
|
|
AC_CHECK_LIB(wrap, main,
|
|
[have_wrappers=yes], [have_wrappers=no])
|
|
|
|
if test $have_wrappers = yes ; then
|
|
AC_DEFINE(HAVE_TCPD)
|
|
SLAPD_LIBS="$SLAPD_LIBS -lwrap"
|
|
else
|
|
AC_MSG_WARN(could not find -lwrap)
|
|
if test $ol_enable_wrappers = yes ; then
|
|
AC_MSG_ERROR(could not find wrappers, select appropriate options or disable)
|
|
fi
|
|
|
|
AC_MSG_WARN(disabling wrappers support)
|
|
ol_enable_wrappers=no
|
|
fi
|
|
|
|
fi
|
|
|
|
if test $ol_enable_syslog != no ; then
|
|
AC_CHECK_FUNC(openlog)
|
|
if test $ac_cv_func_openlog = no -a $ol_enable_syslog = yes; then
|
|
AC_MSG_ERROR(could not find syslog, select appropriate options or disable)
|
|
fi
|
|
ol_enable_syslog=$ac_cv_func_openlog
|
|
fi
|
|
|
|
if test $ol_enable_dmalloc != no ; then
|
|
AC_CHECK_HEADERS(dmalloc.h)
|
|
AC_CHECK_LIB(dmalloc, dmalloc_shutdown)
|
|
fi
|
|
|
|
# ud needs termcap (should insert check here)
|
|
ol_link_termcap=no
|
|
AC_CHECK_HEADERS(termcap.h ncurses.h)
|
|
|
|
if test $ol_link_termcap = no ; then
|
|
AC_CHECK_LIB(termcap, tputs, [have_termcap=yes], [have_termcap=no])
|
|
if test $have_termcap = yes ; then
|
|
AC_DEFINE(HAVE_TERMCAP)
|
|
ol_link_termcap=yes
|
|
TERMCAP_LIBS=-ltermcap
|
|
fi
|
|
fi
|
|
|
|
if test $ol_link_termcap = no ; then
|
|
AC_CHECK_LIB(ncurses, initscr, [have_ncurses=yes], [have_ncurses=no])
|
|
if test $have_ncurses = yes ; then
|
|
AC_DEFINE(HAVE_NCURSES)
|
|
ol_link_termcap=yes
|
|
TERMCAP_LIBS=-lncurses
|
|
fi
|
|
fi
|
|
|
|
if test $ol_link_termcap = no ; then
|
|
AC_DEFINE(NO_TERMCAP,1)
|
|
TERMCAP_LIBS=
|
|
fi
|
|
|
|
# FreeBSD (and others) have crypt(3) in -lcrypt
|
|
if test $ol_enable_crypt != no ; then
|
|
AC_CHECK_FUNC(crypt, [have_crypt=yes], [
|
|
AC_CHECK_LIB(crypt, crypt, [LUTIL_LIBS="$LUTIL_LIBS -lcrypt"
|
|
have_crypt=yes], [have_crypt=no])])
|
|
|
|
if test $have_crypt = yes ; then
|
|
AC_DEFINE(HAVE_CRYPT,1)
|
|
else
|
|
AC_MSG_WARN(could not find crypt)
|
|
if test $ol_enable_crypt = yes ; then
|
|
AC_MSG_ERROR(could not find crypt, select appropriate options or disable)
|
|
fi
|
|
|
|
AC_MSG_WARN(disabling crypt support)
|
|
ol_enable_crypt=no
|
|
fi
|
|
fi
|
|
|
|
# FreeBSD (and others) have setproctitle(3) in -lutil
|
|
if test $ol_enable_proctitle != no ; then
|
|
AC_CHECK_FUNC(setproctitle, [have_setproctitle=yes], [
|
|
AC_CHECK_LIB(util, setproctitle,
|
|
[have_setproctitle=yes
|
|
LUTIL_LIBS="$LUTIL_LIBS -lutil"],
|
|
[have_setproctitle=no
|
|
LIBOBJS="$LIBOBJS setproctitle.o"])])
|
|
|
|
if test $have_setproctitle = yes ; then
|
|
AC_DEFINE(HAVE_SETPROCTITLE,1)
|
|
fi
|
|
fi
|
|
|
|
dnl ----------------------------------------------------------------
|
|
dnl Checks for header files.
|
|
AC_HEADER_STDC
|
|
|
|
if test $ac_cv_header_stdc != yes; then
|
|
AC_MSG_WARN([could not 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)
|
|
fi
|
|
|
|
AC_CHECK_HEADERS( \
|
|
crypt.h \
|
|
errno.h \
|
|
fcntl.h \
|
|
filio.h \
|
|
getopt.h \
|
|
libutil.h \
|
|
limits.h \
|
|
malloc.h \
|
|
memory.h \
|
|
regex.h \
|
|
psap.h \
|
|
pwd.h \
|
|
sgtty.h \
|
|
stdarg.h \
|
|
stddef.h \
|
|
string.h \
|
|
strings.h \
|
|
sys/file.h \
|
|
sys/filio.h \
|
|
sys/errno.h \
|
|
sys/ioctl.h \
|
|
sys/param.h \
|
|
sys/resource.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_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
|
|
AC_STRUCT_ST_BLKSIZE
|
|
AC_HEADER_TIME
|
|
AC_STRUCT_TM
|
|
|
|
OL_C_UPPER_LOWER
|
|
AC_C_CONST
|
|
OL_C_VOLATILE
|
|
|
|
if test $cross_compiling = yes ; then
|
|
AC_DEFINE(CROSS_COMPILING, 1)
|
|
else
|
|
AC_C_BIGENDIAN
|
|
AC_CHECK_SIZEOF(short)
|
|
AC_CHECK_SIZEOF(int)
|
|
AC_CHECK_SIZEOF(long)
|
|
fi
|
|
|
|
dnl ----------------------------------------------------------------
|
|
dnl Checks for library functions.
|
|
AC_FUNC_MEMCMP
|
|
dnl AM_FUNC_MKTIME dnl checks for sys/time.h and unistd.h
|
|
AC_FUNC_STRFTIME
|
|
dnl AM_FUNC_STRTOD
|
|
AC_FUNC_VPRINTF
|
|
|
|
if test $ac_cv_func_vprintf = yes ; then
|
|
dnl check for vsnprintf
|
|
AC_CHECK_FUNCS(vsnprintf vsprintf)
|
|
fi
|
|
|
|
AC_FUNC_WAIT3
|
|
|
|
AC_CHECK_FUNCS( \
|
|
bcopy \
|
|
flock \
|
|
getdtablesize \
|
|
gethostname \
|
|
getpwuid \
|
|
gettimeofday \
|
|
lockf \
|
|
memcpy \
|
|
memmove \
|
|
mkstemp \
|
|
res_search \
|
|
select \
|
|
setpwfile \
|
|
setsid \
|
|
signal \
|
|
sigset \
|
|
snprintf \
|
|
socket \
|
|
strerror \
|
|
strpbrk \
|
|
strrchr \
|
|
strsep \
|
|
strstr \
|
|
strtok \
|
|
strtol \
|
|
strtoul \
|
|
sysconf \
|
|
waitpid \
|
|
)
|
|
|
|
# these functions are required to build a thread_safe -lldap
|
|
AC_CHECK_FUNCS( \
|
|
strtok_r \
|
|
ctime_r \
|
|
gethostbyaddr_r \
|
|
gethostbyname_r \
|
|
)
|
|
|
|
if test $ac_cv_func_strtok_r = yes \
|
|
-a $ac_cv_func_ctime_r = yes \
|
|
-a $ac_cv_func_gethostbyaddr_r = yes \
|
|
-a $ac_cv_func_gethostbyname_r = yes \
|
|
; then
|
|
|
|
AC_DEFINE(LDAP_API_FEATURE_X_OPENLDAP_REENTRANT, 1)
|
|
fi
|
|
|
|
if test $ol_link_threads != no ; then
|
|
AC_DEFINE(LDAP_API_FEATURE_X_OPENLDAP_THREAD_SAFE, 1)
|
|
fi
|
|
|
|
dnl We actually may need to replace more than this.
|
|
AC_REPLACE_FUNCS(getopt strdup tempnam)
|
|
|
|
dnl ----------------------------------------------------------------
|
|
# Check Configuration
|
|
OL_SYS_ERRLIST
|
|
|
|
dnl ----------------------------------------------------------------
|
|
dnl Sort out defines
|
|
|
|
if test "$ol_enable_debug" != no ; then
|
|
AC_DEFINE(LDAP_DEBUG,1)
|
|
fi
|
|
if test "$ol_enable_syslog" = yes ; then
|
|
AC_DEFINE(LDAP_SYSLOG,1)
|
|
fi
|
|
if test "$ol_enable_libui" = yes ; then
|
|
AC_DEFINE(LDAP_LIBUI,1)
|
|
fi
|
|
if test "$ol_enable_cache" = no ; then
|
|
AC_DEFINE(LDAP_NOCACHE,1)
|
|
fi
|
|
if test "$ol_enable_dns" != no ; then
|
|
AC_DEFINE(LDAP_API_FEATURE_X_OPENLDAP_V2_DNS,LDAP_API_VENDOR_VERSION,1)
|
|
fi
|
|
if test "$ol_enable_proctitle" != no ; then
|
|
AC_DEFINE(LDAP_PROCTITLE,1)
|
|
fi
|
|
if test "$ol_enable_referrals" != no ; then
|
|
AC_DEFINE(LDAP_API_FEATURE_X_OPENLDAP_V2_REFERRALS,LDAP_API_VENDOR_VERSION,1)
|
|
fi
|
|
if test "$ol_enable_cldap" != no ; then
|
|
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
|
|
if test "$ol_enable_cleartext" != no ; then
|
|
AC_DEFINE(SLAPD_CLEARTEXT,1)
|
|
fi
|
|
if test "$ol_enable_phonetic" != no ; then
|
|
AC_DEFINE(SLAPD_PHONETIC,1)
|
|
fi
|
|
if test "$ol_enable_rlookups" != no ; then
|
|
AC_DEFINE(SLAPD_RLOOKUPS,1)
|
|
fi
|
|
|
|
if test "$ol_link_ldbm" != no ; then
|
|
AC_DEFINE(SLAPD_LDBM,1)
|
|
BUILD_SLAPD=yes
|
|
BUILD_LDBM=yes
|
|
fi
|
|
|
|
if test "$ol_enable_passwd" != no ; then
|
|
AC_DEFINE(SLAPD_PASSWD,1)
|
|
BUILD_SLAPD=yes
|
|
BUILD_PASSWD=yes
|
|
fi
|
|
|
|
if test "$ol_enable_shell" != no ; then
|
|
AC_DEFINE(SLAPD_SHELL,1)
|
|
BUILD_SLAPD=yes
|
|
BUILD_SHELL=yes
|
|
fi
|
|
|
|
if test "$ol_enable_slurpd" != no -a "$ol_link_threads" != no -a \
|
|
$BUILD_SLAPD = yes ; then
|
|
BUILD_SLURPD=yes
|
|
fi
|
|
|
|
if test "$ol_link_isode" != no ; then
|
|
BUILD_LDAPD=yes
|
|
fi
|
|
|
|
dnl ----------------------------------------------------------------
|
|
|
|
AC_SUBST(BUILD_LDAPD)
|
|
AC_SUBST(BUILD_SLAPD)
|
|
AC_SUBST(BUILD_LDBM)
|
|
AC_SUBST(BUILD_PASSWD)
|
|
AC_SUBST(BUILD_SHELL)
|
|
AC_SUBST(BUILD_SLURPD)
|
|
|
|
|
|
AC_SUBST(LDAP_LIBS)
|
|
AC_SUBST(LDAPD_LIBS)
|
|
AC_SUBST(SLAPD_LIBS)
|
|
AC_SUBST(SLURPD_LIBS)
|
|
AC_SUBST(LDBM_LIBS)
|
|
AC_SUBST(LTHREAD_LIBS)
|
|
AC_SUBST(LUTIL_LIBS)
|
|
|
|
AC_SUBST(KRB_LIBS)
|
|
AC_SUBST(TERMCAP_LIBS)
|
|
|
|
dnl ----------------------------------------------------------------
|
|
dnl final output
|
|
dnl
|
|
|
|
AC_OUTPUT( \
|
|
Makefile:build/top.mk:Makefile.in:build/dir.mk \
|
|
doc/Makefile:build/top.mk:doc/Makefile.in:build/dir.mk \
|
|
doc/man/Makefile:build/top.mk:doc/man/Makefile.in:build/dir.mk \
|
|
doc/man/man1/Makefile:build/top.mk:doc/man/man1/Makefile.in:build/man.mk \
|
|
doc/man/man3/Makefile:build/top.mk:doc/man/man3/Makefile.in:build/man.mk \
|
|
doc/man/man5/Makefile:build/top.mk:doc/man/man5/Makefile.in:build/man.mk \
|
|
doc/man/man8/Makefile:build/top.mk:doc/man/man8/Makefile.in:build/man.mk \
|
|
clients/Makefile:build/top.mk:clients/Makefile.in:build/dir.mk \
|
|
clients/finger/Makefile:build/top.mk:clients/finger/Makefile.in:build/rules.mk \
|
|
clients/fax500/Makefile:build/top.mk:clients/fax500/Makefile.in:build/rules.mk \
|
|
clients/gopher/Makefile:build/top.mk:clients/gopher/Makefile.in:build/rules.mk \
|
|
clients/mail500/Makefile:build/top.mk:clients/mail500/Makefile.in:build/rules.mk \
|
|
clients/rcpt500/Makefile:build/top.mk:clients/rcpt500/Makefile.in:build/rules.mk \
|
|
clients/ud/Makefile:build/top.mk:clients/ud/Makefile.in:build/rules.mk \
|
|
clients/tools/Makefile:build/top.mk:clients/tools/Makefile.in:build/rules.mk \
|
|
include/Makefile:build/top.mk:include/Makefile.in \
|
|
libraries/Makefile:build/top.mk:libraries/Makefile.in:build/dir.mk \
|
|
libraries/libavl/Makefile:build/top.mk:libraries/libavl/Makefile.in:build/lib.mk:build/lib-static.mk \
|
|
libraries/liblber/Makefile:build/top.mk:libraries/liblber/Makefile.in:build/lib.mk:build/lib-shared.mk \
|
|
libraries/libldap/Makefile:build/top.mk:libraries/libldap/Makefile.in:build/lib.mk:build/lib-shared.mk \
|
|
libraries/libldap_r/Makefile:build/top.mk:libraries/libldap_r/Makefile.in:build/lib.mk:build/lib-shared.mk \
|
|
libraries/libldbm/Makefile:build/top.mk:libraries/libldbm/Makefile.in:build/lib.mk:build/lib-static.mk \
|
|
libraries/libldif/Makefile:build/top.mk:libraries/libldif/Makefile.in:build/lib.mk:build/lib-static.mk \
|
|
libraries/liblthread/Makefile:build/top.mk:libraries/liblthread/Makefile.in:build/lib.mk:build/lib-static.mk \
|
|
libraries/liblutil/Makefile:build/top.mk:libraries/liblutil/Makefile.in:build/lib.mk:build/lib-static.mk \
|
|
servers/Makefile:build/top.mk:servers/Makefile.in:build/dir.mk \
|
|
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-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-shell/Makefile:build/top.mk:servers/slapd/back-shell/Makefile.in:build/srv.mk \
|
|
servers/slapd/shell-backends/Makefile:build/top.mk:servers/slapd/shell-backends/Makefile.in:build/srv.mk \
|
|
servers/slapd/tools/Makefile:build/top.mk:servers/slapd/tools/Makefile.in \
|
|
servers/slurpd/Makefile:build/top.mk:servers/slurpd/Makefile.in:build/srv.mk \
|
|
tests/Makefile:build/top.mk:tests/Makefile.in \
|
|
,[
|
|
date > stamp-h
|
|
echo Please \"make depend\" to build dependencies
|
|
])
|