xref: /src/sys/contrib/openzfs/config/always-python.m4 (revision 8a62a2a5659d1839d8799b4274c04469d7f17c78)
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