GNU make выдает ошибку «команды начинаются до первой цели»

В моем make-файле я хотел бы проверить наличие библиотеки и выдать информативное сообщение об ошибке. Я создал условие, которое должно завершить процесс make, если файл не найден:

 9: ifeq ($(${JSONLIBPATH}),)
10:    JSONLIBPATH = ${ALTJSONLIBDIR}/${LIBJSON}
11: endif
12: ifeq ($(${JSONLIBPATH}),)
13:    $(error JSON library is not found. Please install libjson before building)
14: endif 

Мой make-файл застревает в строке 13:

Makefile:13: *** commands commence before first target.  Stop.

После строки 13 у моего make-файла есть свои цели.

Я попытался поместить этот условный блок в цель (например, цель с именем isJSONLibraryInstalled ), но она не выполняется правильно.

Как мне проверить наличие файла и обработать случай ошибки перед обработкой целевых объектов? Прошу прощения, если это глупый вопрос.

49
задан Alex Reynolds 17 January 2011 в 03:29
поделиться