位置:首页 > 其他技术 > Makefile > Makefile 自定义后缀规则

Makefile 自定义后缀规则

就其本身而言,make已经知道,为了创建一个 .o文件,就必须使用 cc-c 相应的c文件。 建成MAKE这些规则,可以利用这一点来缩短Makefile。如果仅仅只是表示 .h 文件的 Makefile依赖线,依赖于目前的目标是,MAKE会知道,相应的文件已规定。你甚至不需要编译器包括命令。

这减少了我们的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 

 

Make 使用一个特殊的目标,故名 .SUFFIXES允许你定义自己的后缀。例如,依赖线:

.SUFFIXES: .foo .bar
告诉make ,将使用这些特殊的后缀,以使自己的规则。

 

如何让 make 已经知道如何从 .c 文件生成 .o文件。类似的可以定义规则以下列方式:

.foo.bar:
        tr '[A-Z][a-z]' '[N-Z][A-M][n-z][a-m]' < $< > $@
.c.o:
        $(CC) $(CFLAGS) -c $<

 

第一条规则允许你创建一个 .bar 文件从 .foo文件。 (不要担心它做什么,它基本上打乱文件)第二条规则 .c文件创建一个 .o 文件中使用的默认规则。