2017-09-29 4 views
0

J'ai une liste de variables dans mon Makefile comme ça:Makefile: éliminer élément d'une liste

varglob := a1 a2 a3 a4 a5 a6 

Je veux créer une nouvelle variable de varglob mais d'éliminer certains éléments spécifiques, par exemple « a3 ».

J'ai pensé à foreach mais mon problème est que je ne sais pas comment je testerai avec ifneq dans le foreach. Donc, j'ai essayé d'utiliser shell comme ça:

varglobelim := $(foreach y, $(varglob), $(shell if [$(y) != "a3"]; then echo $y;fi)) 

Mais cette solution n'a pas de succès. Je reçois un message vide.

Y a-t-il d'autres suggestions?

Répondre

1

filter-out est votre ami ici:

varglob := a1 a2 a3 a4 a5 a6 b7 b8 b-whatever 
has-no-ticket := a3 b% # a3 and all the b's didn't pay the ride 

varglobelim := $(filter-out $(has-no-ticket),$(varglob)) 
+0

Oui merci il fonctionne très bien :) –