Э. Сивер, С. Спейнауэр, С. Фиггинс, Дж. П. Хекман - Linux cправочник - 3-е издание (1114666), страница 43
Текст из файла (страница 43)
Перечислениевсех сообщений из почтовой очереди sendmail. Эквивалентно sendmail -bp.Алфавитный перечень командПараметр287mailq—V Диагностика работы.mailstats [options]mailstatsКоманда системного администрирования. Отображение форматированной статистики по работе sendmail.Параметры-С fileИспользовать указанный файл настройки sendmail вместо стандартного sendmaiLcf (по умолчанию).-f fileИспользовать указанный файл статистики sendmail вместо файла, определенного в файле настройки sendmail.-о Не отображать имя почтовой программы.make [options] [targets] [macro definitions]Обновление одной или более целей (targets) в соответствии сописаниями зависимостей в специальном файле текущегокаталога. По умолчанию этот файл называется makefile илиMakefile.
Параметры, цели и макроопределения могут следовать в любом порядке. Макроопределения задаются следующим образом:name^stringБолее подробную информацию по make можно почерпнуть вкниге «Managing Projects with make» (Управление проектами и make) Эндрю Орама (Andrew Oram) и Стива Тэлбота(Steve Talbott).Параметры-d, —debugВывести подробную отладочную информацию.—е, —environment-overridesИгнорировать макроопределения файла makefile в пользу переменных окружения.-f makefile, —file makefile, —makefile makefileУказать имя файла описаний (makefile). Имя файла «-»(дефис) означает стандартный ввод.makeГлава 3. Команды Linux288make—h, —helpВывести информацию о параметрах команды make,-i, —ignore-errorsИгнорировать ошибочное выполнение команд (аналогично .IGNORE)-j [jobs], —jobs [yobs]Пытаться выполнить jobs заданий одновременно либо, если не задано количество задач, как можно большее их количество.—k, —keep-goingПрекратить сборку текущей цели при возникновенииошибки, но продолжить работу с прочими целями, не зависящими от данной.-1 [load], —load-average [=load], —max-load [=load]Держаться в пределах загрузки load (которая выражается действительным числом).
Применяется совместно с —j.-п, —just-print, —dry-run, —reconВывести команды, но не выполнять их (проверочное выполнение).-о file, —old-file=/iZe, —assume-old=/i£eНикогда не пересобирать файл file либо пересобирать всеостальные файлы, если файл пересобран.-р, —print-data-baseВывести правила и переменные в ходе нормального выполнения.-q, —questionПроверка редакции файла; вернуть 0, если файл не следует обновлять, в противном случае — не нуль.-г, —no-built-in-rulesНе использовать правила по умолчанию,-s, —silent, —quietНе отображать строки команд (то же, что и .SILENT),-t, —touchСоздать пустые целевые файлы, не пересобирая их.-v, —versionИнформация о номере версии make.Алфавитный перечень команд—w, —print-directoryОтображать имя текущего каталога до и после сборки.—warn-undefined-variablesВывести предупреждение, если макрос используется безпредварительного определения.—С directory, —directory directoryПерейти (cd) в каталог directory перед началом работыmake.
По следующим директивам —С будет совершатьсяпереход (cd) в соответствующий каталог относительно текущего.—I directory, —include-dir directoryВключить указанный каталог в список каталогов, содержащих включаемые файлы.—S, —no-keep-going, —stopОтменить действие предшествующего параметра -k. Применяется при рекурсивных сборках make.—W file, —what-if file, —new-file file, —assume-new fileСчитать файл f i l e недавно обновленным.Строки файла описанийИнструкции в файле описаний интерпретируются построчно. Если размер инструкции превышает длину строки, укажите обратный слэш (\) в конце строки для продолженияинструкции на следующей строке.
Файл описаний может содержать следующие типы строк:Пустые строки (blank lines)Пустые строки игнорируются.Комментарии (comment lines)Все символы в строке после символа « # » считаются комментарием и игнорируются.Описания зависимостей (dependency lines)В зависимости от выбранной цели выполняются соответствующие команды. Варианты записи:targets : dependenciestargets : dependencies ; commandКоманды выполняются в том случае, когда файлы зависимостей (dependencies), имена которых могут являтьсямасками, не существуют или являются более новыми, чемцель сборки. Если предварительные условия отсутствуют,289makeГлава 3.
Команды Linux290makeкоманды выполняются обязательно (при задании любойиз целей). Табуляция перед targets недопустима.Правила суффиксов (suffix rules)Правила суффиксов определяют соответствия междуфайлами предварительных условий и файлами с такимиже именами, но отличающимися суффиксами. Вариантызаписи правил:. suffix, suffix:. suffix:Во втором варианте основное имя файла определяетсяименем файла с соответствующим суффиксом.Команды (commands)Команды группируются после зависимостей и вводятсяна строках, начинающихся с табуляции. Если командепредшествует дефис (—), make игнорирует ошибочное выполнение команды.
Если команде предшествует символ(@), командная строка не отображается при выполнении(если только make не выполняется с параметром — п).Макроопределения (macro definitions)Макроопределения имеют следующий вид:пате = stringилиdefine namestringendefПробелы перед символом «=» и после него могут бытьопущены.Предписания включений (include statements)Аналогичны директиве #include языка С:include filesВнутренние макросы$? Список предварительных условий, изменившихся позже, чем текущая цель сборки. Может применятьсятолько в обычных строках файла описаний, но не в правилах суффиксов.$@ Имя текущей цели, за исключением строк файла описаний, относящихся к сборке библиотек, где это будет имябиблиотеки. Может присутствовать как в обычных строках файла описаний, так и в правилах суффиксов.Алфавитный перечень команд$< Имя текущего предварительного условия, которое изменялось позже текущей цели сборки.$* Имя (без суффикса) текущего предварительного условия, которое изменялось позже текущей цели сборки.Может использоваться только в правилах суффиксов.$% Имя соответствующего файла (.о), если текущая цельявляется библиотечным модулем.
Может присутствовать как в обычных строках файла описаний, так и вправилах суффиксов.$~ Список всех зависимостей (без повторений), элементыкоторого разделяются пробелами.$+ Список всех зависимостей (с повторениями), элементыкоторого разделяются пробелами.Правила шаблоновПравила шаблонов являются обобщением идеи правил суффиксов. Если и цель и зависимость содержат символ % ,GNU-версия make подставляет любую часть имени существующего файла.
Например, стандартное правило суффиксов:$(сс) -о $@ $<может быть записано следующим правилом шаблонов:$(сс) -о $@ $<Модификаторы макросовDИмя каталога из любого имени внутреннего макросакроме $?. Корректно следующее использование:$(«D) $$(№) $(?D) $(<D)$(%D) $(@D) $(-D)FИмя файла (без пути) из любого имени внутреннего макроса кроме $?. Корректны следующие записи:$(*F) $$(d>F) $(?F) $(<F)$(*F) $(№) $(~F)Функции$(subst from, to, string)Заменить все вхождения from на to в строке string.291make292makeГлава 3. Команды Linux$(patsubst pattern, to, string)Аналогично subst, но считать символ % внутри шаблонаpattern метасимволом.
Заменяет каждое соответствиешаблону в строке string на to.$(strip string)Удалить все лишние пробелы.$(findstring substring, mainstring)Вернуть подстроку substring, если она найдена в строкеmainstring, иначе вернуть нуль.$(filter pattern, string)Вернуть те слова из строки string, которые соответствуютхотя бы одному слову шаблона pattern. Шаблоны могутвключать символ маски % .$(filter-out pattern, string)Удалить из строки string слова, которые соответствуютхотя бы одному слову шаблона pattern. Шаблоны могутвключать символ маски % .$(sort list)Вернуть список list, отсортированный в лексикографическом порядке.$(dir list)Вернуть имена каталогов (все символы до последнего слэша) всех имен файлов из списка list.$(notdir list)Вернуть все имена файлов (символы после последнегослэша) из списка list.$(suffix list)Вернуть суффиксы имен (символы после последней точки) из списка list.$(basename list)Для каждого элемента списка (имен файлов) вернутьподстроку до суффикса (все символы до последней точки).$(addsuffix suffix, list)Вернуть список имен файлов, добавив к каждому именисуффикс.$(addprefixprefix, list)Вернуть список имен файлов, добавив к каждому именипрефикс.Алфавитный перечень команд$(join listl, Iist2)Вернуть список, полученный векторной конкатенациейаргументов.
Например, $(join а Ь, .с .о) вернет а.с Ь.о.$(word п, string)Вернуть л-ное слово строки string.$(words string)Вернуть количество слов в строке.$(firstword list)Вернуть первое слово из списка list.$(wildcard pattern)Вернуть список файлов из текущего каталога, соответствующих маске pattern.$(origin variable)Вернуть одну из следующих строк, описывающих, какбыла определена переменная variable: undefined, default,environment, environment override, file, command line,override или automatic.$(shell command)Вернуть результат выполнения команды. Символы новойстроки преобразуются в пробелы.
Функция работает аналогично подстановке по обратным кавычкам в большинстве командных интерпретаторов.Подстановка строк в макросах$(macro:sl=s2)Вычислить подстановку по текущему определению макроса $(тасго), предварительно заменив строкой s2 каждое вхождение строки si, непосредственно следующее перед пробелом или символом табуляции либо находящеесяв конце строки макроопределения.Специальные имена целей.DEFAULT:Команды, ассоциированные с этой целью, выполняются,если make не может найти строки описаний в соответствующем файле или правила суффиксов, с помощью которых может быть собрана запрошенная цель..EXPORT_ALL_VARIABLES:Если существует эта цель, экспортировать все макроопределения во все порожденные процессы.293makeГлава 3.
Команды Linux294make.IGNORE:Игнорировать ошибки. Действует идентично параметру —i..PHONY:Всегда выполнять команды, следующие за целью, дажеесли цель существует и не требует пересборки..PRECIOUS:Файлы, определяемые для этой цели, не удаляются приполучении make сигнала принудительного завершенияили когда строка команд в файле описаний возвращаетошибку..SILENT:Выполнить команды, не отображая их.
Действует идентично параметру —s..SUFFIXES:Суффиксы, ассоциированные с этой целью, имеют значение в правилах суффиксов. Если суффиксы не указаны,существующий список правил суффиксов «отключается».makedbmmakedbm [options] infile outfileКоманда NFS/NIS. Создание dbm-файла NIS. makedbm преобразует файл infile в пару файлов в формате ndbm, а именно: outfile.pag и outfile.dir. Каждая из строк исходного файлапреобразуется в одну запись dbm. Все символы до первой табуляции или символа пробела составляют ключ, а остатокстроки - данные. Если строка заканчивается сочетанием \&,продолжение данных этого ключа читается из следующейстроки, makedbm не считает символ # началом комментария, и его интерпретация предоставляется клиентам NIS.Если в качестве имени infile указан символ «—» (дефис), товыполняется чтение со стандартного ввода.makedbm создает специальную запись с ключом yp_last_modified из даты создания файла infile (или текущей даты причтении со стандартного ввода).Параметры—b Распределить карту на все серверы, используя междоменный сервер имен named.—d yp_domain_nameСоздать специальную запись с ключом yp_domain_naте.Алфавитный перечень команд— i yp_input_fileСоздать специальную запись с ключом yp_input_file.295makedbm— 1 Преобразовать ключи указанной карты в нижний регистр.—m yp_master_nameСоздать специальную запись с ключом yp_master_name.Если не задано имя узла-хозяина, установить ключ в локальное имя узла.—о yp_output_fileСоздать специальную запись с ключом yp_output_file.—s Безопасная карта.