1dnl # SPDX-License-Identifier: CDDL-1.0 2dnl # 3dnl # The majority of the python scripts are written to be compatible 4dnl # with Python 3.6. This option is intended to 5dnl # to provide a method to specify the default system version, and 6dnl # set the PYTHON environment variable accordingly. 7dnl # 8AC_DEFUN([ZFS_AC_CONFIG_ALWAYS_PYTHON], [ 9 AC_ARG_WITH([python], 10 AS_HELP_STRING([--with-python[=VERSION]], 11 [default system python version @<:@default=check@:>@]), 12 [with_python=$withval], 13 [with_python=check]) 14 15 AS_CASE([$with_python], 16 [check], [AC_CHECK_PROGS([PYTHON], [python3], [:])], 17 [3*], [PYTHON="python${with_python}"], 18 [*python3*], [PYTHON="${with_python}"], 19 [no], [PYTHON=":"], 20 [AC_MSG_ERROR([Unknown --with-python value '$with_python'])] 21 ) 22 23 dnl # 24 dnl # Minimum supported Python versions for utilities: Python 3.6 25 dnl # 26 AM_PATH_PYTHON([], [], [:]) 27 AS_IF([test -z "$PYTHON_VERSION"], [ 28 PYTHON_VERSION=$(echo ${PYTHON##*/} | tr -cd 0-9.) 29 ]) 30 PYTHON_MINOR=${PYTHON_VERSION#*\.} 31 32 AS_CASE([$PYTHON_VERSION], 33 [3.*], [ 34 AS_IF([test $PYTHON_MINOR -lt 6], 35 [AC_MSG_ERROR("Python >= 3.6 is required")]) 36 ], 37 [:|2|3], [], 38 [PYTHON_VERSION=3] 39 ) 40 41 AM_CONDITIONAL([USING_PYTHON], [test "$PYTHON" != :]) 42 AC_SUBST([PYTHON_SHEBANG], [python3]) 43 44 dnl # 45 dnl # Request that packages be built for a specific Python version. 46 dnl # 47 AS_IF([test "x$with_python" != xcheck], [ 48 PYTHON_PKG_VERSION=$(echo $PYTHON_VERSION | tr -d .) 49 DEFINE_PYTHON_PKG_VERSION='--define "__use_python_pkg_version '${PYTHON_PKG_VERSION}'"' 50 DEFINE_PYTHON_VERSION='--define "__use_python '${PYTHON}'"' 51 ], [ 52 DEFINE_PYTHON_VERSION='' 53 DEFINE_PYTHON_PKG_VERSION='' 54 ]) 55 56 AC_SUBST(DEFINE_PYTHON_VERSION) 57 AC_SUBST(DEFINE_PYTHON_PKG_VERSION) 58]) 59