2d257a425b
The former ("proper 32-bit x86 package form") has been suggested by zerg@ quite some time ago but the desired interface wasn't clear at the moment IIRC; a quiet morning helped me realize that ICAClient-preinstall@IA32 is rather more readable than ICAClient-preinstall@i586 i586-ICAClient-preinstall@x86_64 so here's the (trivial) implementation; and I actually needed the latter, @X86 ("any-x86") to mark x86-only packages so xorg-drv-intel@X86 is now equivalent to xorg-drv-intel@i586 xorg-drv-intel@x86_64
56 lines
2.2 KiB
Plaintext
56 lines
2.2 KiB
Plaintext
== Архитектурно-зависимые фрагменты ==
|
||
|
||
=== 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
|
||
|
||
Для преобразования можно воспользоваться следующей командой:
|
||
|
||
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
|