Выход из файла make, если состояние двух переменных оболочки является определенным состоянием

Поэтому мне нужно убедиться, что при кросс-компиляции для конкретной цели установлена ​​переменная оболочки. Если переменная не установлена, программа make должна отобразить сообщение, а затем выйти.

У меня есть следующее правило в моем Makefile:

.PHONY: checksource

all: checksource default

checksource:
    $(if $(and $(ifeq ($(CROSS_COMPILE), whatever)), $(ifeq ($(VARIABLE),))), \
    ($(shell echo "Error! VARIABLE not defined!") \
     $(shell exit 2)))

Если $ CROSS_COMPILE установлен в любое значение:

$> echo $CROSS_COMPILE
whatever
$>

и $ VARIABLE не определена:

$> echo $VARIABLE
$>

Она не завершает make, и создается цель по умолчанию. Хорошо, я знаю, что могу просто использовать вложенный ifeq для этого, но я хочу сделать его красивым (и узнать немного больше о make-файлах).

13
задан kenorb 1 April 2016 в 00:47
поделиться