use pattern rules instead of suffix rules in the Makefile
authorletoh <letoh.tw@gmail.com>
Wed, 9 Sep 2020 07:30:29 +0000 (15:30 +0800)
committerletoh <letoh.tw@gmail.com>
Wed, 9 Sep 2020 07:30:29 +0000 (15:30 +0800)
Both the two suffix rules in current Makefile include prerequisites, so a make
with POSIX mode enabled will treat them as rules to build two normal files with
strange names (.c.o and .c.eo), rather than create pattern rules implicitly.

According to the release note from make 4.3, the POSIX behavior will be adopted
as the only behavior in a future release, so use the pattern rules instead.

build/unix/Makefile

index e80b56d..626d0ce 100644 (file)
@@ -73,10 +73,10 @@ LINK = $(CC) $(LDFLAGS)
 PFOBJS     = $(PFSOURCE:.c=.o)
 PFEMBOBJS  = $(PFSOURCE:.c=.eo)
 
 PFOBJS     = $(PFSOURCE:.c=.o)
 PFEMBOBJS  = $(PFSOURCE:.c=.eo)
 
-.c.o: $(PFINCLUDES)
+%.o: %.c $(PFINCLUDES)
        $(COMPILE) -c -o $@ $<
 
        $(COMPILE) -c -o $@ $<
 
-.c.eo: $(PFINCLUDES) pfdicdat.h
+%.eo: %.c $(PFINCLUDES) pfdicdat.h
        $(COMPILE) $(EMBCCOPTS) -c -o $@ $<
 
 .PHONY: all clean test
        $(COMPILE) $(EMBCCOPTS) -c -o $@ $<
 
 .PHONY: all clean test