README 3.02 KB
Newer Older
Mike Radyuk's avatar
Mike Radyuk committed
1
== features.in ==
Michael Shigorin's avatar
Michael Shigorin committed
2

3
Этот каталог содержит т.н. фичи (features, особенности).
Michael Shigorin's avatar
Michael Shigorin committed
4

5 6 7 8 9 10
Фича -- отдельно подключаемая сущность, которая содержит
повторно используемые конфигурацию/код и определяет одну
из особенностей создаваемого образа.  Может зависеть от
других фич либо субпрофилей.

Каждая фича должна содержать файл config.mk, включаемый
11
в main.mk при построении конфигурации будущего профиля;
12 13 14
он может описывать одну или более целей вида use/*,
дополняющих конфигурацию, и обязан добавить имя фичи
в $(FEATURES), для чего создана функция add_feature.
Michael Shigorin's avatar
Michael Shigorin committed
15

Michael Shigorin's avatar
Michael Shigorin committed
16
На этапе генерации сборочного профиля фичи рассматриваются
17 18
после инициализации профиля (см. image.in/) и копирования
субпрофилей (см. sub.in/).  Для каждой фичи, указанной
19 20 21
в $(FEATURES), копируются подкаталоги сообразно включенным
субпрофилям, а также lib/ и {image-,}scripts.d/; затем
выполняются generate.sh и generate.mk при их наличии.
22

23 24 25 26
Если фича дополняет хуками семейство целевых субпрофилей,
построенных на одном базовом, можно воспользоваться подкаталогом
с именем исходного базового субпрофиля (см. $src, $dst в Makefile).

27 28 29 30
Рекомендуется давать несколько различающиеся имена скриптам,
которые одна и та же фича может добавлять в различные стадии,
чтобы они не выглядели одинаково в логе сборки.

31
Наиболее востребованные цели можно снабжать "ярлычками" вроде
32
"+icewm" с тем, чтобы сделать более краткими и выразительными
33 34
использующие их правила.  Просьба не злоупотреблять количеством,
такие имена предполагается показывать в интерфейсе к профилю.
35

36
Каталог lib/ является специфическим для фич, определяющих
Michael Shigorin's avatar
Michael Shigorin committed
37
построение конкретного вида образа -- см. build-*/.
38

Michael Shigorin's avatar
Michael Shigorin committed
39 40
Несложный пример содержится в 00example/, более близкий к жизни
и нынешним пределам возможностей метапрофиля -- в syslinux/.
Michael Shigorin's avatar
Michael Shigorin committed
41 42

См. тж. файлы README в каталогах фич (отсутствие -- баг!).