Попытка получить GNU make 3.81 Встроенная функция для работы , но продолжала получать сообщение об ошибке.GNU make builtin функции не работают
Я построил простой Makefile:
FOO=bar
$(info $(FOO) $(origin FOO))
$(firstword $(origin FOO))
и побежал. Первая функция работает, но второй не будет.
сообщение об ошибке:
...
$ сделать -d
GNU Make 3.81 Copyright (C) 2006 Free Software Foundation, Inc. Это свободное программное обеспечение; см. источник условий копирования. НЕТ гарантии; даже для КОММЕРЧЕСКОЙ ЦЕННОСТИ или ПРИГОДНОСТИ ДЛЯ A ОПРЕДЕЛЕННАЯ ЦЕЛЬ.
Эта программа построена для i686-PC-Linux-гну
Чтение MAKEFILES ...
Чтение Makefile `Makefile» ...
бар файл
Makefile: 6: *** отсутствует разделитель. Стоп.
...
Первые две функции правильно работать так, почему это происходит? Я не вижу ничего очевидного или эта функция $ (firstword) не поддерживается в этой версии make? Спасибо за любую помощь.
Вышеприведенный пример makefile находится прямо из книги «ГНУ« Сделай книгу »Джона Грэма-Камминга. Ему не нужна цель или использование вкладок или быть в правиле, чтобы создать его. который я только что нашел, работает: 'MY_LIST = программа для направленной компиляции $ (информация Первое слово - $ (firstword $ (MY_LIST))). Это решает часть моего вопроса о том, что функция $ (firstword ...) действительно работает. Итак, реальный вопрос: «Почему функция $ (origin ..) не выводит совместимую строку?» – timoh