在Makefile中定义自定义后缀规则

Make 可以在相应的.c文件中使用cc -c自动创建a.o文件。这些规则内置在 make 中,您可以利用此优势缩短Makefile。如果仅指示当前目标所依赖的Makefile的依赖行中的.h文件, make 将知道已经需要相应的.cfile。您不必包含编译器的命令。

这会进一步减少Makefile,如下所示−

 
OBJECTS = main.o hello.o factorial.o
hello:$(OBJECTS)
cc $(OBJECTS)-o hello
hellp.o:functions.h
main.o:functions.h
factorial.o:functions.h

制作使用名为 .SUFFIXES 的特殊目标,以允许您定义自己的后缀。例如,请参考下面给出的依赖项−

 
.SUFFIXES:.foo .bar

通知 make 您将使用这些特殊后缀来制定自己的规则。

类似于 make 已经知道如何从 .c 文件制作 .o 文件,您可以按以下方式定义规则−

 
.foo.bar:
tr'[AZ] [az]''[NZ] [AM] [nz] [am]'< $<> $ @
.c.o:
$(CC)$(CFLAGS)-c $<

第一条规则允许您从 .foo 文件创建 .bar 文件。它基本上扰乱了文件。第二条规则是 make 用于从 .c 文件创建 .o 文件的默认规则。