在我的gnu-make-3.81 Makefile中,如果没有.c源文件,我希望从.s文件生成.o文件。所以我定义了以下简化的规则:
all::$(OBJS)
%.s: %.c
$(CC) $(CFLAGS) -o $@ -S $<
%.o: %.s
$(CC) $(CFLAGS) -o $@ -c $<
使用gnu-make-3.81,当没有.c源文件时,它将使用第二个规则生成.o文件。但是使用gnu-make-3.82,会出现错误:
make: *** No rule to make target `xxx.c', needed by `xxx.s'. Stop.
如何让它像gnu-make-3.81一样工作?