2017-10-04 6 views
0

J'ai la variable time1 dans makefile qui prend différents entiers. J'ai besoin de le vérifier dans une certaine plage, et j'ai besoin d'écrire une condition comme ceci si (time1> = range1 || time1 < = range2) echo passé ou echo failed.Superbe, moins que la condition dans le fichier makefile

J'ai lu GNU make manual, mais je n'ai pas trouvé de réponse. Comment puis-je écrire la condition ???

+0

Utilisez-vous des parenthèses ou des crochets? Ces commandes sont exécutées par votre shell, probablement bash. Consultez la documentation (https://linux.die.net/man/1/bash). –

+2

Copie possible de [Exécution de calculs supérieurs à inférieurs à ceux d'un Makefile] (https://stackoverflow.com/questions/3442304/performing-greater-than-less-than-calculations-in-a-makefile) – liaK

+0

Non , ça ne résout pas mon problème, j'obtiens une erreur de syntaxe, qui nécessite "alors" de ma part. –

Répondre

0

Vous pouvez appeler le shell, mais vous pouvez également le faire dans make. Par coïncidence, le GNUmake table toolkit a l'arithmétique entière et la comparaison:

include gmtt.mk 

$(if $(or $(call int-ge,$(TIME1),$(RANGE1)),$(call int-le,$(TIME1),$(RANGE2))),passed,failed)