Spec-Zone.ru › GNU Make

Быстрый справочник

В этом приложении обобщены директивы, функции обработки текста и специальные переменные, которые понимает GNU make. См. Специальные цели, Каталог встроенных правил и Резюме опций для других обзоров.

Вот сводка директив, которые распознает GNU make:

define variable
define variable =
define variable :=
define variable ::=
define variable :::=
define variable +=
define variable ?=
endef

Определяет переменные, занимающие несколько строк. См. Многострочные переменные.

undefine variable

Удаление определения переменных. См. Директива удаления определения.

ifdef variable
ifndef variable
ifeq (a,b)
ifeq "a" "b"
ifeq 'a' 'b'
ifneq (a,b)
ifneq "a" "b"
ifneq 'a' 'b'
else
endif

Условное вычисление части файла makefile. См. Условные операторы.

include file
-include file
sinclude file

Включение другого файла makefile. См. Включение других файлов makefile.

override variable-assignment

Определение переменной, перезаписывая любое предыдущее определение, даже из командной строки. См. Директива override.

export

Указать make на экспорт всех переменных по умолчанию для дочерних процессов. См. Передача переменных дочернему make.

export variable
export variable-assignment
unexport 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)

Возвращает строку, описывающую, как была определена переменная make variable. См. Функция origin.

$(flavor variable)

Возвращает строку, описывающую тип переменной make variable. См. Функция 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 . Программа GNU make никогда не устанавливает эту переменную сама. Эта переменная необходима только если вы хотите задать флаги, специфичные для GNU make, в файле проекта, совместимом с POSIX. Эта переменная будет видна для GNU make и проигнорирована другими реализациями make. Она не нужна, если вы используете только GNU make; просто используйте 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

Spec-Zone.ru

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