2008-07-29 23:06:11 +02:00
|
|
|
dnl Invoke autogen.sh to produce a configure script.
|
2005-10-08 14:03:24 +02:00
|
|
|
|
2006-03-11 20:23:43 +01:00
|
|
|
AC_INIT(src/syncevolution.cpp)
|
2008-08-03 22:49:58 +02:00
|
|
|
AM_INIT_AUTOMAKE(syncevolution, 0.8-beta2)
|
2005-10-08 14:03:24 +02:00
|
|
|
AM_CONFIG_HEADER(config.h)
|
2007-03-11 23:13:13 +01:00
|
|
|
AC_LIBTOOL_DLOPEN
|
2005-10-08 14:03:24 +02:00
|
|
|
|
2008-03-08 11:02:33 +01:00
|
|
|
dnl default device type (see AC_DEFINE below)
|
|
|
|
DEVICE_TYPE=desktop
|
|
|
|
|
2006-12-01 23:50:17 +01:00
|
|
|
# command used to configure client library, including options
|
|
|
|
CLIENT_CONFIGURE=$PWD/src/client-api/build/autotools/configure
|
|
|
|
|
2008-07-21 21:12:32 +02:00
|
|
|
AC_ARG_WITH(funambol,
|
|
|
|
AS_HELP_STRING([--with-funambol=<base directory>],
|
|
|
|
[specifies location of Funambol client library]),
|
|
|
|
[FUNAMBOL="$withval"])
|
|
|
|
|
2005-10-08 14:03:24 +02:00
|
|
|
AC_ARG_WITH(sync4j,
|
2008-07-21 21:12:32 +02:00
|
|
|
AS_HELP_STRING([--with-funambol=<base directory>],
|
|
|
|
[alias for --with-funambol]),
|
|
|
|
[FUNAMBOL="$withval"])
|
|
|
|
|
|
|
|
AC_ARG_WITH(funambol-src,
|
|
|
|
AS_HELP_STRING([--with-funambol-src=<base directory>],
|
|
|
|
[specifies location of the Funambol '3x/client-api/native' source code]),
|
|
|
|
[FUNAMBOLSRC="$withval"])
|
2006-03-12 10:48:59 +01:00
|
|
|
|
|
|
|
AC_ARG_WITH(sync4j-src,
|
|
|
|
AS_HELP_STRING([--with-sync4j-src=<base directory>],
|
2008-07-21 21:12:32 +02:00
|
|
|
[alias for --with-funambol-src]),
|
|
|
|
[FUNAMBOLSRC="$withval"])
|
2006-03-12 10:48:59 +01:00
|
|
|
|
2007-03-11 23:13:13 +01:00
|
|
|
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")
|
|
|
|
|
2006-12-01 23:50:17 +01:00
|
|
|
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")
|
|
|
|
|
2007-01-21 17:14:48 +01:00
|
|
|
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")
|
|
|
|
|
2007-03-24 16:47:22 +01:00
|
|
|
# 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])
|
2008-03-08 11:02:33 +01:00
|
|
|
DEVICE_TYPE=Maemo
|
2007-03-25 22:19:42 +02:00
|
|
|
MODIFY_SYNCCOMPARE='-e "s/use encoding/#use encoding/;" -e "s/:utf8//;"'])
|
2007-03-24 16:47:22 +01:00
|
|
|
AC_SUBST(MODIFY_SYNCCOMPARE)
|
|
|
|
|
2008-05-02 21:05:37 +02:00
|
|
|
AC_CHECK_HEADERS(signal.h dlfcn.h)
|
2007-01-03 21:12:47 +01:00
|
|
|
|
2006-12-01 23:50:17 +01:00
|
|
|
# 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?")
|
|
|
|
CPPUNIT_TESTS=client-test
|
|
|
|
fi
|
|
|
|
AC_SUBST(CPPUNIT_CXXFLAGS)
|
|
|
|
AC_SUBST(CPPUNIT_LDFLAGS)
|
|
|
|
AC_SUBST(CPPUNIT_TESTS)
|
|
|
|
|
|
|
|
if test $enable_unit_tests == "yes"; then
|
|
|
|
CLIENT_CONFIGURE="$CLIENT_CONFIGURE --enable-unit-tests"
|
|
|
|
AC_DEFINE(ENABLE_UNIT_TESTS, 1, [enable unit tests inside the library's source code])
|
|
|
|
fi
|
|
|
|
if test $enable_integration_tests == "yes"; then
|
|
|
|
CLIENT_CONFIGURE="$CLIENT_CONFIGURE --enable-integration-tests"
|
|
|
|
AC_DEFINE(ENABLE_INTEGRATION_TESTS, 1, [enable unit tests outside of the library's source code])
|
|
|
|
fi
|
|
|
|
|
2007-01-21 17:14:48 +01:00
|
|
|
if test $enable_static_cxx == "yes"; then
|
|
|
|
LIBS="$LIBS -L."
|
|
|
|
CORE_LDADD_DEP=libstdc++.a
|
|
|
|
fi
|
|
|
|
AC_SUBST(CORE_LDADD_DEP)
|
|
|
|
|
2007-03-26 21:09:12 +02:00
|
|
|
# preserve src/client-api by default
|
|
|
|
CLEAN_CLIENT_SRC=
|
2008-07-21 21:12:32 +02:00
|
|
|
FUNAMBOL_LIB=$PWD/src/client-api.build/src/libfunambol.la
|
2008-04-06 12:07:04 +02:00
|
|
|
|
2007-03-26 21:09:12 +02:00
|
|
|
AC_SUBST(CLEAN_CLIENT_SRC)
|
|
|
|
|
2008-07-21 21:12:32 +02:00
|
|
|
if test ! "$FUNAMBOL"; then
|
|
|
|
if test "$FUNAMBOLSRC"; then
|
2007-03-26 21:09:12 +02:00
|
|
|
# make a copy of the sources, remove it during maintainer-clean and distclean
|
|
|
|
CLEAN_CLIENT_SRC=client-api
|
|
|
|
|
2008-07-21 21:12:32 +02:00
|
|
|
AC_MSG_NOTICE( [updating the content of src/client-api from $FUNAMBOLSRC] )
|
2006-03-12 10:48:59 +01:00
|
|
|
mkdir -p src/client-api
|
2007-08-19 21:11:20 +02:00
|
|
|
if cp --help 2>/dev/null | grep >/dev/null -e "--update"; then
|
|
|
|
# GNU cp
|
|
|
|
cp_opts="--update --archive"
|
|
|
|
else
|
|
|
|
cp_opts="-r"
|
|
|
|
fi
|
|
|
|
|
2008-07-21 21:12:32 +02:00
|
|
|
if cp $cp_opts $FUNAMBOLSRC/* src/client-api; then
|
2006-08-06 16:42:13 +02:00
|
|
|
( cd src/client-api/build/autotools && ( test -f configure || sh autogen.sh ) )
|
|
|
|
else
|
2008-07-21 21:12:32 +02:00
|
|
|
AC_MSG_ERROR( [copying $FUNAMBOLSRC into src/client-api failed] )
|
2006-03-12 10:48:59 +01:00
|
|
|
fi
|
2007-01-04 21:52:38 +01:00
|
|
|
find src/client-api/build/autotools/win* -name output | xargs rm -rf
|
2006-06-10 14:21:35 +02:00
|
|
|
find src/client-api/build/autotools/include/* src/client-api/build/autotools/src/* -type d | xargs rm -rf
|
|
|
|
find src/client-api -name "*~*" -o -name ".#*" -o -name "*.orig" -o -name "stamp-*" -o -name "*.o" -o -name "*.lo" -o -name .libs -o -name autom4te.cache -o -name config.status | xargs rm -rf
|
2006-03-12 10:48:59 +01:00
|
|
|
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
|
|
|
|
|
2006-04-06 19:02:43 +02:00
|
|
|
if test -f src/client-api/build/autotools/configure; then
|
|
|
|
chmod u+x src/client-api/build/autotools/configure src/client-api/build/autotools/config.sub src/client-api/build/autotools/config.guess
|
|
|
|
|
2008-04-06 12:07:04 +02:00
|
|
|
# use local copy of the sources, with dependencies
|
|
|
|
# to trigger building the client library
|
2008-07-21 21:12:32 +02:00
|
|
|
FUNAMBOL_SUBDIR=$PWD/src/client-api.build
|
|
|
|
FUNAMBOL_DEP=$PWD/src/client-api.build/src/libfunambol.la
|
2006-03-12 10:48:59 +01:00
|
|
|
|
2008-07-21 21:12:32 +02:00
|
|
|
FUNAMBOL_CFLAGS="-I$FUNAMBOL_SUBDIR/include/posix -I$FUNAMBOL_SUBDIR/include/common -I$FUNAMBOL_SUBDIR/include -I$FUNAMBOL_SUBDIR/test"
|
|
|
|
FUNAMBOL_LIBS="-L$FUNAMBOL_SUBDIR/src -lfunambol"
|
2006-03-12 10:48:59 +01:00
|
|
|
|
|
|
|
AC_MSG_NOTICE( [configuring the client library] )
|
2008-07-12 20:44:15 +02:00
|
|
|
# Passing some specific configure arguments to the client library's
|
|
|
|
# configure makes sense (e.g., --enable-unit-tests) or is
|
|
|
|
# required (--disable-dependency-tracking when compiling for
|
|
|
|
# multiple architectures on Mac OS X).
|
|
|
|
cxx_lib_args=`for i in --disable-dependency-tracking --enable-unit-tests; do
|
|
|
|
if echo $ac_configure_args | grep -e $i >/dev/null; then
|
|
|
|
echo $i;
|
|
|
|
fi;
|
|
|
|
done`
|
2008-07-29 23:06:11 +02:00
|
|
|
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
|
2006-03-12 10:48:59 +01:00
|
|
|
AC_MSG_ERROR( [configuring client library failed] )
|
|
|
|
fi
|
|
|
|
else
|
2008-07-21 21:12:32 +02:00
|
|
|
AC_MSG_ERROR( [either --with-funambol or --with-funambol-src have to be used] )
|
2006-03-12 10:48:59 +01:00
|
|
|
fi
|
|
|
|
else
|
2008-07-21 21:12:32 +02:00
|
|
|
if test -f $FUNAMBOL/include/funambol/common/spds/SyncItem.h; then
|
|
|
|
FUNAMBOL_CFLAGS="-I$FUNAMBOL/include/funambol/posix -I$FUNAMBOL/include/funambol/common -I$FUNAMBOL/include/funambol"
|
|
|
|
FUNAMBOL_LIBS="-L$FUNAMBOL/lib -lfunambol"
|
2006-03-12 10:48:59 +01:00
|
|
|
else
|
2008-07-21 21:12:32 +02:00
|
|
|
AC_MSG_ERROR( [$FUNAMBOL does seem to be valid (e.g. include/funambol/spds/common/SyncItem.h is missing)] )
|
2006-03-12 10:48:59 +01:00
|
|
|
fi
|
|
|
|
fi
|
|
|
|
|
2008-07-21 21:12:32 +02:00
|
|
|
AC_SUBST(FUNAMBOL_CFLAGS)
|
|
|
|
AC_SUBST(FUNAMBOL_LIBS)
|
|
|
|
AC_SUBST(FUNAMBOL)
|
|
|
|
AC_SUBST(FUNAMBOL_SUBDIR)
|
|
|
|
AC_SUBST(FUNAMBOL_DEP)
|
|
|
|
AC_SUBST(FUNAMBOL_LIB)
|
|
|
|
AC_SUBST(FUNAMBOLSRC)
|
2005-10-08 14:03:24 +02:00
|
|
|
|
2007-08-13 22:46:49 +02:00
|
|
|
dnl select backends
|
2008-07-28 22:48:26 +02:00
|
|
|
BACKENDS=""
|
2008-07-29 23:06:11 +02:00
|
|
|
|
2008-07-30 19:30:10 +02:00
|
|
|
# AC_ARG_ENABLE_BACKEND(BACKEND, DIR, HELP-STRING, [ACTION-IF-GIVEN],
|
2008-07-28 22:48:26 +02:00
|
|
|
# [ACTION-IF-NOT-GIVEN])
|
|
|
|
#
|
|
|
|
# Same as AC_ARG_ENABLE(), but also tells configure that the
|
|
|
|
# backend exists.
|
2008-07-30 19:30:10 +02:00
|
|
|
#
|
|
|
|
# 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"
|
2008-07-28 22:48:26 +02:00
|
|
|
AC_DEFUN([AC_ARG_ENABLE_BACKEND],
|
|
|
|
[
|
2008-07-30 19:30:10 +02:00
|
|
|
AC_ARG_ENABLE($1, $3, $4, $5)
|
2008-07-28 22:48:26 +02:00
|
|
|
BACKENDS="$BACKENDS $1"
|
2008-07-30 22:11:12 +02:00
|
|
|
BACKEND_DEFINES="$BACKEND_DEFINES ENABLE_`echo $1 | tr a-z A-Z`"
|
2008-07-30 19:30:10 +02:00
|
|
|
for source in $2; do
|
|
|
|
SYNCSOURCES="$SYNCSOURCES backends/$2/sync$1.la"
|
|
|
|
done
|
2008-07-28 22:48:26 +02:00
|
|
|
])
|
2008-07-30 19:30:10 +02:00
|
|
|
AC_SUBST(SYNCSOURCES)
|
2008-07-30 22:11:12 +02:00
|
|
|
AC_SUBST(BACKEND_DEFINES)
|
2008-07-28 22:48:26 +02:00
|
|
|
|
2008-07-29 23:06:11 +02:00
|
|
|
dnl src/backends/*/configure-sub.in and configure-post.in follow
|