diff options
Diffstat (limited to 'acinclude.m4')
-rw-r--r-- | acinclude.m4 | 200 |
1 files changed, 200 insertions, 0 deletions
diff --git a/acinclude.m4 b/acinclude.m4 new file mode 100644 index 0000000000..a9701d3042 --- /dev/null +++ b/acinclude.m4 @@ -0,0 +1,200 @@ +# evolution/acinclude.m4 +# shared configure.in hacks between Evolution and Connector + +# EVO_CHECK_LIB(dispname, pkgname, minvers[, maxvers]) +# Checks if the package with human-readable name @dispname, known +# to gnome-config as @pkgname exists and has an appropriate version. +# The version must be >= @minvers. If @maxvers is equal to @minvers, +# it must be exactly that version. Otherwise, if @maxvers is set, +# the version must be LESS THAN @maxvers (not less than or equal). +AC_DEFUN(EVO_CHECK_LIB, [ + dispname="$1" + pkgname="$2" + minvers="$3" + maxvers="$4" + + AC_MSG_CHECKING(for $dispname) + + if gnome-config --libs $pkgname > /dev/null 2>&1; then + pkgvers=`gnome-config --modversion $pkgname | sed -e 's/^[[^0-9]]*//'` + else + pkgvers=not + fi + AC_MSG_RESULT($pkgvers found) + + pkgvers=`echo $pkgvers | awk -F. '{ print $[]1 * 1000000 + $[]2 * 10000 + $[]3 * 100 + $[]4;}'` + cmpminvers=`echo $minvers | awk -F. '{ print $[]1 * 1000000 + $[]2 * 10000 + $[]3 * 100 + $[]4;}'` + cmpmaxvers=`echo $maxvers | awk -F. '{ print $[]1 * 1000000 + $[]2 * 10000 + $[]3 * 100 + $[]4;}'` + ok=yes + if test "$pkgvers" -lt $cmpminvers; then + ok=no + elif test -n "$maxvers"; then + if test "$pkgvers" -gt $cmpmaxvers; then + ok=no + elif test "$maxvers" != "$minvers" -a "$cmpmaxvers" -eq "$pkgvers"; then + ok=no + fi + fi + if test $ok = no; then + case $maxvers in + "") + dispvers="$minvers or higher" + ;; + $minvers) + dispvers="$minvers (exactly)" + ;; + *) + dispvers="$minvers or higher, but less than $maxvers," + ;; + esac + + AC_MSG_ERROR([ +"" +"You need $dispname $dispvers to build $PACKAGE" +"If you think you already have this installed, consult the README."]) + fi +]) + + +# EVO_PURIFY_SUPPORT +# Add --enable-purify. If the user turns it on, subst PURIFY and set +# the automake conditional ENABLE_PURIFY +AC_DEFUN(EVO_PURIFY_SUPPORT, [ + AC_ARG_ENABLE(purify, + [ --enable-purify=[no/yes] Enable support for building executables with Purify.],,enable_purify=no) + AC_PATH_PROG(PURIFY, purify, impure) + AC_ARG_WITH(purify-options, [ --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" +]) + + +# EVO_TIMEZONE_CHECK +# define HAVE_TIMEZONE if there is an external "timezone" variable, or +# HAVE_TM_GMTOFF if struct tm has a tm_gmtoff member. (Note that +# timezone and tm_gmtoff have opposite signs.) +AC_DEFUN(EVO_TIMEZONE_CHECK, [ + AC_CACHE_CHECK(for timezone variable, ac_cv_var_timezone, + AC_TRY_COMPILE([ + #include <time.h> + ], [ + timezone = 1; + ], ac_cv_var_timezone=yes, ac_cv_var_timezone=no)) + if test $ac_cv_var_timezone = yes; then + AC_DEFINE(HAVE_TIMEZONE) + else + AC_CACHE_CHECK(for tm_gmtoff in struct tm, ac_cv_struct_tm_gmtoff, + AC_TRY_COMPILE([ + #include <time.h> + ], [ + struct tm tm; + tm.tm_gmtoff = 1; + ], ac_cv_struct_tm_gmtoff=yes, ac_cv_struct_tm_gmtoff=no)) + if test $ac_cv_struct_tm_gmtoff = yes; then + AC_DEFINE(HAVE_TM_GMTOFF) + else + AC_ERROR(unable to find a way to determine timezone) + fi + fi +]) + + +# EVO_LDAP_CHECK(default) +# Add --with-openldap and --with-static-ldap options. --with-openldap +# defaults to the given value if not specified. If LDAP support is +# configured, HAVE_LDAP will be defined and the automake conditional +# ENABLE_LDAP will be set. LDAP_CFLAGS and LDAP_LIBS will be set +# appropriately. +AC_DEFUN(EVO_LDAP_CHECK, [ + default="$1" + + AC_ARG_WITH(openldap, [ --with-openldap=[no/yes/PREFIX] Enable LDAP support in evolution]) + AC_ARG_WITH(static-ldap, [ --with-static-ldap=[no/yes] 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) + + case $with_static_ldap in + no|"") + if test -f $with_openldap/lib/libldap.la; then + with_static_ldap=yes + else + with_static_ldap=no + fi + ;; + *) + 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) +])
\ No newline at end of file |