$<
соответствует первому "предварительному условию" в правиле make, а $@
оценивается как "target" в правиле make.
Вот пример:
file.o : file.c
$(CC) -c $(CFLAGS) $(CPPFLAGS) $< -o $@
В этом случае $<
будет заменено на file.c
, а $@
будет file.o
.
Они более полезны в общих правилах, таких как:
%.o : %.c
$(CC) -c $(CFLAGS) $(CPPFLAGS) $< -o $@
Подробнее см. в этом руководстве .