Быстрый справочник
В этом приложении обобщены директивы, функции обработки текста и специальные переменные, которые понимает GNU make. См. Специальные цели, Каталог встроенных правил и Резюме опций для других обзоров.
Вот сводка директив, которые распознает GNU make:
define variabledefine variable =define variable :=define variable ::=define variable :::=define variable +=define variable ?=endef-
Определяет переменные, занимающие несколько строк. См. Многострочные переменные.
undefine variable-
Удаление определения переменных. См. Директива удаления определения.
ifdef variableifndef variableifeq (a,b)ifeq "a" "b"ifeq 'a' 'b'ifneq (a,b)ifneq "a" "b"ifneq 'a' 'b'elseendif-
Условное вычисление части файла makefile. См. Условные операторы.
include file-include filesinclude file-
Включение другого файла makefile. См. Включение других файлов makefile.
override variable-assignment-
Определение переменной, перезаписывая любое предыдущее определение, даже из командной строки. См. Директива
override. export-
Указать
makeна экспорт всех переменных по умолчанию для дочерних процессов. См. Передача переменных дочернемуmake. export variableexport variable-assignmentunexport variable-
Указать
make, экспортировать или не экспортировать определенную переменную для дочерних процессов. См. Передача переменных дочернемуmake. private variable-assignment-
Запретить наследование этого присваивания переменной для зависимостей. См. Препятствие наследования.
vpath pattern path-
Указать путь поиска файлов, соответствующих шаблону ‘%’. См. Директива
vpath. vpath pattern-
Удалить все пути поиска, ранее указанные для pattern.
vpathУдалить все пути поиска, ранее указанные в любой директиве
vpath.
Вот сводка встроенных функций (см. Функции):
$(subst from,to,text)-
Замените from на to в text. См. Функции для подстановки и анализа строк.
$(patsubst pattern,replacement,text)-
Замените слова, соответствующие pattern, на replacement в text. См. Функции для подстановки и анализа строк.
$(strip string)-
Удалите избыточные пробелы из string. См. Функции для подстановки и анализа строк.
$(findstring find,text)-
Найдите find в text. См. Функции для подстановки и анализа строк.
$(filter pattern…,text)-
Выберите слова в text, которые соответствуют одному из слов pattern. См. Функции для подстановки и анализа строк.
$(filter-out pattern…,text)-
Выберите слова в text, которые не соответствуют ни одному из слов pattern. См. Функции для подстановки и анализа строк.
$(sort list)-
Отсортируйте слова в list лексикографически, удалив дубликаты. См. Функции для подстановки и анализа строк.
$(word n,text)-
Извлеките n-е слово (с началом с 1) из text. См. Функции для подстановки и анализа строк.
$(words text)-
Подсчитайте количество слов в text. См. Функции для подстановки и анализа строк.
$(wordlist s,e,text)-
Возвращает список слов из text от s до e. См. Функции для подстановки и анализа строк.
$(firstword names…)-
Извлечь первое слово из names. См. Функции для подстановки и анализа строк.
$(lastword names…)-
Извлечь последнее слово из names. См. Функции для подстановки и анализа строк.
$(dir names…)-
Извлечь часть пути к каталогу из каждого имени файла. См. Функции для имён файлов.
$(notdir names…)-
Извлечь часть имени файла, исключая путь к каталогу. См. Функции для имён файлов.
$(suffix names…)-
Извлечь суффикс (часть после последней точки) каждого имени файла. См. Функции для имён файлов.
$(basename names…)-
Извлечь основное имя файла (без суффикса) из каждого имени файла. См. Функции для имён файлов.
$(addsuffix suffix,names…)-
Добавить suffix к каждому слову в names. См. Функции для имён файлов.
$(addprefix prefix,names…)-
Добавить prefix перед каждым словом в names. См. Функции для имён файлов.
$(join list1,list2)-
Объединить два параллельных списка слов. См. Функции для имён файлов.
$(wildcard pattern…)-
Найти имена файлов, соответствующие шаблону имени файла оболочки (не шаблону «%»). См. Функция
wildcard. $(realpath names…)-
Для каждого имени файла в names расширить до абсолютного имени, не содержащего
.,.., и символических ссылок. См. Функции для имён файлов. $(abspath names…)-
Для каждого имени файла в names расширить до абсолютного имени, не содержащего
.или..компонентов, но сохраняющего символические ссылки. См. Функции для имён файлов. $(error text…)-
При вычислении этой функции
makeгенерирует ошибку с сообщением text. См. Функции управления Make. $(warning text…)-
При вычислении этой функции
makeгенерирует предупреждение с сообщением text. См. Функции управления Make. $(shell command)-
Выполняет команду оболочки и возвращает её вывод. См. Функция
shell. $(origin variable)-
Возвращает строку, описывающую, как была определена переменная
makevariable. См. Функцияorigin. $(flavor variable)-
Возвращает строку, описывающую тип переменной
makevariable. См. Функцияflavor. $(let var [var ...],words,text)-
Вычисляет text со связанными var значениями, взятыми из words. См. Функция
let. $(foreach var,words,text)-
Вычисляет text со связанной переменной var для каждого слова из words и конкатенирует результаты. См. Функция
foreach. $(if condition,then-part[,else-part])-
Вычисляет условие condition; если оно не пустое, подставляет расширение then-part, в противном случае подставляет расширение else-part. См. Функции условных выражений.
$(or condition1[,condition2[,condition3…]])-
Вычисляет каждое условие conditionN по очереди; подставляет первое непустое расширение. Если все расширения пустые, подставляет пустую строку. См. Функции условных выражений.
$(and condition1[,condition2[,condition3…]])-
Вычисляет каждое условие conditionN по очереди; если какое-либо расширение пустое, подставляет пустую строку. Если все расширения непустые, подставляет расширение последнего condition. См. Функции условных выражений.
$(intcmp lhs,rhs[,lt-part[,eq-part[,gt-part]]])-
Сравнивает lhs и rhs численно; подставляет расширение lt-part, eq-part или gt-part в зависимости от того, меньше ли, равно или больше ли левая часть правой части, соответственно. См. Функции условных выражений.
$(call var,param,…)-
Вычисляет переменную var, заменяя все ссылки на
$(1),$(2)первыми, вторыми и т.д. значениями param. См. Функцияcall. $(eval text)-
Вычисляет text, затем читает результаты как команды makefile. Расширяется до пустой строки. См. Функция
eval. $(file op filename,text)-
Расширяет аргументы, затем открывает файл filename в режиме op и записывает в него text. См. Функция
file. $(value var)Возвращает содержимое переменной var без расширения. См. Функция
value.
Вот краткое описание автоматических переменных. См. Автоматические переменные для полной информации.
$@-
Имя файла целевого объекта.
$%-
Имя члена целевого объекта, когда целевой объект является членом архива.
$<-
Имя первого предшественника.
$?-
Имена всех предшественников, которые новее целевого объекта, разделенные пробелами. Для предшественников, являющихся членами архива, используется только имя члена (см. Архивы).
$^$+-
Имена всех предшественников, разделенные пробелами. Для предшественников, являющихся членами архива, используется только имя члена (см. Архивы). Значение
$^пропускает дублирующие предшественники, а$+сохраняет их и сохраняет порядок. $*-
Основа, с помощью которой неявленное правило сопоставляется (см. Как соответствуют шаблоны).
$(@D)$(@F)-
Часть каталога и часть файла внутри каталога для
$@. $(*D)$(*F)-
Часть каталога и часть файла внутри каталога для
$*. $(%D)$(%F)-
Часть каталога и часть файла внутри каталога для
$%. $(<D)$(<F)-
Часть каталога и часть файла внутри каталога для
$<. $(^D)$(^F)-
Часть каталога и часть файла внутри каталога для
$^. $(+D)$(+F)-
Часть каталога и часть файла внутри каталога для
$+. $(?D)$(?F)Часть каталога и часть файла внутри каталога для
$?.
Эти переменные используются специально программой GNU make:
MAKEFILES-
Файлы проекта, которые должны читаться при каждом вызове
make. См. ПеременнуюMAKEFILES. VPATH-
Путь поиска каталогов для файлов, не найденных в текущем каталоге. См.
VPATHПуть поиска всех предшественников. SHELL-
Имя системного интерпретатора команд, обычно /bin/sh. Вы можете установить
SHELLв файле проекта, чтобы изменить оболочку, используемую для выполнения рецептов. См. Выполнение рецептов. ПеременнаяSHELLобрабатывается особенно при импорте и экспорте в среду. См. Выбор оболочки. MAKESHELL-
Только для MS-DOS, имя интерпретатора команд, который будет использоваться программой
make. Это значение имеет приоритет над значениемSHELL. См. Переменная MAKESHELL. MAKE-
Имя, с которым был вызван
make. Использование этой переменной в рецептах имеет специальное значение. См. Как работает переменнаяMAKE. MAKE_VERSION-
Встроенная переменная ‘MAKE_VERSION’ расширяется до номера версии программы GNU
make. MAKE_HOST-
Встроенная переменная ‘MAKE_HOST’ расширяется до строки, представляющей хост, на котором была построена программа GNU
make. MAKELEVEL-
Количество уровней рекурсии (под-
makeов). См. Переменные/Рекурсия. MAKEFLAGS-
Флаги, заданные для
make. Вы можете установить их в среде или в файле проекта. См. Передача параметров подпроцессуmake.Никогда не следует использовать
MAKEFLAGSнепосредственно в строке рецепта: его содержимое может быть неверно процитировано для использования в оболочке. Всегда разрешайте рекурсивнымmakeполучать эти значения через среду от родительского процесса. GNUMAKEFLAGS-
Другие флаги, анализируемые программой
make. Вы можете установить их в среде или в файле проекта, чтобы задать параметры командной строкиmake. Программа GNUmakeникогда не устанавливает эту переменную сама. Эта переменная необходима только если вы хотите задать флаги, специфичные для GNUmake, в файле проекта, совместимом с POSIX. Эта переменная будет видна для GNUmakeи проигнорирована другими реализациямиmake. Она не нужна, если вы используете только GNUmake; просто используйтеMAKEFLAGSнапрямую. См. Передача параметров подпроцессуmake. MAKECMDGOALS-
Цели, заданные для
makeв командной строке. Установка этой переменной не влияет на работуmake. См. Аргументы для указания целей. CURDIR-
Устанавливается в абсолютный путь к текущему рабочему каталогу (после обработки всех параметров
-C, если таковые имеются). Установка этой переменной не влияет на работуmake. См. Рекурсивное использованиеmake. SUFFIXES-
Список стандартных расширений до того, как
makeпрочитает файлы проекта. .LIBPATTERNSОпределяет имена библиотек, которые ищет
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/Quick-Reference.html