Содержание

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

Система сборки Xwire: Техническое описание

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

2. Требования

1. Введение

1.1. Что это?

Xwire build system (далее - система сборки) предоставляет основу для проектов, строящих, в основном, встраиваемые (embedded) системы для ЭВМ различных архитектур (x86, ARM, MIPS, PowerPC и других) из набора программ с открытыми исходными текстами.

Большая часть существующих проектов - системы с GNU/Linux и автономные (stand-alone) программы (ядра ОС, загрузчики).

Может быть “сборочной средой” (пункт 3.13), “открытой сборочной средой” (пункт 3.14), “изолированной сборочной средой” (пункт 3.15) в ГОСТ Р 54593-2011 [gost_spo].

[gost_spo](1, 2) ГОСТ Р 54593-2011. Информационные технологии. Свободное программное обеспечение. Общие положения. Москва, Стандартинформ, 2011.

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

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

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

1.2. Зачем всё это нужно?

Современное ПО, в том числе для встраиваемых систем, часто весьма сложно и состоит, по большей части, из компонент третьих лиц (компаний и отдельных авторов).

Создание целевой системы состоит, в основном, из интеграции этих компонент в рамках некоторого процесса производства ПО.

Задача систем сборки - осуществление этой интеграции систематическим путём, предоставляя удобства, прежде всего, разработчику ПО - интегратору компонент в целевую систему.

1.3. Другие похожие системы

Buildroot, производный он него OpenWrt, OpenEmbedded.

1.4. Основные свойства системы

  • Воспроизводимость получаемых образов.

  • Многоплатформенность. Один и тот же проект строит одни и те же исходные тексты для разных целевых платформ (при наличии описаний платформ в проекте).

  • Сборка разных вариантов конечных образов, управляемая параметрами сборки проекта.

  • Сборка может быть прервана на любом пакете на любой ступени сборки пакета и продолжена с этой точки.

  • Сборка происходит в отдельном от исходных текстов проекта и системы сборки, каталоге. В процесса сборки файлы ни проекта, ни системы сборки, не меняются.

    В случае каких-то проблем, можно удалить корневой каталог сборки и начать сборку сначала.

  • Проекты и система сборки, за некоторыми небольшими исключениями, не содержат в себе исходных текстов, а только ссылки на их архивы в интернете.

  • Двухуровневая система хранения архивов исходных текстов, обеспечивающая:

    • надёжное хранение архивов исходных текстов
    • экономия интернет трафика при повторных чистых сборках
    • удовлетворение требований “изолированной сборочной среды” (пункт 3.15 в ГОСТ Р 54593-2011 [gost_spo]).

    Подробнее.

  • Использование ccache для ускорения повторных сборок.

  • Пониженный набор требований к списку ПО, установленному на сборочной машине - все необходимые для сборки инструменты получаются и устанавливаются так же, как и другие обычные пакеты проекта.

1.5. Авторские права