在使用 GNU Make 管理项目的第 8 章(P150)中,作者介绍了Tromey’s Way
.
define make-depend
$(CC) $(CFLAGS) $(CPPFLAGS) $(TARGET_ARCH) -M $1 | \
$(SED) 's,\($$(notdir $2)\) *:,$$(dir $2) $3: ,' > $3.tmp
$(MV) $3.tmp $3
endef
%.o: %.c
$(call make-depend,$<,$@,$(subst .o,.d,$@))
$(COMPILE.c) -o $@ $<
我对双美元符号$$(notdir $2)
和的理解$$(dir $2)
是它用于转义$
,以便稍后扩展。但是,我们希望它$2
在这里运行,对吧?
我怀疑这是一个错误,但我在勘误表上找不到它。这真的是一个错误,还是我误解了它?