如果我在生成文件中有以下规则:
$(OBJ)/%.o: $(SRC)/%.c
$(CC) -c -o $@ $< $(CFLAGS)
每个匹配前缀./obj/和后缀的文件.o都会将其词干传递给%,因此我可以根据其名称提供一些依赖项。
但是,假设我有这样的规则,我会一一指定我想要的目标:
OBJECTS=abc.o bca.o cba.o
$(OBJECTS): $(SRC)/%.c
$(CC) -c -o $@ $< $(CFLAGS)
如何使%词干真正适用于当前目标名称make正在执行?只是使用%是行不通的,也不行$@。
请注意,我正在尝试将实际目标名称写入它自己的依赖项。例如,当make为 执行规则时abc.o,它将包含$(SRC)/abc.c并且仅包含它(类似于$(patsubst %.o, $(SRC)/%.c, MAGIC_TARGET_NAME_VARIABLE))。