X-Git-Url: https://git.notmuchmail.org/git?p=notmuch;a=blobdiff_plain;f=configure;h=36f3f606814417a60236e1eadb78c4c0f86c0857;hp=e2d40d113950968335d347c4b2eadcb27ca736c0;hb=0a32741fceb7778ced34064eacb7b5aac2c71638;hpb=6e050de4c01107ad0d914170aacf261701d2b71c diff --git a/configure b/configure index e2d40d11..36f3f606 100755 --- a/configure +++ b/configure @@ -55,6 +55,8 @@ subdirs="${subdirs} bindings" # the directory structure and copy Makefiles. if [ "$srcdir" != "." ]; then + NOTMUCH_BUILDDIR=$PWD + for dir in . ${subdirs}; do mkdir -p "$dir" cp "$srcdir"/"$dir"/Makefile.local "$dir" @@ -78,6 +80,8 @@ if [ "$srcdir" != "." ]; then "$srcdir"/bindings/python-cffi/notmuch2 \ "$srcdir"/bindings/python-cffi/setup.py \ bindings/python-cffi/ +else + NOTMUCH_BUILDDIR=$NOTMUCH_SRCDIR fi # Set several defaults (optionally specified by the user in @@ -308,12 +312,22 @@ for option; do true elif [ "${option%%=*}" = '--host' ] ; then true + elif [ "${option%%=*}" = '--bindir' ] ; then + true + elif [ "${option%%=*}" = '--sbindir' ] ; then + true elif [ "${option%%=*}" = '--datadir' ] ; then true elif [ "${option%%=*}" = '--localstatedir' ] ; then true + elif [ "${option%%=*}" = '--sharedstatedir' ] ; then + true elif [ "${option%%=*}" = '--libexecdir' ] ; then true + elif [ "${option%%=*}" = '--exec-prefix' ] ; then + true + elif [ "${option%%=*}" = '--program-prefix' ] ; then + true elif [ "${option}" = '--disable-maintainer-mode' ] ; then true elif [ "${option}" = '--disable-dependency-tracking' ] ; then @@ -396,6 +410,18 @@ EOF exit 1 fi +printf "C compiler supports address sanitizer... " +test_cmdline="${CC} ${CFLAGS} ${CPPFLAGS} -fsanitize=address minimal.c ${LDFLAGS} -o minimal" +if ${test_cmdline} >/dev/null 2>&1 && ./minimal +then + printf "Yes.\n" + have_asan=1 +else + printf "Nope, skipping those tests.\n" + have_asan=0 +fi +unset test_cmdline + printf "Reading libnotmuch version from source... " cat > _libversion.c < @@ -496,16 +522,16 @@ int main () { } EOF if ! TEMP_GPG=$(mktemp -d "${TMPDIR:-/tmp}/notmuch.XXXXXX"); then - printf 'No.\nCould not make tempdir for testing session-key support.\n' - errors=$((errors + 1)) + printf 'No.\nCould not make tempdir for testing session-key support.\n' + errors=$((errors + 1)) elif ${CC} ${CFLAGS} ${gmime_cflags} _check_session_keys.c ${gmime_ldflags} -o _check_session_keys \ - && GNUPGHOME=${TEMP_GPG} gpg --batch --quiet --import < "$srcdir"/test/gnupg-secret-key.asc \ - && SESSION_KEY=$(GNUPGHOME=${TEMP_GPG} ./_check_session_keys) \ - && [ $SESSION_KEY = 9:0BACD64099D1468AB07C796F0C0AC4851948A658A15B34E803865E9FC635F2F5 ] + && GNUPGHOME=${TEMP_GPG} gpg --batch --quiet --import < "$srcdir"/test/gnupg-secret-key.asc \ + && SESSION_KEY=$(GNUPGHOME=${TEMP_GPG} ./_check_session_keys) \ + && [ $SESSION_KEY = 9:0BACD64099D1468AB07C796F0C0AC4851948A658A15B34E803865E9FC635F2F5 ] then - printf "OK.\n" + printf "OK.\n" else - cat </dev/null; then - printf 'Your current GPGME development version is: %s\n' "$(gpgme-config --version)" - else - printf 'You do not have the GPGME development libraries installed.\n' - fi - errors=$((errors + 1)) + if command -v gpgme-config >/dev/null; then + printf 'Your current GPGME development version is: %s\n' "$(gpgme-config --version)" + else + printf 'You do not have the GPGME development libraries installed.\n' + fi + errors=$((errors + 1)) fi if [ -n "$TEMP_GPG" -a -d "$TEMP_GPG" ]; then - rm -rf "$TEMP_GPG" + rm -rf "$TEMP_GPG" fi # see https://github.com/jstedfast/gmime/pull/90 @@ -570,36 +596,36 @@ int main () { } EOF if ! TEMP_GPG=$(mktemp -d "${TMPDIR:-/tmp}/notmuch.XXXXXX"); then - printf 'No.\nCould not make tempdir for testing X.509 certificate validity support.\n' - errors=$((errors + 1)) + printf 'No.\nCould not make tempdir for testing X.509 certificate validity support.\n' + errors=$((errors + 1)) elif ${CC} ${CFLAGS} ${gmime_cflags} _check_x509_validity.c ${gmime_ldflags} -o _check_x509_validity \ - && echo disable-crl-checks > "$TEMP_GPG/gpgsm.conf" \ - && echo "4D:E0:FF:63:C0:E9:EC:01:29:11:C8:7A:EE:DA:3A:9A:7F:6E:C1:0D S" >> "$TEMP_GPG/trustlist.txt" \ - && GNUPGHOME=${TEMP_GPG} gpgsm --batch --quiet --import < "$srcdir"/test/smime/ca.crt + && echo disable-crl-checks > "$TEMP_GPG/gpgsm.conf" \ + && echo "4D:E0:FF:63:C0:E9:EC:01:29:11:C8:7A:EE:DA:3A:9A:7F:6E:C1:0D S" >> "$TEMP_GPG/trustlist.txt" \ + && GNUPGHOME=${TEMP_GPG} gpgsm --batch --quiet --import < "$srcdir"/test/smime/ca.crt then - if GNUPGHOME=${TEMP_GPG} ./_check_x509_validity; then - gmime_x509_cert_validity=1 - printf "Yes.\n" - else - gmime_x509_cert_validity=0 - printf "No.\n" - if pkg-config --exists "gmime-3.0 >= 3.2.7"; then - cat <= 3.2.7"; then + cat < /dev/null; then printf "Yes (%s).\n" "$bash_absolute" else have_bash=0 + bash_absolute= printf "No. (%s not found)\n" "${BASHCMD}" fi @@ -744,6 +771,7 @@ if command -v ${PERL} > /dev/null; then printf "Yes (%s).\n" "$perl_absolute" else have_perl=0 + perl_absolute= printf "No. (%s not found)\n" "${PERL}" fi @@ -768,10 +796,10 @@ have_python3=0 if [ $have_python -eq 1 ]; then printf "Checking for python3 (>= 3.5)..." if "$python" -c 'import sys, sysconfig; assert sys.version_info >= (3,5)'; >/dev/null 2>&1; then - printf "Yes.\n" - have_python3=1 + printf "Yes.\n" + have_python3=1 else - printf "No (will not install CFFI-based python bindings).\n" + printf "No (will not install CFFI-based python bindings).\n" fi fi @@ -783,11 +811,11 @@ if [ $have_python3 -eq 1 ]; then printf "Checking for python $python3_version development files..." if pkg-config --exists "python-$python3_version"; then - have_python3_dev=1 - printf "Yes.\n" + have_python3_dev=1 + printf "Yes.\n" else - have_python3_dev=0 - printf "No (will not install CFFI-based python bindings).\n" + have_python3_dev=0 + printf "No (will not install CFFI-based python bindings).\n" fi fi @@ -796,12 +824,12 @@ have_python3_pytest=0 if [ $have_python3_dev -eq 1 ]; then printf "Checking for python3 cffi and setuptools... " if "$python" -c 'import cffi,setuptools; cffi.FFI().verify()' >/dev/null 2>&1; then - printf "Yes.\n" - have_python3_cffi=1 - WITH_PYTHON_DOCS=1 + printf "Yes.\n" + have_python3_cffi=1 + WITH_PYTHON_DOCS=1 else - WITH_PYTHON_DOCS=0 - printf "No (will not install CFFI-based python bindings).\n" + WITH_PYTHON_DOCS=0 + printf "No (will not install CFFI-based python bindings).\n" fi rm -rf __pycache__ # cffi.FFI().verify() uses this space @@ -809,10 +837,10 @@ if [ $have_python3_dev -eq 1 ]; then conf=$(mktemp) printf "[pytest]\nminversion=3.0\n" > $conf if "$python" -m pytest -c $conf --version >/dev/null 2>&1; then - printf "Yes.\n" - have_python3_pytest=1 + printf "Yes.\n" + have_python3_pytest=1 else - printf "No (will not test CFFI-based python bindings).\n" + printf "No (will not test CFFI-based python bindings).\n" fi rm -f $conf fi @@ -860,10 +888,10 @@ fi if [ $WITH_EMACS = "1" ]; then printf "Checking if emacs (>= 25) is available... " if emacs --quick --batch --eval '(if (< emacs-major-version 25) (kill-emacs 1))' > /dev/null 2>&1; then - printf "Yes.\n" + printf "Yes.\n" else - printf "No (disabling emacs related parts of build)\n" - WITH_EMACS=0 + printf "No (disabling emacs related parts of build)\n" + WITH_EMACS=0 fi fi @@ -1245,6 +1273,7 @@ cat > Makefile.config < sphinx.config +cat > bindings/python-cffi/_notmuch_config.py <