ac-archive-maintainers
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: ax_prog_python.m4


From: Dustin Mitchell
Subject: Re: ax_prog_python.m4
Date: Sat, 26 Jul 2003 15:44:00 -0500
User-agent: Mutt/1.4.1i

I apologize; I should have sent this to the list.  While I'm at it,
please note that I also changed the author email address below to my
permanent address.

On Sat, Jul 26, 2003 at 10:16:24AM +0200, Guido Draheim wrote:
> - which brings me to the conclusion to set PYTHON="python" as the
>   general fallback support, and folding fallback support into the
>   next-earlier AC_PATH_PROG expansion

I have a question about that part: as it's now coded, if I supplied
e.g., "missing" as the value-if-not-found, the script would try to
execute `missing -c "..."`, which would certainly not work.  If we fall
back for any reason, shouldn't the script avoid necessarily using the
resulting value as a Python interpreter?  Also consider that the caller
will get no additional information from the version check: if, after
falling back to $2, the version check succeeds, then $PYTHON is left
alone; if it fails, $PYTHON is set to $2---no change.

I've inserted an extra conditional below to handle this case; please let
me know what you think.

Other than that, thank you for your work on this macro!  I'll apply
your points to my other macros before re-submitting them.

dnl @synopsis AX_WITH_PYTHON([minimum-version], [value-if-not-found], [path])
dnl 
dnl Locates an installed Python binary, placing the result in the precious
dnl variable $PYTHON.  Accepts a present $PYTHON, then --with-python, and 
dnl failing
dnl
dnl that searches for python in the given path (which defaults to the system
dnl path).  If python is found, $PYTHON is set to the full path of the binary 
dnl and ACTION-IF-FOUND is executed; otherwise ACTION-IF-NOT-FOUND is executed.
dnl 
dnl Example:
dnl
dnl   AX_WITH_PYTHON(2.2, missing)
dnl
dnl @author Dustin Mitchell <address@hidden>
dnl @version $Id: $

AC_DEFUN([AX_WITH_PYTHON],
[
  AC_ARG_VAR([PYTHON])
 
  dnl unless PYTHON was supplied to us (as a precious variable)
  if test -z "$PYTHON"
  then
    AC_MSG_CHECKING(for --with-python)
    AC_ARG_WITH(python,
                AC_HELP_STRING([--with-python=PYTHON],
                               [absolute path name of Python executable]),
                [ if test "$withval" != "yes"
                  then
                    PYTHON="$withval"
                    AC_MSG_RESULT($withval)
                  else
                    AC_MSG_RESULT(no)
                  fi
                ],
                [ AC_MSG_RESULT(no)
                ])
  fi

  dnl if it's still not found, check the paths, or use the fallback
  if test -z "$PYTHON" 
  then
    AC_PATH_PROG([PYTHON], python, m4_ifval([$2],[$2],[python]), $3)
  fi

  dnl check version if required
  m4_ifvaln([$1],[
    dnl do this only if we didn't fall back
    if test "$PYTHON" != "m4_ifval([$2],[$2],[python])"
    then
      AC_MSG_CHECKING($PYTHON version >= $1)
      if test `$PYTHON -c ["import sys; dnl
print sys.version[:3] >= \"$1\" and \"OK\" or \"OLD\""]` = "OK"
      then
        AC_MSG_RESULT(ok)
      else
        AC_MSG_RESULT(no)
        PYTHON="$2"
      fi
    fi]
])

-- 

  Dustin Mitchell
  address@hidden/address@hidden
  http://people.cs.uchicago.edu/~dustin/




reply via email to

[Prev in Thread] Current Thread [Next in Thread]