X-Git-Url: https://arthur.barton.de/cgi-bin/gitweb.cgi?p=bup.git;a=blobdiff_plain;f=config%2Fconfigure;h=33e9ba26a00da52d3c769e536635483d7f3a7b17;hp=2223c7eb3e2ac78b86e3fdc92dd3f6f832bb787c;hb=HEAD;hpb=dd9bab659134d470ed9151679c8efc5ff4f50547 diff --git a/config/configure b/config/configure index 2223c7e..657155a 100755 --- a/config/configure +++ b/config/configure @@ -1,5 +1,7 @@ #!/usr/bin/env bash +ac_help="--with-pylint[=yes|no|maybe] require and run pylint (maybe)" + bup_find_prog() { # Prints prog path to stdout or nothing. @@ -33,8 +35,43 @@ bup_try_c_code() return $rc } +bup_config_cflags=() + +bup-add-cflag-if-supported() +{ + local opt="$1" + if test -z "$opt"; then + AC_FAIL 'No option to check' + fi + TLOGN "checking for $AC_CC $opt support" + if bup_try_c_code \ + "int main(int argc, char**argv) { return 0; }" \ + "$opt"; + then + bup_config_cflags+="$opt" + TLOG ' (found)' + else + TLOG ' (not found)' + fi +} + + TARGET=bup +argv=() +with_pylint=maybe +while test $# -gt 0; do + case "$1" in + --with-pylint=yes) with_pylint=yes; shift;; + --with-pylint=maybe) with_pylint=maybe; shift;; + --with-pylint=no) with_pylint=no; shift;; + *) argv+=("$1"); shift;; + esac +done + +# Set $@ to the adjusted args +set - "${argv[@]}" + . ./configure.inc # FIXME: real tmpdir @@ -47,6 +84,8 @@ if ! AC_PROG_CC; then exit 1 fi +bup-add-cflag-if-supported -Wno-unused-command-line-argument + for make_candidate in make gmake; do found_make="$(bup_find_prog "$make_candidate" "$MAKE")" if test "$found_make" \ @@ -80,14 +119,12 @@ if test "$BUP_PYTHON_CONFIG"; then "$BUP_PYTHON_CONFIG") fi else - for py_maj_ver in 9 8 7 6; do - bup_python_config="$(bup_find_prog "python3.$py_maj_ver-config" '')" + for py_min_ver in 10 9 8 7 6; do + bup_python_config="$(bup_find_prog "python3.$py_min_ver-config" '')" test -z "$bup_python_config" || break done test -z "$bup_python_config" \ && bup_python_config="$(bup_find_prog python3-config '')" - test -z "$bup_python_config" \ - && bup_python_config="$(bup_find_prog python2.7-config '')" if test -z "$bup_python_config"; then AC_FAIL "ERROR: unable to find a suitable python-config" fi @@ -104,13 +141,15 @@ else # Earlier versions didn't support --embed bup_python_ldflags_embed=$("$bup_python_config" --ldflags) || exit $? fi +bup_python_cflags="$bup_python_cflags -fPIC" + case "$OSTYPE" in darwin*) # For at least 10.3+ (2003+) bup_python_ldflags="$bup_python_ldflags -bundle -undefined dynamic_lookup" ;; *) - bup_python_ldflags="$bup_python_ldflags -shared -fPIC" + bup_python_ldflags="$bup_python_ldflags -shared" ;; esac @@ -147,24 +186,6 @@ fi AC_CHECK_FUNCS utimes AC_CHECK_FUNCS lutimes -builtin_mul_overflow_code=" -#include -int main(int argc, char **argv) -{ - size_t n = 0, size = 0, total; - __builtin_mul_overflow(n, size, &total); - return 0; -} -" - -TLOGN "checking for __builtin_mul_overflow" -if bup_try_c_code "$builtin_mul_overflow_code"; then - AC_DEFINE BUP_HAVE_BUILTIN_MUL_OVERFLOW 1 - TLOG ' (found)' -else - TLOG ' (not found)' -fi - AC_CHECK_FUNCS mincore @@ -234,12 +255,16 @@ if pkg-config readline; then # It looks like it's not uncommon for pkg-config to provide a -I # that doesn't support the documentation's specified #include # . See what's really going on. - if bup_try_c_code "#include $readline_test_code" \ + if bup_try_c_code "#include // required by unpatched readline +#include +$readline_test_code" \ "$bup_readline_cflags" then bup_have_readline=1 bup_readline_includes_in_subdir=1 - elif bup_try_c_code "#include $readline_test_code" \ + elif bup_try_c_code "#include // required by unpatched readline +#include +$readline_test_code" \ "$bup_readline_cflags" then bup_have_readline=1 @@ -327,6 +352,8 @@ AC_SUB bup_have_libacl "$bup_have_libacl" AC_CC="$orig_ac_cc" LIBS="$orig_libs" +AC_SUB bup_config_cflags "$bup_config_cflags" + AC_OUTPUT config.vars set -euo pipefail @@ -335,6 +362,7 @@ set -euo pipefail mkdir -p config.var.tmp echo -n "$MAKE" > config.var.tmp/bup-make echo -n "$bup_python_config" > config.var.tmp/bup-python-config +echo -n "$with_pylint" > config.var.tmp/with-pylint mv config.var.tmp config.var if test -e bin; then rm -r bin; fi