Makefile: contient une chaîne

Une variable renvoie MINGW32_NT-5.1 ou CYGWIN_NT-5.1. (oui, dot à la fin)

Il est nécessaire de comparer ce que la variable contient NT-5.1 positionné n’importe où.

Utiliser cygwin et voudrait être compatible avec à peu près n’importe quel * nix.

La fonction findssortingng est ce que votre coeur désire:

$(findssortingng find , in )

Recherche une occurrence de find . Si cela se produit, la valeur est trouvée ; sinon, la valeur est vide. Vous pouvez utiliser cette fonction dans une condition pour tester la présence d’une sous-chaîne spécifique dans une chaîne donnée. Ainsi, les deux exemples,

 $(findssortingng a,abc) $(findssortingng a,bc) 

produire les valeurs "a" et "" (la chaîne vide), respectivement. Voir Test Flags , pour une application pratique de findssortingng .

Quelque chose comme:

 ifneq (,$(findssortingng NT-5.1,$(VARIABLE))) # Found else # Not found endif 
 VARIABLE=NT-5.1_Can_be_any_ssortingng ifeq ($(findssortingng NT-5.1,$(VARIABLE)),NT-5.1) # Found RESULT=found else # Not found RESULT=notfound endif all: @echo "RESULT=${RESULT} , output=$(findssortingng NT-5.1,$(VARIABLE))" 

Il correspond à la chaîne donnée et renvoie