Domanda

Sto cercando di ottenere autofoo a test per un massimo di versione di Python, piuttosto che un minimo. Esempio:

AC_REQUIRE([AM_PATH_PYTHON([2.7])])

... metterà alla prova per Python> = 2.7, e probabilmente girare con / usr / bin / python3. Voglio che per tornare niente di più grande python2.7, tuttavia.

C'è un modo semplice per fare questo? Ho chiesto in giro, e finora la migliore risposta che ho ottenuto è: "riscrivere la macro".

Grazie in anticipo!

È stato utile?

Soluzione

1). Aggiungere al 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.) Aggiungi a zconfigure.inz

my_CHECK_MAJOR_VERSION([PYTHON_VERSION], [2])  

3.) aclocal, automake, autoconf

Questo è tutto.

Altri suggerimenti

L'argomento di versione per AM_PATH_PYTHON è facoltativo. Se è necessario pitone, chiamare in questo modo:

AM_PATH_PYTHON

Se non è necessario, chiamare in questo modo:

AM_PATH_PYTHON(,, [:])

Ora, AM_PATH_PYTHON imposta la variabile di shell $PYTHON_VERSION al valore di sys.version[:3], che potrete mettervi alla prova.

Una soluzione alternativa può regolarsi l'impostazione predefinita per _AM_PYTHON_INTERPRETER_LIST , per includere solo Python 2 binari.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top