X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;ds=inline;f=configure.in;h=e0594ebed2e7a6079397cba709b64d8768e9b9a9;hb=1363d4bf1add052588cd6a03633a91220aed4aa0;hp=bc414c42a0a41b86d81351b90b92b9132ec5f919;hpb=674c55f78f84cf30be970ffcd7c14eb202e19ccf;p=openldap diff --git a/configure.in b/configure.in index bc414c42a0..e0594ebed2 100644 --- a/configure.in +++ b/configure.in @@ -60,10 +60,15 @@ fi SHTOOL="$ac_cv_shtool" dnl AC_SUBST(SHTOOL)dnl -TB=`$SHTOOL echo -e %B` -TN=`$SHTOOL echo -e %b` +TB="`$SHTOOL echo -e '%B' 2>/dev/null`" +TN="`$SHTOOL echo -e '%b' 2>/dev/null`" -echo "Configuring $TB$OL_STRING$TN ..." +OPENLDAP_CVS="" +if test -d $ac_aux_dir/CVS; then + OPENLDAP_CVS="(from CVS sources) " +fi + +echo "Configuring ${TB}${OL_STRING}${TN} ${OPENLDAP_CVS}..." dnl Determine host platform dnl we try not to use this for much @@ -83,6 +88,9 @@ AC_DEFINE_UNQUOTED(LDAP_VENDOR_VERSION_PATCH,$OL_PATCH,Patch) OPENLDAP_LIBVERSION=$OL_API_LIB AC_SUBST(OPENLDAP_LIBVERSION)dnl +OPENLDAP_RELEASE_DATE="$OL_RELEASE_DATE" +AC_SUBST(OPENLDAP_RELEASE_DATE)dnl + dnl We use autoconf features new to 2.13. dnl aclocal.m4 should be built using aclocal from automake 1.4 dnl libtool 1.4.2 should be installed. @@ -501,7 +509,6 @@ dnl ---------------------------------------------------------------- dnl Initialize vars LDAP_LIBS= LDIF_LIBS= -LDBM_LIB= LDBM_LIBS= LTHREAD_LIBS= LUTIL_LIBS= @@ -620,18 +627,18 @@ if test $ol_aix_threads = yes ; then fi if test -z "${CC}"; then - AC_CHECK_PROGS(CC,cc) -fi + AC_CHECK_PROGS(CC,cc gcc,missing) -dnl The default CFLAGS is empty NOT whatever AC_PROG_CC sets. -dnl (for now, let autoconf sort this out) -dnl CFLAGS=${CFLAGS-""} + if test "${CC}" = "missing" ; then + AC_MSG_ERROR([Unable to locate cc(1) or suitable replacement. Check PATH or set CC.]) + fi +fi if test -z "${AR}"; then AC_CHECK_PROGS(AR,ar gar,missing) if test "${AR}" = "missing" ; then - AC_MSG_ERROR([Unable to locate ar(1). Check PATH or set AR.]) + AC_MSG_ERROR([Unable to locate ar(1) or suitable replacement. Check PATH or set AR.]) fi fi @@ -639,14 +646,15 @@ AC_LIBTOOL_WIN32_DLL AC_LIBTOOL_DLOPEN AC_PROG_LIBTOOL -AC_PROG_AWK +LTSTATIC="" +if test "${OPENLDAP_CVS}"; then + LTSTATIC="-static" +fi +AC_SUBST(LTSTATIC)dnl + OL_PROG_LN_H AC_PROG_LN_S -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) - dnl ---------------------------------------------------------------- dnl Perl ol_link_perl=no @@ -699,7 +707,7 @@ AC_MINGW32 AC_EXEEXT AC_OBJEXT -AC_DEFINE_UNQUOTED( EXEEXT, "${EXEEXT}", [defined to be the EXE extension]) +AC_DEFINE_UNQUOTED(EXEEXT, "${EXEEXT}", [defined to be the EXE extension]) dnl ---------------------------------------------------------------- dnl BeOS requires -lbe -lroot -lnet @@ -727,6 +735,14 @@ AC_CHECK_LIB(s, afopen, [ AC_DEFINE(HAVE_AIX_SECURITY,1,[define if you have AIX security lib]) ]) +dnl ---------------------------------------------------------------- +dnl Check for IBM OS/390 +case "$target" in +*-ibm-openedition) + ac_cv_func_getopt=no + AC_DEFINE(BOTH_STRINGS_H,1,[define to use both and ]) + ;; +esac dnl ---------------------------------------------------------------- dnl Check for module support @@ -818,6 +834,7 @@ AC_CHECK_HEADERS( \ sys/syslog.h \ sys/time.h \ sys/types.h \ + sys/ucred.h \ syslog.h \ termios.h \ unistd.h \ @@ -1018,10 +1035,25 @@ elif test $ol_enable_ipv6 != no ; then # endif ], [ol_cv_inet6_addrstrlen=yes], [ol_cv_inet6_addrstrlen=no])]) - if test $ol_cv_inet6_addrstrlen = yes ; then + + AC_CACHE_CHECK([struct sockaddr_storage],ol_cv_struct_sockaddr_storage,[ + AC_TRY_COMPILE([ +#include +#include +],[ + struct sockaddr_storage ss; +], [ol_cv_struct_sockaddr_storage=yes], + [ol_cv_struct_sockaddr_storage=no])]) + + if test $ol_cv_inet6_addrstrlen = yes \ + -a $ol_cv_struct_sockaddr_storage = yes ; then ol_link_ipv6=yes - elif test $ol_enable_ipv6 = yes ; then + elif test $ol_enable_ipv6 = yes \ + -a $ol_cv_inet6_addrstrlen = no ; then AC_MSG_ERROR([IPv6 support requires INET6_ADDRSTRLEN]) + elif test $ol_enable_ipv6 = yes \ + -a $ol_cv_struct_sockaddr_storage = no ; then + AC_MSG_ERROR([IPv6 support requires struct sockaddr_storage]) fi fi @@ -1217,7 +1249,8 @@ ol_link_tls=no if test $ol_with_tls != no ; then AC_CHECK_HEADERS(openssl/ssl.h ssl.h) - if test $ac_cv_header_openssl_ssl_h = yes -o $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], @@ -1281,47 +1314,6 @@ if test $ol_enable_lmpasswd != no; then AC_DEFINE(SLAPD_LMHASH, 1, [define to support LAN Manager passwords]) fi -dnl ---------------------------------------------------------------- -dnl Tests for reentrant functions necessary to build a -dnl thread_safe -lldap. -AC_CHECK_FUNCS( \ - ctime_r \ - gethostbyname_r gethostbyaddr_r \ -) - -if test "$ac_cv_func_ctime_r" = no ; then - ol_cv_func_ctime_r_nargs=0 -else - OL_FUNC_CTIME_R_NARGS -dnl OL_FUNC_CTIME_R_TYPE -fi - -if test "$ac_cv_func_gethostbyname_r" = yes ; then - OL_FUNC_GETHOSTBYNAME_R_NARGS -else - ol_cv_func_gethostbyname_r_nargs=0 -fi - -if test "$ac_cv_func_gethostbyaddr_r" = yes ; then - OL_FUNC_GETHOSTBYADDR_R_NARGS -else - ol_cv_func_gethostbyaddr_r_nargs=0 -fi - -if test "$ac_cv_func_ctime_r" = yes \ - -a "$ol_cv_func_ctime_r_nargs" -ge 2 \ - -a "$ol_cv_func_ctime_r_nargs" -le 3 \ - -a "$ac_cv_func_gethostbyname_r" = yes \ - -a "$ol_cv_func_gethostbyname_r_nargs" -ge 5 \ - -a "$ol_cv_func_gethostbyname_r_nargs" -le 6 \ - -a "$ac_cv_func_gethostbyaddr_r" = yes \ - -a "$ol_cv_func_gethostbyaddr_r_nargs" -ge 5 \ - -a "$ol_cv_func_gethostbyaddr_r_nargs" -le 6 \ - ; then - - AC_DEFINE(LDAP_API_FEATURE_X_OPENLDAP_REENTRANT,1) -fi - dnl ---------------------------------------------------------------- dnl Threads? ol_link_threads=no @@ -1353,12 +1345,9 @@ if test $ol_with_threads = auto -o $ol_with_threads = yes \ 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,1, - [define if pthreads API compatible with final spec]) - elif test $ol_cv_pthread_version = draft4 ; then - AC_DEFINE(HAVE_PTHREADS_D4,1, - [define if pthreads API compatible with draft4 spec]) + if test $ol_cv_pthread_version != 0 ; then + AC_DEFINE_UNQUOTED(HAVE_PTHREADS,$ol_cv_pthread_version, + [define to pthreads API spec revision]) else AC_MSG_ERROR([unknown pthread version]) fi @@ -1453,9 +1442,6 @@ dnl [ol_cv_pthread_lpthread_lexc]) OL_PTHREAD_TRY([-lpthreads],[ol_cv_pthread_lib_lpthreads]) if test $ol_link_threads != no ; then - AC_DEFINE(HAVE_PTHREADS,1, - [define if you have POSIX Threads]) - LTHREAD_LIBS="$LTHREAD_LIBS $ol_link_pthreads" dnl save flags @@ -1465,11 +1451,12 @@ dnl [ol_cv_pthread_lpthread_lexc]) 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) + dnl check for both, and thr_yield for Solaris + AC_CHECK_FUNCS(sched_yield pthread_yield thr_yield) if test $ac_cv_func_sched_yield = no -a \ - $ac_cv_func_pthread_yield = no ; then + $ac_cv_func_pthread_yield = no -a \ + $ac_cv_func_thr_yield = no ; then dnl Digital UNIX has sched_yield() in -lrt AC_CHECK_LIB(rt, sched_yield, [LTHREAD_LIBS="$LTHREAD_LIBS -lrt" @@ -1478,12 +1465,6 @@ dnl [ol_cv_pthread_lpthread_lexc]) 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() stub in -lposix4 - dnl but we'll use thr_yield instead. - AC_CHECK_FUNCS(thr_yield) - fi if test $ac_cv_func_sched_yield = no -a \ $ac_cv_func_pthread_yield = no -a \ "$ac_cv_func_thr_yield" = no ; then @@ -1604,18 +1585,19 @@ int main(argc, argv) #endif #endif -#if HAVE_PTHREADS_D4 +#if HAVE_PTHREADS < 6 pthread_create(&t, pthread_attr_default, task, NULL); #else pthread_create(&t, NULL, task, NULL); #endif -#if HAVE_SCHED_YIELD - sched_yield(); /* make sure task runs first */ -#else -#ifdef HAVE_PTHREAD_YIELD - pthread_yield(); /* make sure task runs first */ -#endif + /* make sure task runs first */ +#if HAVE_THR_YIELD + thr_yield(); +#elif defined( HAVE_SCHED_YIELD ) + sched_yield(); +#elif defined( HAVE_PTHREAD_YIELD ) + pthread_yield(); #endif exit(2); @@ -1832,8 +1814,7 @@ if test $ol_link_threads != no -a $ol_link_threads != nt ; then fi dnl When in thread environment, use -dnl #if defined( HAVE_REENTRANT_FUNCTIONS ) \ -dnl || defined( HAVE_FUNC_R ) +dnl #if defined( HAVE_REENTRANT_FUNCTIONS ) || defined( HAVE_FUNC_R ) dnl func_r(...); dnl #else dnl # if defined( HAVE_THREADS ) @@ -1850,14 +1831,14 @@ dnl _POSIX_REENTRANT_FUNCTIONS dnl _POSIX_THREAD_SAFE_FUNCTIONS dnl _POSIX_THREADSAFE_FUNCTIONS dnl -dnl and is currently defined in lthread.h +dnl and is currently defined in dnl -dnl HAVE_THREADS is defined by lthread.h iff -UNO_THREADS +dnl HAVE_THREADS is defined by iff -UNO_THREADS dnl -dnl libldap/*.c should only include iff +dnl libldap/*.c should only include iff dnl LDAP_R_COMPILE is defined. ie: dnl #ifdef LDAP_R_COMPILE -dnl # include LDAP_R_COMPILE +dnl # include dnl #endif dnl dnl LDAP_R_COMPILE is defined by libldap_r/Makefile.in @@ -1902,6 +1883,32 @@ if test $ol_link_threads != no ; then AC_DEFINE(LDAP_API_FEATURE_X_OPENLDAP_THREAD_SAFE,1) fi +dnl ---------------------------------------------------------------- +dnl Tests for reentrant functions necessary to build -lldap_r +AC_CHECK_FUNCS( \ + ctime_r \ + gethostbyname_r gethostbyaddr_r \ +) + +if test "$ac_cv_func_ctime_r" = no ; then + ol_cv_func_ctime_r_nargs=0 +else + OL_FUNC_CTIME_R_NARGS +dnl OL_FUNC_CTIME_R_TYPE +fi + +if test "$ac_cv_func_gethostbyname_r" = yes ; then + OL_FUNC_GETHOSTBYNAME_R_NARGS +else + ol_cv_func_gethostbyname_r_nargs=0 +fi + +if test "$ac_cv_func_gethostbyaddr_r" = yes ; then + OL_FUNC_GETHOSTBYADDR_R_NARGS +else + ol_cv_func_gethostbyaddr_r_nargs=0 +fi + dnl ---------------------------------------------------------------- ol_link_ldbm=no @@ -2079,6 +2086,10 @@ dnl ---------------------------------------------------------------- dnl SQL ol_link_sql=no if test $ol_enable_sql != no ; then + AC_CHECK_HEADERS(sql.h sqlext.h,[],[ + AC_MSG_ERROR([could not locate SQL headers]) + ]) + AC_CHECK_LIB(iodbc,SQLDriverConnect,[have_iodbc=yes],[have_iodbc=no]) if test $have_iodbc = yes ; then ol_link_sql="-liodbc" @@ -2192,6 +2203,12 @@ if test $ol_with_cyrus_sasl != no ; then if test $ol_enable_spasswd != no ; then ol_link_spasswd=yes fi + + ac_save_LIBS="$LIBS" + LIBS="$LIBS $ol_link_sasl" + AC_CHECK_FUNC(sasl_version, [AC_DEFINE(HAVE_SASL_VERSION,1, + [define if your SASL library has sasl_version()])]) + LIBS="$ac_save_LIBS" fi else @@ -2272,10 +2289,16 @@ fi dnl ---------------------------------------------------------------- dnl FreeBSD (and others) have crypt(3) in -lcrypt if test $ol_enable_crypt != no ; then + save_LIBS="$LIBS" + LIBS="$TLS_LIBS $LIBS" + AC_CHECK_FUNC(crypt, [have_crypt=yes], [ + LIBS="$save_LIBS" AC_CHECK_LIB(crypt, crypt, [LUTIL_LIBS="$LUTIL_LIBS -lcrypt" have_crypt=yes], [have_crypt=no])]) + LIBS="$save_LIBS" + if test $have_crypt = yes ; then AC_DEFINE(HAVE_CRYPT,1, [define if crypt(3) is available]) else @@ -2397,7 +2420,7 @@ AC_FUNC_VPRINTF if test $ac_cv_func_vprintf = yes ; then dnl check for vsnprintf - AC_CHECK_FUNCS(vsnprintf vsprintf) + AC_CHECK_FUNCS(snprintf vsnprintf) fi AC_CHECK_FUNCS( \ @@ -2408,6 +2431,7 @@ AC_CHECK_FUNCS( \ endpwent \ fcntl \ flock \ + fstat \ getdtablesize \ getgrgid \ gethostname \ @@ -2427,7 +2451,6 @@ AC_CHECK_FUNCS( \ read \ recv \ recvfrom \ - recvmsg \ setpwfile \ setgid \ setegid \ @@ -2452,15 +2475,27 @@ AC_CHECK_FUNCS( \ wait4 \ write \ send \ + sendmsg \ sendto \ ) dnl We actually may need to replace more than this. -AC_REPLACE_FUNCS(getopt) +AC_REPLACE_FUNCS(getopt getpeereid) if test "$ac_cv_func_getopt" != yes; then LIBSRCS="$LIBSRCS getopt.c" fi +if test "$ac_cv_func_getpeereid" != yes; then + LIBSRCS="$LIBSRCS getpeereid.c" +fi +if test "$ac_cv_func_snprintf" != yes -o "$ac_cv_func_vsnprintf" != yes; then + if test "$ac_cv_func_snprintf" != yes; then + AC_DEFINE(snprintf, ber_pvt_snprintf, [define to snprintf routine]) + fi + if test "$ac_cv_func_vsnprintf" != yes; then + AC_DEFINE(vsnprintf, ber_pvt_vsnprintf, [define to snprintf routine]) + fi +fi dnl ---------------------------------------------------------------- # Check Configuration @@ -2577,7 +2612,6 @@ if test "$ol_link_ldbm" != no -a $ol_enable_ldbm != no; then AC_DEFINE(SLAPD_LDBM,1,[define to support LDBM backend]) BUILD_SLAPD=yes BUILD_LDBM=yes - LDBM_LIB="-lldbm" if test "$ol_with_ldbm_module" != static ; then AC_DEFINE(SLAPD_LDBM_DYNAMIC,1, [define to support dynamic LDBM backend]) @@ -2673,6 +2707,9 @@ if test "$ol_link_perl" != no ; then fi if test "$ol_enable_shell" != no ; then + if test "$ol_link_thread" != no ; then + AC_MSG_WARN([Use of --without-threads is recommended with back-shell]) + fi AC_DEFINE(SLAPD_SHELL,1,[define to support SHELL backend]) BUILD_SLAPD=yes BUILD_SHELL=yes @@ -2741,6 +2778,12 @@ else PLAT=UNIX fi +if test -z "$SLAPD_STATIC_BACKENDS"; then + SLAPD_NO_STATIC='#' +else + SLAPD_NO_STATIC= +fi + AC_SUBST(LIBSRCS) AC_SUBST(PLAT) AC_SUBST(BUILD_LIBS_DYNAMIC) @@ -2772,8 +2815,6 @@ AC_SUBST(BUILD_SLAPD) AC_SUBST(BUILD_TCL_DYNAMIC) AC_SUBST(BUILD_SLURPD) -AC_SUBST(LDBM_LIB) - AC_SUBST(LDAP_LIBS) AC_SUBST(LDIF_LIBS) AC_SUBST(SLAPD_LIBS) @@ -2787,6 +2828,7 @@ AC_SUBST(MOD_TCL_LIB) AC_SUBST(SLAPD_MODULES_CPPFLAGS) AC_SUBST(SLAPD_MODULES_LDFLAGS) +AC_SUBST(SLAPD_NO_STATIC) AC_SUBST(SLAPD_STATIC_BACKENDS) AC_SUBST(SLAPD_DYNAMIC_BACKENDS) @@ -2827,9 +2869,6 @@ 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/mail500/Makefile:build/top.mk:clients/mail500/Makefile.in:build/rules.mk \ -clients/ud/Makefile:build/top.mk:clients/ud/Makefile.in:build/rules.mk \ -clients/maildap/Makefile:build/top.mk:clients/maildap/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 \