Поэтому мне нужно убедиться, что при кросс-компиляции для конкретной цели установлена переменная оболочки. Если переменная не установлена, программа 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-файлах).