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