128 lines
5.9 KiB
Text
128 lines
5.9 KiB
Text
dnl Check for python binary program names per language version
|
|
dnl to embed into scripts and Make rules
|
|
|
|
AC_DEFUN([NUT_CHECK_PYTHON],
|
|
[
|
|
AS_IF([test -z "${nut_with_python}"], [
|
|
NUT_ARG_WITH([python], [Use a particular program name of the python interpeter], [auto])
|
|
|
|
PYTHON=""
|
|
AS_CASE([${nut_with_python}],
|
|
[auto|yes|""], [AC_CHECK_PROGS([PYTHON], [python python3 python2], [_python_runtime])],
|
|
[no], [PYTHON="no"],
|
|
[PYTHON="${nut_with_python}"]
|
|
)
|
|
|
|
dnl Default to calling a basename from PATH, only use a specific full pathname
|
|
dnl if provided by the caller:
|
|
AS_CASE([${PYTHON}],
|
|
[_python_runtime], [
|
|
PYTHON="/usr/bin/env python"
|
|
AC_MSG_WARN([A python program name was not detected during configuration, will default to '$PYTHON' (scripts will fail if that is not in PATH at run time)])],
|
|
[no], [],
|
|
[/*" "*" "*], [
|
|
AC_MSG_WARN([A python program name is not a single token (was specified with more than one argument?), so shebangs can be not reliable])
|
|
],
|
|
[/*], [],
|
|
[*" "*" "*], [
|
|
AC_MSG_WARN([A python program name is not a single token (was specified with more than one argument?), so shebangs can be not reliable])
|
|
PYTHON="/usr/bin/env ${PYTHON}"
|
|
],
|
|
[*" "*], [
|
|
AC_MSG_WARN([A python program name is not a single token (was specified with an argument?), so /usr/bin/env shebangs can be not reliable])
|
|
PYTHON="/usr/bin/env ${PYTHON}"
|
|
],
|
|
[*], [PYTHON="/usr/bin/env ${PYTHON}"]
|
|
)
|
|
|
|
AC_MSG_CHECKING([python interpeter to call])
|
|
AC_MSG_RESULT([${PYTHON}])
|
|
AC_SUBST([PYTHON], [${PYTHON}])
|
|
AM_CONDITIONAL([HAVE_PYTHON], [test "${PYTHON}" != "no"])
|
|
AS_IF([test -n "${PYTHON}"], [export PYTHON])
|
|
])
|
|
])
|
|
|
|
AC_DEFUN([NUT_CHECK_PYTHON2],
|
|
[
|
|
AS_IF([test -z "${nut_with_python2}"], [
|
|
NUT_ARG_WITH([python2], [Use a particular program name of the python2 interpeter for code that needs that version and is not compatible with python3], [auto])
|
|
|
|
PYTHON2=""
|
|
AS_CASE([${nut_with_python2}],
|
|
[auto|yes|""], [AC_CHECK_PROGS([PYTHON2], [python2 python2.7 python-2.7 python], [_python2_runtime])],
|
|
[no], [PYTHON2="no"],
|
|
[PYTHON2="${nut_with_python2}"]
|
|
)
|
|
|
|
dnl Default to calling a basename from PATH, only use a specific full pathname
|
|
dnl if provided by the caller:
|
|
AS_CASE([${PYTHON2}],
|
|
[_python2_runtime], [
|
|
PYTHON2="/usr/bin/env python2"
|
|
AC_MSG_WARN([A python2 program name was not detected during configuration, will default to '$PYTHON2' (scripts will fail if that is not in PATH at run time)])],
|
|
[no], [],
|
|
[/*" "*" "*], [
|
|
AC_MSG_WARN([A python2 program name is not a single token (was specified with more than one argument?), so shebangs can be not reliable])
|
|
],
|
|
[/*], [],
|
|
[*" "*" "*], [
|
|
AC_MSG_WARN([A python2 program name is not a single token (was specified with more than one argument?), so shebangs can be not reliable])
|
|
PYTHON2="/usr/bin/env ${PYTHON2}"
|
|
],
|
|
[*" "*], [
|
|
AC_MSG_WARN([A python2 program name is not a single token (was specified with an argument?), so /usr/bin/env shebangs can be not reliable])
|
|
PYTHON2="/usr/bin/env ${PYTHON2}"
|
|
],
|
|
[*], [PYTHON2="/usr/bin/env ${PYTHON2}"]
|
|
)
|
|
|
|
AC_MSG_CHECKING([python2 interpeter to call])
|
|
AC_MSG_RESULT([${PYTHON2}])
|
|
AC_SUBST([PYTHON2], [${PYTHON2}])
|
|
AM_CONDITIONAL([HAVE_PYTHON2], [test "${PYTHON2}" != "no"])
|
|
AS_IF([test -n "${PYTHON2}"], [export PYTHON2])
|
|
])
|
|
])
|
|
|
|
AC_DEFUN([NUT_CHECK_PYTHON3],
|
|
[
|
|
AS_IF([test -z "${nut_with_python3}"], [
|
|
NUT_ARG_WITH([python3], [Use a particular program name of the python3 interpeter for code that needs that version and is not compatible with python2], [auto])
|
|
|
|
PYTHON3=""
|
|
AS_CASE([${nut_with_python3}],
|
|
[auto|yes|""], [AC_CHECK_PROGS([PYTHON3], [python3 python3.9 python-3.9 python3.7 python-3.7 python3.5 python-3.5 python], [_python3_runtime])],
|
|
[no], [PYTHON3="no"],
|
|
[PYTHON3="${nut_with_python3}"]
|
|
)
|
|
|
|
dnl Default to calling a basename from PATH, only use a specific full pathname
|
|
dnl if provided by the caller:
|
|
AS_CASE([${PYTHON3}],
|
|
[_python3_runtime], [
|
|
PYTHON3="/usr/bin/env python3"
|
|
AC_MSG_WARN([A python3 program name was not detected during configuration, will default to '$PYTHON3' (scripts will fail if that is not in PATH at run time)])],
|
|
[no], [],
|
|
[/*" "*" "*], [
|
|
AC_MSG_WARN([A python3 program name is not a single token (was specified with more than one argument?), so shebangs can be not reliable])
|
|
],
|
|
[/*], [],
|
|
[*" "*" "*], [
|
|
AC_MSG_WARN([A python3 program name is not a single token (was specified with more than one argument?), so shebangs can be not reliable])
|
|
PYTHON3="/usr/bin/env ${PYTHON3}"
|
|
],
|
|
[*" "*], [
|
|
AC_MSG_WARN([A python3 program name is not a single token (was specified with an argument?), so /usr/bin/env shebangs can be not reliable])
|
|
PYTHON3="/usr/bin/env ${PYTHON3}"
|
|
],
|
|
[*], [PYTHON3="/usr/bin/env ${PYTHON3}"]
|
|
)
|
|
|
|
AC_MSG_CHECKING([python3 interpeter to call])
|
|
AC_MSG_RESULT([${PYTHON3}])
|
|
AC_SUBST([PYTHON3], [${PYTHON3}])
|
|
AM_CONDITIONAL([HAVE_PYTHON3], [test "${PYTHON3}" != "no"])
|
|
AS_IF([test -n "${PYTHON3}"], [export PYTHON3])
|
|
])
|
|
])
|