Содержание

Предыдущий раздел

5.5. Управляющие переменные

Следующий раздел

6. Термины и определения

5.6. Файловая структура

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

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

5.6.1. Файловая структура проекта

<ПРОЕКТ>

Каталог проекта. Имя каталога проекта должно совпадать с именем проекта.

doc
Каталог документов проекта. Необязательно.
config
Каталог файлов конфигурации проекта. Необязательно.
pkg
Каталог файлов управления пакетами исходных текстов. Сердце проекта, его основная сущность. Имена файлов, в основном, совпадают с именами пакетов исходных текстов. Имеют расширение .make. Файлы с расширением .mk используются как включаемые в другие файлы.
script
Каталог вспомогательных скриптов проекта. Необязательно.
platform

Каталог, содержащий определения целевых платформ.

<PLATFORM>.mk
Файл описания целевой платформы. Имеет расширение .mk как включаемый. Имя совпадает с именем целевой платформы. Содержит все определения переменных для описания платформы.
<PLATFORM>
Каталог для файлов, особенных для платформы.
src
Каталог исходных текстов пакетов, включённых в проект непосредственно.
_setup.sh
Файл вспомогательного скрипта начальной конфигурации проекта. Включается основным скриптом начальной конфигурации проекта из двигателя системы сборки для порождения скрипта запуска системы сборки.

5.6.2. Файловая структура общей части проектов

common_xw
Каталог псевдо-проекта - общей части настоящих проектов. Имеет ту же структуру, что и настоящий проект, за исключением каталога описания платформ и скрипта начальной конфигурации проекта. Содержит массу пакетов общего применения и пакеты сборки toolchain.

5.6.3. Файловая структура двигателя системы сборки

xwmake

Каталог двигателя системы сборки.

setup
Основной скрипт начальной конфигурации проекта и системы сборки. Порождает скрипт запуска сборки пакетов проекта. Запускается первым. Использование: ./xwmake/setup ...
xwmake
Основной скрипт запуска сборки пакета.
pkg
Каталог файлов управления пакетами исходных текстов, необходимых для работы двигателя системы сборки.
script
Каталог скриптов двигателя системы сборки. Значимая часть двигателя.
defs.mk
Файл, включаемый каждым пакетом. Значимая часть двигателя.
rules.mk
Файл, включаемый каждым пакетом. Значимая часть двигателя.
mirrors.mk
Файл описания сайтов интернета и их “зеркал”, содержащих пакеты исходных текстов.
no.sh
Файл включаемого в оболочку пользователя скрипта для сброса управляющих переменных. Использование: . ./xwmake/no.sh
ccache.sh
Файл включаемого в оболочку пользователя скрипта для установки управляющих переменных для использования системой сборки программы ccache. Использование: . ./xwmake/ccache.sh

5.6.4. Файловая структура каталога сборки проекта

Каталог сборки проекта по умолчанию имеет вид var_<ПРОЕКТ>, где <ПРОЕКТ> - имя проекта.

var_<ПРОЕКТ>

Каталог сборки проекта <ПРОЕКТ>

st

Каталог файлов состояний сборки пакетов

src
... для исходных текстов
<PLATFORM>
... для заплат
<VARIANT>
... для сборки варианта целевой платформы
iwl

Каталог cписков файлов установленных пакетов

<VARIANT>
... для варианта целевой платформы
log

Каталог файлов журналов сборки пакетов

<VARIANT>
... для варианта целевой платформы
tmp
Каталог временных файлов, в основном, для получаемых из интернета пакетов.
dl
Каталог хранения первого уровня полученных из интернета пакетов.
src

Каталог для извлеченных из архивов исходных текстов пакетов.

origin
Каталог для нетронутых, оригинальных исходных текстов пакетов, извлеченных из архивов.
<PLATFORM>
Каталог для исходных текстов пакетов с наложенными заплатами, особенными для платформы.
bld

Каталог для сборки пакетов

<VARIANT>
... для варианта целевой платформы
<PKG> ...
Каталоги пакетов
inst

Каталог для установки пакетов. Служит, в основном, ловушкой для файлов пакетов, неконтролируемо устанавливаемых собственной системой сборки пакета (make install).

<VARIANT>

... для варианта целевой платформы

bin

etc

include

lib

sbin

share

images

Каталог образов целевой системы

kernel.bin
Файл образа ядра ОС
root.bin
Файл образа корневой ФС
root

Каталог корневой ФС целевой системы

<VARIANT>

... для варианта целевой платформы

bin

etc

lib

libexec

sbin

share

www

tool

Каталог для установки инструментов для сборки целевой системы

<BUILD_VARIANT>

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

autoconf-*
Каталоги для установки autoconf разных версий
automake-*
Каталоги для установки automake разных версий

bin

etc

include

info

lib

libexec

man

share

<TARGET_VARIANT>

Каталог варианта целевой системы

bin

include

info

lib

libexec

man

share

<BUILD>
<TARGET>

Каталог установки binutils

include

lib

<TARGET>

Каталог установки gcc

bin

etc

include

info

lib

libexec

sbin

share

sys-include

<PLATFORM>

Символический линк на каталог установки gcc

bin

etc

include

info

lib

libexec

man

share

sys-include