mkimage-profiles/doc/archdep.txt
Michael Shigorin 2d257a425b lists, doc: introduce @IA32, @X86 archdep macros
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
2018-03-14 08:45:07 +03:00

56 lines
2.2 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

== Архитектурно-зависимые фрагменты ==
=== 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