addvariant

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

Синтаксис:

addvariant [-c] [-i уровень] [-P] [[система] процессор] вариант

Опции:

-c
Добавить созданную структуру каталогов в репозиторий CVS при следующей фиксации cvs.
-i уровень
Создать исходные файлы common.mk и Makefile в текущем рабочем каталоге. Makefile содержит строку, определяющую уровень (уровни), содержащийся в структуре каталогов. Укажите уровень как OS, OS/CPU или OS/CPU/VARIANT (используйте косую черту (/) или дефис (-) для разделения нескольких уровней).
-P
Создать начальные каталоги для приложения PhAB.
система
Имя добавляемой операционной системы (например, qnx4, nto, linux).
процессор
Имя добавляемого ЦП (например, mips, ppc, x86).
вариант
Имя добавляемого варианта (например, o, a.be)

Платформы:

GNU/Linux, Microsoft Windows

Целевые архитектуры:

arm, armv7, aarch64, e2k, mips, ppc, x86

Описание:

Утилита addvariant — это сценарий командного интерпретатора, который создает структуру каталогов для дерева исходных текстов. Он гарантирует, что каждый уровень этой структуры содержит необходимые файлы, используемые утилитой make.

Использование addvariant для создания вариантной структуры каталогов позволяет воспользоваться правилами make-файла в среде сборки ЗОСРВ "Нейтрино", где на уровне проекта есть файл с именем common.mk. Этот файл содержит все «специальные» флаги и настройки, необходимые для компиляции и компоновки.

Каждый уровень в структуре каталогов требует правильно сконструированного Makefile с соответствующими макросами и включаемыми файлами. На большинстве уровней Makefile включает recurse.mk, файл, используемый make-файлами более высокого уровня для рекурсии на более низкие уровни. Makefile на самом нижнем уровне дерева каталогов (уровень вариантов) включает файл common.mk с уровня проекта вместо recurse.mk.

Работа с проектами GNU

Утилита начинает с проверки соответствия проектов структуре типа GNU. Если текущий рабочий каталог (CWD) содержит файлы с именами configure и Makefile.in, addvariant предполагает, что проект настроен в стиле GNU. В этом случае он автоматически сжимает уровни каталогов (как описано ниже) в один уровень OS-CPU-VARIANT и создает файлы GNUmakefile во вновь созданных каталогах вместе с рекурсивным файлом Makefile, чтобы воспользоваться ими.

После запуска addvariant создайте исполняемый сценарий оболочки с именем build-hooks файла в корне проекта. Этот сценарий определяет некоторые функции оболочки, которые вызывают make для правильной сборки вашего проекта.

Создание исходных файлов

Утилита addvariant либо создает и устанавливает стандартные файлы Makefile и common.mk в CWD, либо, если эти файлы уже существуют, редактирует их, добавляя те же стандартные строки сценария, которые используются для рекурсии.

Создание подкаталогов и файлов

Начиная с CWD, утилита addvariant просматривает дерево каталогов в поисках в каждом файле Makefile строки, начинающейся с LIST. Эта строка указывает на конкретный уровень каталога, в котором находится Makefile, например:

Затем утилита решает, создавать ли подкаталог, просматривая:

При необходимости addvariant создает подкаталог с соответствующим именем, содержащий подходящий Makefile.

Этот процесс продолжается до структуры каталогов до тех пор, пока все необходимые каталоги не будут созданы и заполнены необходимым повторяющимся файлом Makefile.

Уровни сжатия

Утилита addvariant может объединять уровни каталогов. Если ввести команду:

$ addvariant -i OS/CPU/VARIANT nto x86 o

addvariant создает рекурсивный Makefile в структуре CWD, который имеет такую строку: LIST=OS CPU VARIANT, а затем создает единственный подкаталог с именем nto-x86-o.

Любой последующий вызов addvariant в дереве замечает это сжатие уровней каталогов и автоматически генерирует соответствующую структуру каталогов.

Примеры:

Создание двухуровневой иерархии каталогов nto-x86/o:

$ addvariant -i OS/CPU nto x86 o

Создание противоположной двухуровневой иерархии nto/x86-o:

$ addvariant -i OS nto x86/o

Возвращаемое значение:

0
Успешное завершение.
≠0
Утилита завершилась с ошибками.

Классификация:

Инструментальные средства ЗОСРВ «Нейтрино»

Тематические ссылки:

delvariant




Предыдущий раздел: Справочник по утилитам