diff options
author | Zack Weinberg <zackw@panix.com> | 2020-12-28 10:01:56 -0500 |
---|---|---|
committer | Zack Weinberg <zackw@panix.com> | 2020-12-31 16:52:41 -0500 |
commit | 941a32bb879d5228246bdb162c9fb44788c8387a (patch) | |
tree | bb8f5fd4531db6266ee92ca73704d482fd350621 /configure.ac | |
parent | e5363a906a9ea8ec02fce39c29c960997fa93cf2 (diff) | |
download | libxcrypt-941a32bb879d5228246bdb162c9fb44788c8387a.tar.gz libxcrypt-941a32bb879d5228246bdb162c9fb44788c8387a.tar.bz2 libxcrypt-941a32bb879d5228246bdb162c9fb44788c8387a.zip |
Simplify Python+Passlib detection.
Instead of using three complicated autoconf-archive macros, we can
manage with one call to AC_PATH_PROGS_FEATURE_CHECK, and it’s faster
too.
Diffstat (limited to 'configure.ac')
-rw-r--r-- | configure.ac | 54 |
1 files changed, 22 insertions, 32 deletions
diff --git a/configure.ac b/configure.ac index f3978eb..79ae7d4 100644 --- a/configure.ac +++ b/configure.ac @@ -233,40 +233,30 @@ AX_VALGRIND_DFLT([sgcheck], [off]) AX_VALGRIND_CHECK() # Requirements for running test/ka-table-gen.py. -ENABLE_KA_TABLE_GEN="no" - -# Construct PYTHON_CANDIDATE_VERSIONS from most recent version to -# the minimum version required, ending up with a string containing: -# "... python3.7 python3.6 python3 python". -# This way we just need one call to AC_PATH_PROGS to likely get a -# suitable version of Python. The version check afterwards is for -# the case just a generic 'python3' or 'python' executable was found. -PYTHON_CANDIDATE_VERSIONS="python3 python" - -for ver in `seq 6 1 10`; do - PYTHON_CANDIDATE_VERSIONS="python3.$ver $PYTHON_CANDIDATE_VERSIONS" -done - -AC_PATH_PROGS([PYTHON], [$PYTHON_CANDIDATE_VERSIONS], []) - -if test x"$PYTHON" != "x"; then - AX_PROG_PYTHON_VERSION([3.6], [ENABLE_KA_TABLE_GEN="yes"], - [AC_MSG_WARN([Python >= 3.6 is required for optional Makefile targets.]) - ]) - - if test x"$ENABLE_KA_TABLE_GEN" = "xyes"; then - AX_PYTHON_MODULE([passlib], [], [$PYTHON]) - if test x"$HAVE_PYMOD_PASSLIB" = "xno"; then - ENABLE_KA_TABLE_GEN="no" - fi - fi -fi - -if test x"$ENABLE_KA_TABLE_GEN" = "xno"; then - AC_MSG_WARN( +AC_CACHE_CHECK([for Python 3.>=6 with Passlib], + [ac_cv_path_python3_passlib], + [AC_PATH_PROGS_FEATURE_CHECK([python3_passlib], + [python3 m4_for([minor], 10, 6, -1, [[python3.]minor ]) python], + [_AS_ECHO_LOG([trying $ac_path_python3_passlib...]) +AS_IF([$ac_path_python3_passlib -c ' +import sys +if sys.version_info < (3,6,0): + sys.stderr.write("too old: " + sys.version + "\n") + sys.exit(1) +import passlib +' >&AS_MESSAGE_LOG_FD 2>&1], + [ac_cv_path_python3_passlib=$ac_path_python3_passlib + ac_path_python3_passlib_found=:])], + [ac_cv_path_python3_passlib="not found"])]) +if test x"$ac_cv_path_python3_passlib" = x"not found"; then + PYTHON=false + AC_MSG_NOTICE( [Disabling the "regen-ka-table" target, missing Python requirements.]) +else + PYTHON="$ac_cv_path_python3_passlib" fi -AM_CONDITIONAL([ENABLE_KA_TABLE_GEN], [test x"$ENABLE_KA_TABLE_GEN" = "xyes"]) +AC_SUBST([PYTHON]) +AM_CONDITIONAL([ENABLE_KA_TABLE_GEN], [test x"$PYTHON" != "xfalse"]) # Configure options. AC_ARG_ENABLE([failure-tokens], |