3
J'ai un Makefile GNU qui ressemble un peu à ceci:annexant conditionnellement à une variable dans un Makefile cible
LIST = item1
.PHONY: targetMain targetA targetB preA preB
targetMain:
# DO all the work in here
echo $(LIST)
targetA: preA targetMain
targetB: preB targetMain
preA:
LIST += itemA
preB:
LIST += itemB
L'idée est que je fais soit exécuter Targeta ou faire targetB. Les deux font une chose très similaire, mais avec une liste différente d'éléments. Le problème est que la variable n'est pas conditionnellement ajoutée, elle est toujours ajoutée, ce qui signifie que ma sortie est toujours "item1 itemA itemB".
Comment puis-je ajouter une condition à une variable?
Une petite explication: c'est ce qu'on appelle des variables spécifiques à la cible. La façon dont cela fonctionne est qu'il y a vraiment * deux * variables "LIST" maintenant: une pour targetA et une pour targetB. La cible 'target: VARIABLE = value' est la façon dont les variables spécifiques à la cible sont assignées. Laquelle des deux variables 'LIST' est développée dépend du script de commande dans lequel vous vous trouvez. Notez que, pour cette raison, les variables spécifiques à la cible peuvent * seulement * être référencées depuis le script de commande (elles ne peuvent pas être référencées sur la ligne des prérequis, même). –
Super, ça a l'air de faire ce que je veux! – bramp
Merci, Dan, j'aurais dû ajouter quelques explications. :-) – Neil