PREFIX=/usr/local
LIBDIR=
WITH_DOCS=1
+WITH_API_DOCS=1
WITH_EMACS=1
WITH_BASH=1
WITH_RUBY=1
WITH_ZSH=1
+WITH_RETRY_LOCK=1
usage ()
{
--without-feature) :
--without-bash-completion Do not install bash completions files
- --without-docs Do not install documentation and man pages
+ --without-docs Do not install documentation
+ --without-api-docs Do not install API man page
--without-emacs Do not install lisp file
--without-ruby Do not install ruby bindings
--without-zsh-completion Do not install zsh completions files
+ --without-retry-lock Do not use blocking xapian opens, even if available
Additional options are accepted for compatibility with other
configure-script calling conventions, but don't do anything yet:
elif [ "${option%%=*}" = '--with-docs' ]; then
if [ "${option#*=}" = 'no' ]; then
WITH_DOCS=0
+ WITH_API_DOCS=0
else
WITH_DOCS=1
fi
elif [ "${option}" = '--without-docs' ] ; then
WITH_DOCS=0
+ WITH_API_DOCS=0
+ elif [ "${option%%=*}" = '--with-api-docs' ]; then
+ if [ "${option#*=}" = 'no' ]; then
+ WITH_API_DOCS=0
+ else
+ WITH_API_DOCS=1
+ fi
+ elif [ "${option}" = '--without-api-docs' ] ; then
+ WITH_API_DOCS=0
elif [ "${option%%=*}" = '--with-emacs' ]; then
if [ "${option#*=}" = 'no' ]; then
WITH_EMACS=0
fi
elif [ "${option}" = '--without-ruby' ] ; then
WITH_RUBY=0
+ elif [ "${option%%=*}" = '--with-retry-lock' ]; then
+ if [ "${option#*=}" = 'no' ]; then
+ WITH_RETRY_LOCK=0
+ else
+ WITH_RETRY_LOCK=1
+ fi
+ elif [ "${option}" = '--without-retry-lock' ] ; then
+ WITH_RETRY_LOCK=0
elif [ "${option%%=*}" = '--with-zsh-completion' ]; then
if [ "${option#*=}" = 'no' ]; then
WITH_ZSH=0
rm -f _field_processor.o _field_processor.cc
default_xapian_backend=""
+ # DB_RETRY_LOCK is only supported on Xapian > 1.3.2
+ have_xapian_db_retry_lock=0
+ if [ $WITH_RETRY_LOCK = "1" ]; then
+ printf "Checking for Xapian lock retry support... "
+ cat>_retry.cc<<EOF
+#include <xapian.h>
+int flag = Xapian::DB_RETRY_LOCK;
+EOF
+ if ${CXX} ${CXXFLAGS_for_sh} ${xapian_cxxflags} -c _retry.cc -o _retry.o > /dev/null 2>&1
+ then
+ have_xapian_db_retry_lock=1
+ printf "Yes.\n"
+ else
+ printf "No. (optional)\n"
+ fi
+ rm -f _retry.o _retry.cc
+ fi
+
printf "Testing default Xapian backend... "
cat >_default_backend.cc <<EOF
#include <xapian.h>
fi
have_doxygen=0
-if [ $WITH_DOCS = "1" ] ; then
+if [ $WITH_API_DOCS = "1" ] ; then
printf "Checking if doxygen is available... "
if command -v doxygen > /dev/null; then
printf "Yes.\n"
fi
if [ $have_xapian -eq 0 ]; then
echo " Xapian library (including development files such as headers)"
- echo " http://xapian.org/"
+ echo " https://xapian.org/"
fi
if [ $have_zlib -eq 0 ]; then
echo " zlib library (>= version 1.2.5.2, including development files such as headers)"
fi
if [ $have_talloc -eq 0 ]; then
echo " The talloc library (including development files such as headers)"
- echo " http://talloc.samba.org/"
+ echo " https://talloc.samba.org/"
echo
fi
cat <<EOF
# Whether the Xapian version in use supports field processors
HAVE_XAPIAN_FIELD_PROCESSOR = ${have_xapian_field_processor}
+# Whether the Xapian version in use supports DB_RETRY_LOCK
+HAVE_XAPIAN_DB_RETRY_LOCK = ${have_xapian_db_retry_lock}
+
# Whether the getpwuid_r function is standards-compliant
# (if not, then notmuch will #define _POSIX_PTHREAD_SEMANTICS
# to enable the standards-compliant version -- needed for Solaris)
WITH_ZSH = ${WITH_ZSH}
# Combined flags for compiling and linking against all of the above
-CONFIGURE_CFLAGS = -DHAVE_GETLINE=\$(HAVE_GETLINE) \$(GMIME_CFLAGS) \\
- -DHAVE_CANONICALIZE_FILE_NAME=\$(HAVE_CANONICALIZE_FILE_NAME) \\
- \$(ZLIB_CFLAGS) \\
- \$(TALLOC_CFLAGS) -DHAVE_VALGRIND=\$(HAVE_VALGRIND) \\
- \$(VALGRIND_CFLAGS) \\
- -DHAVE_STRCASESTR=\$(HAVE_STRCASESTR) \\
- -DHAVE_STRSEP=\$(HAVE_STRSEP) \\
- -DHAVE_TIMEGM=\$(HAVE_TIMEGM) \\
- -DHAVE_D_TYPE=\$(HAVE_D_TYPE) \\
- -DSTD_GETPWUID=\$(STD_GETPWUID) \\
- -DSTD_ASCTIME=\$(STD_ASCTIME) \\
- -DHAVE_XAPIAN_COMPACT=\$(HAVE_XAPIAN_COMPACT) \\
- -DHAVE_XAPIAN_FIELD_PROCESSOR=\$(HAVE_XAPIAN_FIELD_PROCESSOR) \\
- -DUTIL_BYTE_ORDER=\$(UTIL_BYTE_ORDER)
-
-CONFIGURE_CXXFLAGS = -DHAVE_GETLINE=\$(HAVE_GETLINE) \$(GMIME_CFLAGS) \\
- -DHAVE_CANONICALIZE_FILE_NAME=\$(HAVE_CANONICALIZE_FILE_NAME) \\
- \$(ZLIB_CFLAGS) \\
- \$(TALLOC_CFLAGS) -DHAVE_VALGRIND=\$(HAVE_VALGRIND) \\
- \$(VALGRIND_CFLAGS) \$(XAPIAN_CXXFLAGS) \\
- -DHAVE_STRCASESTR=\$(HAVE_STRCASESTR) \\
- -DHAVE_STRSEP=\$(HAVE_STRSEP) \\
- -DHAVE_TIMEGM=\$(HAVE_TIMEGM) \\
- -DHAVE_D_TYPE=\$(HAVE_D_TYPE) \\
- -DSTD_GETPWUID=\$(STD_GETPWUID) \\
- -DSTD_ASCTIME=\$(STD_ASCTIME) \\
- -DHAVE_XAPIAN_COMPACT=\$(HAVE_XAPIAN_COMPACT) \\
- -DHAVE_XAPIAN_FIELD_PROCESSOR=\$(HAVE_XAPIAN_FIELD_PROCESSOR) \\
- -DUTIL_BYTE_ORDER=\$(UTIL_BYTE_ORDER)
+COMMON_CONFIGURE_CFLAGS = \\
+ \$(GMIME_CFLAGS) \$(TALLOC_CFLAGS) \$(ZLIB_CFLAGS) \\
+ -DHAVE_VALGRIND=\$(HAVE_VALGRIND) \$(VALGRIND_CFLAGS) \\
+ -DHAVE_GETLINE=\$(HAVE_GETLINE) \\
+ -DHAVE_CANONICALIZE_FILE_NAME=\$(HAVE_CANONICALIZE_FILE_NAME) \\
+ -DHAVE_STRCASESTR=\$(HAVE_STRCASESTR) \\
+ -DHAVE_STRSEP=\$(HAVE_STRSEP) \\
+ -DHAVE_TIMEGM=\$(HAVE_TIMEGM) \\
+ -DHAVE_D_TYPE=\$(HAVE_D_TYPE) \\
+ -DSTD_GETPWUID=\$(STD_GETPWUID) \\
+ -DSTD_ASCTIME=\$(STD_ASCTIME) \\
+ -DHAVE_XAPIAN_COMPACT=\$(HAVE_XAPIAN_COMPACT) \\
+ -DHAVE_XAPIAN_FIELD_PROCESSOR=\$(HAVE_XAPIAN_FIELD_PROCESSOR) \\
+ -DHAVE_XAPIAN_DB_RETRY_LOCK=\$(HAVE_XAPIAN_DB_RETRY_LOCK) \\
+ -DUTIL_BYTE_ORDER=\$(UTIL_BYTE_ORDER)
+
+CONFIGURE_CFLAGS = \$(COMMON_CONFIGURE_CFLAGS)
+
+CONFIGURE_CXXFLAGS = \$(COMMON_CONFIGURE_CFLAGS) \$(XAPIAN_CXXFLAGS)
CONFIGURE_LDFLAGS = \$(GMIME_LDFLAGS) \$(TALLOC_LDFLAGS) \$(ZLIB_LDFLAGS) \$(XAPIAN_LDFLAGS)
EOF
# Whether the Xapian version in use supports field processors
NOTMUCH_HAVE_XAPIAN_FIELD_PROCESSOR=${have_xapian_field_processor}
+# Whether the Xapian version in use supports lock retry
+NOTMUCH_HAVE_XAPIAN_DB_RETRY_LOCK=${have_xapian_db_retry_lock}
+
# Which backend will Xapian use by default?
NOTMUCH_DEFAULT_XAPIAN_BACKEND=${default_xapian_backend}