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