Синтаксис рецептов
В файлах make необычным свойством является то, что в одном файле на самом деле существуют два разных синтаксиса. Большая часть файла make использует make синтаксис (см. Написание файлов make). Однако рецепты предназначены для интерпретации оболочкой, и поэтому они написаны с использованием синтаксиса оболочки. Программа make не пытается понять синтаксис оболочки: она выполняет только несколько конкретных переводов содержимого рецепта перед передачей его оболочке.
Каждая строка рецепта должна начинаться с табуляции (или первого символа в значении переменной .RECIPEPREFIX; см. Специальные переменные), за исключением первой строки рецепта, которая может быть прикреплена к строке целевой-и-предварительных-зависимостей с точкой с запятой между ними. Любая строка в файле make, начинающаяся с табуляции и встречающаяся в «контексте правила» (то есть после начала правила до следующего правила или определения переменной), будет считаться частью рецепта для данного правила. Пустые строки и строки только с комментариями могут появляться среди строк рецепта; они игнорируются.
Некоторые последствия этих правил включают:
- Пустая строка, начинающаяся с табуляции, не является пустой: это пустой рецепт (см. Пустые рецепты).
- Комментарий в рецепте не является
makeкомментарием; он будет передан оболочке в том виде, в котором он есть. Будет ли оболочка обрабатывать его как комментарий или нет, зависит от вашей оболочки. - Определение переменной в «контексте правила», отступы которой начинаются с табуляции, будет считаться частью рецепта, а не
makeопределением переменной и будет передано оболочке. - Условное выражение (
ifdef,ifeq, и т. д., см. Синтаксис условных выражений) в «контексте правила», отступы которого начинаются с табуляции, будет считаться частью рецепта и будет передано оболочке.
| • Разделение строк рецепта | Разбиение длинных строк рецепта для повышения читабельности. | |
| • Переменные в рецептах | Использование make переменных в рецептах. |
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/Recipe-Syntax.html