Каждый проект содержит каталоги собственно проекта, двигателя системы сборки и необязательную общую часть для всех проектов. Каждый из перечисленных компонент, в свою очередь, имеет свою собственную, но похожую на проект, структуру.
Сборка проекта делается в отдельном создаваемом каталоге сборки проекта. Содержимое перечисленных выше каталогов в процессе сборки не изменяется.
- <ПРОЕКТ>
Каталог проекта. Имя каталога проекта должно совпадать с именем проекта.
- doc
- Каталог документов проекта. Необязательно.
- config
- Каталог файлов конфигурации проекта. Необязательно.
- pkg
- Каталог файлов управления пакетами исходных текстов. Сердце проекта, его основная сущность. Имена файлов, в основном, совпадают с именами пакетов исходных текстов. Имеют расширение .make. Файлы с расширением .mk используются как включаемые в другие файлы.
- script
- Каталог вспомогательных скриптов проекта. Необязательно.
- platform
Каталог, содержащий определения целевых платформ.
- <PLATFORM>.mk
- Файл описания целевой платформы. Имеет расширение .mk как включаемый. Имя совпадает с именем целевой платформы. Содержит все определения переменных для описания платформы.
- <PLATFORM>
- Каталог для файлов, особенных для платформы.
- src
- Каталог исходных текстов пакетов, включённых в проект непосредственно.
- _setup.sh
- Файл вспомогательного скрипта начальной конфигурации проекта. Включается основным скриптом начальной конфигурации проекта из двигателя системы сборки для порождения скрипта запуска системы сборки.
- common_xw
- Каталог псевдо-проекта - общей части настоящих проектов. Имеет ту же структуру, что и настоящий проект, за исключением каталога описания платформ и скрипта начальной конфигурации проекта. Содержит массу пакетов общего применения и пакеты сборки toolchain.
- xwmake
Каталог двигателя системы сборки.
- setup
- Основной скрипт начальной конфигурации проекта и системы сборки. Порождает скрипт запуска сборки пакетов проекта. Запускается первым. Использование: ./xwmake/setup ...
- xwmake
- Основной скрипт запуска сборки пакета.
- pkg
- Каталог файлов управления пакетами исходных текстов, необходимых для работы двигателя системы сборки.
- script
- Каталог скриптов двигателя системы сборки. Значимая часть двигателя.
- defs.mk
- Файл, включаемый каждым пакетом. Значимая часть двигателя.
- rules.mk
- Файл, включаемый каждым пакетом. Значимая часть двигателя.
- mirrors.mk
- Файл описания сайтов интернета и их “зеркал”, содержащих пакеты исходных текстов.
- no.sh
- Файл включаемого в оболочку пользователя скрипта для сброса управляющих переменных. Использование: . ./xwmake/no.sh
- ccache.sh
- Файл включаемого в оболочку пользователя скрипта для установки управляющих переменных для использования системой сборки программы ccache. Использование: . ./xwmake/ccache.sh
Каталог сборки проекта по умолчанию имеет вид 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