major restructuring of the file layout and autotools build
This change makes it possible to add a new backend without changing any of the core files. It also gets rid of some hacks (like -export-dynamic for the binary) by putting all core SyncEvolution code into a library. The transition is not quite complete: there are still some lists of existing backends, which will be removed soon. EvolutionSmartPtr.h and EvolutionSyncSource depend on Evolution/GNOME libs, which forces all backends to use the right -I flags. git-svn-id: https://zeitsenke.de/svn/SyncEvolution/trunk@684 15ad00c4-1369-45f4-8270-35d70d36bdcd
This commit is contained in:
parent
8567833159
commit
5e8fa6eb94
17
Makefile.am
17
Makefile.am
|
@ -2,7 +2,7 @@
|
|||
|
||||
SUBDIRS = src test
|
||||
|
||||
EXTRA_DIST = HACKING description
|
||||
EXTRA_DIST = HACKING description configure-pre.in configure-post.in autogen.sh
|
||||
MAINTAINERCLEANFILES = Makefile.in config.h.in config.guess config.sub configure depcomp install-sh ltmain.sh missing mkinstalldirs
|
||||
DISTCHECK_CONFIGURE_FLAGS = --with-sync4j=@FUNAMBOL@
|
||||
|
||||
|
@ -79,3 +79,18 @@ doc-pak : README NEWS COPYING
|
|||
|
||||
description-pak : description
|
||||
cp $< $@
|
||||
|
||||
# TODO: make configurable
|
||||
$(srcdir)/configure.in: configure-pre.in configure-post.in src/backends/addressbook/configure-sub.in src/backends/evolution/configure-sub.in src/backends/sqlite/configure-sub.in
|
||||
rm -f $@
|
||||
cat $(srcdir)/configure-pre.in >>$@
|
||||
for sub in $(srcdir)/src/backends/*/configure-sub.in; do \
|
||||
echo "# vvvvvvvvvvvvvv $$sub vvvvvvvvvvvvvv" >>$@; \
|
||||
cat $$sub >>$@; \
|
||||
echo "AC_CONFIG_FILES(`echo $$sub | sed -e 's;^$(srcdir)/;;' -e s/configure-sub.in/Makefile/`)" >>$@; \
|
||||
echo "# ^^^^^^^^^^^^^^ $$sub ^^^^^^^^^^^^^^" >>$@; \
|
||||
echo >>$@; \
|
||||
done
|
||||
echo BACKEND_REGISTRIES = `echo $(srcdir)/src/backends/*/*Register.cpp | sed -e 's;$(srcdir)/;;'` >>$@
|
||||
echo "AC_SUBST(BACKEND_REGISTRIES)" >>$@
|
||||
cat $(srcdir)/configure-post.in >>$@
|
||||
|
|
21
autogen.sh
21
autogen.sh
|
@ -1,5 +1,26 @@
|
|||
#!/bin/sh
|
||||
|
||||
set -e
|
||||
|
||||
# generate configure.in from main configure-*.in pieces
|
||||
# and all backend configure-sub.in pieces
|
||||
rm -f configure.in
|
||||
cat configure-pre.in >>configure.in
|
||||
BACKENDS=
|
||||
for sub in src/backends/*/configure-sub.in; do
|
||||
BACKENDS="$BACKENDS `dirname $sub | sed -e 's;^src/;;'`"
|
||||
echo "# vvvvvvvvvvvvvv $sub vvvvvvvvvvvvvv" >>configure.in
|
||||
cat $sub >>configure.in
|
||||
echo "AC_CONFIG_FILES(`echo $sub | sed -e s/configure-sub.in/Makefile/`)" >>configure.in
|
||||
echo "# ^^^^^^^^^^^^^^ $sub ^^^^^^^^^^^^^^" >>configure.in
|
||||
echo >>configure.in
|
||||
done
|
||||
cat configure-post.in >>configure.in
|
||||
|
||||
sed -e "s;@BACKEND_REGISTRIES@;`echo src/backends/*/*Register.cpp | sed -e s%src/%%g`;" \
|
||||
-e "s;@BACKENDS@;$BACKENDS;" \
|
||||
src/Makefile.am.gen >src/Makefile.am
|
||||
|
||||
libtoolize -c
|
||||
aclocal
|
||||
autoheader
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
dnl Process this file with autoconf to produce a configure script.
|
||||
dnl Invoke autogen.sh to produce a configure script.
|
||||
|
||||
AC_INIT(src/syncevolution.cpp)
|
||||
AM_INIT_AUTOMAKE(syncevolution, 0.8-beta1)
|
||||
|
@ -108,9 +108,6 @@ FUNAMBOL_LIB=$PWD/src/client-api.build/src/libfunambol.la
|
|||
|
||||
AC_SUBST(CLEAN_CLIENT_SRC)
|
||||
|
||||
# list of backend names (--enable-<name>, $enable_<name>)
|
||||
BACKENDS=
|
||||
|
||||
if test ! "$FUNAMBOL"; then
|
||||
if test "$FUNAMBOLSRC"; then
|
||||
# make a copy of the sources, remove it during maintainer-clean and distclean
|
||||
|
@ -166,7 +163,12 @@ if test ! "$FUNAMBOL"; then
|
|||
echo $i;
|
||||
fi;
|
||||
done`
|
||||
if (set -x; mkdir -p $FUNAMBOL_SUBDIR && cd $FUNAMBOL_SUBDIR && $CLIENT_CONFIGURE --build=$build_alias --host=$host_alias --target=$target_alias --disable-shared $cxx_lib_args); then true; else
|
||||
if test "$enable_shared" == "yes"; then
|
||||
# Okay, this is a shortcut: strictly speaking we would have
|
||||
# to check with autoconf for the right flags...
|
||||
FUNAMBOL_LIB_SHARED_FLAGS="-DPIC -fPIC"
|
||||
fi
|
||||
if (set -x; mkdir -p $FUNAMBOL_SUBDIR && cd $FUNAMBOL_SUBDIR && $CLIENT_CONFIGURE --build=$build_alias --host=$host_alias --target=$target_alias --disable-shared CFLAGS="$CFLAGS $FUNAMBOL_LIB_SHARED_FLAGS" CXXFLAGS="$CXXFLAGS $FUNAMBOL_LIB_SHARED_FLAGS" $cxx_lib_args); then true; else
|
||||
AC_MSG_ERROR( [configuring client library failed] )
|
||||
fi
|
||||
else
|
||||
|
@ -189,78 +191,9 @@ AC_SUBST(FUNAMBOL_DEP)
|
|||
AC_SUBST(FUNAMBOL_LIB)
|
||||
AC_SUBST(FUNAMBOLSRC)
|
||||
|
||||
pkg_emodules_10="libedataserver-1.0"
|
||||
pkg_emodules_11="libedataserver-1.1"
|
||||
pkg_emodules_12="libedataserver-1.2"
|
||||
pkg_ebook_10="libebook-1.0"
|
||||
pkg_ebook_11="libebook-1.1"
|
||||
pkg_ebook_12="libebook-1.2"
|
||||
pkg_ecal_10="libecal-1.0"
|
||||
pkg_ecal_11="libecal-1.1"
|
||||
pkg_ecal_12="libecal-1.2"
|
||||
|
||||
export PKG_CONFIG_PATH=${PKG_CONFIG_PATH}:/usr/lib/pkgconfig:$prefix/lib/pkgconfig:/usr/local/lib/pkgconfig
|
||||
|
||||
anymissing="
|
||||
Please install the development packages of Evolution and/or
|
||||
set the PKG_CONFIG_PATH variable so that it points towards
|
||||
the .pc files of libedataserver, libecal and libebook (the
|
||||
latter two are optional).
|
||||
|
||||
You can check that these packages are available by running
|
||||
pkg-config --list-all."
|
||||
|
||||
evomissing="No compatible evolution-data-server was found.
|
||||
$anymissing"
|
||||
|
||||
dnl check for Evolution core packages
|
||||
PKG_CHECK_MODULES(EPACKAGE, [$pkg_emodules_12], EDSFOUND=yes, [EDSFOUND=no])
|
||||
if test "x${EDSFOUND}" = "xno"; then
|
||||
PKG_CHECK_MODULES(EPACKAGE, [$pkg_emodules_11], EDSFOUND=yes, [EDSFOUND=no])
|
||||
if test "x${EDSFOUND}" = "xno"; then
|
||||
PKG_CHECK_MODULES(EPACKAGE, [$pkg_emodules_10], EDSFOUND=yes, [EDSFOUND=no])
|
||||
fi
|
||||
fi
|
||||
AC_SUBST(EPACKAGE_CFLAGS)
|
||||
AC_SUBST(EPACKAGE_LIBS)
|
||||
|
||||
dnl check for Evolution calendar packages
|
||||
PKG_CHECK_MODULES(ECAL, [$pkg_ecal_12], ECALFOUND=yes, [ECALFOUND=no])
|
||||
if test "x${ECALFOUND}" = "xno"; then
|
||||
PKG_CHECK_MODULES(ECAL, [$pkg_ecal_11], ECALFOUND=yes, [ECALFOUND=no])
|
||||
if test "x${ECALFOUND}" = "xno"; then
|
||||
PKG_CHECK_MODULES(ECAL, [$pkg_ecal_10], ECALFOUND=yes, [ECALFOUND=no])
|
||||
fi
|
||||
fi
|
||||
AC_SUBST(ECAL_CFLAGS)
|
||||
AC_SUBST(ECAL_LIBS)
|
||||
|
||||
dnl check for Evolution contact packages
|
||||
PKG_CHECK_MODULES(EBOOK, [$pkg_ebook_12], EBOOKFOUND=yes, [EBOOKFOUND=no])
|
||||
if test "x${EBOOKFOUND}" = "xno"; then
|
||||
PKG_CHECK_MODULES(EBOOK, [$pkg_ebook_11], EBOOKFOUND=yes, [EBOOKFOUND=no])
|
||||
if test "x${EBOOKFOUND}" = "xno"; then
|
||||
PKG_CHECK_MODULES(EBOOK, [$pkg_ebook_10], EBOOKFOUND=yes, [EBOOKFOUND=no])
|
||||
fi
|
||||
fi
|
||||
AC_SUBST(EBOOK_CFLAGS)
|
||||
AC_SUBST(EBOOK_LIBS)
|
||||
|
||||
|
||||
dnl check for sqlite
|
||||
PKG_CHECK_MODULES(SQLITE, sqlite3, SQLITEFOUND=yes, [SQLITEFOUND=no])
|
||||
AC_SUBST(SQLITE_CFLAGS)
|
||||
AC_SUBST(SQLITE_LIBS)
|
||||
|
||||
dnl hard-coded settings for Mac OS X AddressBook
|
||||
ADDRESSBOOK_CFLAGS=
|
||||
|
||||
ADDRESSBOOK_LIBS="-framework AddressBook -framework CoreFoundation"
|
||||
AC_SUBST(ADDRESSBOOK_CFLAGS)
|
||||
AC_SUBST(ADDRESSBOOK_LIBS)
|
||||
|
||||
dnl select backends
|
||||
BACKENDS=""
|
||||
|
||||
# AC_ARG_ENABLE_BACKEND(BACKEND, HELP-STRING, [ACTION-IF-GIVEN],
|
||||
# [ACTION-IF-NOT-GIVEN])
|
||||
#
|
||||
|
@ -272,132 +205,4 @@ AC_DEFUN([AC_ARG_ENABLE_BACKEND],
|
|||
BACKENDS="$BACKENDS $1"
|
||||
])
|
||||
|
||||
AC_ARG_ENABLE_BACKEND(ebook, AS_HELP_STRING([--disable-ebook], [disable access to Evolution addressbooks (default on if available)]),
|
||||
[enable_ebook="$enableval"], [enable_ebook=$EBOOKFOUND])
|
||||
AC_ARG_ENABLE_BACKEND(ecal, AS_HELP_STRING([--disable-ecal], [disable access to Evolution calendars and tasks (default on if available)]),
|
||||
[enable_ecal="$enableval"], [enable_ecal=$ECALFOUND])
|
||||
AC_ARG_ENABLE_BACKEND(sqlite, AS_HELP_STRING([--enable-sqlite], [enable access to PIM data stored in SQLite files (experimental, default off)]),
|
||||
[enable_sqlite="$enableval"], [enable_sqlite="no"])
|
||||
AC_ARG_ENABLE_BACKEND(addressbook, AS_HELP_STRING([--enable-addressbook], [enable access to Mac OS X address book (default off)]),
|
||||
[enable_addressbook="$enableval"], [enable_addressbook="no"])
|
||||
|
||||
enable_evo="no"
|
||||
enable_any="no"
|
||||
if test "$enable_ebook" = "yes"; then
|
||||
test "x${EBOOKFOUND}" == "xyes" || AC_MSG_ERROR([--enable-ebook requires pkg-config information for libebook, which was not found])
|
||||
AC_DEFINE(ENABLE_EBOOK, 1, [libebook available])
|
||||
enable_evo="yes"
|
||||
enable_any="yes"
|
||||
fi
|
||||
|
||||
AM_CONDITIONAL([ENABLE_ECAL], [test "$enable_ecal" == "yes"])
|
||||
if test "$enable_ecal" = "yes"; then
|
||||
test "x${ECALFOUND}" == "xyes" || AC_MSG_ERROR([--enable-ecal requires pkg-config information for libecal, which was not found"])
|
||||
AC_DEFINE(ENABLE_ECAL, 1, [libecal available])
|
||||
enable_evo="yes"
|
||||
enable_any="yes"
|
||||
fi
|
||||
|
||||
if test "$enable_sqlite" = "yes"; then
|
||||
test "x${SQLITEFOUND}" == "xyes" || AC_MSG_ERROR([--enable-sqlite requires pkg-config information for sqlite3, which was not found])
|
||||
AC_DEFINE(ENABLE_SQLITE, 1, [sqlite available])
|
||||
enable_any="yes"
|
||||
fi
|
||||
|
||||
if test "$enable_addressbook" = "yes"; then
|
||||
AC_DEFINE(ENABLE_ADDRESSBOOK, 1, [addressbook available])
|
||||
DEVICE_TYPE=MacOS_X
|
||||
enable_any="yes"
|
||||
else
|
||||
ADDRESSBOOK_LIBS=
|
||||
fi
|
||||
|
||||
if test "$enable_any" = "no"; then
|
||||
AC_MSG_ERROR([no backend enabled - refusing to continue: $anymissing])
|
||||
fi
|
||||
|
||||
if test "$enable_evo" = "yes"; then
|
||||
if test "$EDSFOUND" = "yes"; then
|
||||
AC_DEFINE(HAVE_EDS, 1, [evolution-dataserver available])
|
||||
else
|
||||
AC_MSG_ERROR($evomissing)
|
||||
fi
|
||||
else
|
||||
EPACKAGE_CFLAGS=
|
||||
EPACKAGE_LIBS=
|
||||
fi
|
||||
|
||||
dnl check for glib - calling g_type_init() is expected on Maemo
|
||||
PKG_CHECK_MODULES(GLIB, "glib-2.0", GLIBFOUND=yes, GLIBFOUND=no)
|
||||
if test "x${GLIBFOUND}" = "xno"; then
|
||||
PKG_CHECK_MODULES(GLIB, "glib", GLIBFOUND=yes, GLIBFOUND=no)
|
||||
fi
|
||||
AC_SUBST(GLIB_CFLAGS)
|
||||
AC_SUBST(GLIB_LIBS)
|
||||
|
||||
dnl check for programs.
|
||||
AC_PROG_CXX
|
||||
AC_PROG_LIBTOOL
|
||||
AC_PROG_MAKE_SET
|
||||
|
||||
if test "$enable_sqlite" == "yes"; then
|
||||
SYNCEVOLUTION_MODULES="$SYNCEVOLUTION_MODULES syncsqlite.la"
|
||||
fi
|
||||
if test "$enable_addressbook" == "yes"; then
|
||||
SYNCEVOLUTION_MODULES="$SYNCEVOLUTION_MODULES syncaddressbook.la"
|
||||
fi
|
||||
|
||||
dnl glib initialization is done only for libebook and libecal, not needed
|
||||
dnl otherwise even if found
|
||||
if test "$enable_ebook" != "yes" && test "$enable_ecal" != "yes"; then
|
||||
GLIB_CFLAGS=
|
||||
GLIB_LIBS=
|
||||
else
|
||||
if test "x${GLIBFOUND}" = "xyes"; then
|
||||
AC_DEFINE(HAVE_GLIB, 1, [glib found])
|
||||
fi
|
||||
fi
|
||||
|
||||
dnl figure out whether we link all code statically or as modules
|
||||
AM_CONDITIONAL([ENABLE_MODULES], [test "$enable_shared" == "yes"])
|
||||
if test "$enable_shared" == "yes"; then
|
||||
SYNCEVOLUTION_LDADD="-Wl,-export-dynamic -rpath '\$(pkglibdir)'"
|
||||
AC_DEFINE(ENABLE_MODULES, 1, [enable dynamically opening sync source backends])
|
||||
else
|
||||
SYNCEVOLUTION_LDADD="\$(EXTRA_LTLIBRARIES)"
|
||||
fi
|
||||
AC_SUBST(SYNCEVOLUTION_LDADD)
|
||||
|
||||
dnl CXXFLAGS gets applied to SyncEvolution and the client library.
|
||||
dnl For e.g. "-Wall -Werror" this might not be such a good idea;
|
||||
dnl SYNCEVOLUTION_CXXFLAGS can be used instead. It applies only
|
||||
dnl to the sources in the SyncEvolution repository.
|
||||
AC_SUBST(SYNCEVOLUTION_CXXFLAGS)
|
||||
|
||||
dnl a quick-and-dirty way to detect compilation for the iPhone
|
||||
if test "$host" == "arm-apple-darwin"; then
|
||||
AC_DEFINE(IPHONE, 1, [compiling for iPhone])
|
||||
DEVICE_TYPE=iPhone
|
||||
fi
|
||||
|
||||
dnl This string is sent as part of the SyncML DevInf (device
|
||||
dnl information) structure to the server. All SyncEvolution platforms
|
||||
dnl use "SyncEvolution" as HTTP user agent and "Mod" (model), so the
|
||||
dnl device type is the only way how different kinds of clients can be
|
||||
dnl distinguished.
|
||||
AC_DEFINE_UNQUOTED(DEVICE_TYPE, "$DEVICE_TYPE", "SyncML DevInf DevType")
|
||||
|
||||
AC_CHECK_HEADERS(stdarg.h valgrind/valgrind.h execinfo.h)
|
||||
|
||||
echo
|
||||
echo CONFIGURATION SUMMARY
|
||||
for backend in $BACKENDS; do
|
||||
eval echo $backend: \${enable_${backend}}
|
||||
done
|
||||
echo
|
||||
|
||||
AC_OUTPUT([
|
||||
Makefile
|
||||
src/Makefile
|
||||
test/Makefile
|
||||
])
|
||||
dnl src/backends/*/configure-sub.in and configure-post.in follow
|
|
@ -1,4 +1,7 @@
|
|||
INCLUDES = @EPACKAGE_CFLAGS@ @EBOOK_CFLAGS@ @ECAL_CFLAGS@ @GLIB_CFLAGS@ @FUNAMBOL_CFLAGS@ @SQLITE_CFLAGS@ @ADDRESSBOOK_CFLAGS@
|
||||
BACKENDS = @BACKENDS@
|
||||
SUBDIRS = core $(BACKENDS)
|
||||
|
||||
AM_CPPFLAGS = $(SUBDIRS:%=-I$(srcdir)/%) @BACKEND_CPPFLAGS@ @FUNAMBOL_CFLAGS@
|
||||
|
||||
# applies to sources in SyncEvolution repository, but not
|
||||
# the Funambol C++ client library
|
||||
|
@ -6,16 +9,18 @@ SYNCEVOLUTION_CXXFLAGS = @SYNCEVOLUTION_CXXFLAGS@
|
|||
|
||||
bin_PROGRAMS = syncevolution
|
||||
bin_SCRIPTS = synccompare
|
||||
SYNCSOURCES = syncecal.la syncebook.la syncsqlite.la syncaddressbook.la
|
||||
MOSTLYCLEANFILES = $(SYNCSOURCES)
|
||||
SYNCSOURCES = backends/evolution/syncecal.la backends/evolution/syncebook.la backends/sqlite/syncsqlite.la backends/addressbook/syncaddressbook.la # TODO
|
||||
# The Funambol libs should be inherited via libsyncevolution.la, but
|
||||
# somehow that didn't work when enabling shared objects (probably
|
||||
# because only a static libfunambol.a is built, which relies on
|
||||
# tricks like adding -fPIC manually).
|
||||
SYNCEVOLUTION_LDADD = @SYNCEVOLUTION_LDADD@ @FUNAMBOL_LIBS@
|
||||
if ENABLE_MODULES
|
||||
pkglib_LTLIBRARIES = $(SYNCSOURCES)
|
||||
else
|
||||
EXTRA_LTLIBRARIES = $(SYNCSOURCES)
|
||||
SYNCEVOLUTION_LDADD += $(SYNCSOURCES)
|
||||
endif
|
||||
SYNCEVOLUTION_LDADD = @SYNCEVOLUTION_LDADD@
|
||||
EXTRA_PROGRAMS = client-test
|
||||
EXTRA_DIST = shlibs.local
|
||||
EXTRA_DIST = shlibs.local Makefile.am.gen
|
||||
check_PROGRAMS = @CPPUNIT_TESTS@
|
||||
TESTS = @CPPUNIT_TESTS@
|
||||
|
||||
|
@ -34,104 +39,25 @@ synccompare : Diff.pm synccompare.pl
|
|||
perl -e '$$diff = shift; open(DIFF, "<$$diff"); ($$_) = split(/__END__/, join("", <DIFF>)); s/\*import.*//m; s/require +Exporter;//; s/^#.*\n//mg; s/ +#.*\n//mg; $$diff = $$_;' -e 'while(<>) {' @MODIFY_SYNCCOMPARE@ -e 's/use +Algorithm::Diff;/"# embedded version of Algorithm::Diff follows, copyright by the original authors\n" . $$diff . "# end of embedded Algorithm::Diff\n"/e; print;}' $+ >$@
|
||||
chmod u+x $@
|
||||
|
||||
VOCL_SOURCES = \
|
||||
vocl/VObject.h \
|
||||
vocl/VProperty.h \
|
||||
vocl/VConverter.h \
|
||||
vocl/posixadapter.h \
|
||||
\
|
||||
vocl/VObject.cpp \
|
||||
vocl/VProperty.cpp \
|
||||
vocl/VConverter.cpp
|
||||
CORE_SOURCES =
|
||||
|
||||
CORE_SOURCES = \
|
||||
ConfigTree.h \
|
||||
ConfigNode.h \
|
||||
VolatileConfigNode.h \
|
||||
VolatileConfigTree.h \
|
||||
EvolutionSmartPtr.h \
|
||||
\
|
||||
SyncEvolutionUtil.cpp \
|
||||
SyncEvolutionUtil.h \
|
||||
\
|
||||
SyncEvolutionCmdline.cpp \
|
||||
SyncEvolutionCmdline.h \
|
||||
\
|
||||
EvolutionSyncSource.h \
|
||||
EvolutionSyncSource.cpp \
|
||||
\
|
||||
EvolutionSyncClient.h \
|
||||
EvolutionSyncClient.cpp \
|
||||
\
|
||||
SyncEvolutionConfig.h \
|
||||
SyncEvolutionConfig.cpp \
|
||||
\
|
||||
FilterConfigNode.h \
|
||||
FilterConfigNode.cpp \
|
||||
\
|
||||
SafeConfigNode.h \
|
||||
SafeConfigNode.cpp \
|
||||
\
|
||||
PrefixConfigNode.h \
|
||||
PrefixConfigNode.cpp \
|
||||
\
|
||||
FileConfigNode.h \
|
||||
FileConfigNode.cpp \
|
||||
\
|
||||
FileConfigTree.h \
|
||||
FileConfigTree.cpp \
|
||||
\
|
||||
TrackingSyncSource.h \
|
||||
TrackingSyncSource.cpp \
|
||||
\
|
||||
$(VOCL_SOURCES)
|
||||
|
||||
SYNCECAL_SOURCES = \
|
||||
EvolutionCalendarSource.h \
|
||||
EvolutionMemoSource.h \
|
||||
EvolutionCalendarSource.cpp \
|
||||
EvolutionMemoSource.cpp
|
||||
# The files which register backends have to be compiled into
|
||||
# "client-test" and "syncevolution" in order to pull in the
|
||||
# code from the libs which implement the backends.
|
||||
#
|
||||
# Unit testing also goes there.
|
||||
#
|
||||
# When using modules the registration is done inside the
|
||||
# module and the register file is unnecessary. However, they
|
||||
# still need to be included in "make dist".
|
||||
BACKEND_REGISTRIES = @BACKEND_REGISTRIES@
|
||||
if ENABLE_MODULES
|
||||
EXTRA_DIST += $(BACKEND_REGISTRIES)
|
||||
else
|
||||
CORE_SOURCES += EvolutionCalendarSourceRegister.cpp
|
||||
CORE_SOURCES += $(BACKEND_REGISTRIES)
|
||||
endif
|
||||
|
||||
if ENABLE_ECAL
|
||||
SYNCECAL_SOURCES += \
|
||||
libical/icalstrdup.c \
|
||||
libical/icalstrdup.h \
|
||||
e-cal-check-timezones.c \
|
||||
e-cal-check-timezones.h
|
||||
endif
|
||||
|
||||
SYNCEBOOK_SOURCES = \
|
||||
EvolutionContactSource.h \
|
||||
EvolutionContactSource.cpp
|
||||
if ENABLE_MODULES
|
||||
else
|
||||
CORE_SOURCES += EvolutionContactSourceRegister.cpp
|
||||
endif
|
||||
|
||||
SYNCSQLITE_SOURCES = \
|
||||
SQLiteUtil.h \
|
||||
SQLiteUtil.cpp \
|
||||
SQLiteContactSource.h \
|
||||
SQLiteContactSource.cpp
|
||||
if ENABLE_MODULES
|
||||
else
|
||||
CORE_SOURCES += SQLiteContactSourceRegister.cpp
|
||||
endif
|
||||
|
||||
SYNCADDRESSBOOK_SOURCES = \
|
||||
AddressBookSource.h \
|
||||
AddressBookConstants.cpp \
|
||||
AddressBookSource.cpp
|
||||
if ENABLE_MODULES
|
||||
else
|
||||
CORE_SOURCES += AddressBookSourceRegister.cpp
|
||||
endif
|
||||
|
||||
CORE_LDADD = @EPACKAGE_LIBS@ @GLIB_LIBS@ @FUNAMBOL_LIBS@ @ADDRESSBOOK_LIBS@ @LIBS@
|
||||
CORE_LDADD = core/libsyncevolution.la @GLIB_LIBS@ @LIBS@
|
||||
CORE_DEP = @FUNAMBOL_DEP@
|
||||
|
||||
# put link to static c++ library into current directory, needed if compiling with --enable-static-c++
|
||||
|
@ -145,46 +71,10 @@ syncevolution_SOURCES = \
|
|||
# SYNCEVOLUTION_LDADD will be replaced with libsyncebook.la/libsyncecal.la/libsyncsqlite.la
|
||||
# if linking statically against them, empty otherwise;
|
||||
# either way this does not lead to a dependency on those libs - done explicitly
|
||||
#
|
||||
# LIBDBUS might be replaced with path to patched libdbus-1.a (required for
|
||||
# DBUS_DEFAULT_TIMEOUT hack on Maemo).
|
||||
syncevolution_LDADD = $(SYNCEVOLUTION_LDADD) @LIBDBUS@ $(CORE_LDADD)
|
||||
syncevolution_LDADD = $(SYNCEVOLUTION_LDADD) $(CORE_LDADD)
|
||||
syncevolution_CXXFLAGS = $(SYNCEVOLUTION_CXXFLAGS)
|
||||
syncevolution_DEPENDENCIES = $(EXTRA_LTLIBRARIES) $(CORE_DEP)
|
||||
|
||||
syncecal_la_SOURCES = $(SYNCECAL_SOURCES)
|
||||
syncecal_la_LIBADD = @ECAL_LIBS@
|
||||
# _GNU_SOURCE and -ldl for libical.c + dlsym():
|
||||
syncecal_la_CPPFLAGS = -D_GNU_SOURCE \
|
||||
-De_cal_check_timezones=syncevolution_check_timezones \
|
||||
-De_cal_tzlookup_ecal=syncevolution_tzlookup_ecal \
|
||||
-De_cal_tzlookup_icomp=syncevolution_tzlookup_icomp \
|
||||
-De_cal_match_tzid=syncevolution_match_tzid
|
||||
syncecal_la_LDFLAGS = -module -rpath '$(pkglibdir)' -ldl
|
||||
syncecal_la_CXXFLAGS = $(SYNCEVOLUTION_CXXFLAGS)
|
||||
|
||||
syncebook_la_SOURCES = $(SYNCEBOOK_SOURCES)
|
||||
syncebook_la_LIBADD = @EBOOK_LIBS@
|
||||
syncebook_la_LDFLAGS = -module -rpath '$(pkglibdir)'
|
||||
syncebook_la_CXXFLAGS = $(SYNCEVOLUTION_CXXFLAGS)
|
||||
|
||||
syncsqlite_la_SOURCES = $(SYNCSQLITE_SOURCES)
|
||||
syncsqlite_la_LIBADD = @SQLITE_LIBS@
|
||||
syncsqlite_la_LDFLAGS = -module -rpath '$(pkglibdir)'
|
||||
syncsqlite_la_CXXFLAGS = $(SYNCEVOLUTION_CXXFLAGS)
|
||||
|
||||
syncaddressbook_la_SOURCES = $(SYNCADDRESSBOOK_SOURCES)
|
||||
syncaddressbook_la_LIBADD = @ADDRESSBOOK_LIBS@
|
||||
syncaddressbook_la_LDFLAGS = -module -rpath '$(pkglibdir)'
|
||||
syncaddressbook_la_CXXFLAGS = $(SYNCEVOLUTION_CXXFLAGS)
|
||||
|
||||
EXTRA_PROGRAMS += vcardconverter
|
||||
vcardconverter_SOURCES = \
|
||||
vocl/vcardconverter.cpp \
|
||||
$(VOCL_SOURCES)
|
||||
vcardconverter_LDADD = $(CORE_LDADD)
|
||||
|
||||
|
||||
# FUNAMBOL_SUBDIR specifies the directory where we compile
|
||||
# the client library by invoking make there.
|
||||
# Installing its source is done explicitly.
|
||||
|
@ -220,7 +110,7 @@ distclean-local:
|
|||
client_test_SOURCES = client-test-app.cpp $(CORE_SOURCES)
|
||||
CLIENT_LIB_TEST_FILES = ClientTest.h ClientTest.cpp client-test-main.cpp
|
||||
nodist_client_test_SOURCES = $(CLIENT_LIB_TEST_FILES)
|
||||
client_test_CPPFLAGS = -DHAVE_CONFIG_H -DENABLE_INTEGRATION_TESTS
|
||||
client_test_CPPFLAGS = -DHAVE_CONFIG_H -DENABLE_INTEGRATION_TESTS $(AM_CPPFLAGS)
|
||||
client_test_CXXFLAGS = `cppunit-config --cflags` $(SYNCEVOLUTION_CXXFLAGS)
|
||||
client_test_LDFLAGS = `cppunit-config --libs` `nm $(FUNAMBOL_SUBDIR)/src/.libs/libfunambol.a | grep funambolAutoRegisterRegistry | sed -e 's/.* /-u /'`
|
||||
client_test_LDADD = $(SYNCEVOLUTION_LDADD) @LIBDBUS@ $(FUNAMBOL_SUBDIR)/src/libfunambol.la $(CORE_LDADD)
|
||||
|
@ -278,3 +168,11 @@ client-api-diff :
|
|||
# special target for testing with valgrind
|
||||
valgrind : test
|
||||
valgrind --leak-check=yes --suppressions=valgrind.supp ./test
|
||||
|
||||
# Because backend-related variables need to be substituted in
|
||||
# Makefile.am.gen we need an explicit rule to redo that work
|
||||
# so that "make" rebuilds derived files correctly.
|
||||
$(srcdir)/Makefile.am: Makefile.am.gen
|
||||
sed -e 's;[@]BACKEND_REGISTRIES[@];$(BACKEND_REGISTRIES);' \
|
||||
-e 's;[@]BACKENDS[@];$(BACKENDS);' \
|
||||
$< >$@
|
Loading…
Reference in a new issue