configure: add test for default xapian backend

This is mainly for the test suite.  We already expect the tests to be
run in the same environment as configure was run, at least to get the
name of the python interpreter. So we are not really imposing a new
restriction.
This commit is contained in:
David Bremner 2016-04-08 22:49:49 -03:00
parent 45a0ab9e84
commit deb4e5567c
2 changed files with 36 additions and 1 deletions

26
configure vendored
View file

@ -371,7 +371,25 @@ if [ ${have_xapian} = "1" ]; then
esac esac
fi fi
default_xapian_backend=""
if [ ${have_xapian} = "1" ]; then
printf "Testing default Xapian backend... "
cat >_default_backend.cc <<EOF
#include <xapian.h>
int main(int argc, char** argv) {
Xapian::WritableDatabase db("test.db",Xapian::DB_CREATE_OR_OPEN);
}
EOF
${CXX} ${CXXLAGS} ${xapian_cxxflags} _default_backend.cc -o _default_backend ${xapian_ldflags}
./_default_backend
if [ -f test.db/iamglass ]; then
default_xapian_backend=glass
else
default_xapian_backend=chert
fi
printf "${default_xapian_backend}\n";
rm -rf test.db _default_backend _default_backend.cc
fi
# we need to have a version >= 2.6.5 to avoid a crypto bug. We need # we need to have a version >= 2.6.5 to avoid a crypto bug. We need
# 2.6.7 for permissive "From " header handling. # 2.6.7 for permissive "From " header handling.
GMIME_MINVER=2.6.7 GMIME_MINVER=2.6.7
@ -1001,6 +1019,9 @@ LINKER_RESOLVES_LIBRARY_DEPENDENCIES = ${linker_resolves_library_dependencies}
XAPIAN_CXXFLAGS = ${xapian_cxxflags} XAPIAN_CXXFLAGS = ${xapian_cxxflags}
XAPIAN_LDFLAGS = ${xapian_ldflags} XAPIAN_LDFLAGS = ${xapian_ldflags}
# Which backend will Xapian use by default?
DEFAULT_XAPIAN_BACKEND = ${default_xapian_backend}
# Flags needed to compile and link against GMime # Flags needed to compile and link against GMime
GMIME_CFLAGS = ${gmime_cflags} GMIME_CFLAGS = ${gmime_cflags}
GMIME_LDFLAGS = ${gmime_ldflags} GMIME_LDFLAGS = ${gmime_ldflags}
@ -1077,6 +1098,9 @@ cat > sh.config <<EOF
# Whether the Xapian version in use supports compaction # Whether the Xapian version in use supports compaction
NOTMUCH_HAVE_XAPIAN_COMPACT=${have_xapian_compact} NOTMUCH_HAVE_XAPIAN_COMPACT=${have_xapian_compact}
# Which backend will Xapian use by default?
NOTMUCH_DEFAULT_XAPIAN_BACKEND=${default_xapian_backend}
# do we have man pages? # do we have man pages?
NOTMUCH_HAVE_MAN=$((have_sphinx)) NOTMUCH_HAVE_MAN=$((have_sphinx))

View file

@ -1327,6 +1327,17 @@ test -z "$NO_PYTHON" && test_set_prereq PYTHON
ln -s x y 2>/dev/null && test -h y 2>/dev/null && test_set_prereq SYMLINKS ln -s x y 2>/dev/null && test -h y 2>/dev/null && test_set_prereq SYMLINKS
rm -f y rm -f y
# convert variable from configure to more convenient form
case "$NOTMUCH_DEFAULT_XAPIAN_BACKEND" in
glass)
db_ending=glass
;;
chert)
db_ending=DB
;;
*)
error "Unknown Xapian backend $NOTMUCH_DEFAULT_XAPIAN_BACKEND"
esac
# declare prerequisites for external binaries used in tests # declare prerequisites for external binaries used in tests
test_declare_external_prereq dtach test_declare_external_prereq dtach
test_declare_external_prereq emacs test_declare_external_prereq emacs