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 e80b56d5d7648dfb27e53b3d77826e508eaa6fe4..626d0cefd8eb38e14e9fdf8a13cc4a159fd98355 100644 (file)
@@ -73,10 +73,10 @@ LINK = $(CC) $(LDFLAGS)
 PFOBJS     = $(PFSOURCE:.c=.o)
 PFEMBOBJS  = $(PFSOURCE:.c=.eo)
 
-.c.o: $(PFINCLUDES)
+%.o: %.c $(PFINCLUDES)
        $(COMPILE) -c -o $@ $<
 
-.c.eo: $(PFINCLUDES) pfdicdat.h
+%.eo: %.c $(PFINCLUDES) pfdicdat.h
        $(COMPILE) $(EMBCCOPTS) -c -o $@ $<
 
 .PHONY: all clean test