You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
73 lines
3.0 KiB
73 lines
3.0 KiB
== Архитектурно-зависимые фрагменты ==
|
|
|
|
=== Makefile ===
|
|
|
|
Достаточно воспользоваться ifeq/ifneq, сравнивая $(ARCH) с нужным:
|
|
|
|
ifeq (x86_64,$(ARCH))
|
|
EFI_LISTS := $(call tags,base efi)
|
|
endif
|
|
|
|
При необходимости сравнить со списком ("любой x86") можно сделать так:
|
|
|
|
ifeq (,$(filter-out i586 x86_64,$(ARCH)))
|
|
use/x11/xorg: use/x11 use/x11/intel use/firmware
|
|
else
|
|
use/x11/xorg: use/x11
|
|
endif
|
|
|
|
В рецептах (shell-часть Makefile) используйте $(ARCH) или $$ARCH.
|
|
|
|
=== скрипты ===
|
|
|
|
В скриптовых хуках ({image-,}scripts.d/*) проверяйте $GLOBAL_ARCH.
|
|
|
|
=== списки пакетов, профили групп ===
|
|
|
|
Бывает так, что в списке пакетов есть смысл упоминать какой-либо из них
|
|
только для определённой архитектуры (например, wine или steam); в таких
|
|
случаях можно воспользоваться механизмом подстановки, который пословно
|
|
обрабатывает списки и в случае наличия суффикса @ARCH оставляет только
|
|
слова, в которых этот суффикс соответствует заданной архитектуре сборки.
|
|
|
|
Например, для Simply Linux в mkimage-profiles-desktop есть строчки:
|
|
|
|
@I586_ONLY@haspd
|
|
@X86_64_ONLY@i586-haspd
|
|
|
|
В случае mkimage-profiles они должны выглядеть так:
|
|
|
|
haspd@i586
|
|
i586-haspd@x86_64
|
|
|
|
или упрощённо (с версии 1.2.12):
|
|
|
|
haspd@IA32
|
|
|
|
С версии 1.3.15 поддерживается макрос E2K ("любое поколение e2k*") и
|
|
ARM (armh или aarch64), а также выборка "для любой архитектуры, кроме"
|
|
(например, @!E2K, или "@!ARM).
|
|
|
|
С версии 1.4.21 поддерживается перечисление архитектур через запятую
|
|
после "@" или "@!":
|
|
|
|
LibreOffice-still@X86,aarch64,ppc64le,mipsel
|
|
java-11-openjdk@!E2K,mipsel
|
|
|
|
Для преобразования можно воспользоваться следующей командой:
|
|
|
|
sed -r -e 's/@I586_ONLY@([^\t ]+)/\1@i586/g' \
|
|
-e 's/@X86_64_ONLY@([^\t ]+)/\1@x86_64/g'
|
|
|
|
При необходимости добавить пакет только на x86-архитектурах (неважно,
|
|
i586 или x86_64) можно воспользоваться макросом X86 (с версии 1.2.12):
|
|
|
|
xorg-drv-intel@X86
|
|
|
|
Аналогичная функциональность реализована для профилей установки.
|
|
|
|
=== загрузчики ===
|
|
|
|
Как правило, сперва понадобится доработка mkimage -- см. скрипты
|
|
tools/mki-pack-*boot -- и лишь затем профиля; см. тж. lib/boot.mk
|
|
и фичу pack.
|
|
|