Le 10/03/2015 15:34, José Matos a écrit :
On Tuesday 10 March 2015 15:15:31 Jean-Marc Lasgouttes wrote:
For autoconf, I saw the message, it is on my virtual todo list.
JMarc
Thank you Jean-Marc. :-)
Dear José,
I took a quick look and I need help. The complicated macro for python
eventually calls:
# AM_PYTHON_CHECK_VERSION(PROG, VERSION, [ACTION-IF-TRUE],
[ACTION-IF-FALSE])
#
---------------------------------------------------------------------------
# Run ACTION-IF-TRUE if the Python interpreter PROG has version >= VERSION.
# Run ACTION-IF-FALSE otherwise.
# This test uses sys.hexversion instead of the string equivalent (first
# word of sys.version), in order to cope with versions such as 2.2c1.
# This supports Python 2.0 or higher. (2.0 was released on October 16,
2000).
AC_DEFUN([AM_PYTHON_CHECK_VERSION],
[prog="import sys
# split strings by '.' and convert to numeric. Append some zeros
# because we need at least 4 digits for the hex conversion.
# map returns an iterator in Python 3.0 and a list in 2.x
minver = list(map(int, '$2'.split('.'))) + [[0, 0, 0]]
minverhex = 0
# xrange is not present in Python 3.0 and range returns an iterator
for i in list(range(0, 4)): minverhex = (minverhex << 8) + minver[[i]]
sys.exit(sys.hexversion < minverhex)"
AS_IF([AM_RUN_LOG([$1 -c "$prog"])], [$3], [$4])])
Of course this is horrible autoconf code, but in the middle your can see
some nice python code, that returns true or false depending on whether
the version is greater in $2 (the one in the python code).
Now, assume that I want to define
# AM_PYTHON23_CHECK_VERSION(PROG, VERSION2, VERSION3, [ACTION-IF-TRUE],
[ACTION-IF-FALSE])
Could you give me the python code (that now relies on $2 and $3) that
will return the right result? If you prefer to check by function (is
such or such feature available?), I will probably be able to do
something with it too.
JMarc