Makefile ifeq logical AND

j'aimerais vérifier plusieurs conditions dans une boucle if du fichier GNU make. Voici un exemple:

ifeq ($(TEST_FLAG),TRUE && ($(DEBUG_FLAG),FALSE))
true statement 
else 
false statement
endif

Quelle est la bonne façon de le faire?

27
demandé sur pevik 2011-06-23 12:46:38

2 réponses

Vous pouvez utiliser ifeq avec une concaténation de vos valeurs, par exemple.

ifeq ($(TEST_FLAG)$(DEBUG_FLAG),TRUEFALSE)
   do something
endif

Il est également possible d'utiliser les fonctions Conditionnelles, qui sont plus susceptibles d'être utiles dans une boucle (comme ifeq ne sera probablement pas faire ce que vous attendez dans une boucle, il sera testé exactement une fois).

27
répondu Hasturkun 2017-06-22 19:21:30

bien que la solution de Hasturkun fonctionne, je pense que la façon idiomatique d'écrire ceci est:

ifeq ($(TEST_FLAG),TRUE)
ifeq ($(DEBUG_FLAG),FALSE)
# Stuff
endif
endif
21
répondu Jack Kelly 2013-08-15 20:08:49