Я хочу, чтобы кодировать правила «, чтобы сделать <name>.done
, вам нужны все файлы шаблона <name>.needed.*
я попытался написать это с этим Makefile:.
%.done: $(wildcard %.needed.*)
cat $^ > [email protected]
Но когда я бегу touch foo.needed.bar && make foo.done
, все это я получаю является
cat > foo.done
он появляется %
внутри $(wildcard)
интерпретируется как литерал «%». Как я могу получить это расширилось в нужное значение («Foo» в данном случае)?
'widcard' ->' wildcard' предположительно –
Yup, исправлено. –
Объяснение, почему это не работает: параметры рецепта (источник, вход и зависимости) оцениваются/расширяются уже во время разбора, поэтому '$ (wildcard)' вызывается с буквальным '%', не находит файлов и заменяется на пустая строка. Отсроченная оценка применяется только к команде. FYI. – Dummy00001