-b
-m
Эти опции игнорируются для совместимости с другими версиями make.
-B
--always-make
Считает все target-ы устаревшими. GNU make продолжает рассматривать targets и их prerequisites, используя обычные алгоритмы; однако все цели, рассматриваемые таким образом, всегда перестраиваются заново независимо от статуса их prerequisites. Во избежание бесконечной рекурсии, если установлено MAKE_RESTARTS (см. "6.14 Other Special Variables" [1]) в значение больше 0, то эта опция запрещается при рассмотрении вопроса о переделке файлов makefile (см. "3.5 How Makefiles Are Remade" [1]).
-C dir
--directory=dir
Меняет директорию на dir перед чтением файлов makefile. Если указано несколько опций -C, то каждая из них интерпретируется относительно предыдущей: '-C / -C etc' эквивалентно '-C /etc'. Это обычно используется вместе с рекурсивными вызовами make (см. "5.7 Recursive Use of make" [1]).
-d
Печатает отладочную информацию в дополнение к обычной обработке. Отладочная информация говорит, какие файлы рассмотрены для перестроения, какие времена файлов сравниваются и с какими результатами, какие файлы на самом деле необходимо перестроить, какие неявные правила (implicit rules) рассматриваются и какие применяются - все интересное о том, как make решает, что делать. Опция -d эквивалентна --debug=a (см. далее).
--debug[=options]
Печатает отладочную информацию в дополнение к обычной обработке, с указанием уровня отладочных сообщений. Могут быть выбраны различные уровни и типы вывода. Без аргументов печатает отладочную информацию "базового" уровня (basic). Ниже приведены возможные аргументы этой опции; рассматривается только их первый символ, и значения должны отделяться друг от друга запятой или пробелом.
a (all)
Разрешены все типы отладочного вывода. Это эквивалентно использованию -d.
b (basic)
Базовая отладочная информация - выводится на печать каждая target, которая была найдена как устаревшая (out-of-date), и была ли сборка успешной или нет.
v (verbose)
Уровень выше 'basic'; включает сообщения о том, какие файлы makefile были разобраны, prerequisites которые не нужно было перестраивать, и т. д. Эта опция также разрешает сообщения уровня 'basic'.
i (implicit)
Печатает сообщения, описывающие неявный поиск правил для каждой цели. Эта опция также разрешает сообщения уровня 'basic'.
j (jobs)
Печатает сообщения, содержащие подробные сведения о вызове определенных подкоманд.
m (makefile)
По умолчанию показанные выше сообщения не разрешены при попытке перестроить (remake) файлы makefile. Эта опция разрешает сообщения также и при перестроении файлов makefile. Обратите внимание, что опция 'all' разрешает эту опцию. Эта опция также разрешает сообщения уровня 'basic'.
p (print)
Печатает выполняемый recipe, даже когда recipe обычно молчит (из-за .SILENT или '@'). Также печатает имя makefile и его строку, где был определен recipe.
w (why)
Объясняет, почему каждая target должна быть пересоздана, показывая, какие prerequisites более актуальны, чем target.
n (none)
Запретит всю разрешенную в настоящий момент отладочную информацию. Если после этого обнаружатся дополнительные флаги отладки, они все равно вступят в силу.
-e
--environment-overrides
Присваивает приоритет переменным, взятым из окружения, перед переменным из файлов makefile. См. "6.10 Variables from the Environment" [1].
-E string
--eval=string
Обработает string как синтаксис makefile. Это версия командной строки функции eval (см. "8.10 The eval Function" [1]). Вычисление выполняется после того, как определены правила и переменные по умолчанию, но до чтения любых файлов makefile.
-f file
--file=file
--makefile=file
Читает файл с именем file как makefile. См. "3 Writing Makefiles" [1].
-h
--help
Напомнит вам об опциях, которые понимает make, и завершит работу make.
-i
--ignore-errors
Игнорирует все ошибки в recipe, выполняемых для пересборки файлов. См. [3].
-I dir
--include-dir=dir
Укажет директорию dir для поиска подключаемых файлов makefile. См. "3.3 Including Other Makefiles" [1]. Если используется несколько опций -I для указания нескольких директорий, то директории просматриваются в указанном порядке. Если директория dir это одиночное тире (-), то все уже указанные директории до этого момента (включая пути директории по умолчанию) будут отброшены. Вы можете просмотреть текущий список директорий для поиска через переменную .INCLUDE_DIRS.
-j [jobs]
--jobs[=jobs]
Указывает количество одновременно запускаемых обработок recipe (jobs). Без аргумента make запустит одновременно столько recipe, сколько возможно. Если указано более одной опции -j, то вступит в действие последняя из них. Для дополнительной информации о том, как запускаются recipes, см. "5.4 Parallel Execution" [1]. Имейте в виду, что на MS-DOS эта опция игнорируется.
--jobserver-style=[style]
Выбирает стиль используемого сервера заданий. Эта опция дает эффект только если разрешены параллельные сборки (см. "5.4 Parallel Execution" [1]). На POSIX-системах style может быть fifo (умолчание) или pipe. На Windows допускается только стиль sem (умолчание). Эта опция полезна, если вам нужно использовать более старые версии GNU make, или другой инструмент, требующий определенного стиля jobserver.
-k
--keep-going
Продолжит работу после возникновения ошибки, насколько это возможно. Хотя не может быть собрана target, потерпевшая неудачу и все то, что от неё зависит, все же могут быть обработаны другие prerequisites этих target. См. выше врезку "Тестирование компиляции программы".
-l [load]
--load-average[=load]
--max-load[=load]
Указывает, что новые recipe не должны запускаться, если выполняются другие recipe, и среднее значение нагрузки процессора составляет как минимум load (число с плавающей запятой). Без аргумента удалит предыдущий лимит нагрузки. См. "5.4 Parallel Execution" [1].
-L
--check-symlink-times
На системах, поддерживающих символические ссылки, эта опция заставляет make учитывать метки времени любых символических ссылок в дополнение к метке времени файла, на который ссылаются эти ссылки. Когда предоставлена эта опция, то в качестве времени изменения используется самая свежая метка времени модификации между файлом и ссылкой.
-n
--just-print
--dry-run
--recon
Распечатает recipe, который будет выполнен, но без его выполнения (за исключением определенных обстоятельств). См. выше врезку "Вместо выполнения Recipes".
-o file
--old-file=file
--assume-old=file
Не пересоздавать файл file, даже если он более старый, чем его prerequisites, и не пересоздавать ничего из-за учета изменений в файле. По сути файл рассматривается как очень старый, и его правила игнорируются. См. выше врезку "Как избежать перекомпиляции некоторых файлов".
-O[type]
--output-sync[=type]
Гарантирует, что все выходные данные каждого recipe печатаются в одной непрерывной последовательности. Эта опция полезна только когда используется опция --jobs для запуска нескольких recipe одновременно (см. "5.4 Parallel Execution" [1]). Без этой опции вывод будет отображаться как есть, как он генерируется командами нескольких recipe.
Когда тип type не указан, или тип 'target', данные вывода из всего recipe каждой target группируются вместе. С типом 'line' вывод каждой строки в recipe группируется вместе. С типом 'recurse' вывод из всех рекурсий make группируется вместе. С типом 'none' никакая синхронизация вывода не производится. См. "5.4.2 Output During Parallel Execution" [1].
-p
--print-data-base
Напечатает базу данных (правила и значения переменных), полученную из чтения файлов makefile; затем выполнит все как обычно, если не указано что-то другое. Это также напечатает информацию версии, которую выдает опция -v (см. далее). Для печати базы данных без пересборки файлов используйте make -qp. Для печати базы данных предварительно заданных правил и переменных используйте make -p -f /dev/null. Вывод базы данных содержит информацию имени файла и номера строки для определений recipe и переменной, так что это может быть полезно как инструмент отладки в сложных окружениях.
-q
--question
"Режим вопроса". Не запускает никакие recipe, или ничего не напечатает; просто возвратит статус 0 выхода, если указанные target уже обновлены, статус 1 если требуется любая пересборка, или статус 2 если произошла ошибка. См. выше врезку "Вместо выполнения Recipes".
-r
--no-builtin-rules
Исключит использование встроенных неявных правил (built-in implicit rules, см. "10 Using Implicit Rules" [1]). Вы все еще можете определить свои собственные написанные правила шаблона (см. "10.5 Defining and Redefining Pattern Rules" [1]). Опция -r также очистит список суффиксов по умолчанию для правил суффиксов (см. "10.7 Old-Fashioned Suffix Rules" [1]). Однако вы все еще можете определить свои собственные суффиксы вместе с правилом для .SUFFIXES, и затем определить свои собственные правила суффиксов. Имейте в виду, что опция -r затрагивает только правила; переменные по умолчанию остаются в силе (см. "10.3 Variables Used by Implicit Rules" [1]); см. далее описание опции -R.
-R
--no-builtin-variables
Исключит использование встроенных относящихся к правилу переменных (built-in rule-specific variables, см. "10.3 Variables Used by Implicit Rules" [1]). Конечно, вы все еще можете определить свои собственные. Опция -R также автоматически разрешит опцию -r (см. выше её описание), поскольку в таком случае нет смысла в неявных правилах без каких-либо определений для переменных, которые они используют.
-s
--silent
--quiet
"Тихое" функционирование; не печатает никакие выполняемые recipe. См. "5.2 Recipe Echoing" [1].
-S
--no-keep-going
--stop
Отменяет действие опции -k. В этом нет необходимости, за исключением рекурсивного make, где -k может наследоваться от make верхнего уровня через MAKEFLAGS (см. "5.7 Recursive Use of make" [1]), или если вы установили -k в MAKEFLAGS вашего окружения.
--shuffle[=mode]
Эта опция разрешает форму fuzz-тестирования взаимоотношений prerequisite. Когда разрешен параллелизм (-j), порядок сборки target-ов становится менее определенным. Если prerequisites не полностью декларированы в makefile, то это может привести к периодическим и трудно поддающимся отслеживанию сбоям сборки.
Опция --shuffle принуждает make направленно переупорядочить цели goal и prerequisites таким образом, чтобы взаимоотношения target/prerequisite все еще сохранялись, однако упорядочивание prerequisites указанной target меняется, как описано ниже.
Порядок перечисления prerequisites в автоматических переменных этой опцией не изменяется.
Псевдо-target .NOTPARALLEL запрещает тасование для этого makefile. Кроме того, любой список prerequisite, содержащий .WAIT, не будет перетасован. См. "5.4.1 Disabling Parallel Execution" [1].
Опция --shuffle= принимает следующие значения:
random
Выберет случайное начальное значение (random seed) для перетасовки. Это используемое умолчание, если режим тасования не выбран. Выбранное seed также предоставляется для команд sub-makes. Это seed включается в сообщения об ошибках, чтобы его можно было повторно использовать в будущих прогонах для воспроизведения проблемы или проверки того, что проблема была решена.
reverse
Меняет на обратный упорядочивание goals и prerequisites вместо случайного тасования (random shuffle).
seed
Используется 'random' тасование, инициализированное указанным начальным значением seed. Здесь seed это целое число.
none
Запрещает тасование. Это отменит любые предыдущие опции --shuffle.
-t
--touch
Применяет "Touch" к файлам (пометит их как обновленные без каких-либо их изменений) вместо запуска их recipe. Это используется, чтобы сделать вид исполнения recipes, чтобы обмануть будущие запуски make. См. выше врезку "Вместо выполнения Recipes".
--trace
Покажет информацию трассировки для выполнения make. Использование --trace это сокращение для --debug=print,why.
-v
--version
Напечатает версию программы make плюс копирайт, список авторов и замечание об отсутствии гарантий, и затем завершит работу make.
-w
--print-directory
Напечатает сообщение, содержащее рабочую директорию до и после выполнения makefile. Это может быть полезно для отслеживания ошибок из сложных вложений рекурсивных команд make. См. "5.7 Recursive Use of make" [1]. На практике эта опция редко когда нужна, поскольку make делает это за вас. См. "5.7.4 The ‘--print-directory’ Option" [1].
--no-print-directory
Запретит печать рабочей директории при использовании -w. Эта опция полезна, когда автоматически включена -w, но вы не хотите видеть лишних сообщений. См. "5.7.4 The ‘--print-directory’ Option" [1].
-W file
--what-if=file
--new-file=file
--assume-new=file
Сделать вид, что целевой файл (target) был только что изменен. При использовании с флагом -n это показывает, что произойдет, если вы измените этот файл. Без -n это почти то же самое, что запуск команды touch над данным файлом перед запуском make, за исключением того, что время модификации изменяется только в воображении make. См. выше врезку "Вместо выполнения Recipes".
--warn-undefined-variables
Выдает предупреждающее сообщение всякий раз, когда make видит ссылку на не определенную переменную. Это может быть полезно, когда вы пытаетесь отладить файлы makefile, которые сложным образом используют переменные.