diff options
author | Patrick Ohly <patrick.ohly@gmx.de> | 2006-03-12 09:48:59 +0000 |
---|---|---|
committer | Patrick Ohly <patrick.ohly@gmx.de> | 2006-03-12 09:48:59 +0000 |
commit | 7af6713cd7d33c3944a68f1300b5118978c49864 (patch) | |
tree | 8265c0336ba616c677d007fb52860149a4e5da80 | |
parent | 1301d3edac049d4e6ad75be96a7faffeb0dce1fa (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-- | .cvsignore | 1 | ||||
-rw-r--r-- | HACKING | 31 | ||||
-rw-r--r-- | Makefile.am | 1 | ||||
-rw-r--r-- | Makefile.in | 2 | ||||
-rw-r--r-- | README | 22 | ||||
-rwxr-xr-x | configure | 128 | ||||
-rw-r--r-- | configure.in | 54 | ||||
-rw-r--r-- | etc/Makefile.in | 1 | ||||
-rw-r--r-- | src/.cvsignore | 2 | ||||
-rw-r--r-- | src/Makefile.am | 30 | ||||
-rw-r--r-- | src/Makefile.in | 74 |
11 files changed, 268 insertions, 78 deletions
@@ -6,3 +6,4 @@ config.status libtool stamp-h1 Makefile +syncevolution-*.tar.gz @@ -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 @@ -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 @@ -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 |