Ответ 1
GNU make (и многие другие) имеет два основных способа присвоения значений переменным. Они различаются в зависимости от оператора, который вы используете. Согласно документации, один знак равенства (=
) приведет к рекурсивному расширению значения, тогда как двоеточие равно (:=
) приведет к простому расширению.
В вашем цитируемом коде используется :=
, и поэтому это должно привести к простому расширению. То, что вы видите, - это сообщение об ошибке, связанное с рекурсивным расширением. Я ожидал бы такую ошибку, если бы у вас было что-то вроде этого:
PATH = $(PATH):/other/dir
Может ли ошибка быть вызвана другой строкой в вашем файле makefile, который вы не цитировали? Если вы уверены, что ваше вырезание и вставка верны и что именно эта строка вызывает проблему, было бы полезно, если бы мы увидели весь незавершенный файл makefile.