9cedefdba9
The features might get copy-pasted (or even copied-and-pruned) when initialized; there's an unneccessary duplication of the function name in the line adding it to FEATURES list, thus prone to being forgotten and causing some havoc later on. It was wrong in the first place but tackling this with some double-colon rules ran into terminality issues, and further tortures were considered unneccessary. The current solution isn't perfect (no completely transparent function name registration upon corresponding target being called) but at least it is an improvement... |
||
---|---|---|
.. | ||
00example | ||
bootloader | ||
build-distro | ||
build-ve | ||
cleanup | ||
dev | ||
dos | ||
firmware | ||
hdt | ||
install2 | ||
isomd5sum | ||
live | ||
lowmem | ||
memtest | ||
pack | ||
power | ||
repo | ||
rescue | ||
stage2 | ||
syslinux | ||
systemd | ||
x11 | ||
Makefile | ||
README |
Этот каталог содержит т.н. фичи (features, особенности) -- каталоги, содержимое каждого из которых реализует одну из подключаемых автономных возможностей образа. Каждая фича должна содержать задействуемый при построении конфигурации будущего образа файл config.mk, включаемый в ../Makefile; он может описывать одну или более целей вида use/*, дополняющих конфигурацию, и при наличии дополнительных хуков для копирования или generate.* обязан добавить имя фичи в $(FEATURES), для чего создана функция add_feature без аргументов. На этапе генерации сборочного профиля фичи рассматриваются после инициализации профиля (см. ../image.in/) и копирования субпрофилей (см. ../sub.in/). Для каждой фичи, указанной в $(FEATURES), копируются подкаталоги сообразно субпрофилям, а также производится обработка {tagged/,}{image-,}scripts.d/; затем выполняется скрипт generate.sh и задействуется generate.mk (при их наличии). NB: тегированные скрипты являются экспериментальными, возможны недоработки и существенные изменения! Если фича дополняет хуками семейство целевых субпрофилей, построенных на одном базовом, можно воспользоваться подкаталогом с именем исходного базового субпрофиля (см. $src, $dst в Makefile). Каталог lib/ является специфическим для фич, определяющих построение конкретного вида образа -- см. build-*/. Несложный пример содержится в 00example/, более близкий к жизни и нынешним пределам возможностей метапрофиля -- в syslinux/.