Ответ 1
Из manual:
$(error Bad svn version v1.4, please install v1.6)
Это приведет к make
к фатальной ошибке:
$ make
Makefile:2: *** Bad svn version v1.4, please install v1.6. Stop.
Я хочу обнаружить условие в моем make файле, где инструмент является неправильной версией, и заставить make сбой с сообщением об ошибке, указывающим, что элемент не является правильной версией.
Может ли кто-нибудь привести пример этого?
Я пробовал следующее, но это не правильный синтаксис:
ifeq "$(shell svnversion --version | sed s/[^0-9\.]*://)" "1.4"
$error("Bad svnversion v1.4, please install v1.6")
endif
Спасибо.
Из manual:
$(error Bad svn version v1.4, please install v1.6)
Это приведет к make
к фатальной ошибке:
$ make
Makefile:2: *** Bad svn version v1.4, please install v1.6. Stop.
В то время как $(ошибка... работает, иногда ее проще использовать правило, которое терпит неудачу
test_svn_version:
@if [ $$(svn --version --quiet | \
perl -ne '@a=split(/\./); \
print $$a[0]*10000 + $$a[1]*100 + $$a[2]') \
-lt 10600 ]; \
then \
echo >&2 "Svn version $$(svn --version --quiet) too old; upgrade to v1.6";
false; \
fi
Затем вы делаете test_svn_version предпосылкой своего целевого уровня верхнего уровня.
Условные тоже требуют внимания.
ifeq ($(shell svnversion --version | sed s/[^0-9\.]*://), 1.4) $(error Bad svnversion v1.4, please install v1.6) endif