X-Git-Url: https://git.notmuchmail.org/git?p=notmuch;a=blobdiff_plain;f=configure;h=6c782e16d5a63a746e3b49691bcc398fcb7f63cd;hp=ce1d6983d3d1a303a3b1ff6d0a85d42b14043ea9;hb=f0d06c8ca3fce15c9e264445485bd93a6de8d25e;hpb=2ee9351224a940eff65c6aa73ad8befab48250f9 diff --git a/configure b/configure index ce1d6983..6c782e16 100755 --- a/configure +++ b/configure @@ -19,7 +19,12 @@ To work around this problem you may try to execute: # Store original IFS value so it can be changed (and restored) in many places. readonly DEFAULT_IFS="$IFS" +# The top-level directory for the source. This ./configure and all Makefiles +# are good with ${srcdir} usually being relative. Some components (e.g. tests) +# are executed in subdirectories and for those it is simpler to use +# ${NOTMUCH_SRCDIR} which holds absolute path to the source. srcdir=$(dirname "$0") +NOTMUCH_SRCDIR=$(cd "$srcdir" && pwd) subdirs="util compat lib parse-time-string completion doc emacs" subdirs="${subdirs} performance-test test test/test-databases" @@ -42,6 +47,12 @@ if [ "$srcdir" != "." ]; then # Emacs only likes to generate compiled files next to the .el files # by default so copy these as well (which is not ideal). cp -a "$srcdir"/emacs/*.el emacs + + # We were not able to create fully working Makefile using ruby mkmf.rb + # so ruby bindings source files are copied as well (ditto -- not ideal). + mkdir bindings/ruby + cp -a "$srcdir"/bindings/ruby/*.[ch] bindings/ruby + cp -a "$srcdir"/bindings/ruby/extconf.rb bindings/ruby fi # Set several defaults (optionally specified by the user in @@ -68,10 +79,13 @@ PYTHON=${PYTHON:-} PREFIX=/usr/local LIBDIR= WITH_DOCS=1 +WITH_API_DOCS=1 WITH_EMACS=1 +WITH_DESKTOP=1 WITH_BASH=1 WITH_RUBY=1 WITH_ZSH=1 +WITH_RETRY_LOCK=1 usage () { @@ -136,10 +150,13 @@ Some features can be disabled (--with-feature=no is equivalent to --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-desktop Do not install desktop 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: @@ -182,11 +199,21 @@ for option; do 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 @@ -195,6 +222,14 @@ for option; do fi elif [ "${option}" = '--without-emacs' ] ; then WITH_EMACS=0 + elif [ "${option%%=*}" = '--with-desktop' ]; then + if [ "${option#*=}" = 'no' ]; then + WITH_DESKTOP=0 + else + WITH_DESKTOP=1 + fi + elif [ "${option}" = '--without-desktop' ] ; then + WITH_DESKTOP=0 elif [ "${option%%=*}" = '--with-bash-completion' ]; then if [ "${option#*=}" = 'no' ]; then WITH_BASH=0 @@ -211,6 +246,14 @@ for option; do 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 @@ -252,7 +295,7 @@ if [ -z "$LIBDIR" ] ; then libdir_expanded="${PREFIX}/lib" else # very non-general variable expansion - libdir_expanded=$(echo "$LIBDIR" | sed "s|\\${prefix}|${PREFIX}|g; s|\\$prefix/|${PREFIX}/|; s|//*|/|g") + libdir_expanded=$(printf %s "$LIBDIR" | sed "s|\${prefix}|${PREFIX}|; s|\$prefix\>|${PREFIX}|; s|//*|/|g") fi cat < /dev/null 2>&1 && \ - ./_libversion > _libversion.sh && . ./_libversion.sh +if ${CC} ${CFLAGS} -I"$srcdir" _libversion.c -o _libversion > /dev/null 2>&1 \ + && ./_libversion > _libversion.sh && . ./_libversion.sh then printf "OK.\n" else @@ -372,6 +415,7 @@ EOF printf "Yes.\n" else printf "No.\n" + errors=$((errors + 1)) fi rm -f _compact.o _compact.cc @@ -392,6 +436,24 @@ EOF 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< +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 < @@ -442,8 +504,7 @@ else fi if ! pkg-config --exists zlib; then - ${CC} ${zlib_cflags} -o compat/gen_zlib_pc \ - "$srcdir"/compat/gen_zlib_pc.c ${zlib_ldflags} > /dev/null 2>&1 && + ${CC} -o compat/gen_zlib_pc "$srcdir"/compat/gen_zlib_pc.c >/dev/null 2>&1 && compat/gen_zlib_pc > compat/zlib.pc && PKG_CONFIG_PATH="$PKG_CONFIG_PATH":compat && export PKG_CONFIG_PATH @@ -529,7 +590,7 @@ else 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" @@ -561,6 +622,16 @@ if [ $WITH_DOCS = "1" ] ; then fi fi +if [ $WITH_DESKTOP = "1" ]; then + printf "Checking if desktop-file-install is available... " + if command -v desktop-file-install > /dev/null; then + printf "Yes.\n" + else + printf "No (so will not install .desktop file).\n" + WITH_DESKTOP=0 + fi +fi + libdir_in_ldconfig=0 printf "Checking which platform we are on... " @@ -610,6 +681,8 @@ elif [ $uname = "Linux" ] || [ $uname = "GNU" ] ; then fi else printf "Unknown.\n" + platform="$uname" + linker_resolves_library_dependencies=0 cat < _byteorder.c < -#include -uint32_t test = 0x34333231; -int main() { printf("%.4s\n", (const char*)&test); return 0; } -EOF -${CC} ${CFLAGS} _byteorder.c -o _byteorder > /dev/null 2>&1 -util_byte_order=$(./_byteorder) -echo $util_byte_order - -rm -f _byteorder _byteorder.c - if [ $errors -gt 0 ]; then cat <= version 1.2.6, including development files such as headers)" + 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)" @@ -663,7 +723,7 @@ EOF 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 < Makefile.config < sh.config <