В моем файле Makefile gnu-make-3.81 я хочу создавать файлы .o из файлов .s, если исходных файлов .c нет. Поэтому я определил следующие правила, которые я упростил:
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?