Autofoo Test für eine maximale Version von Python
-
30-09-2019 - |
Frage
Ich versuche autofoo zu Test für einen max Version von Python anstatt ein Minimum zu bekommen. Beispiel:
AC_REQUIRE([AM_PATH_PYTHON([2.7])])
... testen für Python> = 2.7, und wird wahrscheinlich mit / usr / bin / python3 aufdrehen. Ich will nichts mehr als python2.7 zurückzukehren, aber.
Gibt es eine einfache Möglichkeit, dies zu tun? Ich fragte herum, und so weit die beste Antwort, die ich bekommen habe, ist, „das Makro neu zu schreiben.“
Vielen Dank im Voraus!
Lösung
1). In den acinclude.m4
`# my_CHECK_MAJOR_VERSION(VARIABLE, VERSION, [ACTION-IF-TRUE], [ACTION-IF-FALSE])`
`# ---------------------------------------------------------------------------`
`# Run ACTION-IF-TRUE if the VAR has a major version >= VERSION.`
`# Run ACTION-IF-FALSE otherwise.`
AC_DEFUN([my_CHECK_MAJOR_VERSION],
[AC_MSG_CHECKING([whether $1 $$1 major version == $2])
case $$1 in
$2*)
AC_MSG_RESULT([yes])
ifelse([$3], [$3], [:])
;;
*)
AC_MSG_RESULT([no])
ifelse([$4], , [AC_MSG_ERROR([$$1 differs from $2])], [$4])
;;
esac])
2.) In dem zconfigure.inz
my_CHECK_MAJOR_VERSION([PYTHON_VERSION], [2])
3.) aclocal
, automake
, autoconf
Das ist es.
Andere Tipps
Die Version Argument AM_PATH_PYTHON
ist optional. Wenn Python erforderlich ist, nennen Sie es wie folgt aus:
AM_PATH_PYTHON
Wenn es nicht erforderlich ist, nennen Sie es wie folgt aus:
AM_PATH_PYTHON(,, [:])
Nun AM_PATH_PYTHON
setzt die Shell-Variable $PYTHON_VERSION
auf den Wert von sys.version[:3]
, die Sie selbst testen können.
Eine alternative Lösung kann den Standard wird Einstellung für _AM_PYTHON_INTERPRETER_LIST , enthält Python nur 2 Binärdateien.