summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPatrick Ohly <patrick.ohly@gmx.de>2006-03-12 09:48:59 +0000
committerPatrick Ohly <patrick.ohly@gmx.de>2006-03-12 09:48:59 +0000
commit7af6713cd7d33c3944a68f1300b5118978c49864 (patch)
tree8265c0336ba616c677d007fb52860149a4e5da80
parent1301d3edac049d4e6ad75be96a7faffeb0dce1fa (diff)
integrated compilation of Sync4j C++ client library + distribution of its source
git-svn-id: https://zeitsenke.de/svn/SyncEvolution/trunk@33 15ad00c4-1369-45f4-8270-35d70d36bdcd
-rw-r--r--.cvsignore1
-rw-r--r--HACKING31
-rw-r--r--Makefile.am1
-rw-r--r--Makefile.in2
-rw-r--r--README22
-rwxr-xr-xconfigure128
-rw-r--r--configure.in54
-rw-r--r--etc/Makefile.in1
-rw-r--r--src/.cvsignore2
-rw-r--r--src/Makefile.am30
-rw-r--r--src/Makefile.in74
11 files changed, 268 insertions, 78 deletions
diff --git a/.cvsignore b/.cvsignore
index e71d50bb..f17c49e0 100644
--- a/.cvsignore
+++ b/.cvsignore
@@ -6,3 +6,4 @@ config.status
libtool
stamp-h1
Makefile
+syncevolution-*.tar.gz
diff --git a/HACKING b/HACKING
index edf71831..8871febf 100644
--- a/HACKING
+++ b/HACKING
@@ -1,3 +1,34 @@
+Checking out the Source
+-----------------------
+
+SyncEvolution is hosted at sf.net. If you want to work
+on the code, just let me know what your SF account is
+and I can provide access to the developers CVS. The
+anonymous CVS mirrors the sources automatically, but
+sometimes is lacking a bit behind.
+
+The most recent version of the Sync4j C++ client library
+is available from CVS, checkout the "3x" module from the CVS at
+ http://forge.objectweb.org/projects/sync4j
+You'll need the files in 3x/client-api/native.
+
+The recommended way to make that library available is by
+installing it into its own directory with shared libraries disabled:
+ configure --prefix=<dir> --disable-shared; make; make install
+and then pointing the configure of SyncEvolution towards it:
+ configure --with-sync4j=<dir> --disable-shared
+Shared versions of the libraries are not recommended at the moment
+because the client libraries API is not expected to be stable.
+
+Alternatively SyncEvolution can work with a source snapshot of
+the client library directly:
+ configure --with-sync4j-src=<dir>
+where <dir> points towards the contents of the 3x/client-api/native
+directory. This mode is required to generate source distributions
+because those are meant to contain a copy of the client library
+code.
+
+
Working with the Code
---------------------
diff --git a/Makefile.am b/Makefile.am
index a8bc6e24..d2171c2b 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -2,6 +2,7 @@
SUBDIRS = src etc
+EXTRA_DIST = HACKING
DISTCHECK_CONFIGURE_FLAGS = --with-sync4j=@SYNC4J@
# binary distribution
diff --git a/Makefile.in b/Makefile.in
index 897dcc2f..01349e49 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -130,6 +130,7 @@ STRIP = @STRIP@
SYNC4J = @SYNC4J@
SYNC4J_CFLAGS = @SYNC4J_CFLAGS@
SYNC4J_LIBS = @SYNC4J_LIBS@
+SYNC4J_SUBDIR = @SYNC4J_SUBDIR@
VERSION = @VERSION@
ac_ct_AR = @ac_ct_AR@
ac_ct_CC = @ac_ct_CC@
@@ -176,6 +177,7 @@ sharedstatedir = @sharedstatedir@
sysconfdir = @sysconfdir@
target_alias = @target_alias@
SUBDIRS = src etc
+EXTRA_DIST = HACKING
DISTCHECK_CONFIGURE_FLAGS = --with-sync4j=@SYNC4J@
all: config.h
$(MAKE) $(AM_MAKEFLAGS) all-recursive
diff --git a/README b/README
index c5968092..ebc54644 100644
--- a/README
+++ b/README
@@ -360,24 +360,10 @@ Compiling from Source
---------------------
To compile the code the 3.x version of the Sync4j C++ client library
-is needed. It is currently only available from CVS, checkout the
-"3x" module from the CVS at
- http://forge.objectweb.org/projects/sync4j
-
-Because that code changes a lot and thus might occasionally be
-incompatible with the current head revision of SyncEvolution,
-please checkout revision
- funambol30b1
-That is the latest revision of the client that I have verified to
-work with the latest SyncEvolution.
-
-The recommended way to make that library available is by
-installing it into its own directory with shared libraries disabled:
- configure --prefix=<dir> --disable-shared; make; make install
-and then pointing the configure of SyncEvolution towards it:
- configure --with-sync4j=<dir> --disable-shared
-Shared versions of the libraries are not recommended at the moment
-because the client libraries API is not expected to be stable.
+is needed. A compatible snapshot of it is included in SyncEvolution
+source packages and will be used automatically. Instructions for
+working with CVS sources directly are contained in the HACKING
+document.
Also needed are the Evolution development files. The code was tested
with Evolution 2.0.4 and 2.4.2.1. It is unclear which other versions
diff --git a/configure b/configure
index 1e9ff854..2a781bc0 100755
--- a/configure
+++ b/configure
@@ -463,7 +463,7 @@ ac_includes_default="\
# include <unistd.h>
#endif"
-ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA CYGPATH_W PACKAGE VERSION ACLOCAL AUTOCONF AUTOMAKE AUTOHEADER MAKEINFO install_sh STRIP ac_ct_STRIP INSTALL_STRIP_PROGRAM mkdir_p AWK SET_MAKE am__leading_dot AMTAR am__tar am__untar SYNC4J_CFLAGS SYNC4J_LIBS SYNC4J PKG_CONFIG ac_pt_PKG_CONFIG EPACKAGE_CFLAGS EPACKAGE_LIBS CXX CXXFLAGS LDFLAGS CPPFLAGS ac_ct_CXX EXEEXT OBJEXT DEPDIR am__include am__quote AMDEP_TRUE AMDEP_FALSE AMDEPBACKSLASH CXXDEPMODE am__fastdepCXX_TRUE am__fastdepCXX_FALSE build build_cpu build_vendor build_os host host_cpu host_vendor host_os CC CFLAGS ac_ct_CC CCDEPMODE am__fastdepCC_TRUE am__fastdepCC_FALSE EGREP LN_S ECHO AR ac_ct_AR RANLIB ac_ct_RANLIB CPP CXXCPP F77 FFLAGS ac_ct_F77 LIBTOOL LIBOBJS LTLIBOBJS'
+ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA CYGPATH_W PACKAGE VERSION ACLOCAL AUTOCONF AUTOMAKE AUTOHEADER MAKEINFO install_sh STRIP ac_ct_STRIP INSTALL_STRIP_PROGRAM mkdir_p AWK SET_MAKE am__leading_dot AMTAR am__tar am__untar SYNC4J_CFLAGS SYNC4J_LIBS SYNC4J SYNC4J_SUBDIR PKG_CONFIG ac_pt_PKG_CONFIG EPACKAGE_CFLAGS EPACKAGE_LIBS CXX CXXFLAGS LDFLAGS CPPFLAGS ac_ct_CXX EXEEXT OBJEXT DEPDIR am__include am__quote AMDEP_TRUE AMDEP_FALSE AMDEPBACKSLASH CXXDEPMODE am__fastdepCXX_TRUE am__fastdepCXX_FALSE build build_cpu build_vendor build_os host host_cpu host_vendor host_os CC CFLAGS ac_ct_CC CCDEPMODE am__fastdepCC_TRUE am__fastdepCC_FALSE EGREP LN_S ECHO AR ac_ct_AR RANLIB ac_ct_RANLIB CPP CXXCPP F77 FFLAGS ac_ct_F77 LIBTOOL LIBOBJS LTLIBOBJS'
ac_subst_files=''
# Initialize some variables set by options.
@@ -1050,6 +1050,9 @@ Optional Packages:
--without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no)
--with-sync4j=<base directory>
specifies location of Sync4j client library
+ --with-sync4j-src=<base directory>
+ specifies location of the Sync4j
+ '3x/client-api/native' source code
--with-gnu-ld assume the C compiler uses GNU ld [default=no]
--with-pic try to use only PIC/non-PIC objects [default=use
both]
@@ -1957,9 +1960,71 @@ am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -'
# Check whether --with-sync4j or --without-sync4j was given.
if test "${with_sync4j+set}" = set; then
withval="$with_sync4j"
- SYNC4J_CFLAGS="-I$withval/include/sync4j/common -I$withval/include/sync4j"; SYNC4J_LIBS="-L$withval/lib"; SYNC4J="$withval"
+ SYNC4J="$withval"
fi;
-SYNC4J_LIBS="${SYNC4J_LIBS} -lsync4j"
+
+
+# Check whether --with-sync4j-src or --without-sync4j-src was given.
+if test "${with_sync4j_src+set}" = set; then
+ withval="$with_sync4j_src"
+ SYNC4JSRC="$withval"
+fi;
+
+if test ! "$SYNC4J"; then
+ if test "$SYNC4JSRC"; then
+ # make a copy of the sources
+ { echo "$as_me:$LINENO: updating the content of src/client-api from $SYNC4JSRC " >&5
+echo "$as_me: updating the content of src/client-api from $SYNC4JSRC " >&6;}
+ mkdir -p src/client-api
+ if cp --link --update --archive $SYNC4JSRC/* src/client-api; then true; else
+ { { echo "$as_me:$LINENO: error: copying $SYNC4JSRC into src/client-api failed " >&5
+echo "$as_me: error: copying $SYNC4JSRC into src/client-api failed " >&2;}
+ { (exit 1); exit 1; }; }
+ fi
+ else
+ if test ! -d src/client-api; then
+ if test -d $srcdir/src/client-api; then
+ mkdir -p src
+ case $srcdir in
+ /*) ln -s $srcdir/src/client-api src/client-api;;
+ *) ln -s $PWD/$srcdir/src/client-api src/client-api;;
+ esac
+ fi
+ fi
+ fi
+
+ if test -x src/client-api/build/autotools/configure; then
+ # use local copy of the sources
+ SYNC4J_SUBDIR=$PWD/src/client-api.build
+
+ SYNC4J_CFLAGS="-I$SYNC4J_SUBDIR/include/common -I$SYNC4J_SUBDIR/include"
+ SYNC4J_LIBS="-L. -lsync4j"
+
+ { echo "$as_me:$LINENO: configuring the client library " >&5
+echo "$as_me: configuring the client library " >&6;}
+ CLIENT_CONFIGURE=$PWD/src/client-api/build/autotools/configure
+ if (mkdir -p $SYNC4J_SUBDIR && cd $SYNC4J_SUBDIR && $CLIENT_CONFIGURE --disable-shared); then true; else
+ { { echo "$as_me:$LINENO: error: configuring client library failed " >&5
+echo "$as_me: error: configuring client library failed " >&2;}
+ { (exit 1); exit 1; }; }
+ fi
+ else
+ { { echo "$as_me:$LINENO: error: either --with-sync4j or --with-sync4j-src have to be used " >&5
+echo "$as_me: error: either --with-sync4j or --with-sync4j-src have to be used " >&2;}
+ { (exit 1); exit 1; }; }
+ fi
+else
+ if test -f $SYNC4J/include/sync4j/common/spds/SyncItem.h; then
+ SYNC4J_CFLAGS="-I$SYNC4J/include/sync4j/common -I$SYNC4J/include/sync4j"
+ SYNC4J_LIBS="-L$SYNC4J/lib -lsync4j"
+ else
+ { { echo "$as_me:$LINENO: error: $SYNC4J does seem to be valid (e.g. include/sync4j/spds/common/SyncItem.h is missing) " >&5
+echo "$as_me: error: $SYNC4J does seem to be valid (e.g. include/sync4j/spds/common/SyncItem.h is missing) " >&2;}
+ { (exit 1); exit 1; }; }
+ fi
+fi
+
+
@@ -4429,7 +4494,7 @@ ia64-*-hpux*)
;;
*-*-irix6*)
# Find out which ABI we are using.
- echo '#line 4432 "configure"' > conftest.$ac_ext
+ echo '#line 4497 "configure"' > conftest.$ac_ext
if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
@@ -5533,7 +5598,7 @@ fi
# Provide some information about the compiler.
-echo "$as_me:5536:" \
+echo "$as_me:5601:" \
"checking for Fortran 77 compiler version" >&5
ac_compiler=`set X $ac_compile; echo $2`
{ (eval echo "$as_me:$LINENO: \"$ac_compiler --version </dev/null >&5\"") >&5
@@ -6565,11 +6630,11 @@ else
-e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:6568: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:6633: $lt_compile\"" >&5)
(eval "$lt_compile" 2>conftest.err)
ac_status=$?
cat conftest.err >&5
- echo "$as_me:6572: \$? = $ac_status" >&5
+ echo "$as_me:6637: \$? = $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
@@ -6798,11 +6863,11 @@ else
-e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:6801: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:6866: $lt_compile\"" >&5)
(eval "$lt_compile" 2>conftest.err)
ac_status=$?
cat conftest.err >&5
- echo "$as_me:6805: \$? = $ac_status" >&5
+ echo "$as_me:6870: \$? = $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
@@ -6858,11 +6923,11 @@ else
-e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:6861: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:6926: $lt_compile\"" >&5)
(eval "$lt_compile" 2>out/conftest.err)
ac_status=$?
cat out/conftest.err >&5
- echo "$as_me:6865: \$? = $ac_status" >&5
+ echo "$as_me:6930: \$? = $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
@@ -9046,7 +9111,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<EOF
-#line 9049 "configure"
+#line 9114 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
@@ -9144,7 +9209,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<EOF
-#line 9147 "configure"
+#line 9212 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
@@ -11321,11 +11386,11 @@ else
-e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:11324: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:11389: $lt_compile\"" >&5)
(eval "$lt_compile" 2>conftest.err)
ac_status=$?
cat conftest.err >&5
- echo "$as_me:11328: \$? = $ac_status" >&5
+ echo "$as_me:11393: \$? = $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
@@ -11381,11 +11446,11 @@ else
-e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:11384: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:11449: $lt_compile\"" >&5)
(eval "$lt_compile" 2>out/conftest.err)
ac_status=$?
cat out/conftest.err >&5
- echo "$as_me:11388: \$? = $ac_status" >&5
+ echo "$as_me:11453: \$? = $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
@@ -12750,7 +12815,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<EOF
-#line 12753 "configure"
+#line 12818 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
@@ -12848,7 +12913,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<EOF
-#line 12851 "configure"
+#line 12916 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
@@ -13675,11 +13740,11 @@ else
-e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:13678: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:13743: $lt_compile\"" >&5)
(eval "$lt_compile" 2>conftest.err)
ac_status=$?
cat conftest.err >&5
- echo "$as_me:13682: \$? = $ac_status" >&5
+ echo "$as_me:13747: \$? = $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
@@ -13735,11 +13800,11 @@ else
-e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:13738: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:13803: $lt_compile\"" >&5)
(eval "$lt_compile" 2>out/conftest.err)
ac_status=$?
cat out/conftest.err >&5
- echo "$as_me:13742: \$? = $ac_status" >&5
+ echo "$as_me:13807: \$? = $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
@@ -15780,11 +15845,11 @@ else
-e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:15783: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:15848: $lt_compile\"" >&5)
(eval "$lt_compile" 2>conftest.err)
ac_status=$?
cat conftest.err >&5
- echo "$as_me:15787: \$? = $ac_status" >&5
+ echo "$as_me:15852: \$? = $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
@@ -16013,11 +16078,11 @@ else
-e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:16016: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:16081: $lt_compile\"" >&5)
(eval "$lt_compile" 2>conftest.err)
ac_status=$?
cat conftest.err >&5
- echo "$as_me:16020: \$? = $ac_status" >&5
+ echo "$as_me:16085: \$? = $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
@@ -16073,11 +16138,11 @@ else
-e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:16076: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:16141: $lt_compile\"" >&5)
(eval "$lt_compile" 2>out/conftest.err)
ac_status=$?
cat out/conftest.err >&5
- echo "$as_me:16080: \$? = $ac_status" >&5
+ echo "$as_me:16145: \$? = $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
@@ -18261,7 +18326,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<EOF
-#line 18264 "configure"
+#line 18329 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
@@ -18359,7 +18424,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<EOF
-#line 18362 "configure"
+#line 18427 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
@@ -20075,6 +20140,7 @@ s,@am__untar@,$am__untar,;t t
s,@SYNC4J_CFLAGS@,$SYNC4J_CFLAGS,;t t
s,@SYNC4J_LIBS@,$SYNC4J_LIBS,;t t
s,@SYNC4J@,$SYNC4J,;t t
+s,@SYNC4J_SUBDIR@,$SYNC4J_SUBDIR,;t t
s,@PKG_CONFIG@,$PKG_CONFIG,;t t
s,@ac_pt_PKG_CONFIG@,$ac_pt_PKG_CONFIG,;t t
s,@EPACKAGE_CFLAGS@,$EPACKAGE_CFLAGS,;t t
diff --git a/configure.in b/configure.in
index 0ac5d461..3c162463 100644
--- a/configure.in
+++ b/configure.in
@@ -7,11 +7,61 @@ AM_CONFIG_HEADER(config.h)
AC_ARG_WITH(sync4j,
AS_HELP_STRING([--with-sync4j=<base directory>],
[specifies location of Sync4j client library]),
- [SYNC4J_CFLAGS="-I$withval/include/sync4j/common -I$withval/include/sync4j"; SYNC4J_LIBS="-L$withval/lib"; SYNC4J="$withval"])
-SYNC4J_LIBS="${SYNC4J_LIBS} -lsync4j"
+ [SYNC4J="$withval"])
+
+AC_ARG_WITH(sync4j-src,
+ AS_HELP_STRING([--with-sync4j-src=<base directory>],
+ [specifies location of the Sync4j '3x/client-api/native' source code]),
+ [SYNC4JSRC="$withval"])
+
+if test ! "$SYNC4J"; then
+ if test "$SYNC4JSRC"; then
+ # make a copy of the sources
+ AC_MSG_NOTICE( [updating the content of src/client-api from $SYNC4JSRC] )
+ mkdir -p src/client-api
+ if cp --link --update --archive $SYNC4JSRC/* src/client-api; then true; else
+ AC_MSG_ERROR( [copying $SYNC4JSRC into src/client-api failed] )
+ fi
+ else
+ if test ! -d src/client-api; then
+ if test -d $srcdir/src/client-api; then
+ mkdir -p src
+ case $srcdir in
+ /*) ln -s $srcdir/src/client-api src/client-api;;
+ *) ln -s $PWD/$srcdir/src/client-api src/client-api;;
+ esac
+ fi
+ fi
+ fi
+
+ if test -x src/client-api/build/autotools/configure; then
+ # use local copy of the sources
+ SYNC4J_SUBDIR=$PWD/src/client-api.build
+
+ SYNC4J_CFLAGS="-I$SYNC4J_SUBDIR/include/common -I$SYNC4J_SUBDIR/include"
+ SYNC4J_LIBS="-L. -lsync4j"
+
+ AC_MSG_NOTICE( [configuring the client library] )
+ CLIENT_CONFIGURE=$PWD/src/client-api/build/autotools/configure
+ if (mkdir -p $SYNC4J_SUBDIR && cd $SYNC4J_SUBDIR && $CLIENT_CONFIGURE --disable-shared); then true; else
+ AC_MSG_ERROR( [configuring client library failed] )
+ fi
+ else
+ AC_MSG_ERROR( [either --with-sync4j or --with-sync4j-src have to be used] )
+ fi
+else
+ if test -f $SYNC4J/include/sync4j/common/spds/SyncItem.h; then
+ SYNC4J_CFLAGS="-I$SYNC4J/include/sync4j/common -I$SYNC4J/include/sync4j"
+ SYNC4J_LIBS="-L$SYNC4J/lib -lsync4j"
+ else
+ AC_MSG_ERROR( [$SYNC4J does seem to be valid (e.g. include/sync4j/spds/common/SyncItem.h is missing)] )
+ fi
+fi
+
AC_SUBST(SYNC4J_CFLAGS)
AC_SUBST(SYNC4J_LIBS)
AC_SUBST(SYNC4J)
+AC_SUBST(SYNC4J_SUBDIR)
pkg_emodules_10="evolution-data-server-1.0 libebook-1.0 libecal-1.0 libedata-book-1.0 libedata-cal-1.0 libedataserver-1.0"
pkg_emodules_11="evolution-data-server-1.1 libebook-1.1 libecal-1.1 libedata-book-1.1 libedata-cal-1.1 libedataserver-1.1"
diff --git a/etc/Makefile.in b/etc/Makefile.in
index 58eac135..9a52cde7 100644
--- a/etc/Makefile.in
+++ b/etc/Makefile.in
@@ -115,6 +115,7 @@ STRIP = @STRIP@
SYNC4J = @SYNC4J@
SYNC4J_CFLAGS = @SYNC4J_CFLAGS@
SYNC4J_LIBS = @SYNC4J_LIBS@
+SYNC4J_SUBDIR = @SYNC4J_SUBDIR@
VERSION = @VERSION@
ac_ct_AR = @ac_ct_AR@
ac_ct_CC = @ac_ct_CC@
diff --git a/src/.cvsignore b/src/.cvsignore
index e23ea16b..ec4c5301 100644
--- a/src/.cvsignore
+++ b/src/.cvsignore
@@ -5,3 +5,5 @@ syncevolution
test
*.log
synclog.txt
+client-api
+client-api.build
diff --git a/src/Makefile.am b/src/Makefile.am
index adb05676..f4c180ed 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -6,6 +6,8 @@ AM_CFLAGS = -Wall -Werror -Wno-return-type
bin_PROGRAMS = syncevolution
bin_SCRIPTS = normalize_vcard.pl
+EXTRA_DIST = normalize_vcard.pl
+
CORE_SOURCES = \
EvolutionContactSource.h \
EvolutionSmartPtr.h \
@@ -27,7 +29,8 @@ syncevolution_LDADD = $(CORE_LDADD)
# because some of them are known to fail and thus
# prevent a successful "distcheck"
# TESTS = test
-check_PROGRAMS = test
+# check_PROGRAMS = test
+EXTRA_PROGRAMS = test
test_SOURCES = \
TestMain.cpp \
TestEvolution.cpp \
@@ -36,5 +39,30 @@ test_SOURCES = \
test_CFLAGS = `cppunit-config --cflags`
test_LDFLAGS = `cppunit-config --libs` $(CORE_LDADD)
+# SYNC4J_SUBDIR specifies the directory where we compile
+# the client library by invoking make there.
+# Installing its source is done explicitly.
+#
+# The path may be empty!
+SYNC4J_SUBDIR = @SYNC4J_SUBDIR@
+BUILT_SOURCES = $(SYNC4J_SUBDIR)/all libsync4j.la
+CLEANFILES = libsync4j.la .libs/libsync4j.a .libs/libsync4j.la
+
+clean distclean mostlyclean distdir : % : $(SYNC4J_SUBDIR)/%
+
+$(SYNC4J_SUBDIR)/distclean :
+ rm -rf $(SYNC4J_SUBDIR) client-api
+
+$(SYNC4J_SUBDIR)/distdir :
+ [ ! "$(SYNC4J_SUBDIR)" ] || ( cp -a client-api $(distdir) && ( find $(distdir)/client-api -name .libs -o -name "*.o" -o -name "*.lo" -o -name CVS -name autom4te.cache | xargs rm -rf ) )
+
+$(SYNC4J_SUBDIR)/% :
+ [ ! "$(SYNC4J_SUBDIR)" ] || ( cd ${@D} && $(MAKE) ${@F} )
+
+libsync4j.la : $(SYNC4J_SUBDIR)/all
+ mkdir -p .libs
+ cp -a $(SYNC4J_SUBDIR)/src/.libs/libsync4j* .libs
+ cp -a $(SYNC4J_SUBDIR)/src/libsync4j.la .
+
valgrind : test
valgrind --leak-check=yes --suppressions=valgrind.supp ./test
diff --git a/src/Makefile.in b/src/Makefile.in
index 1f5039aa..bdafcfb1 100644
--- a/src/Makefile.in
+++ b/src/Makefile.in
@@ -40,7 +40,7 @@ POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
bin_PROGRAMS = syncevolution$(EXEEXT)
-check_PROGRAMS = test$(EXEEXT)
+EXTRA_PROGRAMS = test$(EXEEXT)
subdir = src
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
@@ -147,6 +147,13 @@ STRIP = @STRIP@
SYNC4J = @SYNC4J@
SYNC4J_CFLAGS = @SYNC4J_CFLAGS@
SYNC4J_LIBS = @SYNC4J_LIBS@
+
+# SYNC4J_SUBDIR specifies the directory where we compile
+# the client library by invoking make there.
+# Installing its source is done explicitly.
+#
+# The path may be empty!
+SYNC4J_SUBDIR = @SYNC4J_SUBDIR@
VERSION = @VERSION@
ac_ct_AR = @ac_ct_AR@
ac_ct_CC = @ac_ct_CC@
@@ -197,6 +204,7 @@ INCLUDES = @EPACKAGE_CFLAGS@ @SYNC4J_CFLAGS@
# Please remove '-Wno-return-type' when Evo fixes the warning in their headers.
AM_CFLAGS = -Wall -Werror -Wno-return-type
bin_SCRIPTS = normalize_vcard.pl
+EXTRA_DIST = normalize_vcard.pl
CORE_SOURCES = \
EvolutionContactSource.h \
EvolutionSmartPtr.h \
@@ -220,7 +228,10 @@ test_SOURCES = \
test_CFLAGS = `cppunit-config --cflags`
test_LDFLAGS = `cppunit-config --libs` $(CORE_LDADD)
-all: all-am
+BUILT_SOURCES = $(SYNC4J_SUBDIR)/all libsync4j.la
+CLEANFILES = libsync4j.la .libs/libsync4j.a .libs/libsync4j.la
+all: $(BUILT_SOURCES)
+ $(MAKE) $(AM_MAKEFLAGS) all-am
.SUFFIXES:
.SUFFIXES: .cpp .lo .o .obj
@@ -281,13 +292,6 @@ clean-binPROGRAMS:
echo " rm -f $$p $$f"; \
rm -f $$p $$f ; \
done
-
-clean-checkPROGRAMS:
- @list='$(check_PROGRAMS)'; for p in $$list; do \
- f=`echo $$p|sed 's/$(EXEEXT)$$//'`; \
- echo " rm -f $$p $$f"; \
- rm -f $$p $$f ; \
- done
syncevolution$(EXEEXT): $(syncevolution_OBJECTS) $(syncevolution_DEPENDENCIES)
@rm -f syncevolution$(EXEEXT)
$(CXXLINK) $(syncevolution_LDFLAGS) $(syncevolution_OBJECTS) $(syncevolution_LDADD) $(LIBS)
@@ -434,14 +438,15 @@ distdir: $(DISTFILES)
fi; \
done
check-am: all-am
- $(MAKE) $(AM_MAKEFLAGS) $(check_PROGRAMS)
-check: check-am
+check: $(BUILT_SOURCES)
+ $(MAKE) $(AM_MAKEFLAGS) check-am
all-am: Makefile $(PROGRAMS) $(SCRIPTS)
installdirs:
for dir in "$(DESTDIR)$(bindir)" "$(DESTDIR)$(bindir)"; do \
test -z "$$dir" || $(mkdir_p) "$$dir"; \
done
-install: install-am
+install: $(BUILT_SOURCES)
+ $(MAKE) $(AM_MAKEFLAGS) install-am
install-exec: install-exec-am
install-data: install-data-am
uninstall: uninstall-am
@@ -458,6 +463,7 @@ install-strip:
mostlyclean-generic:
clean-generic:
+ -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
distclean-generic:
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
@@ -465,10 +471,10 @@ distclean-generic:
maintainer-clean-generic:
@echo "This command is intended for maintainers to use"
@echo "it deletes files that may require special tools to rebuild."
+ -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES)
clean: clean-am
-clean-am: clean-binPROGRAMS clean-checkPROGRAMS clean-generic \
- clean-libtool mostlyclean-am
+clean-am: clean-binPROGRAMS clean-generic clean-libtool mostlyclean-am
distclean: distclean-am
-rm -rf ./$(DEPDIR)
@@ -518,18 +524,34 @@ uninstall-am: uninstall-binPROGRAMS uninstall-binSCRIPTS \
uninstall-info-am
.PHONY: CTAGS GTAGS all all-am check check-am clean clean-binPROGRAMS \
- clean-checkPROGRAMS clean-generic clean-libtool ctags \
- distclean distclean-compile distclean-generic \
- distclean-libtool distclean-tags distdir dvi dvi-am html \
- html-am info info-am install install-am install-binPROGRAMS \
- install-binSCRIPTS install-data install-data-am install-exec \
- install-exec-am install-info install-info-am install-man \
- install-strip installcheck installcheck-am installdirs \
- maintainer-clean maintainer-clean-generic mostlyclean \
- mostlyclean-compile mostlyclean-generic mostlyclean-libtool \
- pdf pdf-am ps ps-am tags uninstall uninstall-am \
- uninstall-binPROGRAMS uninstall-binSCRIPTS uninstall-info-am
-
+ clean-generic clean-libtool ctags distclean distclean-compile \
+ distclean-generic distclean-libtool distclean-tags distdir dvi \
+ dvi-am html html-am info info-am install install-am \
+ install-binPROGRAMS install-binSCRIPTS install-data \
+ install-data-am install-exec install-exec-am install-info \
+ install-info-am install-man install-strip installcheck \
+ installcheck-am installdirs maintainer-clean \
+ maintainer-clean-generic mostlyclean mostlyclean-compile \
+ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
+ tags uninstall uninstall-am uninstall-binPROGRAMS \
+ uninstall-binSCRIPTS uninstall-info-am
+
+
+clean distclean mostlyclean distdir : % : $(SYNC4J_SUBDIR)/%
+
+$(SYNC4J_SUBDIR)/distclean :
+ rm -rf $(SYNC4J_SUBDIR) client-api
+
+$(SYNC4J_SUBDIR)/distdir :
+ [ ! "$(SYNC4J_SUBDIR)" ] || ( cp -a client-api $(distdir) && ( find $(distdir)/client-api -name .libs -o -name "*.o" -o -name "*.lo" -o -name CVS -name autom4te.cache | xargs rm -rf ) )
+
+$(SYNC4J_SUBDIR)/% :
+ [ ! "$(SYNC4J_SUBDIR)" ] || ( cd ${@D} && $(MAKE) ${@F} )
+
+libsync4j.la : $(SYNC4J_SUBDIR)/all
+ mkdir -p .libs
+ cp -a $(SYNC4J_SUBDIR)/src/.libs/libsync4j* .libs
+ cp -a $(SYNC4J_SUBDIR)/src/libsync4j.la .
valgrind : test
valgrind --leak-check=yes --suppressions=valgrind.supp ./test