Patch by Robert Scheck <robert@fedoraproject.org> for zarafa >= 6.40.0, which adds
some more flexibility to detect CLucene headers and libraries. Right now, Zarafa is
linking static to CLucene, which is a no-go at Fedora. That means CLucene on Fedora
doesn't provide static library files at all. To keep Zarafa's behaviour for their
own builds, the patch looks for "libclucene.a" and links static; otherwise (Fedora)
it links dynamically using -lclucene. More details about static linking and Fedora:
http://fedoraproject.org/wiki/Packaging:Guidelines#Packaging_Static_Libraries
Zarafa's internal CLucene build for Zarafa seems to violate upstream's decision, as
CLucene upstream decided with 0.9.20 release to put "CLucene/clucene-config.h" file
into /usr/lib{,64}/CLucene/clucene-config.h because of arch-specific values. Fedora
is shipping CLucene using upstream's decision, thus ./configure needs to handle the
include path with GCC CPP, too. To avoid CPP telling "rejected by the preprocessor"
as of the missing include path (/usr/include is standard, but /usr/lib{,64} isn't),
$CXXCPP needs to be temporarily extended to contain this special path as well.
--- zarafa-6.40.0/configure.ac 2010-06-06 14:47:37.000000000 +0200
+++ zarafa-6.40.0/configure.ac.clucene 2010-06-06 15:16:18.000000000 +0200
@@ -394,17 +394,26 @@
[CLUCENE_INCLUDE_PREFIX=${withval}],[CLUCENE_INCLUDE_PREFIX=/usr/include])
cflags_keep=$CFLAGS
cxxflags_keep=$CXXFLAGS
+cxxcpp_keep=$CXXCPP
if test "x$CLUCENE_LIB_PREFIX" != "x"; then
CFLAGS="$CFLAGS -I$CLUCENE_LIB_PREFIX"
CXXFLAGS="$CFLAGS -I$CLUCENE_LIB_PREFIX"
+ CXXCPP="$CXXCPP -I$CLUCENE_LIB_PREFIX"
fi
if test "x$CLUCENE_INCLUDE_PREFIX" != "x"; then
CFLAGS="$CFLAGS -I$CLUCENE_INCLUDE_PREFIX"
CXXFLAGS="$CFLAGS -I$CLUCENE_INCLUDE_PREFIX"
+ CXXCPP="$CXXCPP -I$CLUCENE_INCLUDE_PREFIX"
+fi
+if test -e "${CLUCENE_LIB_PREFIX}/libclucene.a"; then
+ AC_CHECK_LIB(clucene, [open],
+ [ CLUCENE_LIBS="${CLUCENE_LIB_PREFIX}/libclucene.a" ],
+ [ WITH_CLUCENE=no ])
+else
+ AC_CHECK_LIB(clucene, [open],
+ [ CLUCENE_LIBS="-lclucene" ],
+ [ WITH_CLUCENE=no ])
fi
-AC_CHECK_LIB(clucene, [open],
- [ CLUCENE_LIBS="${CLUCENE_LIB_PREFIX}/libclucene.a" ],
- [ WITH_CLUCENE=no ])
AC_CHECK_HEADERS([CLucene.h],
[ CLUCENE_CFLAGS="-DLUCENE_DISABLE_MEMTRACKING" ],
[ WITH_CLUCENE=no ])
@@ -419,6 +428,7 @@
AC_SUBST(CLUCENE_LIBS)
CFLAGS=$cflags_keep
CXXFLAGS=$cxxflags_keep
+CXXCPP=$cxxcpp_keep
AC_LANG_POP
# Check for google perftools tcmalloc availability