2015-05-18 3 views
1

Я пытаюсь получить приглашение в Makefile.am, если условие не соответствует действительности. Я пытаюсь как:echo in makefile.am if loop

if FOUND_MAKEDEPF90 
<compilation condition if true> 
else 
@echo "Create the dependencies Manually\n" 
@echo "e.g. ./src/main.o:./src/main.f90" 
endif 

Истинная ветвь работает нормально, но во время работы филиала еще, я получаю сообщение об ошибке:

*** missing separator. Stop. 

Разве это не действует, чтобы положить эхо заявление в петля? Что здесь не так? любая идея, пожалуйста?

Я использую:

$ make --version 
GNU Make 4.0 
Built for x86_64-redhat-linux-gnu 

ответ

2

Вы не имеете петлю здесь. У вас есть оператор make level if и yes, echo - это команда оболочки и не может находиться на верхнем уровне make-файла.

Если вы просто пытаетесь отобразить сообщение (на make время выполнения), если это условие не выполнено, то вы можете использовать грим $(info) функцию (или $(warning) или $(error), который вызывает сделать, чтобы выйти с ошибкой).

+1

'$ (информация Некоторый текст для отображения)' и т. Д. См. [Функции, которые делают контроль] (http://www.gnu.org/software/make/manual/make.html#Make-Control-Functions) , –