]> git.notmuchmail.org Git - notmuch/blobdiff - configure
lib: fix g_hash_table related read-after-free bug
[notmuch] / configure
index ae0a02709e2d611197b1a9903ede242d95897183..46063b5d2eeffabe893c70639ed74f754e5e0ed8 100755 (executable)
--- a/configure
+++ b/configure
@@ -68,6 +68,7 @@ PYTHON=${PYTHON:-}
 PREFIX=/usr/local
 LIBDIR=
 WITH_DOCS=1
+WITH_API_DOCS=1
 WITH_EMACS=1
 WITH_BASH=1
 WITH_RUBY=1
@@ -137,7 +138,8 @@ 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-ruby                  Do not install ruby bindings
        --without-zsh-completion        Do not install zsh completions files
@@ -184,11 +186,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
@@ -262,7 +274,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 <<EOF
@@ -382,6 +394,7 @@ EOF
        printf "Yes.\n"
     else
        printf "No.\n"
+       errors=$((errors + 1))
     fi
 
     rm -f _compact.o _compact.cc
@@ -557,7 +570,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"
@@ -589,6 +602,19 @@ if [ $WITH_DOCS = "1" ] ; then
     fi
 fi
 
+have_gpgconf_socketdir=0
+printf "Checking for gpgconf --{create,remove}-socketdir... "
+if gpgconf --dump-options > /dev/null ; then
+    if gpgconf --dump-options | grep -q create-socketdir ; then
+       printf "Yes.\n"
+       have_gpgconf_socketdir=1
+    else
+       printf "No.\n"
+    fi
+else
+    printf "No. (missing or broken gpgconf?)\n"
+fi
+
 libdir_in_ldconfig=0
 
 printf "Checking which platform we are on... "
@@ -638,6 +664,8 @@ elif [ $uname = "Linux" ] || [ $uname = "GNU" ] ; then
     fi
 else
     printf "Unknown.\n"
+    platform="$uname"
+    linker_resolves_library_dependencies=0
     cat <<EOF
 
 *** Warning: Unknown platform. Notmuch might or might not build correctly.
@@ -669,8 +697,8 @@ EOF
     if [ $have_python -eq 0 ]; then
        echo "  python interpreter"
     fi
-    if [ $have_xapian -eq 0 ]; then
-       echo "  Xapian library (including development files such as headers)"
+    if [ $have_xapian -eq 0 -o $have_xapian_compact -eq 0 ]; then
+       echo "  Xapian library (>= version 1.2.6, including development files such as headers)"
        echo "  https://xapian.org/"
     fi
     if [ $have_zlib -eq 0 ]; then
@@ -1164,6 +1192,9 @@ NOTMUCH_PYTHON=${python}
 # Are the ruby development files (and ruby) available? If not skip
 # building/testing ruby bindings.
 NOTMUCH_HAVE_RUBY_DEV=${have_ruby_dev}
+
+# Recent enough gnupg to support gpgconf --create-socketdir?
+NOTMUCH_HAVE_GPGCONF_SOCKETDIR=${have_gpgconf_socketdir}
 EOF
 
 # Finally, after everything configured, inform the user how to continue.