summaryrefslogtreecommitdiffstats
path: root/config/always-python.m4
diff options
context:
space:
mode:
Diffstat (limited to 'config/always-python.m4')
-rw-r--r--config/always-python.m487
1 files changed, 23 insertions, 64 deletions
diff --git a/config/always-python.m4 b/config/always-python.m4
index 7cfefd9eb..c1c07597e 100644
--- a/config/always-python.m4
+++ b/config/always-python.m4
@@ -1,48 +1,4 @@
dnl #
-dnl # ZFS_AC_PYTHON_VERSION(version, [action-if-true], [action-if-false])
-dnl #
-dnl # Verify Python version
-dnl #
-AC_DEFUN([ZFS_AC_PYTHON_VERSION], [
- ver_check=`$PYTHON -c "import sys; print (sys.version.split()[[0]] $1)"`
- AS_IF([test "$ver_check" = "True"], [
- m4_ifvaln([$2], [$2])
- ], [
- m4_ifvaln([$3], [$3])
- ])
-])
-
-dnl #
-dnl # ZFS_AC_PYTHON_VERSION_IS_2
-dnl # ZFS_AC_PYTHON_VERSION_IS_3
-dnl #
-dnl # Tests if the $PYTHON_VERSION matches 2.x or 3.x.
-dnl #
-AC_DEFUN([ZFS_AC_PYTHON_VERSION_IS_2],
- [test "${PYTHON_VERSION%%\.*}" = "2"])
-AC_DEFUN([ZFS_AC_PYTHON_VERSION_IS_3],
- [test "${PYTHON_VERSION%%\.*}" = "3"])
-
-dnl #
-dnl # ZFS_AC_PYTHON_MODULE(module_name, [action-if-true], [action-if-false])
-dnl #
-dnl # Checks for Python module. Freely inspired by AX_PYTHON_MODULE
-dnl # https://www.gnu.org/software/autoconf-archive/ax_python_module.html
-dnl # Required by ZFS_AC_CONFIG_ALWAYS_PYZFS.
-dnl #
-AC_DEFUN([ZFS_AC_PYTHON_MODULE], [
- PYTHON_NAME=`basename $PYTHON`
- AC_MSG_CHECKING([for $PYTHON_NAME module: $1])
- AS_IF([$PYTHON -c "import $1" 2>/dev/null], [
- AC_MSG_RESULT(yes)
- m4_ifvaln([$2], [$2])
- ], [
- AC_MSG_RESULT(no)
- m4_ifvaln([$3], [$3])
- ])
-])
-
-dnl #
dnl # The majority of the python scripts are written to be compatible
dnl # with Python 2.6 and Python 3.4. Therefore, they may be installed
dnl # and used with either interpreter. This option is intended to
@@ -66,35 +22,38 @@ AC_DEFUN([ZFS_AC_CONFIG_ALWAYS_PYTHON], [
[AC_MSG_ERROR([Unknown --with-python value '$with_python'])]
)
- AS_IF([test $PYTHON != :], [
- AS_IF([$PYTHON --version >/dev/null 2>&1],
- [AM_PATH_PYTHON([2.6], [], [:])],
- [AC_MSG_ERROR([Cannot find $PYTHON in your system path])]
- )
- ])
- AM_CONDITIONAL([USING_PYTHON], [test "$PYTHON" != :])
- AM_CONDITIONAL([USING_PYTHON_2], [ZFS_AC_PYTHON_VERSION_IS_2])
- AM_CONDITIONAL([USING_PYTHON_3], [ZFS_AC_PYTHON_VERSION_IS_3])
-
dnl #
dnl # Minimum supported Python versions for utilities:
- dnl # Python 2.6.x, or Python 3.4.x
+ dnl # Python 2.6 or Python 3.4
dnl #
- AS_IF([ZFS_AC_PYTHON_VERSION_IS_2], [
- ZFS_AC_PYTHON_VERSION([>= '2.6'], [ true ],
- [AC_MSG_ERROR("Python >= 2.6.x is not available")])
+ AM_PATH_PYTHON([], [], [:])
+ AS_IF([test -z "$PYTHON_VERSION"], [
+ PYTHON_VERSION=$(basename $PYTHON | tr -cd 0-9.)
])
+ PYTHON_MINOR=${PYTHON_VERSION#*\.}
- AS_IF([ZFS_AC_PYTHON_VERSION_IS_3], [
- ZFS_AC_PYTHON_VERSION([>= '3.4'], [ true ],
- [AC_MSG_ERROR("Python >= 3.4.x is not available")])
- ])
+ AS_CASE([$PYTHON_VERSION],
+ [2.*], [
+ AS_IF([test $PYTHON_MINOR -lt 6],
+ [AC_MSG_ERROR("Python >= 2.6 is required")])
+ ],
+ [3.*], [
+ AS_IF([test $PYTHON_MINOR -lt 4],
+ [AC_MSG_ERROR("Python >= 3.4 is required")])
+ ],
+ [:|2|3], [],
+ [PYTHON_VERSION=3]
+ )
+
+ AM_CONDITIONAL([USING_PYTHON], [test "$PYTHON" != :])
+ AM_CONDITIONAL([USING_PYTHON_2], [test "x${PYTHON_VERSION%%\.*}" = x2])
+ AM_CONDITIONAL([USING_PYTHON_3], [test "x${PYTHON_VERSION%%\.*}" = x3])
dnl #
dnl # Request that packages be built for a specific Python version.
dnl #
- AS_IF([test $with_python != check], [
- PYTHON_PKG_VERSION=`echo ${PYTHON} | tr -d 'a-zA-Z.'`
+ AS_IF([test "x$with_python" != xcheck], [
+ PYTHON_PKG_VERSION=$(echo $PYTHON_VERSION | tr -d .)
DEFINE_PYTHON_PKG_VERSION='--define "__use_python_pkg_version '${PYTHON_PKG_VERSION}'"'
DEFINE_PYTHON_VERSION='--define "__use_python '${PYTHON}'"'
], [