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