360 votes

Comment assigner la sortie d'une commande à une variable Makefile

J'ai besoin d'exécuter certaines règles, sous certaines conditions, que si le Python est installé est supérieure à une certaine version (disons 2.5).

Je pensais que je pouvais faire quelque chose comme de l'exécution:

python -c 'import sys; print int(sys.version_info >= (2,5))'

et puis, à l'aide de la sortie ('1' si ok, '0' sinon) en ifeq faire de déclaration.

Dans un simple shell bash script c'est juste:

MY_VAR=`python -c 'import sys; print int(sys.version_info >= (2,5))'`

mais cela ne fonctionne pas dans un Makefile.

Toutes les suggestions? Je pourrais utiliser n'importe quelle autre solution raisonnable pour atteindre cet objectif.

499voto

Arkaitz Jimenez Points 10651

Utilisez la construction shell intégrée comme dans MY_VAR=$(shell echo whatever)

 me@Zack:~$make
MY_VAR IS whatever
me@Zack:~$ cat Makefile 
MY_VAR=$(shell echo whatever)

all:
    @echo MY_VAR IS $(MY_VAR)
 

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X