9a28fb6c63
--disable-ssl-certificate-check Disable SSL certificate checking in all server *templates*. Users can still choose to enable or disable it in their configuration. This is necessary on platforms where the transport library has problems verifying the server's certificate (libsoup + Google, http://bugzilla.moblin.org/show_bug.cgi?id=4551) This currently only affects the Google template. Note that it is *enabled* by default. The rationale for that is that enabling it leads to obvious problems when libsoup fails, but disabling it probably goes unnoticed.
465 lines
20 KiB
Text
465 lines
20 KiB
Text
dnl -*- mode: Autoconf; -*-
|
|
dnl Invoke autogen.sh to produce a configure script.
|
|
|
|
AC_INIT([syncevolution], [0.9+0.9.1beta1])
|
|
AM_INIT_AUTOMAKE([tar-ustar])
|
|
AC_CONFIG_MACRO_DIR([m4])
|
|
define([SYNTHESISSRC_REPO], [])
|
|
dnl Specify git revisions/branches without prefix, i.e., without 'origin'.
|
|
dnl We'll sort that out below.
|
|
define([SYNTHESISSRC_REVISION], [syncevolution-0.9])
|
|
AM_CONFIG_HEADER(config.h)
|
|
AC_LIBTOOL_DLOPEN
|
|
|
|
dnl default device type (see AC_DEFINE below)
|
|
DEVICE_TYPE=desktop
|
|
|
|
AC_ARG_WITH(synthesis-src,
|
|
AS_HELP_STRING([--with-synthesis-src=<base directory|svn URL|git URL>],
|
|
[Specifies location of the Synthesis root directory.
|
|
Use this when the Synthesis library is to
|
|
be compiled as part of the SyncEvolution compilation. In release
|
|
versions of SyncEvolution, a copy of the Synthesis code is bundled
|
|
under 'src/synthesis' and compiled unless something else is
|
|
specified. --with-synthesis-src can be given a path to sources
|
|
checked out already, a Subversion repository URL or a git repository
|
|
URL. When given a repository URL, then the configure script
|
|
will checkout the sources into 'src/synthesis-workdir' or
|
|
update that working copy if the directory already exists.
|
|
Default: bundled source in src/synthesis (in released SyncEvolution sources),
|
|
SYNTHESISSRC_REPO otherwise.]),
|
|
[SYNTHESISSRC="$withval"], [SYNTHESISSRC="$SYNTHESISSRC_DEF"; REVISION="SYNTHESISSRC_REVISION"])
|
|
|
|
AC_ARG_WITH(synthesis-username,
|
|
AS_HELP_STRING([--with-synthesis-username=<svn username>],
|
|
[username to use when checking out --with-synthesis-src sources from Subversion, default 'guest']),
|
|
[USERNAME="$withval"], [USERNAME="guest"])
|
|
|
|
AC_ARG_WITH(synthesis-revision,
|
|
AS_HELP_STRING([--with-synthesis-revision=<git tag/branch/hash or Subversion revision>],
|
|
[Identifies which source revision to use from --with-synthesis-src repository, empty string stands for latest. Default for default --synthesis-src: SYNTHESISSRC_REVISION]),
|
|
[REVISION="$withval"])
|
|
|
|
AC_ARG_ENABLE(shared,
|
|
AS_HELP_STRING([--enable-shared],
|
|
[build backends as dynamically loadable modules]),
|
|
enable_shared="$enableval", enable_shared="no")
|
|
|
|
AC_ARG_ENABLE(static,
|
|
AS_HELP_STRING([--enable-static],
|
|
[build backends also as static libraries]),
|
|
enable_static="$enableval", enable_static="no")
|
|
|
|
AC_ARG_ENABLE(unit-tests,
|
|
AS_HELP_STRING([--enable-unit-tests],
|
|
[enables tests embedded in the source code of the library (changes content of executable)]),
|
|
enable_unit_tests="$enableval", enable_unit_tests="no")
|
|
AC_ARG_ENABLE(integration-tests,
|
|
AS_HELP_STRING([--enable-integration-tests],
|
|
[enables tests outside of the library (can be used together with normal builds of the library)]),
|
|
enable_integration_tests="$enableval", enable_integration_tests="no")
|
|
|
|
AC_ARG_ENABLE(static-cxx,
|
|
AS_HELP_STRING([--enable-static-cxx],
|
|
[build executables which contain libstdc++ instead of requiring suitable libstdc++.so to run]),
|
|
enable_static_cxx="$enableval", enable_static_cxx="no")
|
|
|
|
AC_ARG_ENABLE(evolution-compatibility,
|
|
AS_HELP_STRING([--enable-evolution-compatibility],
|
|
[build executables which only call Evolution via dlopen/dlsym: this avoids all hard dependencies on EDS shared objects, but might lead to crashes when their ABI changes]),
|
|
enable_evolution_compatibility="$enableval", enable_evolution_compatibility="no")
|
|
|
|
AC_ARG_ENABLE(developer-mode,
|
|
AC_HELP_STRING([--enable-developer-mode],
|
|
[The dynamic loadble backend libraries is loaded from current build directory instead of the standard library path]),
|
|
enable_developer_mode="$enableval", enable_developer_mode="no")
|
|
|
|
# Maemo hacks:
|
|
# - set the (non-standard!) DBUS_DEFAULT_TIMEOUT
|
|
# - wrap e_book_from_string() to fix invalid parameter
|
|
# - don't use UTF-8 encoding in Perl script
|
|
AC_ARG_ENABLE(maemo,
|
|
AS_HELP_STRING([--enable-maemo],
|
|
[enables some hacks which work around problems with the Maemo 2.0 until at least 3.0 EDS-Dbus]),
|
|
[AC_DEFINE(ENABLE_MAEMO, 1, [enable Maemo hacks])
|
|
DEVICE_TYPE=Maemo
|
|
MODIFY_SYNCCOMPARE='-e "s/use encoding/#use encoding/;" -e "s/:utf8//;"'])
|
|
AC_SUBST(MODIFY_SYNCCOMPARE)
|
|
|
|
AC_CHECK_HEADERS(signal.h dlfcn.h)
|
|
|
|
# cppunit needed?
|
|
if test $enable_unit_tests == "yes" || test $enable_integration_tests == yes; then
|
|
CPPUNIT_CXXFLAGS=`cppunit-config --cflags` || AC_MSG_ERROR("cppunit-config --cflags failed - is it installed?")
|
|
CPPUNIT_LDFLAGS=`cppunit-config --libs` || AC_MSG_ERROR("cppunit-config --libs failed - is it installed?")
|
|
fi
|
|
AC_SUBST(CPPUNIT_CXXFLAGS)
|
|
AC_SUBST(CPPUNIT_LDFLAGS)
|
|
|
|
if test "$enable_unit_tests" = "yes"; then
|
|
AC_DEFINE(ENABLE_UNIT_TESTS, 1, [enable unit tests inside the library's source code])
|
|
fi
|
|
AM_CONDITIONAL([ENABLE_UNIT_TESTS], [test "$enable_unit_tests" = "yes"])
|
|
AM_CONDITIONAL([ENABLE_TESTING], [test "$enable_unit_tests" = "yes" || test "$enable_integration_tests" = "yes" ])
|
|
|
|
if test $enable_static_cxx == "yes"; then
|
|
LIBS="$LIBS -L."
|
|
CORE_LDADD_DEP=libstdc++.a
|
|
fi
|
|
AC_SUBST(CORE_LDADD_DEP)
|
|
|
|
# preserve src/synthesis by default,
|
|
# always
|
|
CLEAN_SYNTHESIS_SRC=
|
|
SYNTHESIS_LIB=$PWD/src/build-synthesis/src/libsynthesissdk.la
|
|
|
|
AC_SUBST(CLEAN_CLIENT_SRC)
|
|
|
|
# Check for transport layer.
|
|
# Both curl and libsoup can be enabled and disabled explicitly.
|
|
# The default is to use libsoup if available, otherwise curl.
|
|
|
|
AC_MSG_CHECKING([for libcurl])
|
|
if LIBCURL_LIBS=`sh -c 'curl-config --libs' 2>&AS_MESSAGE_LOG_FD` && \
|
|
LIBCURL_CFLAGS=`sh -c 'curl-config --cflags' 2>&AS_MESSAGE_LOG_FD`; then
|
|
AC_MSG_RESULT([yes])
|
|
have_libcurl="yes"
|
|
else
|
|
AC_MSG_RESULT([no])
|
|
have_libcurl="no"
|
|
fi
|
|
PKG_CHECK_MODULES(LIBSOUP, libsoup-gnome-2.4,
|
|
[have_libsoup="yes"
|
|
AC_DEFINE(HAVE_LIBSOUP_SOUP_GNOME_FEATURES_H, 1, [enable GNOME specific libsoup])],
|
|
[PKG_CHECK_MODULES(LIBSOUP, libsoup-2.4,
|
|
have_libsoup="yes",
|
|
have_libsoup="no")])
|
|
TRANSPORT=
|
|
TRANSPORT_LIBS=
|
|
TRANSPORT_CFLAGS=
|
|
|
|
AC_ARG_WITH(ca-certificates,
|
|
AS_HELP_STRING([--with-ca-certificates=<colon separated list of files>],
|
|
[Specifies location of one or more CA certificate files.
|
|
This sets the default value for the SSLServerCertificates option.
|
|
Default: empty when using libcurl (because it has its own default),
|
|
a list of paths known to work for Debian and Red Hat otherwise.]),
|
|
[CA_CERTIFICATES="$withval"])
|
|
|
|
|
|
# choose default transport (mirrors code in EvolutionSyncClient::createTransportAgent())
|
|
if test "$have_libsoup" = "yes"; then
|
|
default_transport="libsoup"
|
|
elif test "$have_libcurl" = "yes"; then
|
|
default_transport="libcurl"
|
|
fi
|
|
|
|
AC_ARG_ENABLE(libcurl,
|
|
AC_HELP_STRING([--enable-libcurl],
|
|
[enable libcurl as transport layer]),
|
|
[ if test "$enableval" = "yes"; then
|
|
test "$have_libcurl" = "yes" || AC_MSG_ERROR([libcurl not found])
|
|
TRANSPORT="$TRANSPORT libcurl"
|
|
TRANSPORT_LIBS="$TRANSPORT_LIBS $LIBCURL_LIBS"
|
|
TRANSPORT_CFLAGS="$TRANSPORT_CFLAGS $LIBCURL_CFLAGS"
|
|
AC_DEFINE(ENABLE_LIBCURL, 1, [enable libcurl transport])
|
|
else
|
|
libcurl_disabled="yes"
|
|
fi ],
|
|
[ if test "$have_libcurl" = "yes" && test "$default_transport" = "libcurl" ; then
|
|
TRANSPORT="$TRANSPORT libcurl"
|
|
TRANSPORT_LIBS="$TRANSPORT_LIBS $LIBCURL_LIBS"
|
|
TRANSPORT_CFLAGS="$TRANSPORT_CFLAGS $LIBCURL_CFLAGS"
|
|
AC_DEFINE(ENABLE_LIBCURL, 1, [enable libcurl transport])
|
|
fi ])
|
|
|
|
AC_ARG_ENABLE(libsoup,
|
|
AC_HELP_STRING([--enable-libsoup],
|
|
[enable libsoup as transport layer]),
|
|
[ if test "$enableval" = "yes"; then
|
|
test "$have_libsoup" = "yes" || AC_MSG_ERROR([libsoup not found])
|
|
TRANSPORT="$TRANSPORT libsoup"
|
|
TRANSPORT_LIBS="$TRANSPORT_LIBS $LIBSOUP_LIBS"
|
|
TRANSPORT_CFLAGS="$TRANSPORT_CFLAGS $LIBSOUP_CFLAGS"
|
|
AC_DEFINE(ENABLE_LIBSOUP, 1, [enable libsoup transport])
|
|
else
|
|
libsoup_disabled="yes"
|
|
fi ],
|
|
[ if test "$have_libsoup" = "yes" && test "$default_transport" = "libsoup"; then
|
|
TRANSPORT="$TRANSPORT libsoup"
|
|
TRANSPORT_LIBS="$TRANSPORT_LIBS $LIBSOUP_LIBS"
|
|
TRANSPORT_CFLAGS="$TRANSPORT_CFLAGS $LIBSOUP_CFLAGS"
|
|
AC_DEFINE(ENABLE_LIBSOUP, 1, [enable libsoup transport])
|
|
fi ])
|
|
|
|
if test ! "$TRANSPORT" &&
|
|
test "$libsoup_disabled" != "yes" &&
|
|
test "$libcurl_disabled" != "yes"; then
|
|
AC_ERROR([no transport library found, configure with --disable-libcurl --disable-libsoup to continue anyway (only useful if users of libsyncevolution provide transport implementation)])
|
|
fi
|
|
|
|
# for libsoup we must specify the SSL certificate file outself
|
|
if test "$libsoup_disabled" != "yes" && test -z "$CA_CERTIFICATES"; then
|
|
# Debian and Red Hat paths
|
|
CA_CERTIFICATES="/etc/ssl/certs/ca-certificates.crt:/etc/pki/tls/certs/ca-bundle.crt:/usr/share/ssl/certs/ca-bundle.crt"
|
|
fi
|
|
AC_DEFINE_UNQUOTED(SYNCEVOLUTION_SSL_SERVER_CERTIFICATES, "$CA_CERTIFICATES", [default value for SSLServerCertificates option])
|
|
|
|
AC_SUBST(TRANSPORT_LIBS)
|
|
AC_SUBST(TRANSPORT_CFLAGS)
|
|
|
|
AC_ARG_ENABLE(ssl-certificate-check,
|
|
AC_HELP_STRING([--disable-ssl-certificate-check],
|
|
[Disable SSL certificate checking in all server
|
|
*templates*. Users can still choose to enable or
|
|
disable it in their configuration. This is necessary on
|
|
platforms where the transport library has problems
|
|
verifying the server's certificate (libsoup + Google,
|
|
http://bugzilla.moblin.org/show_bug.cgi?id=4551)]),
|
|
enable_ssl_certificate_check="$enableval",
|
|
enable_ssl_certificate_check="yes")
|
|
if test "$enable_ssl_certificate_check" = "yes"; then
|
|
AC_DEFINE(ENABLE_SSL_CERTIFICATE_CHECK, 1, [enable SSL certificate check in server templates])
|
|
fi
|
|
|
|
# for dbus interface file mangling
|
|
AC_PATH_PROG(XSLT, xsltproc)
|
|
|
|
AC_ARG_ENABLE(gui,
|
|
AS_HELP_STRING([--enable-gui[=gui type]],
|
|
[enables building the GTK+ UI that uses the SyncEvolution DBus API.
|
|
Options: gtk, moblin, all (builds sync-ui-gtk and sync-ui-moblin)
|
|
"gtk" is the default for --enable-gui without type. No GUI is
|
|
built when --enable-gui is not used.
|
|
--enable-gui implies --enable-dbus.]),
|
|
[ if test "$enableval" = "gtk" ; then
|
|
enable_gui=gtk
|
|
elif test "$enableval" = "yes" ; then
|
|
enable_gui=gtk
|
|
elif test "$enableval" = "moblin" ; then
|
|
enable_gui=moblin
|
|
elif test "$enableval" = "no" ; then
|
|
enable_gui=no
|
|
elif test "$enableval" = "all" ; then
|
|
enable_gui=all
|
|
else
|
|
AC_ERROR([Unknown gui type: '$enableval'])
|
|
fi
|
|
],
|
|
[ enable_gui=no ])
|
|
|
|
AM_CONDITIONAL([COND_GUI], [test "$enable_gui" != "no"])
|
|
|
|
if test $enable_gui == "moblin"; then
|
|
AC_DEFINE(USE_MOBLIN_UX, 1, [Use the MUX widget library])
|
|
fi
|
|
|
|
AC_ARG_ENABLE(dbus-service,
|
|
AS_HELP_STRING([--enable-dbus-service],
|
|
[enables building the dbus service executable and the wrapper library for it]),
|
|
enable_dbus_service="$enableval",
|
|
[if test $enable_gui == "no"; then
|
|
enable_dbus_service="no"
|
|
else
|
|
enable_dbus_service="yes"
|
|
fi])
|
|
AM_CONDITIONAL([COND_DBUS], [test "$enable_dbus_service" = "yes"])
|
|
|
|
if test $enable_gui != "no" && test $enable_dbus_service == "no"; then
|
|
AC_ERROR([cannot build GUI without building the D-Bus service])
|
|
fi
|
|
|
|
PKG_CHECK_MODULES(KEYRING, [gnome-keyring-1], HAVE_KEYRING=yes, HAVE_KEYRING=no)
|
|
if test $HAVE_KEYRING == "yes"; then
|
|
AC_DEFINE(USE_GNOME_KEYRING, 1, [define if gnome keyring should be used in dbus service])
|
|
PKG_CHECK_MODULES([KEYRING_2_20], [gnome-keyring-1 >= 2.20 ], KEYRING220=yes, KEYRING220=no)
|
|
if test $KEYRING220 == "yes"; then
|
|
AC_DEFINE(GNOME_KEYRING_220, 1, [define if gnome keyring version is above 2.20])
|
|
fi
|
|
fi
|
|
|
|
if test $enable_dbus_service == "yes"; then
|
|
PKG_CHECK_MODULES(DBUS_GLIB, dbus-glib-1 glib-2.0)
|
|
AC_PATH_PROG(DBUS_BINDING_TOOL, dbus-binding-tool)
|
|
AC_PATH_PROG(GLIB_GENMARSHAL, glib-genmarshal)
|
|
if test -z "$XSLT"; then
|
|
AC_ERROR([xsltproc not found, is required for D-Bus service])
|
|
fi
|
|
fi
|
|
AC_SUBST(DBUS_GLIB_CFLAGS)
|
|
AC_SUBST(DBUS_GLIB_LIBS)
|
|
AC_SUBST(KEYRING_CFLAGS)
|
|
AC_SUBST(KEYRING_LIBS)
|
|
AC_SUBST(LIBEXECDIR)
|
|
|
|
DBUS_SERVICES_DIR="${datadir}/dbus-1/services"
|
|
AC_SUBST(DBUS_SERVICES_DIR)
|
|
AC_DEFINE_UNQUOTED(DBUS_SERVICES_DIR, "$DBUS_SERVICES_DIR", [Location of D-Bus services directory])
|
|
|
|
# decide which sync-ui(s) we are building:
|
|
# sync-ui (in either GTK or Moblin mode) or both (in separate binaries)
|
|
case $enable_gui in
|
|
all) GUI_PROGRAMS='sync-ui-gtk${EXEEXT} sync-ui-moblin${EXEEXT}'; GUI_DESKTOP_FILES="sync-gtk.desktop sync-moblin.desktop";;
|
|
gtk|moblin) GUI_PROGRAMS='sync-ui${EXEEXT}'; GUI_DESKTOP_FILES="sync.desktop";;
|
|
no) GUI_PROGRAMS=; GUI_DESKTOP_FILES=;;
|
|
*) AC_ERROR([Unknown enable_gui type: '$enable_gui'])
|
|
esac
|
|
|
|
if test $enable_gui != "no"; then
|
|
gui_modules="glib-2.0 dbus-glib-1 >= 0.60 gtk+-2.0 libglade-2.0 gconf-2.0 gio-2.0 gnome-keyring-1"
|
|
|
|
PKG_CHECK_MODULES(UNIQUE, unique-1.0,
|
|
have_unique="yes",
|
|
have_unique="no")
|
|
if test $have_unique == "yes"; then
|
|
gui_modules="$gui_modules unique-1.0"
|
|
AC_DEFINE(ENABLE_UNIQUE, 1, [enable single-app-instance functionality])
|
|
fi
|
|
PKG_CHECK_MODULES(GUI, $gui_modules)
|
|
|
|
AC_PATH_PROG([GTK_BUILDER_CONV], gtk-builder-convert)
|
|
IT_PROG_INTLTOOL([0.37.1])
|
|
GETTEXT_PACKAGE=syncevolution
|
|
AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE, "$GETTEXT_PACKAGE", [The gettext package name])
|
|
AM_GLIB_GNU_GETTEXT
|
|
SYNCEVOLUTION_LOCALEDIR=[${datadir}/locale]
|
|
else
|
|
INTLTOOL_UPDATE="true"
|
|
USE_NLS="no"
|
|
fi
|
|
AC_SUBST(SYNCEVOLUTION_LOCALEDIR)
|
|
AC_SUBST(GETTEXT_PACKAGE)
|
|
AC_SUBST(GUI_CFLAGS)
|
|
AC_SUBST(GUI_LIBS)
|
|
AC_SUBST(GUI_PROGRAMS)
|
|
AC_SUBST(GUI_DESKTOP_FILES)
|
|
|
|
|
|
# Boost headers: boost/foreach.hpp is needed (1.33/Debian Etch
|
|
# doesn't have it, 1.34/Ubuntu 8.10 Hardy does). 1.35 is available
|
|
# as Debian Etch backport.
|
|
AX_BOOST_BASE(1.34)
|
|
|
|
# absolute patch to source of Synthesis client library
|
|
SYNTHESIS_SRC=no-synthesis-source
|
|
AC_SUBST(SYNTHESIS_SRC)
|
|
if test "$SYNTHESISSRC" && test "$SYNTHESISSRC" != "none"; then
|
|
# default: checkout a copy of the sources, remove it during maintainer-clean and distclean
|
|
CLEAN_CLIENT_SRC=synthesis-workdir
|
|
SYNTHESIS_SRC=$PWD/src/synthesis-workdir
|
|
|
|
AC_MSG_NOTICE( [updating the content of $SYNTHESIS_SRC from $SYNTHESISSRC] )
|
|
case "$SYNTHESISSRC" in
|
|
*.git) protocol=git;;
|
|
*://*) protocol="`echo $SYNTHESISSRC | sed -e 's;://.*;;'`";;
|
|
*) protocol="file";;
|
|
esac
|
|
|
|
mkdir -p src
|
|
case $protocol in
|
|
file)
|
|
# use existing copy of the sources
|
|
CLEAN_CLIENT_SRC=
|
|
case "$SYNTHESISSRC" in
|
|
/*) SYNTHESIS_SRC="$SYNTHESISSRC";;
|
|
*) SYNTHESIS_SRC="$PWD/$SYNTHESISSRC";;
|
|
esac
|
|
;;
|
|
*svn*|*http*)
|
|
SYNTHESISSRCREV="$SYNTHESISSRC"
|
|
if test "$REVISION"; then
|
|
revarg="-r $REVISION "
|
|
if `echo $SYNTHESISSRC | grep '@[0123456789]*'` >/dev/null; then
|
|
:
|
|
else
|
|
SYNTHESISSRCREV="$SYNTHESISSRC@$REVISION"
|
|
fi
|
|
fi
|
|
if test -d $SYNTHESIS_SRC ; then
|
|
( set -x; cd $SYNTHESIS_SRC && svn --username=$USERNAME switch $revarg "$SYNTHESISSRC" ) || AC_ERROR([updating from $SYNTHESISSRC failed])
|
|
else
|
|
(set -x; svn --username=$USERNAME checkout $revarg "$SYNTHESISSRCREV" $SYNTHESIS_SRC ) || AC_ERROR([checking out $SYNTHESISSRC failed])
|
|
fi
|
|
;;
|
|
*)
|
|
if test -d $SYNTHESIS_SRC ; then
|
|
( set -x; cd $SYNTHESIS_SRC && git fetch "$SYNTHESISSRC" ) || AC_ERROR([updating from $SYNTHESISSRC failed])
|
|
else
|
|
( set -x; git clone "$SYNTHESISSRC" $SYNTHESIS_SRC ) || AC_ERROR([cloning $SYNTHESISSRC failed])
|
|
fi
|
|
if test "$REVISION"; then
|
|
# git 1.6 finds tags and branches without explicit prefix, 1.4.4.4 doesn't
|
|
( set -x; cd $SYNTHESIS_SRC &&
|
|
(git checkout "$REVISION" ||
|
|
git checkout "tags/$REVISION" ||
|
|
git checkout "origin/$REVISION") ) || AC_ERROR([checking out $SYNTHESISSRC failed])
|
|
fi
|
|
;;
|
|
esac
|
|
elif test "$SYNTHESISSRC" != "none" && test -d $srcdir/src/synthesis; then
|
|
# use existing copy of the sources; beware of
|
|
# out-of-tree compilation
|
|
case $srcdir in
|
|
/*) SYNTHESIS_SRC="$srcdir/src/synthesis";;
|
|
*) SYNTHESIS_SRC="$PWD/$srcdir/src/synthesis";;
|
|
esac
|
|
else
|
|
PKG_CHECK_MODULES(SYNTHESIS, "synthesis")
|
|
fi
|
|
|
|
if test $SYNTHESIS_SRC != "no-synthesis-source"; then
|
|
( cd $SYNTHESIS_SRC && ( test -f configure || sh autogen.sh ) ) || AC_MSG_ERROR([no configure script in $SYNTHESIS_SRC])
|
|
|
|
SYNTHESIS_CONFIGURE="$SYNTHESIS_SRC/configure"
|
|
chmod u+x $SYNTHESIS_SRC/configure $SYNTHESIS_SRC/config.sub $SYNTHESIS_SRC/config.guess
|
|
|
|
# use local copy of the sources, with dependencies
|
|
# to trigger building the synthesis library
|
|
SYNTHESIS_SUBDIR=$PWD/src/build-synthesis
|
|
SYNTHESIS_DEP=$PWD/src/build-synthesis/src/libsynthesissdk.la
|
|
|
|
SYNTHESIS_CFLAGS="-I$SYNTHESIS_SUBDIR/src"
|
|
SYNTHESIS_LIBS="-L$SYNTHESIS_SUBDIR/src -lsynthesissdk -lsynthesis"
|
|
|
|
AC_MSG_NOTICE( [configuring the Synthesis library] )
|
|
if (set -x; mkdir -p $SYNTHESIS_SUBDIR && cd $SYNTHESIS_SUBDIR && eval "\$SHELL \"\$SYNTHESIS_CONFIGURE\" $ac_configure_args \"--srcdir=\$SYNTHESIS_SRC\" " ); then true; else
|
|
AC_MSG_ERROR( [configuring Synthesis library failed] )
|
|
fi
|
|
fi
|
|
|
|
AC_SUBST(SYNTHESIS_CFLAGS)
|
|
AC_SUBST(SYNTHESIS_LIBS)
|
|
AC_SUBST(SYNTHESIS)
|
|
AC_SUBST(SYNTHESIS_SUBDIR)
|
|
AC_SUBST(SYNTHESIS_DEP)
|
|
AC_SUBST(SYNTHESIS_LIB)
|
|
AC_SUBST(SYNTHESISSRC)
|
|
|
|
dnl select backends
|
|
BACKENDS=""
|
|
|
|
# AC_ARG_ENABLE_BACKEND(BACKEND, DIR, HELP-STRING, [ACTION-IF-GIVEN],
|
|
# [ACTION-IF-NOT-GIVEN])
|
|
#
|
|
# Same as AC_ARG_ENABLE(), but also tells configure that the
|
|
# backend exists.
|
|
#
|
|
# BACKEND = name of modules built in that dir as .la files without the
|
|
# obligatory sync prefix, e.g. "ebook"
|
|
# DIR = name of the directory inside src/backends, e.g., "evolution"
|
|
AC_DEFUN([AC_ARG_ENABLE_BACKEND],
|
|
[
|
|
AC_ARG_ENABLE($1, $3, $4, $5)
|
|
BACKENDS="$BACKENDS $1"
|
|
BACKEND_DEFINES="$BACKEND_DEFINES ENABLE_`echo $1 | tr a-z A-Z`"
|
|
for source in $2; do
|
|
SYNCSOURCES="$SYNCSOURCES backends/$2/sync$1.la"
|
|
done
|
|
])
|
|
AC_SUBST(SYNCSOURCES)
|
|
AC_SUBST(BACKEND_DEFINES)
|
|
|
|
BACKEND_CPPFLAGS="$SYNTHESIS_CFLAGS $EPACKAGE_CFLAGS $EBOOK_CFLAGS $ECAL_CFLAGS $GLIB_CFLAGS"
|
|
AC_SUBST(BACKEND_CPPFLAGS)
|
|
|
|
dnl src/backends/*/configure-sub.in and configure-post.in follow
|