OR conditionnel dans makefile
J'aimerais activer une verbose la compilation dans mon makefile, mais je ne peux pas comprendre comment faire un conditionnel OR
.
Laissez-moi vous expliquer: je veux être en mesure de spécifier un détaillé compilation, soit par la mise V=1
ou VERBOSE=1
. Je veux garder VERBOSE=1
disponible parce que nous avons des scripts qui en font usage (et l'utilisation d'autres makefiles seulement au courant de l' VERBOSE
)
De sorte que le résultat doit être que ces deux commandes sont les mêmes:
make all VERBOSE=1 # pain to write
make all V=1
Maintenant, mon makefile ressemble à ça aujourd'hui:
ifdef VERBOSE
[issue compilation commands with verbose mode]
endif
Ce que j'aimerais accomplir est proche du préprocesseur C:
if defined(VERBOSE) || defined(V)
[issue compilation commands with verbose mode]
endif
Savez-vous comment faire?
source d'informationauteur Gui13 | 2011-05-16
Vous devez vous connecter pour publier un commentaire.
Je fais comme ceci:
Similaire à l' $(bande d'approche, mais l'utilisation la plus intuitive $(ou mot-clé
Autant que je sache, le conditionnel trucs dans GNU make ne permet pas pour les Rup et PADN. Vous pouvez toujours faire quelque chose comme:
mais je ne vois pas pourquoi il faut introduire de l' (un peu d'auto documentation) définir de V dans la première place.
J'aime Neil Butterworth approche, mais si vous voulez vraiment faire dans le style que vous décrivez, cela vous donnera OU:
...alors...
Ok, vraiment en retard à la fête, mais je suis tombé sur cela, et je voulais ajouter une autre solution pour les autres, qui étaient à la recherche de comment ajouter de la logique de makefiles: fondamentalement, ne la logique dans un shell, et obtenir la sortie de cette façon.
il semble plus compliquée, mais si vous avez une instruction if avec de nombreux ands et ors, ce qui offre beaucoup de flexibilité, et serait plus facile à lire que imbriquée $(et .. $(ou ...)) consolidés.