Условные операторы в Make

Содержание
ifeq
Логическое ИЛИ
Связанные статьи

ifeq

ifeq ("A", "A") @echo "A=A" endif

A=A

Логическое ИЛИ в GNUmakefile

Оператор OR отсутствует в Make-файлах

Частично логическое OR в Make-файле можно заменить с помощью функции filter

ifeq ("A", $(filter "A", "A" "B")) $(info "A = A") endif

filter возвращает совпадение между "A" и "A" "B" то есть "A" затем ifeq сравнивает "A" и "A"

make

A = A

Например можно проверить значение переменной на принадлежность к известному списку.

URL=eth1.ru ifeq ($(URL),$(filter $(URL), eth1.ru eth1.ru topbicycle.ru)) $(info URL $(URL) is among known list) else $(info URL $(URL) is not known) endif

make

URL eth1.ru is among known list

Пример

TAGS="rhel8 rhel7" $(info TAGS are $(TAGS)) PROFILE="deb" ifeq (${PROFILE}, $(filter ${PROFILE}, "deb" "debian")) override TAGS = ubuntu debian $(info MATCH NEW TAGS are $(TAGS)) else $(info NO MATCH TAGS are $(TAGS)) endif

make

TAGS are rhel8 rhel7
MATCH NEW TAGS are ubuntu debian

Похожие статьи
make
Основы make
PHONY
CURDIR
shell
wget + make
Переменные в Make файлах
ifeq: Условные операторы
filter
-c: Компиляция
Linux
Bash
C
C++
C++ Header файлы
Configure make install
DevOps
Docker
OpenBSD
Errors make
Изображение баннера

Поиск по сайту

Подпишитесь на Telegram канал @aofeed чтобы следить за выходом новых статей и обновлением старых

Перейти на канал

@aofeed

Задать вопрос в Телеграм-группе

@aofeedchat

Контакты и сотрудничество:
Рекомендую наш хостинг beget.ru
Пишите на info@urn.su если Вы:
1. Хотите написать статью для нашего сайта или перевести статью на свой родной язык.
2. Хотите разместить на сайте рекламу, подходящую по тематике.
3. Реклама на моём сайте имеет максимальный уровень цензуры. Если Вы увидели рекламный блок недопустимый для просмотра детьми школьного возраста, вызывающий шок или вводящий в заблуждение - пожалуйста свяжитесь с нами по электронной почте
4. Нашли на сайте ошибку, неточности, баг и т.д. ... .......
5. Статьи можно расшарить в соцсетях, нажав на иконку сети: