автоматизировать правила в make-файле из двух переменных одновременно - PullRequest
1 голос
/ 24 августа 2009

У меня есть несколько шаблонов поиска, которые плохо подходят как часть имени файла для результата.Поэтому я разделил регулярное выражение и соответствующую часть имени файла на две разные переменные, как показано ниже.Как я могу автоматизировать следующее, чтобы мне не приходилось вручную перечислять файлы для ВСЕХ, а также не нужно вручную вводить правила, запускающие grep?

SEARCH_RE   = test  a/b/c  a.*b
SEARCH_FILE = test  abc    ab

ALL = result.test result.abc result.ab

all: $(ALL)

result.test:
        grep test  inputfile > result.test

result.abc:
        grep a/b/c inputfile > result.abc

result.ab
        grep a.*b  inputfile > result.ab

Ответы [ 2 ]

1 голос
/ 24 августа 2009

Я рекомендую

ALL = $(addprefix result.,$(SEARCH_FILE))

Что касается написания правил, то поиск, который, я думаю, вам нужен, может быть сделан в Make, но на самом деле не должен быть - это был бы ужасный удар. Я бы предложил сделать это следующим образом:

result.test: TARG = test
result.abc: TARG = a/b/c
result.ab: TARG = a.*b

$(ALL):
    grep $(TARG) inputfile > $@
1 голос
/ 24 августа 2009

Я не знаю, как создавать правила, но цель ALL достаточно проста:

ALL = $(patsubst %,result.%,$(SEARCH_FILE))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...