2010-08-24 2 views
0

У меня есть список имен файлов RPM (например, «пакет-1.0»), которые будут зависимыми от целевой цели, но некоторые из них имеют архитектуру x86_64, а у других - i386. что я делаю, чтобы соответствовать им? Мне нужно что-то вроде:Зависимости Makefile с регулярным выражением

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

но это не сработает. Я мог бы использовать:

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

, но это не будет соответствовать другой цели в Makefile (пакет-1.0 * мин редко будет существовать, это вызовет другую цель, которая на самом деле генерировать этот файл, но с *.. он не работает).

любые предложения?

EDIT:

, что делает его более ясным: я хочу ниже цель должна быть выполнена, если один из файлов x.txt, y.txt или z.txt существует (дисплей "яй!").

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

Непонятно. Не могли бы вы показать свои входы и нужные выходы. –

ответ

0

Обработка регенераций в моем списке пожеланий для Make. Здесь находится 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