Использование неявных правил
Определенные стандартные способы пересоздания целевых файлов используются очень часто. Например, один обычный способ создания объектного файла — из исходного файла C с помощью компилятора C, cc.
Неявные правила сообщают make как использовать стандартные методы, чтобы вам не приходилось подробно их указывать, когда вы хотите их использовать. Например, существует неявное правило для компиляции C. Имена файлов определяют, какие неявные правила выполняются. Например, компиляция C обычно принимает файл .c и создаёт файл .o. Таким образом, make применяет неявное правило для компиляции C, когда видит эту комбинацию расширений файлов.
Цепочка неявных правил может применяться последовательно; например, make будет пересоздавать файл .o из файла .y через файл .c.
Встроенные неявные правила используют несколько переменных в своих рецептах, так что, изменяя значения переменных, можно изменить работу неявного правила. Например, переменная CFLAGS управляет флагами, которые передаются компилятору C неявным правилом компиляции C.
Вы можете определять свои собственные неявные правила, написав правила шаблонов.
Правила суффиксов — более ограниченный способ определения неявных правил. Правила шаблонов более общие и понятные, но правила суффиксов сохранены для совместимости.
| • Использование неявных | Как использовать существующее неявное правило, чтобы получить рецепты для обновления файла. | |
| • Каталог правил | Список встроенных правил. | |
| • Переменные неявных правил | Как изменить поведение предопределённых правил. | |
| • Цепочки правил | Как использовать цепочку неявных правил. | |
| • Правила шаблонов | Как определять новые неявные правила. | |
| • Последний шанс | Как определить рецепт для правил, которые не могут найти подходящий. | |
| • Правила суффиксов | Старинный стиль неявных правил. | |
| • Поиск неявных правил | Точный алгоритм применения неявных правил. |
Copyright © 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022 Free Software Foundation, Inc.
Licensed under the GNU Free Documentation License.
https://www.gnu.org/software/make/manual/html_node/Implicit-Rules.html