X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=configure.in;h=349b82b08a08d322ef2ace2fab9292f8d9d5d675;hb=8ebec49d9ddb5c5d69b5a5e383f20125e416180e;hp=46dd667bcdadf73380f5dad0d69ea1527e7c1e9b;hpb=8854adfc49bd43894eb73a6e7b6615344058fed3;p=openldap diff --git a/configure.in b/configure.in index 46dd667bcd..349b82b08a 100644 --- a/configure.in +++ b/configure.in @@ -1,10 +1,11 @@ -dnl Copyright 1998 The OpenLDAP Foundation. All Rights Reserved. +dnl +dnl Copyright 1998,1999 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 dnl Configure.in for OpenLDAP AC_INIT(include/ldap.h)dnl @@ -39,9 +40,9 @@ AC_ARG_WITH(subdir, [ --with-subdir=DIR change default subdirectory used for in 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(libui,[ --enable-libui enable library user interface], 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 @@ -49,7 +50,10 @@ 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], @@ -494,6 +498,37 @@ if test $ol_with_threads = auto -o $ol_with_threads = yes \ LIBS="$save_LIBS" fi + dnl HP-UX 11 check + if test $ol_link_threads = no; then + save_LIBS="$LIBS" + LIBS="$LIBS -lpthread" + AC_MSG_CHECKING([for pthread_create() in HP-UX -lpthread]) + ol_try_pthread_hpux_11=no + AC_CACHE_VAL(ol_cv_pthread_hpux_11,[ + AC_TRY_LINK([ +#include +#include +#ifndef ELFABI_HPUX_REL11 + die horribly +#endif + ], [pthread_create(NULL, NULL, NULL, NULL);], + ol_try_pthread_hpux_11=yes + ol_cv_pthread_hpux_11=yes, + ol_cv_pthread_hpux_11=no)]) + AC_MSG_RESULT(yes) + LIBS="$save_LIBS" + + if test $ol_cv_pthread_hpux_11=yes ; then + ol_link_threads=posix + LTHREAD_LIBS="$LTHREAD_LIBS -lpthread" + if test $ol_try_pthread_hpux_11=yes ; then + dnl Some tests below may fail, cause we aint including + dnl pthread.h. Force appropriate ones to yes + ac_cv_func_pthread_attr_init=yes + fi + fi + fi + if test $ol_link_threads != no ; then AC_DEFINE(HAVE_PTHREADS) @@ -803,24 +838,57 @@ int x = errno; LTHREAD_LIBS="" fi - dnl check for reentrant/threadsafe functions - dnl - dnl note: these should only be used when linking - dnl with $LTHREAD_LIBS - dnl - save_CPPFLAGS="$CPPFLAGS" - save_LIBS="$LIBS" - LIBS="$LTHREAD_LIBS $LIBS" - AC_CHECK_FUNCS( \ - strtok_r \ - gmtime_r \ - gethostbyaddr_r gethostbyname_r \ - feof_unlocked unlocked_feof \ - putc_unlocked unlocked_putc \ - flockfile ftrylockfile \ - ) - CPPFLAGS="$save_CPPFLAGS" - LIBS="$save_LIBS" +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 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 ---------------------------------------------------------------- @@ -934,7 +1002,7 @@ if test $ol_link_ldbm = no -a $ol_enable_ldbm != no ; then ol_enable_ldbm=no fi -if test $ol_enable_wrappers = yes ; then +if test $ol_enable_wrappers != no ; then AC_CHECK_LIB(wrap, main, [have_wrappers=yes], [have_wrappers=no]) @@ -953,6 +1021,19 @@ if test $ol_enable_wrappers = yes ; then 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) @@ -1069,6 +1150,7 @@ 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 @@ -1076,6 +1158,7 @@ AC_STRUCT_TM OL_C_UPPER_LOWER AC_C_CONST +OL_C_VOLATILE if test $cross_compiling = yes ; then AC_DEFINE(CROSS_COMPILING, 1) @@ -1096,7 +1179,7 @@ AC_FUNC_VPRINTF if test $ac_cv_func_vprintf = yes ; then dnl check for vsnprintf - AC_CHECK_FUNCS(vsnprintf) + AC_CHECK_FUNCS(vsnprintf vsprintf) fi AC_FUNC_WAIT3 @@ -1132,6 +1215,27 @@ AC_CHECK_FUNCS( \ 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) @@ -1142,71 +1246,71 @@ OL_SYS_ERRLIST dnl ---------------------------------------------------------------- dnl Sort out defines -if test $ol_enable_debug != no ; then +if test "$ol_enable_debug" != no ; then AC_DEFINE(LDAP_DEBUG,1) fi -dnl if test $ol_enable_syslog != no ; then -dnl AC_DEFINE(LDAP_SYSLOG,1) -dnl fi -if test $ol_enable_libui = yes ; then +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 +if test "$ol_enable_cache" = no ; then AC_DEFINE(LDAP_NOCACHE,1) fi -if test $ol_enable_dns != no ; then +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 +if test "$ol_enable_proctitle" != no ; then AC_DEFINE(LDAP_PROCTITLE,1) fi -if test $ol_enable_referrals != no ; then +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 +if test "$ol_enable_cldap" != no ; then AC_DEFINE(LDAP_CONNECTIONLESS,1) fi -if test $ol_enable_aclgroups != no ; then +if test "$ol_enable_aclgroups" != no ; then AC_DEFINE(SLAPD_ACLGROUPS,1) fi -if test $ol_enable_crypt != no ; then +if test "$ol_enable_crypt" != no ; then AC_DEFINE(SLAPD_CRYPT,1) fi -if test $ol_enable_cleartext != no ; then +if test "$ol_enable_cleartext" != no ; then AC_DEFINE(SLAPD_CLEARTEXT,1) fi -if test $ol_enable_phonetic != no ; then +if test "$ol_enable_phonetic" != no ; then AC_DEFINE(SLAPD_PHONETIC,1) fi -if test $ol_enable_rlookups != no ; then +if test "$ol_enable_rlookups" != no ; then AC_DEFINE(SLAPD_RLOOKUPS,1) fi -if test $ol_link_ldbm != no ; then +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 +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 +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 \ +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 +if test "$ol_link_isode" != no ; then BUILD_LDAPD=yes fi @@ -1256,6 +1360,7 @@ 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 \