В Makefile я часто вижу “$<“. Что означает этот специальный символ и как его использовать?
foo.o: foo.c bar.h baz.h gcc -o $<
В этом правиле Makefile целевым файлом для сборки является foo.o, который зависит от трех файлов: foo.c, bar.h и baz.h.
Это означает, что если любой из этих файлов в списке зависимостей будет обновлен, make вызовет команду, указанную ниже, а именно “gcc -o $<“.
Так что же это за штука: “$<“?
В Makefile “$<” – это специальная переменная, которая представляет собой первую зависимость правила.
В этом примере foo.o зависит от трех файлов, и первая зависимость – foo.c.
Поэтому “$<” относится к foo.c.
Даже если у этого правила есть дополнительные зависимости, такие как bar.h и baz.h, “$<” все равно относится к foo.c, поскольку он представляет первую зависимость, указанную в правиле.
“$<” – это всего лишь одна из нескольких специальных переменных, которые могут использоваться в Make-файлах. Среди других часто используемых специальных переменных – “$@” (цель правила), “$^” (все зависимости правила) и “$*” (ножка цели, то есть часть перед расширением файла).
Точный набор специальных переменных, доступных в данном Make-файле, может зависеть от используемой версии Make и расширений или макросов, определенных в самом Make-файле.
см. также: