diff options
author | H.Habighorst <tearofadragon@googlemail.com> | 2009-08-11 03:31:21 +0800 |
---|---|---|
committer | Matthew Barnes <mbarnes@redhat.com> | 2009-08-12 06:15:32 +0800 |
commit | c8464aecbb1691947d8fd7a54e9b9adac85271ed (patch) | |
tree | aebf8b10f35a7653380769865b10a754af419e1e /m4 | |
parent | 9362a0f9854790a487481dd487985733af73be2c (diff) | |
download | gsoc2013-evolution-c8464aecbb1691947d8fd7a54e9b9adac85271ed.tar gsoc2013-evolution-c8464aecbb1691947d8fd7a54e9b9adac85271ed.tar.gz gsoc2013-evolution-c8464aecbb1691947d8fd7a54e9b9adac85271ed.tar.bz2 gsoc2013-evolution-c8464aecbb1691947d8fd7a54e9b9adac85271ed.tar.lz gsoc2013-evolution-c8464aecbb1691947d8fd7a54e9b9adac85271ed.tar.xz gsoc2013-evolution-c8464aecbb1691947d8fd7a54e9b9adac85271ed.tar.zst gsoc2013-evolution-c8464aecbb1691947d8fd7a54e9b9adac85271ed.zip |
Bug 591326 – Keep m4 macros in their own folder
Diffstat (limited to 'm4')
-rw-r--r-- | m4/as-compiler-flag.m4 | 61 | ||||
-rw-r--r-- | m4/dolt.m4 | 177 | ||||
-rw-r--r-- | m4/evo_ldap_check.m4 | 92 | ||||
-rw-r--r-- | m4/evo_pilot_link_check.m4 | 117 | ||||
-rw-r--r-- | m4/evo_pthread_check.m4 | 16 | ||||
-rw-r--r-- | m4/evo_purify_support.m4 | 23 | ||||
-rw-r--r-- | m4/evo_sunldap_check.m4 | 94 |
7 files changed, 580 insertions, 0 deletions
diff --git a/m4/as-compiler-flag.m4 b/m4/as-compiler-flag.m4 new file mode 100644 index 0000000000..1c74267a33 --- /dev/null +++ b/m4/as-compiler-flag.m4 @@ -0,0 +1,61 @@ +dnl as-compiler-flag.m4 0.1.0 + +dnl autostars m4 macro for detection of compiler flags + +dnl David Schleef <ds@schleef.org> + +dnl $Id: as-compiler-flag.m4,v 1.1 2005/12/15 23:35:19 ds Exp $ + +dnl AS_COMPILER_FLAG(CFLAGS, ACTION-IF-ACCEPTED, [ACTION-IF-NOT-ACCEPTED]) +dnl Tries to compile with the given CFLAGS. +dnl Runs ACTION-IF-ACCEPTED if the compiler can compile with the flags, +dnl and ACTION-IF-NOT-ACCEPTED otherwise. + +AC_DEFUN([AS_COMPILER_FLAG], +[ + AC_MSG_CHECKING([to see if compiler understands $1]) + + save_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS $1" + + AC_TRY_COMPILE([ ], [], [flag_ok=yes], [flag_ok=no]) + CFLAGS="$save_CFLAGS" + + if test "X$flag_ok" = Xyes ; then + m4_ifvaln([$2],[$2]) + true + else + m4_ifvaln([$3],[$3]) + true + fi + AC_MSG_RESULT([$flag_ok]) +]) + +dnl AS_COMPILER_FLAGS(VAR, FLAGS) +dnl Tries to compile with the given CFLAGS. + +AC_DEFUN([AS_COMPILER_FLAGS], +[ + list=$2 + flags_supported="" + flags_unsupported="" + AC_MSG_CHECKING([for supported compiler flags]) + for each in $list + do + save_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS $each" + AC_TRY_COMPILE([ ], [], [flag_ok=yes], [flag_ok=no]) + CFLAGS="$save_CFLAGS" + + if test "X$flag_ok" = Xyes ; then + flags_supported="$flags_supported $each" + else + flags_unsupported="$flags_unsupported $each" + fi + done + AC_MSG_RESULT([$flags_supported]) + if test "X$flags_unsupported" != X ; then + AC_MSG_WARN([unsupported compiler flags: $flags_unsupported]) + fi + $1="$$1 $flags_supported" +]) diff --git a/m4/dolt.m4 b/m4/dolt.m4 new file mode 100644 index 0000000000..8f94582fb8 --- /dev/null +++ b/m4/dolt.m4 @@ -0,0 +1,177 @@ +dnl dolt, a replacement for libtool +dnl Copyright © 2007-2008 Josh Triplett <josh@freedesktop.org> +dnl Copying and distribution of this file, with or without modification, +dnl are permitted in any medium without royalty provided the copyright +dnl notice and this notice are preserved. +dnl +dnl To use dolt, invoke the DOLT macro immediately after the libtool macros. +dnl Optionally, copy this file into acinclude.m4, to avoid the need to have it +dnl installed when running autoconf on your project. + +AC_DEFUN([DOLT], [ +AC_REQUIRE([AC_CANONICAL_HOST]) +# dolt, a replacement for libtool +# Josh Triplett <josh@freedesktop.org> +AC_PATH_PROG(DOLT_BASH, bash) +AC_MSG_CHECKING([if dolt supports this host]) +dolt_supported=yes +if test x$DOLT_BASH = x; then + dolt_supported=no +fi +if test x$GCC != xyes; then + dolt_supported=no +fi +case $host in +i?86-*-linux*|x86_64-*-linux*|powerpc-*-linux* \ +|amd64-*-freebsd*|i?86-*-freebsd*|ia64-*-freebsd*) + pic_options='-fPIC' + ;; +i?86-apple-darwin*) + pic_options='-fno-common' + ;; +*) + dolt_supported=no + ;; +esac +if test x$dolt_supported = xno ; then + AC_MSG_RESULT([no, falling back to libtool]) + LTCOMPILE='$(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(COMPILE)' + LTCXXCOMPILE='$(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXXCOMPILE)' +else + AC_MSG_RESULT([yes, replacing libtool]) + +dnl Start writing out doltcompile. + cat <<__DOLTCOMPILE__EOF__ >doltcompile +#!$DOLT_BASH +__DOLTCOMPILE__EOF__ + cat <<'__DOLTCOMPILE__EOF__' >>doltcompile +args=("$[]@") +for ((arg=0; arg<${#args@<:@@@:>@}; arg++)) ; do + if test x"${args@<:@$arg@:>@}" = x-o ; then + objarg=$((arg+1)) + break + fi +done +if test x$objarg = x ; then + echo 'Error: no -o on compiler command line' 1>&2 + exit 1 +fi +lo="${args@<:@$objarg@:>@}" +obj="${lo%.lo}" +if test x"$lo" = x"$obj" ; then + echo "Error: libtool object file name \"$lo\" does not end in .lo" 1>&2 + exit 1 +fi +objbase="${obj##*/}" +__DOLTCOMPILE__EOF__ + +dnl Write out shared compilation code. + if test x$enable_shared = xyes; then + cat <<'__DOLTCOMPILE__EOF__' >>doltcompile +libobjdir="${obj%$objbase}.libs" +if test ! -d "$libobjdir" ; then + mkdir_out="$(mkdir "$libobjdir" 2>&1)" + mkdir_ret=$? + if test "$mkdir_ret" -ne 0 && test ! -d "$libobjdir" ; then + echo "$mkdir_out" 1>&2 + exit $mkdir_ret + fi +fi +pic_object="$libobjdir/$objbase.o" +args@<:@$objarg@:>@="$pic_object" +__DOLTCOMPILE__EOF__ + cat <<__DOLTCOMPILE__EOF__ >>doltcompile +"\${args@<:@@@:>@}" $pic_options -DPIC || exit \$? +__DOLTCOMPILE__EOF__ + fi + +dnl Write out static compilation code. +dnl Avoid duplicate compiler output if also building shared objects. + if test x$enable_static = xyes; then + cat <<'__DOLTCOMPILE__EOF__' >>doltcompile +non_pic_object="$obj.o" +args@<:@$objarg@:>@="$non_pic_object" +__DOLTCOMPILE__EOF__ + if test x$enable_shared = xyes; then + cat <<'__DOLTCOMPILE__EOF__' >>doltcompile +"${args@<:@@@:>@}" >/dev/null 2>&1 || exit $? +__DOLTCOMPILE__EOF__ + else + cat <<'__DOLTCOMPILE__EOF__' >>doltcompile +"${args@<:@@@:>@}" || exit $? +__DOLTCOMPILE__EOF__ + fi + fi + +dnl Write out the code to write the .lo file. +dnl The second line of the .lo file must match "^# Generated by .*libtool" + cat <<'__DOLTCOMPILE__EOF__' >>doltcompile +{ +echo "# $lo - a libtool object file" +echo "# Generated by doltcompile, not libtool" +__DOLTCOMPILE__EOF__ + + if test x$enable_shared = xyes; then + cat <<'__DOLTCOMPILE__EOF__' >>doltcompile +echo "pic_object='.libs/${objbase}.o'" +__DOLTCOMPILE__EOF__ + else + cat <<'__DOLTCOMPILE__EOF__' >>doltcompile +echo pic_object=none +__DOLTCOMPILE__EOF__ + fi + + if test x$enable_static = xyes; then + cat <<'__DOLTCOMPILE__EOF__' >>doltcompile +echo "non_pic_object='${objbase}.o'" +__DOLTCOMPILE__EOF__ + else + cat <<'__DOLTCOMPILE__EOF__' >>doltcompile +echo non_pic_object=none +__DOLTCOMPILE__EOF__ + fi + + cat <<'__DOLTCOMPILE__EOF__' >>doltcompile +} > "$lo" +__DOLTCOMPILE__EOF__ + +dnl Done writing out doltcompile; substitute it for libtool compilation. + chmod +x doltcompile + LTCOMPILE='$(top_builddir)/doltcompile $(COMPILE)' + LTCXXCOMPILE='$(top_builddir)/doltcompile $(CXXCOMPILE)' + +dnl automake ignores LTCOMPILE and LTCXXCOMPILE when it has separate CFLAGS for +dnl a target, so write out a libtool wrapper to handle that case. +dnl Note that doltlibtool does not handle inferred tags or option arguments +dnl without '=', because automake does not use them. + cat <<__DOLTLIBTOOL__EOF__ > doltlibtool +#!$DOLT_BASH +__DOLTLIBTOOL__EOF__ + cat <<'__DOLTLIBTOOL__EOF__' >>doltlibtool +top_builddir_slash="${0%%doltlibtool}" +: ${top_builddir_slash:=./} +args=() +modeok=false +tagok=false +for arg in "$[]@"; do + case "$arg" in + --mode=compile) modeok=true ;; + --tag=CC|--tag=CXX) tagok=true ;; + *) args@<:@${#args[@]}@:>@="$arg" ;; + esac +done +if $modeok && $tagok ; then + . ${top_builddir_slash}doltcompile "${args@<:@@@:>@}" +else + exec ${top_builddir_slash}libtool "$[]@" +fi +__DOLTLIBTOOL__EOF__ + +dnl Done writing out doltlibtool; substitute it for libtool. + chmod +x doltlibtool + LIBTOOL='$(top_builddir)/doltlibtool' +fi +AC_SUBST(LTCOMPILE) +AC_SUBST(LTCXXCOMPILE) +# end dolt +]) diff --git a/m4/evo_ldap_check.m4 b/m4/evo_ldap_check.m4 new file mode 100644 index 0000000000..a029ac70bf --- /dev/null +++ b/m4/evo_ldap_check.m4 @@ -0,0 +1,92 @@ +dnl EVO_LDAP_CHECK(default) +dnl Add --with-openldap and --with-static-ldap options. --with-openldap +dnl defaults to the given value if not specified. If LDAP support is +dnl configured, HAVE_LDAP will be defined and the automake conditional +dnl ENABLE_LDAP will be set. LDAP_CFLAGS and LDAP_LIBS will be set +dnl appropriately. +#serial 0.1 +AC_DEFUN([EVO_LDAP_CHECK],[ + default="$1" + AC_ARG_WITH([openldap], + [AS_HELP_STRING([--with-openldap], + [Enable LDAP support in evolution])]) + AC_ARG_WITH([static-ldap], + [AS_HELP_STRING([--with-static-ldap], + [Link LDAP support statically into evolution])]) + AC_CACHE_CHECK([for OpenLDAP], [ac_cv_with_openldap], [ac_cv_with_openldap="${with_openldap:=$default}"]) + case $ac_cv_with_openldap in + no|"") + with_openldap=no + ;; + yes) + with_openldap=/usr + ;; + *) + with_openldap=$ac_cv_with_openldap + LDAP_CFLAGS="-I$ac_cv_with_openldap/include" + LDAP_LDFLAGS="-L$ac_cv_with_openldap/lib" + ;; + esac + + if test "$with_openldap" != no; then + AC_DEFINE(HAVE_LDAP,1,[Define if you have LDAP support]) + + case $with_static_ldap in + no|"") + with_static_ldap=no + ;; + *) + with_static_ldap=yes + ;; + esac + + AC_CACHE_CHECK([if OpenLDAP is version 2.x], [ac_cv_openldap_version2], [ + CPPFLAGS_save="$CPPFLAGS" + CPPFLAGS="$CPPFLAGS $LDAP_CFLAGS" + AC_EGREP_CPP(yes, [ + #include "ldap.h" + #if LDAP_VENDOR_VERSION > 20000 + yes + #endif + ], [ac_cv_openldap_version2=yes], [ac_cv_openldap_version2=no]) + CPPFLAGS="$CPPFLAGS_save" + ]) + if test "$ac_cv_openldap_version2" = no; then + AC_MSG_ERROR([evolution requires OpenLDAP version >= 2]) + fi + + AC_CHECK_LIB(resolv, res_query, [LDAP_LIBS="-lresolv"]) + AC_CHECK_LIB(socket, bind, [LDAP_LIBS="$LDAP_LIBS -lsocket"]) + AC_CHECK_LIB(nsl, gethostbyaddr, [LDAP_LIBS="$LDAP_LIBS -lnsl"]) + AC_CHECK_LIB(lber, ber_get_tag, [ + if test "$with_static_ldap" = "yes"; then + LDAP_LIBS="$with_openldap/lib/liblber.a $LDAP_LIBS" + + # libldap might depend on OpenSSL... We need to pull + # in the dependency libs explicitly here since we're + # not using libtool for the configure test. + if test -f $with_openldap/lib/libldap.la; then + LDAP_LIBS="`. $with_openldap/lib/libldap.la; echo $dependency_libs` $LDAP_LIBS" + fi + else + LDAP_LIBS="-llber $LDAP_LIBS" + fi + AC_CHECK_LIB(ldap, ldap_open, [ + if test $with_static_ldap = "yes"; then + LDAP_LIBS="$with_openldap/lib/libldap.a $LDAP_LIBS" + else + LDAP_LIBS="-lldap $LDAP_LIBS" + fi], + [LDAP_LIBS=""], [$LDAP_LDFLAGS $LDAP_LIBS]) + LDAP_LIBS="$LDAP_LDFLAGS $LDAP_LIBS" + ], [LDAP_LIBS=""], [$LDAP_LDFLAGS $LDAP_LIBS]) + + if test -z "$LDAP_LIBS"; then + AC_MSG_ERROR([could not find OpenLDAP libraries]) + fi + + AC_SUBST(LDAP_CFLAGS) + AC_SUBST(LDAP_LIBS) + fi + AM_CONDITIONAL(ENABLE_LDAP, test "$with_openldap" != "no") +]) diff --git a/m4/evo_pilot_link_check.m4 b/m4/evo_pilot_link_check.m4 new file mode 100644 index 0000000000..5c97fe2a1b --- /dev/null +++ b/m4/evo_pilot_link_check.m4 @@ -0,0 +1,117 @@ +dnl PILOT_LINK_CHECK +dnl Adds --with-pisock and determines the verion of the pisock +#serial 0.1 +AC_SUBST(PISOCK_CFLAGS) +AC_SUBST(PISOCK_LIBS) + +AC_DEFUN([PILOT_LINK_HOOK],[ + AC_ARG_WITH([pisock], + AS_HELP_STRING([--with-pisock=PREFIX], + [Specify prefix for pisock files]), + [ + if test x$withval = xyes; then + dnl Note that an empty true branch is not valid sh syntax. + ifelse([$1], [], :, [$1]) + else + PISOCK_CFLAGS="-I$withval/include" + incdir="$withval/include" + PISOCK_LIBS="-L$withval/lib -lpisock -lpisync" + AC_MSG_CHECKING([for existance of "$withval"/lib/libpisock.so]) + if test -r $withval/lib/libpisock.so; then + AC_MSG_RESULT([yes]) + else + AC_MSG_ERROR([Unable to find libpisock. Try http://www.pilot-link.org.]) + fi + fi + ]) + + if test x$PISOCK_CFLAGS = x; then + AC_CHECK_HEADER(pi-version.h, [incdir="/usr/include"], [ + AC_CHECK_HEADER(libpisock/pi-version.h, [PISOCK_CFLAGS="-I/usr/include/libpisock" + piversion_include="libpisock/pi-version.h" + incdir="/usr/include/libpisock" + ],[ + AC_CHECK_HEADER($prefix/include/pi-version.h, [PISOCK_CFLAGS="-I$prefix/include/libpisock" + piversion_include="$prefix/include/pi-version.h" + if test x$PISOCK_LIBDIR = x; then + incdir="$prefix/include" + PISOCK_LIBS="-L$prefix/lib -lpisock -lpisync" + fi + ], + AC_MSG_ERROR([Unable to find pi-version.h])) + ]) + ]) + fi + + if test "x$PISOCK_LIBS" = "x"; then + AC_CHECK_LIB(pisock, pi_accept, [ PISOCK_LIBS="-lpisock -lpisync"], + [ AC_MSG_ERROR([Unable to find libpisock. Try http://www.pilot-link.org.]) ]) + fi + + AC_ARG_ENABLE([pilotlinktest], + AS_HELP_STRING([--enable-pilotlinktest], + [Test for correct version of pilot-link]), + [testplversion="$enableval"],[testplversion=yes] + ) + + if test x$piversion_include = x; then + piversion_include="pi-version.h" + fi + + pi_major=`cat $incdir/pi-version.h|grep '#define PILOT_LINK_VERSION'|sed 's/#define PILOT_LINK_VERSION \([[0-9]]*\)/\1/'` + pi_minor=`cat $incdir/pi-version.h|grep '#define PILOT_LINK_MAJOR'|sed 's/#define PILOT_LINK_MAJOR \([[0-9]]*\)/\1/'` + pi_micro=`cat $incdir/pi-version.h|grep '#define PILOT_LINK_MINOR'|sed 's/#define PILOT_LINK_MINOR \([[0-9]]*\)/\1/'` + pi_patch=`cat $incdir/pi-version.h|grep '#define PILOT_LINK_PATCH'|sed 's/#define PILOT_LINK_PATCH \"\(.*\)\"/\1/'` + + PILOT_LINK_MAJOR="$pi_major" + PILOT_LINK_MINOR="$pi_minor" + PILOT_LINK_MICRO="$pi_micro" + PILOT_LINK_PATCH="$pi_patch" + PILOT_LINK_VERSION="$pi_major.$pi_minor.$pi_micro$pi_patch" + + if test x$testplversion = xyes; then + AC_MSG_CHECKING([for pilot-link version >= $1]) + pl_ma=`echo $1|sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'` + pl_mi=`echo $1|sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'` + pl_mc=`echo $1|sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'` + CFLAGS_save="$CFLAGS" + CFLAGS="$CFLAGS $PISOCK_CFLAGS" + AC_TRY_RUN( + [ + #include <$piversion_include> + int main(int argc,char *argv[]) { + if (PILOT_LINK_VERSION == $pl_ma) { + if (PILOT_LINK_MAJOR == $pl_mi) { + if (PILOT_LINK_MINOR >= $pl_mc) { + return 0; + } + } else if (PILOT_LINK_MAJOR > $pl_mi) { + return 0; + } + } else if (PILOT_LINK_VERSION > $pl_ma) { + return 0; + } + return 1; + } + ], + [AC_MSG_RESULT([yes (found $PILOT_LINK_VERSION)])], + [AC_MSG_ERROR([pilot-link >= $1 required])], + [AC_MSG_WARN([No action taken for crosscompile])] + ) + CFLAGS="$CFLAGS_save" + fi + + unset piversion_include + unset pi_verion + unset pi_major + unset pi_minor + unset pi_patch + unset incdir + unset pl_mi + unset pl_ma + unset pl_ve +]) + +AC_DEFUN([PILOT_LINK_CHECK],[ + PILOT_LINK_HOOK($1,[],nofailure) +]) diff --git a/m4/evo_pthread_check.m4 b/m4/evo_pthread_check.m4 new file mode 100644 index 0000000000..5a96fc53e2 --- /dev/null +++ b/m4/evo_pthread_check.m4 @@ -0,0 +1,16 @@ +dnl EVO_PTHREAD_CHECK +#serial 0.1 +AC_DEFUN([EVO_PTHREAD_CHECK],[ + PTHREAD_LIB="" + AC_CHECK_LIB(pthread, pthread_create, [PTHREAD_LIB="-lpthread"], + [AC_CHECK_LIB(pthreads, pthread_create, [PTHREAD_LIB="-lpthreads"], + [AC_CHECK_LIB(c_r, pthread_create, [PTHREAD_LIB="-lc_r"], + [AC_CHECK_LIB(pthread, __pthread_attr_init_system, [PTHREAD_LIB="-lpthread"], + [AC_CHECK_FUNC(pthread_create)] + )] + )] + )] + ) + AC_SUBST(PTHREAD_LIB) + AC_PROVIDE([EVO_PTHREAD_CHECK]) +]) diff --git a/m4/evo_purify_support.m4 b/m4/evo_purify_support.m4 new file mode 100644 index 0000000000..b64f2ebc04 --- /dev/null +++ b/m4/evo_purify_support.m4 @@ -0,0 +1,23 @@ +dnl EVO_PURIFY_SUPPORT +dnl Add --enable-purify. If the user turns it on, subst PURIFY and set +dnl the automake conditional ENABLE_PURIFY +#serial 0.1 +AC_DEFUN([EVO_PURIFY_SUPPORT], + [AC_ARG_ENABLE([purify], + [AS_HELP_STRING([--enable-purify], + [Enable support for building executables with Purify.])], + [enable_purify=yes],[enable_purify=no]) + AC_PATH_PROG(PURIFY, purify, impure) + AC_ARG_WITH([purify-options], + [AS_HELP_STRING([--with-purify-options@<:@=OPTIONS@:>@], + [Options passed to the purify command line (defaults to PURIFYOPTIONS variable).])]) + if test "x$with_purify_options" = "xno"; then + with_purify_options="-always-use-cache-dir=yes -cache-dir=/gnome/lib/purify" + fi + if test "x$PURIFYOPTIONS" = "x"; then + PURIFYOPTIONS=$with_purify_options + fi + AC_SUBST(PURIFY) + AM_CONDITIONAL(ENABLE_PURIFY, [test x$enable_purify = xyes -a x$PURIFY != ximpure]) + PURIFY="$PURIFY $PURIFYOPTIONS" +]) diff --git a/m4/evo_sunldap_check.m4 b/m4/evo_sunldap_check.m4 new file mode 100644 index 0000000000..bd85534ed8 --- /dev/null +++ b/m4/evo_sunldap_check.m4 @@ -0,0 +1,94 @@ +dnl EVO_SUNLDAP_CHECK +dnl Add --with-sunldap and --with-static-sunldap options. --with-sunldap +dnl defaults to the given value if not specified. If LDAP support is +dnl configured, HAVE_LDAP will be defined and the automake conditional +dnl ENABLE_LDAP will be set. LDAP_CFLAGS and LDAP_LIBS will be set +dnl appropriately, and --with-sunldap and --with-openldap is mutually exclusive. +#serial 0.1 +AC_DEFUN([EVO_SUNLDAP_CHECK], [ + default="$1" + + AC_ARG_WITH([sunldap], + [AS_HELP_STRING([--with-sunldap], + [Enable SunLDAP support in evolution])]) + AC_ARG_WITH([static-sunldap], + [AS_HELP_STRING([--with-static-sunldap], + [Link SunLDAP support statically into evolution])]) + AC_CACHE_CHECK([for SunLDAP],[ac_cv_with_sunldap],[ac_cv_with_sunldap="${with_sunldap:=$default}"]) + case $ac_cv_with_sunldap in + no|"") + with_sunldap=no + ;; + yes) + with_sunldap=/usr + ;; + *) + with_sunldap=$ac_cv_with_sunldap + LDAP_CFLAGS="-I$ac_cv_with_sunldap/include" + LDAP_LDFLAGS="-L$ac_cv_with_sunldap/lib" + ;; + esac + + if test "$with_sunldap" != no; then + AC_DEFINE(HAVE_LDAP,1,[Define if you have LDAP support]) + AC_DEFINE(SUNLDAP, 1, [Define if you use SunLDAP]) + + case $with_static_sunldap in + no|"") + with_static_sunldap=no + ;; + *) + with_static_sunldap=yes + ;; + esac + + AC_CACHE_CHECK([if SunLDAP is version 2.x], [ac_cv_sunldap_version2], [ + CPPFLAGS_save="$CPPFLAGS" + CPPFLAGS="$CPPFLAGS $LDAP_CFLAGS" + AC_EGREP_CPP(yes, [ + #include "ldap.h" + #if LDAP_VENDOR_VERSION >= 500 + yes + #endif + ],[ac_cv_sunldap_version2=yes],[ac_cv_sunldap_version2=no]) + CPPFLAGS="$CPPFLAGS_save" + ]) + if test "$ac_cv_sunldap_version2" = no; then + AC_MSG_ERROR([evolution requires SunLDAP version >= 2]) + fi + + AC_CHECK_LIB(resolv, res_query, [LDAP_LIBS="-lresolv"]) + AC_CHECK_LIB(socket, bind, [LDAP_LIBS="$LDAP_LIBS -lsocket"]) + AC_CHECK_LIB(nsl, gethostbyaddr, [LDAP_LIBS="$LDAP_LIBS -lnsl"]) + AC_CHECK_LIB(ldap, ldap_open, [ + if test $with_static_sunldap = "yes"; then + LDAP_LIBS="$with_sunldap/lib/libldap.a $LDAP_LIBS" + else + LDAP_LIBS="-lldap $LDAP_LIBS" + fi + if test `uname -s` != "SunOS" ; then + AC_CHECK_LIB(lber, ber_get_tag, [ + if test "$with_static_sunldap" = "yes"; then + LDAP_LIBS="$with_sunldap/lib/liblber.a $LDAP_LIBS" + # libldap might depend on OpenSSL... We need to pull + # in the dependency libs explicitly here since we're + # not using libtool for the configure test. + if test -f $with_sunldap/lib/libldap.la; then + LDAP_LIBS="`. $with_sunldap/lib/libldap.la; echo $dependency_libs` $LDAP_LIBS" + fi + else + LDAP_LIBS="-llber $LDAP_LIBS" + fi], [LDAP_LIBS=""], [$LDAP_LDFLAGS $LDAP_LIBS]) + fi + LDAP_LIBS="$LDAP_LDFLAGS $LDAP_LIBS" + ], [LDAP_LIBS=""], [$LDAP_LDFLAGS $LDAP_LIBS]) + + if test -z "$LDAP_LIBS"; then + AC_MSG_ERROR([could not find SunLDAP libraries]) + fi + + AC_SUBST(LDAP_CFLAGS) + AC_SUBST(LDAP_LIBS) + fi + AM_CONDITIONAL(ENABLE_LDAP, test "$with_sunldap" != "no") +]) |