2 整理Makefile(harib03b)
分割雖然成功了,但現在Makefile又有點長了,足足有113行。雖說出現這種情況是情有可原,但是,像這樣:
bootpack.gas : bootpack.c Makefile $(CC1) -o bootpack.gas bootpack.c graphic.gas : graphic.c Makefile $(CC1) -o graphic.gas graphic.c dsctbl.gas : dsctbl.c Makefile $(CC1) -o dsctbl.gas dsctbl.c
或者像這樣:
bootpack.nas : bootpack.gas Makefile $(GAS2NASK) bootpack.gas bootpack.nas graphic.nas : graphic.gas Makefile $(GAS2NASK) graphic.gas graphic.nas dsctbl.nas : dsctbl.gas Makefile $(GAS2NASK) dsctbl.gas dsctbl.nas
它們做的都是同樣的事。為什么要寫這么多同樣的東西呢?每次增加新的源文件,都要像這樣增加這么多雷同的編譯規則,看著都煩。
■■■■■
其實有一個技巧可以將它們歸納起來,這就是利用一般規則。我們可以把上面6個獨立的文件生成規則,歸納成以下兩個一般規則。
%.gas : %.c Makefile $(CC1) -o $*.gas $*.c %.nas : %.gas Makefile $(GAS2NASK) $*.gas $*.nas
哦,這玩意兒好!真方便。
make.exe會首先尋找普通的生成規則,如果沒找到,就嘗試用一般規則。所以,即使一般規則和普通生成規則有沖突,也不會有問題。這時候,普通生成規則的優先級更高。比如雖然某個文件的擴展名也是.c,但是想用單獨的規則來編譯它,這也沒問題。真聰明呀。
所以,Makefile中可以用一般規則的地方我們都換成了一般規則。這樣程序就精簡成了92行。減了21行呢,感覺太棒了。
我們來確認一下,運行“make run”。很好,完全能正常運行。
推薦閱讀
- Linux運維之道(第3版)
- Mastering vRealize Operations Manager(Second Edition)
- 構建高可用Linux服務器(第4版)
- PLC控制程序精編108例
- Windows Vista基礎與應用精品教程
- Linux內核完全注釋(20周年版·第2版)
- Linux從零開始學(視頻教學版)
- 蘋果電腦玩全攻略 OS X 10.8 Mountain Lion
- 操作系統基礎與實踐:基于openEuler平臺
- 新手易學:系統安裝與重裝
- 深入理解eBPF與可觀測性
- STM32庫開發實戰指南:基于STM32F4
- Hands-On GPU Programming with Python and CUDA
- Ubuntu Linux操作系統實用教程
- VMware Horizon Mirage Essentials