Spec-Zone.ru › GNU Make

Определение правил по умолчанию для крайнего случая

Вы можете определить неявное правило по умолчанию для крайнего случая, написав правило с шаблоном «сопоставить всё» без предварительных условий (см. Правила сопоставления всего). Это как любое другое правило шаблона; единственное, что в нём особенного, это то, что оно будет соответствовать любому целевому объекту. Таким образом, рецепт такого правила используется для всех целевых объектов и предварительных условий, которые не имеют своего собственного рецепта и для которых не применяется никакое другое неявное правило.

Например, при тестировании makefile вы можете не заботиться о том, содержат ли исходные файлы реальные данные, а только о том, что они существуют. Тогда вы можете сделать так:

%::
        touch $@

чтобы все необходимые исходные файлы (как предварительные условия) были созданы автоматически.

Вы можете вместо этого определить рецепт, который будет использоваться для целевых объектов, для которых нет вообще никаких правил, даже тех, которые не указывают рецепты. Вы делаете это, написав правило для целевого объекта .DEFAULT. Рецепт такого правила используется для всех предварительных условий, которые не появляются как целевые объекты в каком-либо явном правиле и для которых не применяется никакое неявное правило. Естественно, нет .DEFAULT правила, если вы его не напишите.

Если вы используете .DEFAULT без рецепта или предварительных условий:

.DEFAULT:

рецепт, ранее сохранённый для .DEFAULT, очищается. Затем make действует так, как будто вы никогда не определяли .DEFAULT вообще.

Если вы не хотите, чтобы целевой объект получал рецепт из правила шаблона «сопоставить всё» или .DEFAULT, но также не хотите, чтобы для целевого объекта выполнялся какой-либо рецепт, вы можете присвоить ему пустой рецепт (см. Определение пустых рецептов).

Вы можете использовать правило крайнего случая, чтобы переопределить часть другого makefile. См. Переопределение части другого Makefile.

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/Last-Resort.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API