From b23398d91afd7457324016eae0b24c237029896d Mon Sep 17 00:00:00 2001 From: Rich Megginson Date: Mon, 27 Jun 2011 13:01:24 -0600 Subject: [PATCH] look for separate openldap ldif library Newer versions of openldap have moved the ldif api into the main libldap At configure time we need to see if libldap has the api, or if we need to link with a separate libldif --- Makefile.am | 2 +- Makefile.in | 5 +- configure | 120 ++++++++++++++++++++++++++++++++++++++++++++++--------- m4/openldap.m4 | 7 +++ 4 files changed, 111 insertions(+), 23 deletions(-) diff --git a/Makefile.am b/Makefile.am index 39b49c0..4bf1966 100644 --- a/Makefile.am +++ b/Makefile.am @@ -45,7 +45,7 @@ endif NSPR_LINK = @nspr_lib@ -lplc4 -lplds4 -lnspr4 NSS_LINK = @nss_lib@ -lssl3 -lnss3 if OPENLDAP -LDAPSDK_LINK = @openldap_lib@ -lldap_r@ol_libver@ -lldap@ol_libver@ -lldif@ol_libver@ -llber@ol_libver@ +LDAPSDK_LINK = @openldap_lib@ -lldap_r@ol_libver@ -lldap@ol_libver@ @ldap_lib_ldif@ -llber@ol_libver@ ldaplib = openldap ldaplib_defs = -DUSE_OPENLDAP else diff --git a/Makefile.in b/Makefile.in index a117b0e..eb5dac7 100644 --- a/Makefile.in +++ b/Makefile.in @@ -49,7 +49,7 @@ noinst_PROGRAMS = makstrdb$(EXEEXT) @SOLARIS_TRUE@am__append_2 = -lrt @SOLARIS_TRUE@am__append_3 = ldap/servers/slapd/tools/ldclt/opCheck.c subdir = . -DIST_COMMON = $(am__configure_deps) $(dist_man_MANS) \ +DIST_COMMON = README $(am__configure_deps) $(dist_man_MANS) \ $(serverinc_HEADERS) $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in $(srcdir)/config.h.in \ $(top_srcdir)/configure compile config.guess config.sub \ @@ -1191,6 +1191,7 @@ instconfigdir = @instconfigdir@ kerberos_inc = @kerberos_inc@ kerberos_lib = @kerberos_lib@ kerberos_libdir = @kerberos_libdir@ +ldap_lib_ldif = @ldap_lib_ldif@ ldapsdk_bindir = @ldapsdk_bindir@ ldapsdk_inc = @ldapsdk_inc@ ldapsdk_lib = @ldapsdk_lib@ @@ -1305,7 +1306,7 @@ PLUGIN_CPPFLAGS = $(AM_CPPFLAGS) @openldap_inc@ @ldapsdk_inc@ @nss_inc@ @nspr_in NSPR_LINK = @nspr_lib@ -lplc4 -lplds4 -lnspr4 NSS_LINK = @nss_lib@ -lssl3 -lnss3 @OPENLDAP_FALSE@LDAPSDK_LINK = @ldapsdk_lib@ -lssldap60 -lprldap60 -lldap60 -lldif60 -@OPENLDAP_TRUE@LDAPSDK_LINK = @openldap_lib@ -lldap_r@ol_libver@ -lldap@ol_libver@ -lldif@ol_libver@ -llber@ol_libver@ +@OPENLDAP_TRUE@LDAPSDK_LINK = @openldap_lib@ -lldap_r@ol_libver@ -lldap@ol_libver@ @ldap_lib_ldif@ -llber@ol_libver@ @OPENLDAP_FALSE@ldaplib = mozldap @OPENLDAP_TRUE@ldaplib = openldap @OPENLDAP_FALSE@ldaplib_defs = diff --git a/configure b/configure index e4c42c3..0039c6c 100755 --- a/configure +++ b/configure @@ -844,6 +844,7 @@ kerberos_inc KRB5_CONFIG_BIN NETSNMP_CONFIG ICU_CONFIG +ldap_lib_ldif PKG_CONFIG SOLARIS_FALSE SOLARIS_TRUE @@ -5485,13 +5486,13 @@ if test "${lt_cv_nm_interface+set}" = set; then else lt_cv_nm_interface="BSD nm" echo "int some_variable = 0;" > conftest.$ac_ext - (eval echo "\"\$as_me:5488: $ac_compile\"" >&5) + (eval echo "\"\$as_me:5489: $ac_compile\"" >&5) (eval "$ac_compile" 2>conftest.err) cat conftest.err >&5 - (eval echo "\"\$as_me:5491: $NM \\\"conftest.$ac_objext\\\"\"" >&5) + (eval echo "\"\$as_me:5492: $NM \\\"conftest.$ac_objext\\\"\"" >&5) (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out) cat conftest.err >&5 - (eval echo "\"\$as_me:5494: output\"" >&5) + (eval echo "\"\$as_me:5495: output\"" >&5) cat conftest.out >&5 if $GREP 'External.*some_variable' conftest.out > /dev/null; then lt_cv_nm_interface="MS dumpbin" @@ -6697,7 +6698,7 @@ ia64-*-hpux*) ;; *-*-irix6*) # Find out which ABI we are using. - echo '#line 6700 "configure"' > conftest.$ac_ext + echo '#line 6701 "configure"' > conftest.$ac_ext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? @@ -9262,11 +9263,11 @@ else -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:9265: $lt_compile\"" >&5) + (eval echo "\"\$as_me:9266: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 - echo "$as_me:9269: \$? = $ac_status" >&5 + echo "$as_me:9270: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. @@ -9601,11 +9602,11 @@ else -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:9604: $lt_compile\"" >&5) + (eval echo "\"\$as_me:9605: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 - echo "$as_me:9608: \$? = $ac_status" >&5 + echo "$as_me:9609: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. @@ -9706,11 +9707,11 @@ else -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:9709: $lt_compile\"" >&5) + (eval echo "\"\$as_me:9710: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 - echo "$as_me:9713: \$? = $ac_status" >&5 + echo "$as_me:9714: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized @@ -9761,11 +9762,11 @@ else -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:9764: $lt_compile\"" >&5) + (eval echo "\"\$as_me:9765: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 - echo "$as_me:9768: \$? = $ac_status" >&5 + echo "$as_me:9769: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized @@ -12564,7 +12565,7 @@ else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF -#line 12567 "configure" +#line 12568 "configure" #include "confdefs.h" #if HAVE_DLFCN_H @@ -12660,7 +12661,7 @@ else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF -#line 12663 "configure" +#line 12664 "configure" #include "confdefs.h" #if HAVE_DLFCN_H @@ -14680,11 +14681,11 @@ else -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:14683: $lt_compile\"" >&5) + (eval echo "\"\$as_me:14684: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 - echo "$as_me:14687: \$? = $ac_status" >&5 + echo "$as_me:14688: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. @@ -14779,11 +14780,11 @@ else -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:14782: $lt_compile\"" >&5) + (eval echo "\"\$as_me:14783: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 - echo "$as_me:14786: \$? = $ac_status" >&5 + echo "$as_me:14787: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized @@ -14831,11 +14832,11 @@ else -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:14834: $lt_compile\"" >&5) + (eval echo "\"\$as_me:14835: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 - echo "$as_me:14838: \$? = $ac_status" >&5 + echo "$as_me:14839: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized @@ -22104,6 +22105,85 @@ _ACEOF fi + ldap_lib_ldif="" + LDFLAGS="$LDFLAGS" + as_ac_Lib=`$as_echo "ac_cv_lib_ldap$ol_libver''_ldif_open" | $as_tr_sh` +{ $as_echo "$as_me:$LINENO: checking for ldif_open in -lldap$ol_libver" >&5 +$as_echo_n "checking for ldif_open in -lldap$ol_libver... " >&6; } +if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lldap$ol_libver $LIBS" +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char ldif_open (); +int +main () +{ +return ldif_open (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then + eval "$as_ac_Lib=yes" +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + eval "$as_ac_Lib=no" +fi + +rm -rf conftest.dSYM +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +ac_res=`eval 'as_val=${'$as_ac_Lib'} + $as_echo "$as_val"'` + { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } +as_val=`eval 'as_val=${'$as_ac_Lib'} + $as_echo "$as_val"'` + if test "x$as_val" = x""yes; then + ldap_lib_ldif= +else + ldap_lib_ldif=-lldif$ol_libver +fi + + LDFLAGS="$save_ldflags" CPPFLAGS="$save_cppflags" diff --git a/m4/openldap.m4 b/m4/openldap.m4 index 7fdb979..74700d7 100644 --- a/m4/openldap.m4 +++ b/m4/openldap.m4 @@ -142,6 +142,13 @@ if test "$with_openldap" = yes ; then dnl look for ldap_url_parse_ext AC_CHECK_LIB([ldap$ol_libver], [ldap_url_parse_ext], [AC_DEFINE([HAVE_LDAP_URL_PARSE_EXT], [1], [have the function ldap_url_parse_ext])]) + dnl look for separate libldif - newer versions of openldap have moved the + dnl ldif functionality into libldap + ldap_lib_ldif="" + LDFLAGS="$LDFLAGS" + AC_CHECK_LIB([ldap$ol_libver], [ldif_open], [ldap_lib_ldif=], + [ldap_lib_ldif=-lldif$ol_libver]) + AC_SUBST([ldap_lib_ldif]) LDFLAGS="$save_ldflags" CPPFLAGS="$save_cppflags" -- 1.7.1