Указание шаблонов глобусов в качестве целей Makefile - PullRequest
0 голосов
/ 05 февраля 2019

Моя make версия в macOS High Sierra Версия 10.13.6 выглядит следующим образом:

$ make --version
GNU Make 3.81
Copyright (C) 2006  Free Software Foundation, Inc.
This is free software; see the source for copying conditions.
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE.

This program built for i386-apple-darwin11.3.0

Моя текущая директория выглядит так:

$ ls -1
Makefile
a.txt
b.txt
c.txt

Моя Makefile выглядитвот так:

*.txt: FORCE
        echo Target $@ invoked

FORCE:

Я могу использовать это Makefile вот так:

$ make a.txt
echo Target a.txt invoked
Target a.txt invoked
$ make b.txt
echo Target b.txt invoked
Target b.txt invoked
$ make c.txt
echo Target c.txt invoked
Target c.txt invoked

Где задокументировано это поведение *.txt при расширении до соответствующих целей в текущем каталоге?Я попытался выполнить поиск по страницам руководства и документам, но не смог найти ничего, что указывало бы на то, что мы можем использовать шаблоны глобуса в качестве цели.Могу ли я положиться на это поведение в моих Makefile s?

1 Ответ

0 голосов
/ 05 февраля 2019

См. Руководство по GNU make прямо во введении к синтаксису правила:

Целями являются имена файлов, разделенные пробелами.Можно использовать символы подстановки (см. Использование символов подстановки в именах файлов)

и весь раздел Использование символов подстановки в именах файлов .

Вы не можете просто смотретьна страницах руководства: страницы руководства описывают только интерфейс командной строки и, возможно, краткую сводку синтаксиса make-файла.Они не пытаются описать все, как написать make-файл.

Если вы смотрели руководство по сборке GNU, но не нашли его, мне было бы интересно понять, что вы искали и где вы ожидаличтобы найти информацию, чтобы мы могли подумать об улучшении документов.

...