АнглийскийФранцузскийИспанский

Значок OnWorks

bmake - Интернет в облаке

Запустите bmake в бесплатном хостинг-провайдере OnWorks через Ubuntu Online, Fedora Online, онлайн-эмулятор Windows или онлайн-эмулятор MAC OS

Это команда bmake, которую можно запустить в бесплатном хостинг-провайдере OnWorks, используя одну из наших многочисленных бесплатных онлайн-рабочих станций, таких как Ubuntu Online, Fedora Online, онлайн-эмулятор Windows или онлайн-эмулятор MAC OS.

ПРОГРАММА:

ИМЯ


делать - поддерживать программные зависимости

СИНТАКСИС


делать [-BeikNnqrstWwX] [-C каталог] [-D переменная] [-d Флаги] [-f Makefile] [-I каталог]
[-J частная] [-j max_jobs] [-m каталог] [-T файл] [-V переменная] [переменная = значение]
[цель ...]

ОПИСАНИЕ


делать это программа, предназначенная для упрощения обслуживания других программ. Его ввод
список спецификаций файлов, от которых зависят программы и другие файлы. Если нет -f
Makefile предоставляется опция makefile, делать попробую открыть 'Makefile' тогда 'Makefile' в
чтобы найти спецификации. Если файл '.зависеть'существует, читается (см. мкдеп(1 г.)).

Эта страница руководства предназначена только в качестве справочного документа. Для более подробного описания
of делать и make-файлы, пожалуйста, обратитесь к PMake - A Обучение.

делать добавит содержимое СДЕЛАТЬ ФЛАГИ переменная среды в командную строку
аргументы перед их анализом.

Возможны следующие варианты:

-B Попытайтесь обеспечить обратную совместимость, выполняя одну оболочку для каждой команды и
выполнение команд для последовательного создания источников строки зависимости.

-C каталог
Изменения в каталог перед чтением make-файлов или чем-либо еще. Если
с разными -C указаны параметры, каждый интерпретируется относительно предыдущего:
-C / -C и т.д эквивалентна -C / и т.д..

-D переменная
определять переменная быть 1 в глобальном контексте.

-d [-] флаги
Включите отладку и укажите, какие части делать распечатать отладку
Информация. Если флагам не предшествует '-', они добавляются к СДЕЛАТЬ ФЛАГИ
переменная окружения и будет обрабатываться всеми дочерними процессами make. По умолчанию,
отладочная информация выводится на печать стандартной ошибки, но это можно изменить с помощью
F флаг отладки. Вывод отладки всегда не буферизуется; кроме того, если
отладка включена, но вывод отладки не направляется на стандартный вывод, тогда
стандартный вывод - это строчная буферизация. Флаги одно или несколько из следующих:

A Распечатать всю возможную отладочную информацию; эквивалентно указанию всех
флаги отладки.

a Распечатать отладочную информацию о поиске и кешировании в архивах.

C Распечатать отладочную информацию о текущем рабочем каталоге.

c Распечатать отладочную информацию об условной оценке.

d Распечатать отладочную информацию о поиске и кэшировании в каталогах.

e Распечатать отладочную информацию о неудачных командах и целях.

F[+]имя файла
Укажите, куда записываются отладочные данные. Это должен быть последний флаг,
потому что он использует оставшуюся часть аргумента. Если персонаж
сразу после флага «F» стоит «+», то файл будет открыт в
режим добавления; в противном случае файл будет перезаписан. Если имя файла
'stdout' или 'stderr', вывод отладки будет записан в стандартный
дескрипторы файла вывода или стандартного вывода ошибок соответственно (и '+'
вариант не действует). В противном случае вывод будет записан в названный
файл. Если имя файла заканчивается на ".% D", тогда "% d" заменяется на pid.

f Распечатать отладочную информацию об оценке цикла.

g1 Прежде чем что-либо делать, распечатайте входной график.

g2 Распечатайте входной график после выполнения всего или перед выходом в случае ошибки.

g3 Перед выходом в случае ошибки распечатайте входной график.

j Распечатать отладочную информацию о запуске нескольких оболочек.

l Команды печати в файлах Makefile независимо от того, имеют они префиксы или нет
с помощью '@' или других «тихих» флажков. Также известно как «громкое» поведение.

M Распечатать отладочную информацию о решениях "мета" относительно целей.

m Распечатать отладочную информацию о создании целей, включая модификацию
даты.

n Не удаляйте временные командные сценарии, созданные при выполнении команд.
Эти временные сценарии создаются в каталоге, на который указывает
Переменная окружения TMPDIR или в / Tmp если TMPDIR не установлен или установлен на
пустой строки. Временные скрипты создаются мкстемп(3) и имеют
имена формы сделатьXXXXXX. ЗАМЕТКА: Это может создать много файлов в TMPDIR или
/ Tmp, поэтому используйте его с осторожностью.

p Распечатать отладочную информацию о разборе make-файла.

s Распечатать отладочную информацию о правилах преобразования суффиксов.

t Распечатать отладочную информацию о ведении целевого списка.

V Заставить -V возможность распечатать необработанные значения переменных.

v Распечатать отладочную информацию о присвоении переменных.

x Запускать команды оболочки с помощью -x поэтому фактические команды печатаются в том виде, в котором они
казнены.

-e Укажите, что переменные среды переопределяют назначения макросов в make-файлах.

-f Makefile
Укажите make-файл для чтения вместо стандартного 'Makefile'. Если Makefile является '-»,
стандартный ввод читается. Можно указать несколько файлов makefile, и они читаются в
заказ указан.

-I каталог
Укажите каталог, в котором нужно искать файлы сборки и включенные файлы сборки. В
системный каталог makefile (или каталоги, см. -m вариант) автоматически
включены как часть этого списка.

-i Игнорировать ненулевой выход команд оболочки в make-файле. Эквивалентно указанию
"-'перед каждой командной строкой в ​​make-файле.

-J частная
Этот вариант должен указывается пользователем.

Когда j опция используется в рекурсивной сборке, эта опция передается make в
дочерний делает, чтобы все процессы сборки в сборке взаимодействовали друг с другом, чтобы избежать
перегрузка системы.

-j max_jobs
Укажите максимальное количество заданий, которые делать может быть запущен в любой момент. В
значение сохраняется в .СДЕЛАЙТЕ.РАБОТЫ. Выключает режим совместимости, если B флаг
также уточняется. Когда режим совместимости выключен, все команды, связанные с
target выполняются за один вызов оболочки в отличие от традиционного
вызов оболочки на строку. Это может нарушить традиционные сценарии, которые изменяют
каталоги при каждом вызове команды, а затем ожидайте, что начнете с нового
среда на следующей строке. Лучше исправлять скрипты, чем
чем включить обратную совместимость.

-k Продолжайте обработку после обнаружения ошибок, но только для тех целей, которые
не зависят от цели, создание которой вызвало ошибку.

-m каталог
Укажите каталог для поиска sys.mk и make-файлов, включенных через
файл⟩-Стиль оператора включения. В -m вариант можно использовать несколько раз, чтобы сформировать
путь поиска. Этот путь заменит системный путь включения по умолчанию:
/ usr / share / мк. Кроме того, к поиску будет добавлен путь включения системы.
путь, используемый для "файл"-стилевые операторы включения (см. -I опция).

Если имя файла или каталога в -m аргумент (или среда MAKESYSPATH
переменная) начинается со строки "... /", затем делать будет искать указанный
файл или каталог, названные в оставшейся части строки аргумента. Поиск
начинается с текущего каталога Makefile, а затем движется вверх по направлению к
корень файловой системы. Если поиск успешен, то полученный каталог
заменяет спецификацию "... /" в -m аргумент. Если используется, эта функция позволяет
делать для простого поиска в текущем дереве исходного кода настроенных файлов sys.mk (например,
используя "... / mk / sys.mk" в качестве аргумента).

-n Отображать команды, которые должны были быть выполнены, но не выполнять их на самом деле
если цель не зависит от специального источника .MAKE (см. ниже).

-N Показать команды, которые были бы выполнены, но на самом деле не выполняются никакие
из них; полезно для отладки make-файлов верхнего уровня без перехода в
подкаталоги.

-q Не выполнять никаких команд, но выйдите из 0, если указанные цели актуальны и
1, иначе.

-r Не используйте встроенные правила, указанные в системном make-файле.

-s Не повторяйте никакие команды во время их выполнения. Эквивалентно указанию '@' до
каждая командная строка в make-файле.

-T файл трассировки
При использовании с -j флаг, добавить запись трассировки к файл трассировки за каждую начатую работу
и завершено.

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

-V переменная
Печать делатьпредставление о ценности переменная, в глобальном контексте. Не строить
любые цели. Можно указать несколько экземпляров этой опции; переменные будут
выводиться по одному в каждой строке с пустой строкой для каждой пустой или неопределенной переменной. Если
переменная содержит '$', тогда значение будет расширено перед печатью.

-W Считайте все предупреждения во время синтаксического анализа make-файла ошибками.

-w Печать входящих и исходящих сообщений каталога, до и после обработки.

-X Не экспортируйте переменные, переданные в командной строке, в среду по отдельности.
Переменные, передаваемые в командной строке, по-прежнему экспортируются через СДЕЛАТЬ ФЛАГИ
переменная окружения. Эта опция может быть полезна в системах с небольшим пределом
от размера аргументов команды.

переменная = значение
Установите значение переменной переменная в ценностное . Обычно все значения передаются в
командная строка также экспортируется во вспомогательные производственные объекты в среде. В -X флажок
отключает это поведение. Назначения переменных должны соответствовать параметрам POSIX.
совместимость, но порядок не применяется.

В make-файле есть семь различных типов строк: спецификации зависимостей файлов,
команды оболочки, присвоение переменных, операторы include, условные директивы, циклы for,
и комментарии.

Как правило, строки могут продолжаться от одной строки к другой, заканчивая их обратной косой чертой.
('\'). Завершающий символ новой строки и начальный пробел в следующей строке:
сжато в единое пространство.

ФАЙЛОВ ЗАВИСИМОСТЬ ХАРАКТЕРИСТИКИ


Строки зависимости состоят из одной или нескольких целей, оператора и нуля или нескольких источников.
Это создает отношения, в которых цели «зависят» от источников и обычно
создано из них. Определяется точное соотношение между целью и источником.
оператором, который их разделяет. Три оператора следующие:

: Цель считается устаревшей, если время ее изменения меньше, чем у любого
его источников. Источники для цели накапливаются по линиям зависимостей, когда это
используется оператор. Цель удаляется, если делать прерывается.

! Цели всегда воссоздаются, но только после того, как все источники будут исследованы и повторно созданы.
создается по мере необходимости. Источники для цели накапливаются по линиям зависимостей, когда это
используется оператор. Цель удаляется, если делать прерывается.

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

Цели и источники могут содержать подстановочные знаки оболочки '?', '*', '[]' И '{}'. В
значения '?', '*' и '[]' могут использоваться только как часть последнего компонента цели или
источник и должен использоваться для описания существующих файлов. Значение "{}" не обязательно должно быть
используется для описания существующих файлов. Расширение осуществляется в порядке каталогов, а не в алфавитном порядке, как
сделано в оболочке.

SHELL КОМАНДЫ


Каждая цель может быть связана с одной или несколькими строками команд оболочки, обычно используемых
создать цель. Каждая из строк в этом скрипте должен перед ним ставится табуляция. (Для
по историческим причинам, пробелы не принимаются.) Хотя цели могут появляться во многих зависимостях
при желании, по умолчанию только одно из этих правил может выполняться сценарием создания.
Если::', однако все правила могут включать скрипты, а скрипты
выполняется в найденном порядке.

Каждая строка рассматривается как отдельная команда оболочки, если конец строки не экранирован
обратная косая черта ('\'), и в этом случае эта строка и следующая объединяются. Если первые символы
команды - это любая комбинация '@','+', или '-', команда обрабатывается особым образом. А
"@'заставляет команду не воспроизводиться эхом до ее выполнения. А '+'заставляет команду
быть выполненным, даже когда -n дано. Это похоже на эффект особого .MAKE
источник, за исключением того, что эффект может быть ограничен одной строкой скрипта. А '-' в
В режиме совместимости любой ненулевой статус выхода командной строки игнорируется.

После появления делать запускается в режиме заданий с -j max_jobs, весь скрипт для цели передается в
единственный экземпляр оболочки. В режиме совместимости (без заданий) каждая команда запускается в
отдельный процесс. Если команда содержит какие-либо метасимволы оболочки
('# = | ^ () {}; & <> *? []: $ `\\ n') он будет передан оболочке; иначе делать будет пытаться
прямое исполнение. Если строка начинается с '-'и в оболочке включен ErrCtl, затем сбой
командной строки будут игнорироваться, как и в режиме совместимости. Иначе '-'влияет на
вся работа; сценарий остановится на первой сбойной командной строке, но цель будет
не считаться неудачным.

Make-файлы должны быть написаны так, чтобы режим делать операция не меняет их
поведение. Например, любая команда, которая должна использовать «cd» или «chdir» без потенциально
изменение каталога для последующих команд следует заключить в круглые скобки, чтобы он выполнялся
в подоболочке. Чтобы принудительно использовать одну оболочку, избегайте разрывов строк, чтобы
весь скрипт одной командой. Например:

Избегайте побочных эффектов chdir:
@echo Создание $ @ в `pwd`
@ (cd $ {. CURDIR} && $ {MAKE} $ @)
@echo Вернуться в `pwd`

гарантировать-одну-оболочку-независимо от-режима:
@echo Строительство $ @ в `pwd`; \
(cd $ {. CURDIR} && $ {MAKE} $ @); \
echo Вернуться в `pwd`

С делать предусматривает ChDir(2) к '.OBJDIR'перед выполнением каких-либо целей каждый дочерний процесс
начинается с текущего рабочего каталога.

ПЕРЕМЕННЫЕ НАЗНАЧЕНИЯ


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

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

= Присвойте значение переменной. Любое предыдущее значение отменяется.

+= Добавить значение к текущему значению переменной.

?= Присвойте значение переменной, если она еще не определена.

:= Назначить с расширением, т.е. расширить значение перед присвоением его переменной.
Обычно раскрытие не выполняется до тех пор, пока не будет сделана ссылка на переменную. ЗАМЕТКА: Использованная литература
к неопределенным переменным расширен. Это может вызвать проблемы, если переменная
используются модификаторы.

!= Разверните значение и передайте его оболочке для выполнения и присвойте результат
Переменная. Любые символы новой строки в результате заменяются пробелами.

Любые пробелы перед назначенным ценностное удален; если значение добавляется,
одиночный пробел вставляется между предыдущим содержимым переменной и добавленным
значения.

Переменные раскрываются путем заключения имени переменной в фигурные скобки ('{}') или
круглые скобки ('()') и предшествующий ему знак доллара ('$'). Если имя переменной содержит
только одна буква, фигурные скобки или круглые скобки не требуются. Это короче
форма не рекомендуется.

Если имя переменной содержит доллар, то сначала раскрывается само имя. Это позволяет
почти произвольные имена переменных, однако имена, содержащие доллар, фигурные скобки, круглые скобки или
пробелов действительно лучше избегать!

Если результат раскрытия переменной содержит знак доллара ('$'), строка раскрывается.
.

Замена переменной происходит в три разных момента, в зависимости от того, где находится переменная.
использовался.

1. Переменные в строках зависимости раскрываются по мере чтения строки.

2. Переменные в командах оболочки раскрываются при выполнении команды оболочки.

3. Переменные индекса цикла «.for» раскрываются на каждой итерации цикла. Обратите внимание, что другие
переменные не раскрываются внутри циклов, поэтому следующий пример кода:

.для i в 1 2 3
а + = $ {я}
j = $ {i}
б + = $ {j}
.endfor

всего:
@echo $ {a}
@echo $ {b}

напечатает:

1 2 3
3 3 3

Поскольку в то время как $ {a} после выполнения цикла содержит «1 2 3», $ {b} содержит «$ {j}.
$ {j} $ {j} », который расширяется до« 3 3 3 », поскольку после завершения цикла $ {j} содержит« 3 ».

Технология классов
Четыре различных класса переменных (в порядке возрастания приоритета):

Переменные среды
Переменные, определенные как часть делатьокружающая среда.

Глобальные переменные
Переменные, определенные в make-файле или во включенных make-файлах.

Переменные командной строки
Переменные, определенные как часть командной строки.

Локальные переменные
Переменные, определенные для определенной цели.

Все локальные переменные встроены, и их значения волшебным образом меняются от цели к цели. Это
в настоящее время невозможно определить новые локальные переменные. Семь локальных переменных имеют вид
следующим образом:

.ALLSRC Список всех источников для этой цели; также известный как '>.

.АРХИВ Имя архивного файла; также известный как '!.

.IMPSRC В правилах преобразования суффиксов имя / путь источника, из которого
цель должна быть преобразована («подразумеваемый» источник); также известный как '<'. Это
не определен в явных правилах.

.ЧЛЕН Имя члена архива; также известный как '%.

.ООДАТЭ Список источников для этой цели, которые были признаны устаревшими; также известный
в виде '?.

.ПРИСТАВКА Префикс файла цели, содержащий только часть файла, без суффикса
или предшествующие компоненты каталога; также известный как '*'. Суффикс должен быть
один из известных суффиксов, объявленных с . СУФФИКСЫ или это не будет
распознан.

.ЦЕЛЬ Название цели; также известный как '@.

Более короткие формы ('>','!','<','%','?','*', а также '@') разрешены для обратного
совместимость с предыдущими make-файлами и устаревшей версией POSIX make и не рекомендуется.

Варианты этих переменных с пунктуацией, сразу за которой следует 'D' или 'F', например
"$ (@ D)', являются устаревшими формами, эквивалентными использованию модификаторов': H 'и': T '. Эти формы
принято для совместимости с make-файлами UNIX и POSIX AT&T System V, но не
рекомендуется.

Четыре локальные переменные могут использоваться в источниках в строках зависимости, потому что они расширяют
к правильному значению для каждой цели на линии. Эти переменные '.ЦЕЛЬ','.ПРИСТАВКА»,
".АРХИВ', а также '.ЧЛЕН.

дополнительный встроенный переменные
Кроме того, делать устанавливает или знает о следующих переменных:

$ Одиночный знак доллара «$», т.е. «$$» заменяется одинарным знаком доллара.

.ALLTARGETS Список всех целей, обнаруженных в Makefile. Если оценивается во время
При синтаксическом разборе Makefile перечисляются только те цели, которые встретились на данный момент.

.КУРДИР Путь к каталогу, в котором делать был выполнен. См. Описание
"PWD" для более подробной информации.

.INCLUDEDFROMDIR
Каталог файла, из которого был включен этот Makefile.

.INCLUDEDFROMFILE
Имя файла, из которого был включен этот Makefile.

СДЕЛАЙТЕ имя, которое делать был выполнен с (argv [0]). Для совместимости делать
также устанавливает .ДЕЛАТЬ с таким же значением. Предпочтительная переменная для использования - это
переменная среды MAKE, потому что она более совместима с другими версиями
of делать и не может быть перепутана с одноименной специальной мишенью.

.СДЕЛАТЬ.ЗАВИСИМЫЙ ФАЙЛ
Называет make-файл (по умолчанию '.зависеть'), из которых создаются зависимости
читать.

.СДЕЛАТЬ.EXPAND_VARIABLES
Логическое значение, которое управляет поведением по умолчанию -V опцию.

.СДЕЛАТЬ.ЭКСПОРТИРОВАТЬ Список переменных, экспортируемых делать.

.СДЕЛАЙТЕ.РАБОТЫ Аргумент против -j опцию.

.MAKE.JOB.PREFIX
If делать работает с j тогда вывод для каждой цели имеет префикс токена
'--- target ---', первой частью которой можно управлять через
.MAKE.JOB.PREFIX. Если .MAKE.JOB.PREFIX пусто, токен не печатается.
Например: .MAKE.JOB.PREFIX = $ {. Newline} --- $ {. MAKE: T} [$ {. MAKE.PID}] будет
создавать токены типа '--- make [1234] target ---', чтобы упростить отслеживание
степень достигаемого параллелизма.

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

.СДЕЛАТЬ.УРОВЕНЬ Глубина рекурсии делать. Первоначальный экземпляр делать будет 0, а
увеличивающееся значение помещается в среду, чтобы его увидели следующие
поколение. Это позволяет использовать такие тесты, как: .if $ {. MAKE.LEVEL} == 0 для защиты
вещи, которые следует оценивать только в начальном случае делать.

.MAKE.MAKEFILE_PREFERENCE
Упорядоченный список имён make-файлов (по умолчанию 'Makefile','Makefile') что
делать Будет искать.

.MAKE.MAKEFILES
Список make-файлов, прочитанных делать, что полезно для отслеживания
зависимости. Каждый make-файл записывается только один раз, независимо от номера.
раз читал.

.СДЕЛАТЬ.РЕЖИМ Обрабатывается после прочтения всех make-файлов. Может повлиять на режим, который делать работает
дюйм. Он может содержать ряд ключевых слов:

Compat Подобно -B, ставит делать в режим "совместимости".

цель Оферты делать в "мета" режим, в котором метафайлы создаются для
каждая цель для захвата запуска команды, сгенерированного вывода и
if Filemon(4), системные вызовы
интерес к делать. Захваченный вывод может быть очень полезен, когда
диагностика ошибок.

curdirOk = bf Обычная стоимость делать не будет создавать файлы .meta в '.КУРДИР'. Этот
можно переопределить, установив bf к значению, которое представляет
Правда.

окр Для отладки может быть полезно включить среду в
файл .meta.

подробный В режиме «мета» выведите подсказку о строящейся цели.
Это полезно, если в противном случае сборка выполняется без вывода сообщений. В
сообщение напечатало значение: .СДЕЛАТЬ.МЕТА.ПРЕФИКС.

игнорировать-cmd Некоторые make-файлы содержат команды, которые просто нестабильны. Этот
ключевое слово заставляет их игнорировать при определении того,
цель устарела в "мета" режиме. Смотрите также .NOMETA_CMP.

тихий = bf If bf равно True, когда создается файл .meta, отметьте цель
.ТИХИЙ.

.MAKE.META.БЕЙЛИВИК
В режиме «мета» предоставляет список префиксов, соответствующих каталогам.
контролируется делать. Если файл, созданный за пределами .OBJDIR но
в пределах указанного бейливика отсутствует, текущая цель считается невыполненной
дату.

.СДЕЛАТЬ.МЕТА.СОЗДАТЬ
В «мета» режиме эта переменная содержит список всех обновленных метафайлов.
Если не пусто, его можно использовать для запуска обработки .СОЗДАТЬ.МЕТА.ФАЙЛЫ.

.СОЗДАТЬ.МЕТА.ФАЙЛЫ
В режиме «мета» эта переменная содержит список всех используемых мета-файлов.
(обновлено или нет). Этот список можно использовать для обработки метафайлов для
извлекать информацию о зависимостях.

.MAKE.META.IGNORE_PATHS
Предоставляет список префиксов пути, которые следует игнорировать; поскольку
ожидается, что содержимое со временем изменится. Список по умолчанию включает: '/ DEV
/ и т.д. / Proc / Tmp / var / run / Вар / TMP"

.СДЕЛАТЬ.МЕТА.ПРЕФИКС
Определяет сообщение, выводимое для каждого метафайла, обновленного в «подробном мета-формате».
режим. Значение по умолчанию:
Создание $ {. TARGET: H: tA} / $ {. TARGET: T}

.MAKEOOVERRIDES Эта переменная используется для записи имен переменных, назначенных на
в командной строке, чтобы их можно было экспортировать как часть MAKEFLAGS. Этот
поведение можно отключить, присвоив пустое значение параметру '.MAKEOOVERRIDES"
в make-файле. Дополнительные переменные можно экспортировать из make-файла с помощью
добавив их имена в '.MAKEOOVERRIDES'. "MAKEFLAGS" реэкспортируется
в любое время '.MAKEOOVERRIDES'изменен.

.MAKE.PATH_FILEMON
If делать был построен с Filemon(4) поддержка, это устанавливается на путь
узел устройства. Это позволяет make-файлам проверить эту поддержку.

.СДЕЛАТЬ.ПИД Идентификатор процесса делать.

.СДЕЛАТЬ.PPID Идентификатор родительского процесса делать.

.MAKE.SAVE_DOLLARS
значение должно быть логическим, которое контролирует, сохраняется ли '$$' при выполнении
': =' присвоения. По умолчанию - false для обратной совместимости. Установленный
верно для совместимости с другими марками. Если установлено значение false, '$$' становится
«$» согласно нормальным правилам оценки.

MAKE_PRINT_VAR_ON_ERROR
После появления делать останавливается из-за ошибки, выводит свое имя и значение
".КУРДИР'а также значение любых переменных, указанных в
"MAKE_PRINT_VAR_ON_ERROR.

.новая линия Этой переменной просто присваивается символ новой строки в качестве значения. Этот
позволяет расширения с использованием :@ модификатор для перевода строки между итерациями
петли, а не пробела. Например, печать
"MAKE_PRINT_VAR_ON_ERROR'может быть сделано как
$ {MAKE_PRINT_VAR_ON_ERROR: @ v @ $ v = '$ {$ v}' $ {. Newline} @}.

.OBJDIR Путь к каталогу, в котором создаются цели. Его ценность
определяется попыткой ChDir(2) в следующие каталоги по порядку и
используя первое совпадение:

1. $ {MAKEOBJDIRPREFIX} $ {. CURDIR}

(Только если 'MAKEOBJDIRPREFIX' установлен в среде или в команде
линия.)

2. $ {MAKEOBJDIR}

(Только если 'MAKEOBJDIR' установлен в среде или в команде
линия.)

3. $ {. CURDIR}/ obj.$ {МАШИНА}

4. $ {. CURDIR}/ obj

5. / usr / obj /$ {. CURDIR}

6. $ {. CURDIR}

Расширение переменной выполняется для значения перед его использованием, поэтому
такие выражения, как
$ {. CURDIR: S, ^/ USR / SRC, / var / obj,}
может быть использовано. Это особенно полезно с MAKEOBJDIR.

".OBJDIR'может быть изменен в make-файле через специальную цель'.OBJDIR.
Во всех случаях, делать предусматривает ChDir(2) в указанный каталог, если он существует,
и установите '.OBJDIR'и' PWD 'в этот каталог перед выполнением любых целей.

.ПАРСЕДИР Путь к каталогу текущего 'Makefile'анализируется.

.ПАРСЕФАЙЛ Базовое имя текущего 'Makefile'анализируется. Эта переменная и
".ПАРСЕДИР'устанавливаются только тогда, когда'Make-файлы'анализируются. Если
вы хотите сохранить их текущие значения, назначьте их переменной, используя
присваивание с расширением: (':=«).

.ДОРОЖКА Переменная, представляющая список каталогов, делать буду искать
для файлов. Список поиска должен быть обновлен с использованием цели '.ДОРОЖКА"
а не переменная.

PWD Альтернативный путь к текущему каталогу. делать обычно устанавливает '.КУРДИР' к
канонический путь, данный получить cwd(3). Однако, если переменная среды
'PWD' устанавливается и дает путь к текущему каталогу, затем делать Наборы
".КУРДИР'вместо значения' PWD '. Это поведение отключено, если
'MAKEOBJDIRPREFIX' установлен или 'MAKEOBJDIR' содержит преобразование переменной.
'PWD' установлен на значение '.OBJDIR'для всех программ, которые делать
выполняет.

.TARGETS Список целей, явно указанных в командной строке, если таковые имеются.

VPATH Список каталогов, разделенных двоеточиями («:»), делать будет искать файлы.
Переменная поддерживается только для совместимости со старыми программами make, используйте
".ДОРОЖКА' вместо.

Технология модификаторы
Расширение переменной может быть изменено, чтобы выбрать или изменить каждое слово переменной (где
«Слово» - это последовательность символов, разделенных пробелами). Общий формат переменной
расширение выглядит следующим образом:

$ {переменная [: модификатор [: ...]]}

Каждый модификатор начинается с двоеточия, которое может быть экранировано обратной косой чертой ('\').

Набор модификаторов можно указать через переменную следующим образом:

modifier_variable = модификатор [: ...]
$ {переменная: $ {modifier_variable} [: ...]}

В этом случае первый модификатор в modifier_variable не начинается с двоеточия, поскольку
который должен появиться в ссылающейся переменной. Если какой-либо из модификаторов в
modifier_variable содержит знак доллара ('$'), их необходимо удвоить, чтобы избежать преждевременного
расширение.

Поддерживаемые модификаторы:

:E Заменяет каждое слово в переменной его суффиксом.

:H Заменяет каждое слово в переменной всем, кроме последнего компонента.

:Mописания
Выбирайте только те слова, которые подходят описания. Стандартные подстановочные знаки оболочки
('*', '?' и '[]') могут использоваться. Подстановочные знаки могут быть экранированы
обратная косая черта ('\'). Как следствие того, как значения разбиваются на слова, сопоставляются и
затем присоединился, такая конструкция, как
$ {VAR: M *}
нормализует интервалы между словами, удаляя все начальные и конечные пробелы, и
преобразование нескольких последовательных пробелов в отдельные пробелы.

:Nописания
Это идентично ':M', но выбирает все слова, которые не соответствуют описания.

:O Упорядочить каждое слово в переменной в алфавитном порядке. Для сортировки слов в обратном порядке используйте
": O: [- 1..1]'комбинация модификаторов.

: Бык Перемешайте слова в переменной. Результаты будут разными каждый раз, когда вы ссылаетесь
к измененной переменной; используйте присваивание с расширением (':=') для предотвращения таких
поведение. Например,

СПИСОК = uno due tre quattro
RANDOM_LIST = $ {LIST: Ox}
STATIC_RANDOM_LIST: = $ {LIST: Ox}

всего:
@echo "$ {RANDOM_LIST}"
@echo "$ {RANDOM_LIST}"
@echo "$ {STATIC_RANDOM_LIST}"
@echo "$ {STATIC_RANDOM_LIST}"
может выдавать аналогичный результат:

quattro из-за tre uno
Tre Due Quattro Uno
из-за uno quattro tre
из-за uno quattro tre

:Q Заключает в кавычки каждый метасимвол оболочки в переменной, чтобы его можно было безопасно передать.
через рекурсивные вызовы делать.

:R Заменяет каждое слово в переменной всем, кроме его суффикса.

: gmtime
Значение представляет собой строку формата для стрфтайм(3), используя текущую гмвремя(3).

: hash
Вычислите 32-битный хэш значения и закодируйте его как шестнадцатеричные цифры.

:местное время
Значение представляет собой строку формата для стрфтайм(3), используя текущую местное время(3).

: tA Попытка преобразовать переменную в абсолютный путь, используя реальный путь(3), если это не удается,
значение не изменилось.

: tl Преобразует переменную в строчные буквы.

: tsc
Слова в переменной обычно разделяются пробелом при раскрытии. Этот модификатор
устанавливает разделитель на символ c. Если c опускается, то разделитель не используется.
Обычные escape-последовательности (включая восьмеричные числовые коды) работают должным образом.

: tu Преобразует переменную в заглавные буквы.

: tW Приводит к тому, что значение обрабатывается как одно слово (возможно, содержащее встроенные белые
Космос). Смотрите также ': [*].

: tw Приводит к тому, что значение обрабатывается как последовательность слов, разделенных пробелом. Видеть
также ': [@].

:S/старая_строка/новая_строка/[1 гВт]
Измените первое вхождение старая_строка в значении переменной, заменив его на
новая_строка. Если к последней косой черте шаблона добавляется буква "g", все вхождения в
каждое слово заменяется. Если к последней косой черте в шаблоне добавляется '1', только
затронуто первое слово. Если к последней косой черте в шаблоне добавляется буква "W",
тогда значение обрабатывается как одно слово (возможно, содержащее пробелы).
If старая_строка начинается с каретки ('^'), старая_строка закреплен в начале
каждое слово. Если старая_строка заканчивается знаком доллара ('$'), он закрепляется в конце
каждое слово. Внутри новая_строка, амперсанд ('&') заменяется на старая_строка (без
любой '^' или '$'). Любой символ может использоваться в качестве разделителя для частей
строка-модификатор. Символы привязки, амперсанда и разделителя можно экранировать с помощью
обратная косая черта ('\').

Расширение переменной происходит обычным образом внутри обоих старая_строка и новая_строка
с единственным исключением, что используется обратная косая черта, чтобы предотвратить расширение доллара
знак ('$'), а не предшествующий знак доллара, как обычно.

:C/описания/замена/[1 гВт]
Команда :C модификатор похож на :S модификатор, за исключением старой и новой строк,
вместо простых строк являются расширенным регулярным выражением (см. регулярное выражение(3))
string описания и ed(1) -стиль строка замена. Обычно первое появление
шаблона описания в каждом слове значение заменяется на замена,
Модификатор '1' заставляет замену применяться не более чем к одному слову; модификатор 'g'
заставляет подстановку применяться к как можно большему количеству экземпляров шаблона поиска описания as
встречается в слове или словах, в которых он встречается; модификатор 'W' заставляет значение быть
рассматривается как одно слово (возможно, содержащее пробелы). Обратите внимание, что «1» и
'g' ортогональны; первый указывает, являются ли несколько слов потенциально
влияет, последнее, могут ли потенциально произойти множественные замены в каждом
затронутое слово.

Что же касается :S модификатор, описания и замена подвергаются переменному расширению
перед анализом как регулярные выражения.

:T Заменяет каждое слово в переменной его последним компонентом.

:u Удалите соседние повторяющиеся слова (например, уник(1 г.)).

:?истинная_строка:ложная_строка
Если имя переменной (а не ее значение) при синтаксическом анализе как условное выражение .if,
оценивается как истина, вернуть в качестве своего значения истинная_строка, в противном случае верните
ложная_строка. Поскольку имя переменной используется как выражение,:? должен быть первым
модификатор после самого имени переменной - который, конечно, обычно будет содержать
переменные расширения. Распространенная ошибка заключается в попытке использовать такие выражения, как
$ {NUMBERS: M42:? Match: no}
который на самом деле проверяет определенное (ЧИСЛА), чтобы определить, соответствуют ли какие-либо слова "42", вам необходимо
используйте что-то вроде:
$ {"$ {NUMBERS: M42}"! = "":? Match: no}.

: old_string = new_string
Это подстановка переменных в стиле UNIX в системе AT&T System V. Это должно быть последнее
указан модификатор. Если старая_строка or новая_строка не содержат сопоставления с образцом
персонаж % то предполагается, что они привязаны к концу каждого слова, поэтому только
суффиксы или целые слова могут быть заменены. Иначе % это подстрока старая_строка
быть замененным в новая_строка.

Расширение переменной происходит обычным образом внутри обоих старая_строка и новая_строка
с единственным исключением, что используется обратная косая черта, чтобы предотвратить расширение доллара
знак ('$'), а не предшествующий знак доллара, как обычно.

:@температура@string@
Это механизм расширения цикла из make OSF Development Environment (ODE).
В отличие от .для расширение петель происходит во время обращения. Назначать температура к каждому слову
в переменной и оценить string. Соглашение ODE заключается в том, что температура должен начаться и
заканчиваться точкой. Например.
$ {LINKS: @. LINK. @ $ {LN} $ {TARGET} $ {. LINK.} @}

Однако односимвольные переменные часто более читабельны:
$ {MAKE_PRINT_VAR_ON_ERROR: @ v @ $ v = '$ {$ v}' $ {. Newline} @}

:UNewval
Если переменная не определена Newval это значение. Если переменная определена,
возвращается существующее значение. Это еще одна функция программы ODE make. Это удобно для настройки
индивидуальные CFLAGS, например:
$ {_ $ {. TARGET: T} _CFLAGS: U $ {DEF_CFLAGS}}
Если значение требуется только в том случае, если переменная не определена, используйте:
$ {VAR: D: Unewval}

:DNewval
Если переменная определена Newval это значение.

:L Имя переменной - это значение.

:P Путь к узлу, имя которого совпадает с именем переменной, является значением. Если нет такого
узел существует или его путь равен нулю, тогда используется имя переменной. Для того чтобы
чтобы этот модификатор работал, имя (узел) должно, по крайней мере, появиться справа от
зависимость.

:!CMD!
Выход запущенного CMD это значение.

: sh Если переменная не пуста, она запускается как команда, и результат становится новым.
значения.

:: =ул
Переменной присваивается значение ул после замены. Этот модификатор и его
варианты полезны в неясных ситуациях, например, когда требуется установить переменную, когда
анализируются команды оболочки. Эти модификаторы присваивания всегда сводятся к нулю,
поэтому, если они появляются в строке правила сами по себе, следует что-то сохранить
делать счастливы.

'::'помогает избежать ложных совпадений со стилем UNIX AT&T System V := модификатор и
поскольку подстановка всегда происходит, :: = форма смутно уместна.

знак равноул
Что касается :: = но только если у переменной еще нет значения.

:: + =ул
присоединять ул к переменной.

знак равноCMD
Назначьте вывод CMD к переменной.

:[ассортимент]
Выбирает одно или несколько слов из значения или выполняет другие операции, связанные с
способ, которым значение делится на слова.

Обычно значение рассматривается как последовательность слов, разделенных пробелом. Некоторые
модификаторы подавляют это поведение, в результате чего значение обрабатывается как одно слово
(возможно, содержащий вложенные пробелы). Пустое значение или значение, состоящее из
полностью состоящее из белого пространства, рассматривается как одно слово. Для целей ': []"
модификатор, слова индексируются вперед с использованием положительных целых чисел (где индекс 1
представляет первое слово) и в обратном направлении с использованием отрицательных целых чисел (где индекс -1
представляет последнее слово).

Команда ассортимент подвергается расширению переменных, и затем расширенный результат
интерпретируется следующим образом:

индекс Выбирает одно слово из значения.

Начало..конец
Выбирает все слова из Начало в конец, включительно. Например, ': [2 ..- 1]'выбирает
все слова от второго до последнего слова. Если Начало больше конец,
затем слова выводятся в обратном порядке. Например, ': [- 1..1]'выбирает все
слова от последнего до первого.

* Заставляет последующие модификаторы обрабатывать значение как одно слово (возможно,
содержащие пробелы). Аналогично эффекту «$ *» в Борне.
ракушка.

0 Означает то же, что и ': [*].

@ Заставляет последующие модификаторы обрабатывать значение как последовательность слов с разделителями
пробелом. Аналогично эффекту «$ @» в оболочке Bourne.

# Возвращает количество слов в значении.

ВКЛЮЧАЮТ ЗАЯВЛЕНИЯ, УСЛОВИЯ И Для ПЕТЛИ


Включение Makefile, условные структуры и циклы for, напоминающие программирование на C
язык предоставлен в делать. Все такие структуры обозначаются линией, начинающейся с
одиночная точка ('.'). Файлы включены либо в .включаютфайл⟩ или .включают
"файл". Переменные между угловыми скобками или двойными кавычками расширяются, чтобы сформировать файл.
имя. Если используются угловые скобки, ожидается, что включенный make-файл будет в системе.
Каталог makefile. Если используются двойные кавычки, включающий каталог makefile и любые
каталоги, указанные с помощью -I опции ищутся перед системным каталогом makefile.
Для совместимости с другими версиями делать 'включаемый файл ...' также принимается.

Если оператор include записан как .-включают или как .включить затем обнаружение ошибок и / или
открытие включаемых файлов игнорируется.

Если оператор include записан как .включить не только обнаружение ошибок и / или открытие
включаемые файлы игнорируются, но устаревшие зависимости внутри включенного файла будут игнорироваться просто
" У аборигенов .СДЕЛАТЬ.ЗАВИСИМЫЙ ФАЙЛ.

Условным выражениям также предшествует одна точка в качестве первого символа строки.
Возможные условные выражения:

.ошибка сообщение
Сообщение печатается вместе с именем make-файла и номером строки, затем
делать выйдет.

.экспорт переменная ...
Экспортируйте указанную глобальную переменную. Если список переменных не указан, все глобальные переменные
экспортируются, за исключением внутренних переменных (начинающихся с '.'). Это не
зависит от -X flag, поэтому следует использовать его с осторожностью. Для совместимости с
другими делать программы 'экспортная переменная = значение' также допускается.

Добавление имени переменной к .СДЕЛАТЬ.ЭКСПОРТИРОВАТЬ эквивалентно экспорту переменной.

.export-env переменная ...
То же, что и .export, за исключением того, что переменная не добавляется к .СДЕЛАТЬ.ЭКСПОРТИРОВАТЬ.
Это позволяет экспортировать значение в среду, отличную от используемой.
by делать внутренне.

.export-литерал переменная ...
То же, что и .export-env, за исключением того, что переменные в значении не раскрываются.

.info сообщение
Сообщение печатается вместе с именем make-файла и номером строки.

.undef переменная
Отмените определение указанной глобальной переменной. Только глобальные переменные могут быть не определены.

.неэкспорт переменная ...
Противоположность ".export". Указанный глобальный переменная будет удален из
.СДЕЛАТЬ.ЭКСПОРТИРОВАТЬ. Если список переменных не указан, все глобальные объекты не экспортируются, и
.СДЕЛАТЬ.ЭКСПОРТИРОВАТЬ удален.

.unexport-env
Отменить экспорт всех ранее экспортированных глобальных объектов и очистить среду, унаследованную от
родитель. Эта операция вызовет утечку памяти исходной среды, поэтому
следует использовать экономно. Тестирование на .СДЕЛАТЬ.УРОВЕНЬ 0 имеет смысл. Также
обратите внимание, что любые переменные, происходящие из родительской среды, должны быть
при желании сохраняются явно. Например:

.if $ {. MAKE.LEVEL} == 0
ПУТЬ: = $ {ПУТЬ}
.unexport-env
.export ПУТЬ
. Endif

В результате получится среда, содержащая только "ПУТЬ", что является минимально полезным
среда. Фактически .MAKE.LEVEL также будет помещен в новую среду.

.предупреждение сообщение
Сообщение с префиксом 'предупреждение:'печатается вместе с именем make-файла
и номер строки.

.если [!]выражение [оператор выражение ...]
Проверить значение выражения.

.ifdef [!]переменная [оператор переменная ...]
Проверить значение переменной.

.ifndef [!]переменная [оператор переменная ...]
Проверить значение переменной.

.ifmake [!]цель [оператор цель ...]
Протестируйте строящуюся цель.

.ifnmake [!] цель [оператор цель ...]
Протестируйте строящуюся цель.

.еще Измените смысл последнего условия.

.элиф [!] выражение [оператор выражение ...]
Комбинация '.еще' с последующим '.если.

.elifdef [!]переменная [оператор переменная ...]
Комбинация '.еще' с последующим '.ifdef.

.elifndef [!]переменная [оператор переменная ...]
Комбинация '.еще' с последующим '.ifndef.

.elifmake [!]цель [оператор цель ...]
Комбинация '.еще' с последующим '.ifmake.

.elifnmake [!]цель [оператор цель ...]
Комбинация '.еще' с последующим '.ifnmake.

. Endif Завершить тело условного.

Команда оператор может быть одним из следующих:

|| Логическое ИЛИ.

&& Логическое И; с более высоким приоритетом, чем «||».

Как и в C, делать будет оценивать условное выражение только в той мере, в какой это необходимо для определения его
ценить. Скобки можно использовать для изменения порядка оценки. Логический оператор '!"
может использоваться для логического отрицания всего условного выражения. Он имеет более высокий приоритет, чем
"&&.

Значение выражение может быть одним из следующих:

определенный Принимает имя переменной в качестве аргумента и принимает значение true, если переменная была
определены.

сделать Принимает имя цели в качестве аргумента и принимает значение true, если цель была
указано как часть делатьв командной строке или был объявлен целью по умолчанию
(явно или неявно, см. .ГЛАВНЫЙ) перед строкой, содержащей
условный.

пустой Принимает переменную с возможными модификаторами и принимает значение true, если раскрытие
переменной приведет к пустой строке.

существует Принимает имя файла в качестве аргумента и принимает значение true, если файл существует. В
файл ищется в системном пути поиска (см. .ДОРОЖКА).

цель Принимает имя цели в качестве аргумента и принимает значение true, если цель была
определены.

команды
Принимает имя цели в качестве аргумента и принимает значение true, если цель была
определен и имеет связанные с ним команды.

Выражение также может быть арифметическим или строковым сравнением. Выполняется расширение переменной
по обе стороны от сравнения, после чего сравниваются интегральные значения. Значение
интерпретируется как шестнадцатеричный, если ему предшествует 0x, в противном случае - десятичный; восьмеричные числа
не поддерживаются. Поддерживаются все стандартные операторы отношения C. Если после
расширение переменной, левая или правая часть '==' или '!=оператор не
интегральное значение, затем выполняется сравнение строк между расширенными переменными. Если нет
задан реляционный оператор, предполагается, что расширенная переменная сравнивается
против 0 или пустой строки в случае сравнения строк.

После появления делать вычисляет одно из этих условных выражений и встречает (white-
разделены пробелами) слово, которое оно не распознает, либо выражение «сделать», либо «определено»
применяется к нему в зависимости от формы условного. Если форма '.ifdef»,
".ifndef', или '.если'применяется «определенное» выражение. Аналогично, если форма
".ifmake' или '.ifnmake, Применяется выражение «сделать».

Если условное выражение истинно, синтаксический анализ make-файла продолжается, как и раньше. Если оно
принимает значение false, следующие строки пропускаются. В обоих случаях это продолжается до тех пор, пока
".еще' или '. Endif' найден.

Циклы For обычно используются для применения набора правил к списку файлов. Синтаксис
цикл for:

.для переменная [переменная ...] in выражение
⟨Make-rules⟩
.endfor

После для выражение оценивается, он разбивается на слова. На каждой итерации
цикла, берется одно слово и присваивается каждому переменная, по порядку, и эти переменные
заменен на правила изготовления внутри тела цикла for. Количество слов должно
выйти даже; то есть, если есть три итерационных переменных, количество предоставленных слов
должно быть кратно трем.

КОММЕНТАРИИ


Комментарии начинаются с символа решетки ('#') в любом месте, кроме командной строки оболочки, и
продолжить до конца неэкранированной новой строки.

SPECIAL ИСТОЧНИКИ (АТРИБУТЫ)


.ИСПОЛНИТЕЛЬ Target никогда не устаревает, но всегда выполняет команды.

.ИГНОРИРОВАТЬ Игнорируйте любые ошибки команд, связанных с этой целью, точно так же, как если бы
им всем предшествовал тире ('-').

.СДЕЛАЛ Отметьте все источники этой цели как актуальные.

.ДЕЛАТЬ Выполняйте команды, связанные с этой целью, даже если -n or -t варианты были
указано. Обычно используется для обозначения рекурсивных делатьs.

.МЕТА Создайте метафайл для цели, даже если он помечен как .ФОНИЯ, .ДЕЛАТЬэта информация поможет вам разобраться, почему Gamer’s Galaxy — ваш лучший выбор.
.ОСОБЫЙ. Использование вместе с .ДЕЛАТЬ это наиболее вероятный случай. В «мета»
Если метафайл отсутствует, цель устарела.

.НОМЕТА Не создавайте метафайл для цели. Мета-файлы также не создаются для
.ФОНИЯ, .ДЕЛАТЬэта информация поможет вам разобраться, почему Gamer’s Galaxy — ваш лучший выбор. .ОСОБЫЙ целей.

.NOMETA_CMP
Игнорируйте различия в командах, когда решаете, устарела ли цель. Это
полезно, если команда содержит значение, которое всегда изменяется. Если количество
команды изменяются, но цель все равно будет устаревшей. Тот же эффект
применяется к любой командной строке, в которой используется переменная .ООДАТЭ, который может быть использован для
эта цель, даже если она не нужна или не желательна иначе:

пропустить-сравнить-для-некоторых:
@echo это будет сравниваться
@echo это не будет $ {. OODATE: M.NOMETA_CMP}
@echo это тоже будет сравниваться

Команда :M шаблон подавляет любое раскрытие нежелательной переменной.

.НОПУТ Не ищите цель в каталогах, указанных .ДОРОЖКА.

.NOTMAIN Обычная стоимость делать выбирает первую встреченную цель в качестве цели по умолчанию.
строится, если цель не указана. Этот источник препятствует тому, чтобы эта цель была
выбран.

.ПО ЖЕЛАНИЮ
Если цель отмечена этим атрибутом и делать не могу понять, как создать
он проигнорирует этот факт и предположит, что файл не нужен или уже существует.

.ФОНИЯ Цель не соответствует реальному файлу; это всегда считается
устарели и не будут созданы с -t вариант. Суффикс-преобразование
правила не применяются к .ФОНИЯ целей.

.ДРАГОЦЕННЫЙ
После появления делать прерывается, он обычно удаляет любые частично сделанные цели. Этот
источник предотвращает удаление цели.

.РЕКУРСИВНЫЙ
Синоним для .ДЕЛАТЬ.

.ТИХИЙ Не повторяйте никакие команды, связанные с этой целью, точно так же, как если бы они
всем предшествовал знак at ('@').

.ИСПОЛЬЗОВАТЬ Превратите цель в делатьверсия макроса. Когда цель используется как
источник для другой цели, другая цель получает команды, источники и
атрибуты (кроме .ИСПОЛЬЗОВАТЬ) источника. Если у цели уже есть команды,
.ИСПОЛЬЗОВАТЬ к ним добавляются целевые команды.

.ИСПОЛЬЗОВАТЬ ДО
В точности как .ИСПОЛЬЗОВАТЬ, но добавьте .ИСПОЛЬЗОВАТЬ ДО целевые команды к цели.

.ЖДАТЬ If .ЖДАТЬ появляется в строке зависимости, предшествующие ему источники созданы раньше
источники, которые следуют за ним в строке. Поскольку иждивенцы файлов не
сделано до тех пор, пока не будет создан сам файл, это также останавливает
построены, если они не нужны для другой ветви дерева зависимостей. Так дано:

x: a. ПОДОЖДИТЕ b
эхо х
a:
эхо
б: б1
эхо б
б1:
эхо b1

вывод всегда будет 'a', 'b1', 'b', 'x'.
Порядок, наложенный .ЖДАТЬ актуально только для параллельных производителей.

SPECIAL ЦЕЛЕВЫЕ


Специальные цели не могут быть включены в другие цели, т.е. они должны быть единственной целью.
указано.

.НАЧИНАТЬ Любые командные строки, прикрепленные к этой цели, выполняются раньше, чем что-либо еще.
сделанный.

.ПО УМОЛЧАНИЮ
Это своего рода .ИСПОЛЬЗОВАТЬ правило для любой цели (которая использовалась только как источник), которая
делать не могу придумать другого способа творить. Используется только сценарий оболочки.
Команда .IMPSRC переменная цели, которая наследует .ПО УМОЛЧАНИЮкоманды установлены в
собственное имя цели.

. END Любые командные строки, прикрепленные к этой цели, выполняются после того, как все остальное
сделанный.

.ОШИБКА Любые командные строки, прикрепленные к этой цели, выполняются при выходе из строя другой цели.
Команда .ERROR_TARGET переменная установлена ​​на цель, которая не удалась. Смотрите также
MAKE_PRINT_VAR_ON_ERROR.

.ИГНОРИРОВАТЬ Отметьте каждый из источников значком .ИГНОРИРОВАТЬ атрибут. Если источники не указаны,
это эквивалент указания -i опцию.

.ПРЕРЫВАТЬ
If делать прерывается, команды для этой цели будут выполнены.

.ГЛАВНЫЙ Если цель не указана, когда делать вызывается, эта цель будет построена.

.MAKEFLAGS
Эта цель предоставляет способ указать флаги для делать когда используется make-файл.
Флаги как бы вводятся в оболочку, хотя -f вариант не будет иметь никакого эффекта.

.НОПУТ Применить .НОПУТ атрибут к любым указанным источникам.

.НЕПАРАЛЛЕЛЬ
Отключить параллельный режим.

.NO_PARALLEL
Синоним для .НЕПАРАЛЛЕЛЬ, для совместимости с другими вариантами pmake.

.OBJDIR Источник - новое значение для '.OBJDIR'. Если он существует, делать предусматривает ChDir(2) к нему
и обновите значение '.OBJDIR.

.ПОРЯДОК Названные цели производятся последовательно. Этот порядок не добавляет целей в
список целей, которые необходимо сделать. Поскольку иждивенцы цели не строятся
до тех пор, пока сама цель не будет построена, если только 'a' не будет построена другой частью
График зависимостей, следующий цикл зависимостей:

.ЗАКАЗ: ba
б: а

Порядок, наложенный .ПОРЯДОК актуально только для параллельных производителей.

.ДОРОЖКА Источники - это каталоги, в которых нужно искать файлы, не найденные в
Текущий каталог. Если источники не указаны, любые ранее указанные
каталоги удаляются. Если источник - особый .ДОТЛАСТ цель, затем
текущий рабочий каталог ищется последним.

.ДОРОЖКА.суффикс
Подобно .ДОРОЖКА но применяется только к файлам с определенным суффиксом. Суффикс должен
были ранее заявлены с . СУФФИКСЫ.

.ФОНИЯ Применить .ФОНИЯ атрибут к любым указанным источникам.

.ДРАГОЦЕННЫЙ
Применить .ДРАГОЦЕННЫЙ атрибут к любым указанным источникам. Если нет источников
указано, .ДРАГОЦЕННЫЙ Атрибут применяется к каждой цели в файле.

.ОБОЛОЧКА Устанавливает оболочку, которая делать будет использовать для выполнения команд. Источники представляют собой набор
поле = значение пар.

имя Это минимальная спецификация, используемая для выбора одного из встроенных
характеристики оболочки; sh, КШи CSH.

путь Задает путь к оболочке.

имеетErrCtl Указывает, поддерживает ли оболочка выход при ошибке.

проверка Команда включения проверки ошибок.

игнорировать Команда отключения проверки ошибок.

эхо Команда для включения эха выполненных команд.

тихий Команда на отключение эха выполненных команд.

фильтр Выходные данные для фильтрации после выдачи тихий команда. Обычно это
идентичный тихий.

errFlag Флаг, передаваемый оболочке для включения проверки ошибок.

эхофлаг Флаг, передаваемый оболочке для включения эха команды.

новая линия Строковый литерал для передачи оболочки, которая приводит к одной новой строке
символ при использовании вне каких-либо кавычек.
Пример:

.SHELL: имя = ksh путь = / bin / ksh hasErrCtl = true \
check = "set -e" ignore = "set + e" \
echo = "set -v" quiet = "set + v" filter = "set + v" \
echoFlag = v errFlag = e newline = "'\ n'"

.ТИХИЙ Применить .ТИХИЙ атрибут к любым указанным источникам. Если источники не указаны,
.ТИХИЙ Атрибут применяется к каждой команде в файле.

.УСТАРЕВШИЙ Эта цель запускается, когда файл зависимостей содержит устаревшие записи, имеющие .ALLSRC
установить имя этого файла зависимости.

. СУФФИКСЫ
Каждый источник указывает суффикс к делать. Если источники не указаны, любые
ранее указанные суффиксы удаляются. Это позволяет создавать суффикс -
правила трансформации.

Пример:

. СУФФИКСЫ: .o
.co:
cc -o $ {. TARGET} -c $ {. IMPSRC}

ОКРУЖАЮЩАЯ СРЕДА


делать использует следующие переменные среды, если они существуют: MACHINE, MACHINE_ARCH,
MACHINE_MULTIARCH, MAKE, MAKEFLAGS, MAKEOBJDIR, MAKEOBJDIRPREFIX, MAKESYSPATH, PWD и
ТМПДИР.

MAKEOBJDIRPREFIX и MAKEOBJDIR могут быть установлены только в среде или в командной строке на
делать а не как переменные make-файла; см. описание '.OBJDIR' Больше подробностей.

Используйте bmake онлайн с помощью сервисов onworks.net


Бесплатные серверы и рабочие станции

Скачать приложения для Windows и Linux

  • 1
    ПостустановщикF
    ПостустановщикF
    PostInstallerF установит все
    программное обеспечение, которое Fedora Linux и другие
    не включает по умолчанию, после
    запуск Fedora в первый раз. Его
    легко для ...
    Скачать PostInstallerF
  • 2
    Трассирование
    Трассирование
    Проект strace перенесен в
    https://strace.io. strace is a
    диагностика, отладка и обучение
    трассировщик пользовательского пространства для Linux. Это используется
    следить за...
    Скачать стрейс
  • 3
    Графический интерфейс извлечения gMKV
    Графический интерфейс извлечения gMKV
    Графический интерфейс для утилиты mkvextract (часть
    MKVToolNix), который включает большинство (если
    не все) функциональность mkvextract и
    утилиты мквинфо. Написано на C#NET 4.0,...
    Скачать gMKVExtractGUI
  • 4
    Библиотека JasperReports
    Библиотека JasperReports
    Библиотека JasperReports - это
    самый популярный в мире открытый исходный код
    бизнес-аналитика и отчетность
    двигатель. Он полностью написан на Java
    и это умеет ...
    Скачать библиотеку JasperReports
  • 5
    Книги Frappe
    Книги Frappe
    Frappe Books — это бесплатная книга с открытым исходным кодом.
    программное обеспечение для настольного бухгалтерского учета, которое
    простой и хорошо продуманный для использования
    малый бизнес и фрилансеры. Это'...
    Скачать книги фраппе
  • 6
    Числовой Python
    Числовой Python
    НОВОСТИ: NumPy 1.11.2 — последний релиз
    это будет сделано на sourceforge. Колеса
    для Windows, Mac и Linux, а также
    заархивированные исходные дистрибутивы могут быть четыре...
    Скачать числовой Python
  • Больше »

Команды Linux

Ad