Spec-Zone.ru › GNU Make

GNU make

В этом файле документирована утилита GNU make, которая автоматически определяет, какие части большой программы необходимо перекомпилировать, и выдает команды для их перекомпиляции.

Это издание 0.76, последняя обновление от 31 октября 2022 года, Руководства по GNU Make, для GNU make версии 4.4.

Авторские права © 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.

• Обзор Обзор make.
• Введение Введение в make.
• Файлы make Файлы make говорят make, что делать.
• Правила Правила описывают, когда файл необходимо пересоздать.
• Рецепты Рецепты указывают, как пересоздать файл.
• Использование переменных Вы можете использовать переменные, чтобы избежать повторений.
• Условные операторы Используйте или игнорируйте части файла make на основе значений переменных.
• Функции Многие мощные способы манипулирования текстом.
• Вызов make Как вызвать make в командной строке.
• Неявные правила Используйте неявные правила для обработки многих файлов одинаково, основываясь на их именах файлов.
• Архивы Как make может обновлять архивы библиотек.
• Расширение make Использование расширений для make.
• Интеграция make Интеграция make с другими инструментами.
• Особенности Особенности GNU make по сравнению с другими make.
• Отсутствующее Что GNU make не имеет в отличие от других make.
• Конвенции для файлов make Конвенции для написания файлов make для программ GNU.
• Быстрый справочник Быстрый справочник для опытных пользователей.
• Сообщения об ошибках Список распространённых ошибок, генерируемых make.
• Сложный файл make Реальный пример простого, но нетривиального файла make.
• GNU Лицензия на свободную документацию Лицензия на копирование данного руководства.
• Индекс понятий Индекс понятий.
• Индекс имён Индекс функций, переменных и директив.
 — The Detailed Node Listing —

Overview of make

• Подготовка Подготовка и запуск make.
• Чтение О чтении этого текста.
• Ошибки Проблемы и ошибки.

An Introduction to Makefiles

• Введение в правила Как выглядит правило.
• Простой файл make Простой файл make.
• Как работает Make Как make обрабатывает этот файл make.
• Переменные упрощают Переменные упрощают файлы make.
• Make выводит Позволение make выводить рецепты.
• Объединение по предшествующим условиям Ещё один стиль файла make.
• Очистка Правила для очистки каталога.

Writing Makefiles

• Содержание файла make Что содержат файлы make.
• Имена файлов make Как называть ваш файл make.
• Включить Как один файл make может использовать другой файл make.
• Переменная MAKEFILES Окружающая среда может указать дополнительные файлы make.
• Пересоздание файлов make Как файлы make пересоздаются.
• Переопределение файлов make Как переопределить часть одного файла make другим файлом make.
• Чтение файлов make Как файлы make читаются.
• Парсинг файлов make Как парсятся файлы make.
• Вторичное расширение Как и когда выполняется вторичное расширение.

What Makefiles Contain

• Разделение строк Разделение длинных строк в файлах make

Writing Rules

• Пример правила Объяснённый пример.
• Синтаксис правила Объяснённый общий синтаксис.
• Типы предшествующих условий Существует два типа предшествующих условий.
• Подстановочные знаки Использование символов подстановки, таких как ‘*’.
• Поиск в каталоге Поиск исходных файлов в других каталогах.
• Фейковые цели Использование цели, которая не является именем реального файла.
• Цели принудительного выполнения Вы можете использовать цель без рецепта или предшествующих условий, чтобы отметить другие цели как фейковые.
• Пустые цели Когда важна только дата, а файлы пусты.
• Специальные цели Цели со специальными встроенными значениями.
• Несколько целей Когда следует использовать несколько целей в правиле.
• Несколько правил Как использовать несколько правил для одной цели.
• Статические шаблоны Статические шаблоны правил применяются к нескольким целям и могут изменять предшествующие условия в соответствии с именем цели.
• Двоеточие Как использовать специальный вид правила, чтобы разрешить несколько независимых правил для одной цели.
• Автоматические предшествующие условия Как автоматически генерировать правила, дающие предшествующие условия из самих исходных файлов.

Using Wildcard Characters in File Names

• Примеры подстановочных знаков Несколько примеров.
• Ловушка подстановочных знаков Проблемы, которых следует избегать.
• Функция подстановочных знаков Как вызвать расширение подстановочных знаков там, где оно обычно не происходит.

Searching Directories for Prerequisites

• Общий поиск Указание пути поиска, который применяется ко всем предварительным условиям.
• Выборочный поиск Указание пути поиска для указанного класса имён.
• Алгоритм поиска Когда и как применяются пути поиска.
• Рецепты/Поиск Как писать рецепты, которые работают совместно с путями поиска.
• Неявный/Поиск Как пути поиска влияют на неявные правила.
• Библиотеки/Поиск Поиск каталогов для библиотек ссылок.

Static Pattern Rules

• Статическое использование Синтаксис статических правил шаблонов.
• Статическое против неявного Когда они лучше, чем неявные правила?

Writing Recipes in Rules

• Синтаксис рецептов Особенности и подводные камни синтаксиса рецептов.
• Эхо-вывод Как управлять временем эхо-вывода рецептов.
• Выполнение Как выполняются рецепты.
• Параллельно Как рецепты могут выполняться параллельно.
• Ошибки Что происходит после ошибки выполнения рецепта.
• Прерывания Что происходит, когда рецепт прерывается.
• Рекурсия Вызов make из make-файлов.
• Готовые рецепты Определение готовых рецептов.
• Пустые рецепты Определение полезных рецептов без действий.

Recipe Syntax

• Разделение строк рецептов Разбивка длинных строк рецептов для улучшения читаемости.
• Переменные в рецептах Использование make переменных в рецептах.

Recipe Execution

• Один интерпретатор команд Один интерпретатор команд для всех строк в рецепте.
• Выбор интерпретатора команд Как make выбирает интерпретатор команд, используемый для выполнения рецептов.

Parallel Execution

• Отключение параллельного выполнения Отключение параллельного выполнения
• Параллельный вывод Обработка вывода во время параллельного выполнения
• Параллельный ввод Обработка ввода во время параллельного выполнения

Recursive Use of make

• Переменная MAKE Специальные эффекты использования ‘$(MAKE)’.
• Переменные/Рекурсия Как передавать переменные подзадаче make.
• Параметры/Рекурсия Как передавать параметры подзадаче make.
• -w Параметр Как параметр ‘-w’ или ‘--print-directory’ помогает отладить использование рекурсивных make команд.

How to Use Variables

• Ссылка Как использовать значение переменной.
• Типы Переменные бывают двух типов.
• Расширенные Расширенные возможности для ссылки на переменную.
• Значения Все способы, которыми переменные получают свои значения.
• Установка Как установить переменную в make-файле.
• Добавление Как добавить текст к старому значению переменной.
• Директива переопределения Как установить переменную в make-файле, даже если пользователь установил её с аргументом команды.
• Многострочные Альтернативный способ установки переменной на многострочную строку.
• Директива удаления Как удалить переменную, чтобы она выглядела так, как будто её никогда не устанавливали.
• Окружение Значения переменных могут поступать из среды.
• Указанные для цели Значения переменных могут быть определены для каждой цели.
• Указанные для шаблона Значения переменных, указанные для определённой цели, могут применяться к группе целей, соответствующих шаблону.
• Запрещение наследования Запретить наследование переменных.
• Специальные переменные Переменные со специальным значением или поведением.

The Two Flavors of Variables

• Рекурсивное присваивание Установка рекурсивно расширенных переменных.
• Простое присваивание Установка просто расширенных переменных.
• Немедленное присваивание Установка немедленно расширенных переменных.
• Условное присваивание Условное присваивание значений переменных.

Advanced Features for Reference to Variables

• Ссылки замещения Ссылка на переменную с заменами значения.
• Вычисленные имена Вычисление имени переменной для ссылки.

Conditional Parts of Makefiles

• Пример условного Пример условного
• Синтаксис условных выражений Синтаксис условных выражений.
• Проверка флагов Условные выражения, проверяющие флаги.

Functions for Transforming Text

• Синтаксис функций Как написать вызов функции.
• Функции для работы с текстом Функции общего назначения для обработки текста.
• Функции для работы с именами файлов Функции для работы с именами файлов.
• Условные функции Функции, реализующие условия.
• Функция let Локальные переменные.
• Функция foreach Повторение текста с контролируемым изменением.
• Функция файла Запись текста в файл.
• Вызов функции Расширить пользовательскую функцию.
• Функция значения Возвратить нерасширенное значение переменной.
• Функция оценки Оценить аргументы как синтаксис makefile.
• Функция происхождения Найти, откуда переменная получила своё значение.
• Функция типа Определить тип переменной.
• Функции управления make Функции, которые контролируют, как работает make.
• Функция оболочки Заменить вывод команды оболочки.
• Функция Guile Использовать встроенный язык сценариев GNU Guile.

How to Run make

• Аргументы Makefile Как указать, какой Makefile использовать.
• Цели Как использовать аргументы целей для указания, какие части Makefile использовать.
• Вместо выполнения Как использовать флаги режима для указания, какой вид действий выполнить с рецептами в Makefile, кроме простого их выполнения.
• Избегание компиляции Как избежать повторной компиляции определённых файлов.
• Переопределение Как переопределить переменную для указания альтернативного компилятора и других вещей.
• Тестирование Как обойти некоторые ошибки для тестирования компиляции.
• Временные файлы Где make хранит свои временные файлы.
• Резюме опций Резюме опций

Using Implicit Rules

• Использование неявных Как использовать существующее неявное правило, чтобы получить рецепты для обновления файла.
• Каталог правил Список встроенных правил.
• Неявные переменные Как изменить поведение предопределённых правил.
• Цепные правила Как использовать цепочку неявных правил.
• Правила шаблонов Как определить новые неявные правила.
• Последний шанс Как определить рецепт для правил, которые не могут найти ничего.
• Правила суффиксов Старомодный стиль неявных правил.
• Поиск неявных правил Точный алгоритм применения неявных правил.

Defining and Redefining Pattern Rules

• Введение в правила шаблонов Введение в правила шаблонов.
• Примеры правил шаблонов Примеры правил шаблонов.
• Автоматические переменные Как использовать автоматические переменные в рецепте неявных правил.
• Сопоставление шаблонов Как шаблоны сопоставляются.
• Правила сопоставления всего Меры предосторожности, которые следует принять перед определением правил, которые могут сопоставляться с любым целевым файлом.
• Отмена правил Как переопределить или отменить встроенные правила.

Using make to Update Archive Files

• Члены архива Члены архива как цели.
• Обновление архива Неявное правило для целевых членов архива.
• Недостатки использования архивов Опасности, на которые следует обратить внимание при работе с архивами.
• Правила суффиксов архивов Вы можете написать специальный вид правила суффикса для обновления архивов.

Implicit Rule for Archive Member Targets

• Символы архива Как обновить каталоги символов архива.

Extending GNU make

• Интеграция Guile Использование Guile как встроенного языка сценариев.
• Загрузка объектов Загрузка динамических объектов как расширений.

GNU Guile Integration

• Типы Guile Преобразование типов Guile в make строки.
• Интерфейс Guile Вызов make функций из Guile.
• Пример Guile Пример использования Guile в make.

Loading Dynamic Objects

• Директива загрузки Загрузка динамических объектов как расширений.
• Пересоздание загруженных объектов Как загруженные объекты пересоздаются.
• API загруженных объектов Программный интерфейс для загруженных объектов.
• Пример загруженного объекта Пример загруженного объекта

Integrating GNU make

• Слот задач Поделиться слотами задач с GNU make.
• Вывод на терминал Управление выводом на терминалы.

Sharing Job Slots with GNU make

• POSIX сервер задач Использование сервера задач на POSIX системах.
• Сервер задач Windows Использование сервера задач на Windows системах.

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/index.html

Spec-Zone.ru

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