2010-08-24 7 views
0

J'ai une liste de noms de fichiers RPM (comme "package-1.0") qui seront les dépendances d'une cible make, mais certains ont l'architecture x86_64 et d'autres ont i386. qu'est-ce que je fais pour les faire correspondre? J'ai besoin de quelque chose comme:Makefile dépendances avec l'expression régulière

target: $(addsuffix .[i386|x86_64].rpm,$(shell cat packages_file)) 

mais cela ne fonctionnera pas. Je pourrais utiliser:

target: $(addsuffix .*.rpm,$(shell cat packages_file)) 

mais qui ne correspond pas à une autre cible dans le Makefile (package-1.0 * rpm existera rarement, il déclencherait une autre cible qui fait générer ce fichier, mais avec *.. ça ne marche pas).

des suggestions?

EDIT:

rendant plus claire: je veux l'objectif ci-dessous à exécuter si l'un des fichiers x.txt, y.txt ou existe z.txt (affichage "youpi!").

target: [x|y|z].txt 
    @echo yay! 
+0

Pas clair. Pourriez-vous montrer vos entrées et les sorties désirées. –

Répondre

0

La gestion Regex est haut sur ma liste de souhaits pour faire. Voici un kludge:

RPM = $(wildcard x.txt y.txt z.txt) 

ifeq ($(RPM),) 
# What do you want to do if these files don't exist? 
else 
target: $(RPM) 
    @echo yay! (I see $^) 
endif