10.6.1 Условные макросы

Используется специальный синтаксис для проверки, был ли определен данный макрос. Например:

%{?macro_to_test: expression}

Эта строка говорит RPM развернуть выражение expression, если макрос macro_to_test существует. Если макрос не существует, ничего не будет выведено. Проверку также можно осуществлять реверсивно. Если в проверке первый символ - знак !, выражение будет разворачиваться, если макрос НЕ существует:

%{!?macro_to_test: expression}

В данном примере выражение expression будет развернуто, если макрос macro_to_test не существует.

При необходимости выражение можно пропустить и проверять только наличие или отсутствие макроса. Если макрос существует, RPM использует значение макроса, если не существует, RPM не будет делать ничего. Например:

%build

./configure %{?_with_ldap}

make

В этом случае, если макрос _with_ldap существует, значение этого макроса будет подставлено в командную строку в скрипт ./configure в качестве параметра. Если макрос _with_ldap не существует, в скрипт не будет подставлено никаких параметров. Это весьма мощная возможность для процессов сборки или установки пакета.

Далее - Условные блоки
Назад - Условная сборка
Содержание