summaryrefslogtreecommitdiff
path: root/man
diff options
context:
space:
mode:
authorkx <kx@radix-linux.su>2026-10-01 12:02:28 +0300
committerkx <kx@radix-linux.su>2026-10-01 12:02:28 +0300
commitba1b04d64bdfaf377915b22f77520216ebe47674 (patch)
tree044343035c28b2b04ca9725f26e9b7c39342d19c /man
parent124b140798456778e2a96851cc7268aa9a726698 (diff)
downloadmcpu-cpp-1.0.2.tar.xz
Version 1.0.21.0.2
Diffstat (limited to 'man')
-rw-r--r--man/Makefile.am6
-rw-r--r--man/mcpu-cpp.1432
-rw-r--r--man/ru/Makefile.am8
-rw-r--r--man/ru/mcpu-cpp.1428
4 files changed, 874 insertions, 0 deletions
diff --git a/man/Makefile.am b/man/Makefile.am
new file mode 100644
index 0000000..19d0e63
--- /dev/null
+++ b/man/Makefile.am
@@ -0,0 +1,6 @@
+
+SUBDIRS = ru
+
+MAN1 = mcpu-cpp.1
+
+dist_man_MANS = $(MAN1)
diff --git a/man/mcpu-cpp.1 b/man/mcpu-cpp.1
new file mode 100644
index 0000000..489de41
--- /dev/null
+++ b/man/mcpu-cpp.1
@@ -0,0 +1,432 @@
+.TH MCPU-CPP 1 "October 2026" "MCPU-CPP 1.0.2" "User Commands"
+.SH NAME
+mcpu-cpp \- preprocessor for MCPU languages
+.SH SYNOPSIS
+.B mcpu-cpp
+.RI [ options ]
+.RI [ input
+.RI [ output ]]
+.SH DESCRIPTION
+.B mcpu-cpp
+is the preprocessor for the MCPU toolchain. It processes source text before
+language-specific frontends, expands macros, evaluates conditional compilation,
+resolves include files, maintains source-location information, and can generate
+Make dependencies.
+.PP
+External text is UTF-8. Text is represented internally as strict UCS-2 through
+LibMPUIO. Preprocessing identifiers are Unicode-aware: the first character
+must be underscore or have the Unicode XID_Start property; following characters
+may also be dollar sign or have XID_Continue. The dollar sign cannot start an
+identifier.
+.PP
+Preprocessor directives use canonical English names only. Unicode remains
+available in identifiers, strings, comments, diagnostics, and ordinary source
+text.
+.PP
+If
+.I input
+is omitted or is
+.BR - ,
+standard input is read. If
+.I output
+is omitted or is
+.BR - ,
+normal preprocessing output is written to standard output.
+.SH TEXT PROCESSING
+Backslash-newline splicing is performed before directive parsing. C block
+comments and C++-style line comments are removed by the preprocessing phase.
+Long invisible source regions are represented compactly while preserving source
+coordinates: short forward gaps are emitted as newlines, while larger gaps use
+corrective GNU-style line markers.
+.SH DIRECTIVES
+The principal supported directives are:
+.TP
+.B #define
+Define an object-like or function-like macro.
+.TP
+.B #undef
+Remove a macro definition.
+.TP
+.BR #if , " #ifdef" , " #ifndef" , " #elif" , " #else" , " #endif"
+Control conditional compilation. The
+.B defined
+operator is supported in
+.B #if
+expressions.
+.TP
+.B #include
+Include a quoted or angle-bracket header. The operand may be produced by macro
+expansion.
+.TP
+.B #include_next
+Continue header lookup after the search-chain element that found the current
+header. It is intended primarily for wrapper headers.
+.TP
+.B #pragma once
+Process a physical header only once. Physical file identity is used rather
+than source spelling.
+.TP
+.B #line
+Set the logical source line and, optionally, logical source file name. Its
+arguments undergo macro expansion; output uses GNU-style line markers.
+.TP
+.B #error
+Emit an error diagnostic and terminate preprocessing unsuccessfully.
+.TP
+.B #warning
+Emit a warning diagnostic and continue unless warning policy promotes it to an
+error.
+.TP
+.B #lang
+Push an MCPU language state. The argument is one quoted language name.
+.TP
+.B #endlang
+Restore the previous MCPU language state.
+.PP
+.B #lang
+and
+.B #endlang
+remain in the output stream for the later frontend dispatcher. The supported
+language names are
+.BR diff ,
+.BR dift ,
+.BR alg ,
+.BR as ,
+.BR avm ,
+and
+.BR ACS .
+Language matching is case-insensitive in ASCII, while the quoted spelling is
+preserved in normalized
+.B #lang
+output.
+.SH MACROS
+Object-like and function-like macros are supported, including recursive rescan,
+stringification with
+.BR # ,
+token concatenation with
+.BR ## ,
+variadic macros using
+.B ...
+and
+.BR __VA_ARGS__ ,
+and standard
+.BR __VA_OPT__ .
+.PP
+Ordinary macro arguments are expanded before substitution except where raw
+arguments are required by stringification or token concatenation. Replacement
+list horizontal whitespace is normalized without changing whitespace inside
+quoted tokens or actual arguments.
+.SH CONDITIONAL EXPRESSIONS
+.B #if
+expressions support integer and character constants, the
+.B defined
+operator, unary, arithmetic, shift, relational, equality, bitwise, logical,
+conditional
+.BR ?: ,
+and comma operators, with short-circuit evaluation for
+.BR && ,
+.BR || ,
+and
+.BR ?: .
+.PP
+Expression evaluation uses one 64-bit model. MCPU also supports the
+.B zNNN
+and
+.B zNNNU
+width suffixes for source integer literals with widths not exceeding 64 bits.
+A negative shift count reverses shift direction according to the MCPU
+preprocessing contract.
+.SH INCLUDE SEARCH
+For
+.BR "#include \"file\"" ,
+the physical directory containing the current source file is searched first.
+This step is omitted for
+.BR "#include <file>" .
+The remaining effective search order is:
+.PP
+.nf
+explicit -I
+explicit -isystem
+MCPU_CPP_<LANG>_INCLUDE_PATH
+MCPU_CPP_INCLUDE_PATH
+MCPU_CPP_SYSTEM_INCLUDE_PATH/<lang>
+MCPU_CPP_SYSTEM_INCLUDE_PATH
+explicit -idirafter
+MCPU_CPP_AFTER_INCLUDE_PATH
+.fi
+.PP
+Within one search class, insertion order is preserved. The logical file name
+set by
+.B #line
+does not alter quoted-header lookup.
+.SH OPTIONS
+.TP
+.BI -o " FILE"
+Write normal preprocessing output to
+.IR FILE .
+.TP
+.BI -D " NAME[=VALUE]"
+Define a command-line macro. If no value is given, the replacement is
+.BR 1 .
+.TP
+.BI -U " NAME"
+Undefine a command-line macro.
+.TP
+.BI -imacros " FILE"
+Preprocess
+.I FILE
+for its macro and preprocessing state, but discard its ordinary output. All
+.B -imacros
+files are processed before all
+.B -include
+files.
+.TP
+.BI -include " FILE"
+Preprocess
+.I FILE
+before the primary input.
+.TP
+.BR "-I DIR" ", " "-IDIR"
+Add a user include directory.
+.TP
+.BI -isystem " DIR"
+Add an explicit system include directory.
+.TP
+.BI -idirafter " DIR"
+Add an include directory searched after the configured system tree.
+.TP
+.B -nostdinc
+Suppress the effective standard-system include tree. Explicit
+.B -isystem
+directories remain active.
+.TP
+.B -dM
+After preprocessing, dump non-predefined macro definitions.
+.TP
+.B -dMP
+Dump predefined macros first, followed by the other macro definitions.
+.TP
+.B -dD
+Preserve
+.B #define
+directives in normal preprocessing output.
+.TP
+.B -dconfig
+Print the effective MCPU-CPP configuration and exit.
+.TP
+.B -dsearch-dirs
+Print the effective include search directories and exit.
+.TP
+.B -M
+Write one Make dependency rule including system headers and suppress normal
+preprocessing output.
+.TP
+.B -MM
+Like
+.BR -M ,
+but omit system dependencies.
+.TP
+.B -MG
+With dependency-only
+.B -M
+or
+.BR -MM ,
+treat missing headers and missing forced files as generated dependencies rather
+than errors. It is not valid with
+.B -MD
+or
+.BR -MMD .
+.TP
+.B -MD
+Generate dependencies including system headers while retaining normal
+preprocessing output.
+.TP
+.B -MMD
+Like
+.BR -MD ,
+but omit system dependencies.
+.TP
+.BI -MF " FILE"
+Write dependencies to
+.IR FILE .
+A file name of
+.B -
+means standard output. This option requires dependency generation.
+.TP
+.BI -MT " TARGET"
+Set an explicit Make dependency target without Make quoting. The option may be
+repeated.
+.TP
+.BI -MQ " TARGET"
+Set an explicit Make dependency target with Make quoting. The option may be
+repeated.
+.TP
+.BI --object-suffix " SFX"
+Set the suffix used for the automatically derived dependency target. The
+default is
+.BR .o .
+.TP
+.B -w
+Suppress all warnings.
+.TP
+.BR -Wcomment , " -Wcomments"
+Enable warnings for nested
+.B /*
+inside a block comment and for backslash-newline inside a
+.B //
+comment.
+.TP
+.BR -Wno-comment , " -Wno-comments"
+Disable comment warnings, including when
+.B -Wall
+is present.
+.TP
+.B -Wall
+Enable all optional MCPU-CPP warning classes.
+.TP
+.B -Werror
+Promote every warning that would be emitted to an error. This does not enable
+new warning classes.
+.TP
+.B -Wno-error
+Keep emitted warnings as warnings.
+.TP
+.BI --config-file " FILE"
+Read only
+.I FILE
+as the explicit configuration layer on top of runtime-derived defaults.
+.TP
+.B --no-config
+Do not read configuration files. Runtime-derived defaults remain active.
+.TP
+.BR -v , " --verbose"
+Print configuration and include activity.
+.TP
+.B --help
+Print command-line help and exit successfully.
+.TP
+.B --version
+Print the program version and exit successfully.
+.TP
+.B -E
+Accepted and ignored for compiler-driver compatibility. It is intentionally
+not listed by
+.BR --help .
+.SH DEPENDENCIES
+Dependency generation uses the same include traversal as ordinary
+preprocessing, including conditional compilation, computed includes,
+.BR #include_next ,
+and
+.BR "#pragma once" .
+Physical dependencies are deduplicated by physical file identity.
+.PP
+With
+.B -M
+or
+.BR -MM ,
+normal preprocessing output is suppressed. With
+.B -MD
+or
+.BR -MMD ,
+normal preprocessing output is retained and a side-effect dependency file is
+written. If
+.B -MF
+is not specified, the dependency file name is derived from the input or
+ordinary
+.B -o
+output name and receives a
+.B .d
+suffix.
+.SH CONFIGURATION
+Before reading configuration files, MCPU-CPP derives
+.B MCPU_CPP_SYSTEM_INCLUDE_PATH
+as
+.IR <runtime-root>/include .
+The runtime root is determined from the actual executable location, normally
+through Linux
+.IR /proc/self/exe .
+.PP
+Configuration layers are applied in increasing priority:
+.PP
+.nf
+<runtime-root>/etc/mcpu-cpp.conf
+/etc/mcpu/mcpu-cpp.conf
+$HOME/.mcpu/mcpu-cpp.conf
+.fi
+.PP
+The user configuration path variables are
+.BR MCPU_CPP_INCLUDE_PATH ,
+.BR MCPU_CPP_AFTER_INCLUDE_PATH ,
+.BR MCPU_CPP_DIFF_INCLUDE_PATH ,
+.BR MCPU_CPP_DIFT_INCLUDE_PATH ,
+.BR MCPU_CPP_ALG_INCLUDE_PATH ,
+.BR MCPU_CPP_AS_INCLUDE_PATH ,
+.BR MCPU_CPP_AVM_INCLUDE_PATH ,
+and
+.BR MCPU_CPP_ACS_INCLUDE_PATH .
+The effective system root is controlled by
+.BR MCPU_CPP_SYSTEM_INCLUDE_PATH .
+A later definition replaces an earlier one, including an empty value.
+.SH SOURCE LOCATIONS
+MCPU-CPP emits GNU-style line markers of the form:
+.PP
+.nf
+# line "file" [flags]
+.fi
+.PP
+Flag 1 denotes entry into an included file and flag 2 denotes return to the
+including file. Input
+.B #line
+directives change the logical values observed by
+.B __LINE__
+and
+.BR __FILE__ .
+The predefined source macros also include
+.B __BASE_FILE__
+and
+.BR __INCLUDE_LEVEL__ .
+.SH GNU-COMPATIBLE FEATURES
+MCPU-CPP is an independent MCPU preprocessor, but intentionally follows GNU CPP
+behavior for documented operations including object-like and function-like
+macros, rescan,
+.BR # ,
+.BR ## ,
+variadic macros,
+.BR __VA_OPT__ ,
+conditional directives,
+.BR #include ,
+.BR #include_next ,
+.BR "#pragma once" ,
+.BR #line ,
+GNU line markers, forced files, Make dependency options, and supported warning
+controls.
+.PP
+MCPU-specific facilities such as
+.BR "#lang / #endlang" ,
+the
+.B zNNN
+integer-literal suffix, and MCPU ABI predefined macros are native extensions.
+.SH FILES
+.TP
+.I <runtime-root>/etc/mcpu-cpp.conf
+Configuration installed with the relocatable MCPU runtime tree.
+.TP
+.I /etc/mcpu/mcpu-cpp.conf
+Optional machine-wide configuration override.
+.TP
+.I $HOME/.mcpu/mcpu-cpp.conf
+Optional per-user configuration override with the highest normal configuration
+priority.
+.SH EXIT STATUS
+.B mcpu-cpp
+returns zero after successful preprocessing or after successful informational
+operations such as
+.B --help
+and
+.BR --version .
+It returns nonzero when command-line processing, configuration, preprocessing,
+diagnostics promoted to errors, or output generation fails.
+.SH SEE ALSO
+.BR libmpu (7),
+.BR libmpuio (7),
+.BR zubr (1)
diff --git a/man/ru/Makefile.am b/man/ru/Makefile.am
new file mode 100644
index 0000000..cf13dfc
--- /dev/null
+++ b/man/ru/Makefile.am
@@ -0,0 +1,8 @@
+
+LANG = ru
+
+mandir = @mandir@/$(LANG)
+
+MAN1 = mcpu-cpp.1
+
+dist_man_MANS = $(MAN1)
diff --git a/man/ru/mcpu-cpp.1 b/man/ru/mcpu-cpp.1
new file mode 100644
index 0000000..c1bf7e3
--- /dev/null
+++ b/man/ru/mcpu-cpp.1
@@ -0,0 +1,428 @@
+.TH MCPU-CPP 1 "Октябрь 2026" "MCPU-CPP 1.0.2" "Команды пользователя"
+.SH ИМЯ
+mcpu-cpp \- препроцессор языков MCPU
+.SH СИНТАКСИС
+.B mcpu-cpp
+.RI [ параметры ]
+.RI [ входной-файл
+.RI [ выходной-файл ]]
+.SH ОПИСАНИЕ
+.B mcpu-cpp
+\- препроцессор инструментария MCPU. Он обрабатывает исходный текст до передачи
+языковым frontend, раскрывает макро, вычисляет условия условной компиляции,
+выполняет поиск include-файлов, поддерживает информацию о позиции в исходном
+тексте и может формировать зависимости Make.
+.PP
+Внешний текст имеет кодировку UTF-8. Внутри текст представлен строгим UCS-2
+средствами LibMPUIO. Идентификаторы препроцессора поддерживают Unicode: первый
+символ должен быть подчёркиванием или иметь свойство Unicode XID_Start;
+последующие символы дополнительно могут быть знаком доллара или иметь
+XID_Continue. Знак доллара не может начинать идентификатор.
+.PP
+Директивы препроцессора имеют только канонические английские имена. Unicode
+полностью сохраняется в идентификаторах, строках, комментариях, диагностике и
+обычном исходном тексте.
+.PP
+Если
+.I входной-файл
+не задан или равен
+.BR - ,
+читается стандартный ввод. Если
+.I выходной-файл
+не задан или равен
+.BR - ,
+обычный результат препроцессирования записывается в стандартный вывод.
+.SH ОБРАБОТКА ТЕКСТА
+Склейка backslash-newline выполняется до разбора директив. Блочные комментарии
+C и однострочные комментарии C++ удаляются фазой препроцессирования. Длинные
+невидимые участки исходного файла представляются компактно с сохранением
+исходных координат: короткие переходы задаются переводами строк, большие
+переходы \- корректирующими GNU-style linemarkers.
+.SH ДИРЕКТИВЫ
+Основные поддерживаемые директивы:
+.TP
+.B #define
+Определяет object-like или function-like macro.
+.TP
+.B #undef
+Удаляет определение макро.
+.TP
+.BR #if , " #ifdef" , " #ifndef" , " #elif" , " #else" , " #endif"
+Управляют условной компиляцией. В выражениях
+.B #if
+поддерживается оператор
+.BR defined .
+.TP
+.B #include
+Включает заголовочный файл в кавычках или угловых скобках. Operand может быть
+получен macro expansion.
+.TP
+.B #include_next
+Продолжает поиск header после элемента search chain, которым был найден текущий
+header. Директива предназначена прежде всего для wrapper headers.
+.TP
+.B #pragma once
+Обрабатывает физический header только один раз. Используется физическая
+идентичность файла, а не написание его имени в исходном тексте.
+.TP
+.B #line
+Задаёт логический номер строки и, необязательно, логическое имя исходного файла.
+Аргументы проходят macro expansion; в выходе используются GNU-style
+linemarkers.
+.TP
+.B #error
+Выдаёт сообщение об ошибке и немедленно завершает препроцессирование неуспешно.
+.TP
+.B #warning
+Выдаёт предупреждение и продолжает работу, если политика предупреждений не
+повышает его до ошибки.
+.TP
+.B #lang
+Помещает состояние языка MCPU в стек. Аргументом является одно имя языка в
+кавычках.
+.TP
+.B #endlang
+Восстанавливает предыдущее состояние языка MCPU.
+.PP
+.B #lang
+и
+.B #endlang
+сохраняются в выходном потоке для последующего frontend dispatcher.
+Поддерживаются имена языков
+.BR diff ,
+.BR dift ,
+.BR alg ,
+.BR as ,
+.BR avm
+и
+.BR ACS .
+Сравнение имени языка выполняется без учёта ASCII-регистра, а написание внутри
+кавычек сохраняется в нормализованном выводе
+.BR #lang .
+.SH МАКРО
+Поддерживаются object-like и function-like macros, повторный macro rescan,
+stringification оператором
+.BR # ,
+token concatenation оператором
+.BR ## ,
+variadic macros с
+.B ...
+и
+.BR __VA_ARGS__ ,
+а также стандартный
+.BR __VA_OPT__ .
+.PP
+Обычные фактические аргументы раскрываются до подстановки, кроме случаев, когда
+stringification или token concatenation требуют сырого аргумента. Горизонтальные
+пробелы replacement list нормализуются без изменения пробелов внутри quoted
+tokens и фактических аргументов.
+.SH УСЛОВНЫЕ ВЫРАЖЕНИЯ
+Выражения
+.B #if
+поддерживают целые и символьные константы, оператор
+.BR defined ,
+унарные, арифметические, shift, relational, equality, bitwise, logical,
+условный оператор
+.B ?:
+и оператор comma. Для
+.BR && ,
+.BR ||
+и
+.B ?:
+используется short-circuit evaluation.
+.PP
+Вычисление выражений выполняется в единой 64-битной модели. MCPU дополнительно
+поддерживает суффиксы разрядности
+.B zNNN
+и
+.B zNNNU
+для исходных целых литералов с разрядностью не более 64 бит. Отрицательное
+значение shift count меняет направление сдвига согласно контракту
+препроцессора MCPU.
+.SH ПОИСК INCLUDE-ФАЙЛОВ
+Для
+.B "#include \"file\""
+сначала проверяется физический каталог текущего исходного файла. Для
+.B "#include <file>"
+этот шаг отсутствует. Остальная effective search chain имеет строгий порядок:
+.PP
+.nf
+explicit -I
+explicit -isystem
+MCPU_CPP_<LANG>_INCLUDE_PATH
+MCPU_CPP_INCLUDE_PATH
+MCPU_CPP_SYSTEM_INCLUDE_PATH/<lang>
+MCPU_CPP_SYSTEM_INCLUDE_PATH
+explicit -idirafter
+MCPU_CPP_AFTER_INCLUDE_PATH
+.fi
+.PP
+Внутри одного search class сохраняется порядок добавления. Логическое имя,
+заданное
+.BR #line ,
+не изменяет поиск quoted header.
+.SH ПАРАМЕТРЫ
+.TP
+.BI -o " ФАЙЛ"
+Записывает обычный результат препроцессирования в
+.IR ФАЙЛ .
+.TP
+.BI -D " ИМЯ[=ЗНАЧЕНИЕ]"
+Определяет макро командной строки.
+.TP
+.BI -U " ИМЯ"
+Отменяет определение макро командной строки.
+.TP
+.BI -imacros " ФАЙЛ"
+Полностью препроцессирует
+.I ФАЙЛ
+для изменения macro/preprocessing state, но отбрасывает его обычный вывод. Все
+.B -imacros
+обрабатываются раньше всех
+.BR -include .
+.TP
+.BI -include " ФАЙЛ"
+Препроцессирует
+.I ФАЙЛ
+до основного входного файла.
+.TP
+.BR "-I КАТАЛОГ" ", " "-IКАТАЛОГ"
+Добавляет пользовательский include-каталог.
+.TP
+.BI -isystem " КАТАЛОГ"
+Добавляет явный системный include-каталог.
+.TP
+.BI -idirafter " КАТАЛОГ"
+Добавляет include-каталог, который ищется после configured system tree.
+.TP
+.B -nostdinc
+Исключает effective standard-system include tree. Явные каталоги
+.B -isystem
+остаются активными.
+.TP
+.B -dM
+После препроцессирования выводит определения непредопределённых макро.
+.TP
+.B -dMP
+Сначала выводит предопределённые макро, затем остальные определения.
+.TP
+.B -dD
+Сохраняет директивы
+.B #define
+в обычном выходном потоке.
+.TP
+.B -dconfig
+Выводит effective configuration MCPU-CPP и завершает работу.
+.TP
+.B -dsearch-dirs
+Выводит effective include search directories и завершает работу.
+.TP
+.B -M
+Выводит одно правило зависимостей Make с системными headers и подавляет обычный
+результат препроцессирования.
+.TP
+.B -MM
+Аналог
+.BR -M ,
+но без системных зависимостей.
+.TP
+.B -MG
+В dependency-only режимах
+.B -M
+или
+.B -MM
+считает отсутствующие headers и forced files генерируемыми зависимостями, а не
+ошибками. С
+.B -MD
+и
+.B -MMD
+не используется.
+.TP
+.B -MD
+Формирует зависимости с системными headers, сохраняя обычный результат
+препроцессирования.
+.TP
+.B -MMD
+Аналог
+.BR -MD ,
+но без системных зависимостей.
+.TP
+.BI -MF " ФАЙЛ"
+Записывает зависимости в
+.IR ФАЙЛ .
+Имя
+.B -
+означает стандартный вывод. Параметр имеет смысл только при генерации
+зависимостей.
+.TP
+.BI -MT " ЦЕЛЬ"
+Задаёт явную цель правила Make без Make quoting. Параметр можно повторять.
+.TP
+.BI -MQ " ЦЕЛЬ"
+Задаёт явную цель правила Make с Make quoting. Параметр можно повторять.
+.TP
+.BI --object-suffix " СУФФИКС"
+Задаёт суффикс автоматически формируемой цели зависимости. По умолчанию
+используется
+.BR .o .
+.TP
+.B -w
+Подавляет все предупреждения.
+.TP
+.BR -Wcomment , " -Wcomments"
+Включает предупреждения о вложенном
+.B /*
+внутри блочного комментария и о backslash-newline внутри комментария
+.BR // .
+.TP
+.BR -Wno-comment , " -Wno-comments"
+Выключает comment warnings, в том числе при наличии
+.BR -Wall .
+.TP
+.B -Wall
+Включает все optional warning classes MCPU-CPP.
+.TP
+.B -Werror
+Повышает каждое реально выдаваемое предупреждение до ошибки, но само не
+включает новые классы предупреждений.
+.TP
+.B -Wno-error
+Оставляет выдаваемые предупреждения предупреждениями.
+.TP
+.BI --config-file " ФАЙЛ"
+Использует только явно выбранный
+.I ФАЙЛ
+как configuration layer поверх runtime-derived defaults.
+.TP
+.B --no-config
+Не читает configuration files. Runtime-derived defaults остаются активными.
+.TP
+.BR -v , " --verbose"
+Выводит информацию об effective configuration и include activity.
+.TP
+.B --help
+Выводит краткую справку по командной строке и успешно завершает работу.
+.TP
+.B --version
+Выводит версию программы и успешно завершает работу.
+.TP
+.B -E
+Принимается и игнорируется для совместимости с compiler drivers. Параметр
+намеренно не показывается в
+.BR --help .
+.SH ЗАВИСИМОСТИ
+Генерация зависимостей использует тот же include traversal, что и обычное
+препроцессирование, включая условную компиляцию, computed includes,
+.BR #include_next
+и
+.BR "#pragma once" .
+Физические зависимости дедуплицируются по физической идентичности файла.
+.PP
+В режимах
+.B -M
+и
+.B -MM
+обычный результат препроцессирования подавляется. В режимах
+.B -MD
+и
+.B -MMD
+он сохраняется, а dependency file формируется как side effect. Если
+.B -MF
+не задан, имя dependency file выводится из имени входного файла или обычного
+выхода
+.B -o
+и получает суффикс
+.BR .d .
+.SH КОНФИГУРАЦИЯ
+До чтения configuration files MCPU-CPP формирует
+.B MCPU_CPP_SYSTEM_INCLUDE_PATH
+как
+.IR <runtime-root>/include .
+Runtime root определяется из фактического расположения исполняемого файла,
+обычно через Linux
+.IR /proc/self/exe .
+.PP
+Configuration layers применяются в порядке возрастания приоритета:
+.PP
+.nf
+<runtime-root>/etc/mcpu-cpp.conf
+/etc/mcpu/mcpu-cpp.conf
+$HOME/.mcpu/mcpu-cpp.conf
+.fi
+.PP
+Пользовательские переменные путей:
+.BR MCPU_CPP_INCLUDE_PATH ,
+.BR MCPU_CPP_AFTER_INCLUDE_PATH ,
+.BR MCPU_CPP_DIFF_INCLUDE_PATH ,
+.BR MCPU_CPP_DIFT_INCLUDE_PATH ,
+.BR MCPU_CPP_ALG_INCLUDE_PATH ,
+.BR MCPU_CPP_AS_INCLUDE_PATH ,
+.BR MCPU_CPP_AVM_INCLUDE_PATH
+и
+.BR MCPU_CPP_ACS_INCLUDE_PATH .
+Effective system root задаётся
+.BR MCPU_CPP_SYSTEM_INCLUDE_PATH .
+Более позднее определение полностью заменяет раннее, включая пустое значение.
+.SH ПОЗИЦИИ В ИСХОДНОМ ТЕКСТЕ
+MCPU-CPP выводит GNU-style linemarkers вида:
+.PP
+.nf
+# line "file" [flags]
+.fi
+.PP
+Флаг 1 означает вход во включённый файл, флаг 2 \- возврат в включающий файл.
+Входная директива
+.B #line
+изменяет логические значения
+.B __LINE__
+и
+.BR __FILE__ .
+К предопределённым source macros также относятся
+.B __BASE_FILE__
+и
+.BR __INCLUDE_LEVEL__ .
+.SH GNU-COMPATIBLE FEATURES
+MCPU-CPP является самостоятельным препроцессором MCPU, но для документированных
+операций намеренно повторяет поведение GNU CPP. К ним относятся object-like и
+function-like macros, rescan,
+.BR # ,
+.BR ## ,
+variadic macros,
+.BR __VA_OPT__ ,
+условные директивы,
+.BR #include ,
+.BR #include_next ,
+.BR "#pragma once" ,
+.BR #line ,
+GNU linemarkers, forced files, параметры генерации зависимостей Make и
+поддерживаемые warning controls.
+.PP
+MCPU-специфичные средства
+.BR "#lang / #endlang" ,
+суффикс целых литералов
+.B zNNN
+и предопределённые макро ABI MCPU являются собственными расширениями.
+.SH ФАЙЛЫ
+.TP
+.I <runtime-root>/etc/mcpu-cpp.conf
+Конфигурация, установленная вместе с перемещаемым runtime tree MCPU.
+.TP
+.I /etc/mcpu/mcpu-cpp.conf
+Необязательная общесистемная configuration override.
+.TP
+.I $HOME/.mcpu/mcpu-cpp.conf
+Необязательная пользовательская configuration override с наивысшим обычным
+приоритетом.
+.SH КОД ЗАВЕРШЕНИЯ
+.B mcpu-cpp
+возвращает ноль после успешного препроцессирования и после успешных
+информационных операций, например
+.B --help
+и
+.BR --version .
+При ошибке командной строки, конфигурации, препроцессирования, диагностике,
+повышенной до ошибки, или ошибке вывода возвращается ненулевое значение.
+.SH СМ. ТАКЖЕ
+.BR libmpu (7),
+.BR libmpuio (7),
+.BR zubr (1)