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 已經知道如何從 .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 文件中使用的默認規則。