2 回答

TA貢獻(xiàn)1816條經(jīng)驗(yàn) 獲得超4個(gè)贊
1
2 # Automatically-generated file. Do not edit!
5 -include ../makefile.init //包含上級(jí)目錄的makefile.init文件
6
7 RM := rm -rf //定義一個(gè)變量RM,初始值是rm -rf,下文如有用到RM,等價(jià)于使用命令"rm - rf", 即強(qiáng)制刪除文件命令。
8
9 # All of the sources participating in the build are defined here
10 -include sources.mk //包含當(dāng)前目錄下的sources.mk文件
11 -include subdir.mk //包含當(dāng)前目錄下的subdir.mk文件
12 -include objects.mk //包含當(dāng)前目錄下的objects.mk文件
13
14 ifneq ($(MAKECMDGOALS),clean) //比較參數(shù)“MAKECMDGOALS ”的值是否等于"clean", 如果不等,則為真。
15 ifneq ($(strip $(C++_DEPS)),)
16 -include $(C++_DEPS) //包含當(dāng)前目錄下的$(C++_DEPS) 文件
17 endif
18 ifneq ($(strip $(C_DEPS)),) //strip函數(shù)的功能是去掉字符串開頭和結(jié)尾的空格
19 -include $(C_DEPS)
20 endif
21 ifneq ($(strip $(CC_DEPS)),)
22 -include $(CC_DEPS)
23 endif
24 ifneq ($(strip $(CPP_DEPS)),)
25 -include $(CPP_DEPS)
26 endif
27 ifneq ($(strip $(CXX_DEPS)),)
28 -include $(CXX_DEPS)
29 endif
30 ifneq ($(strip $(C_UPPER_DEPS)),)
31 -include $(C_UPPER_DEPS)
32 endif
33 endif
35 -include ../makefile.defs

TA貢獻(xiàn)1777條經(jīng)驗(yàn) 獲得超10個(gè)贊
easy, 不過一行一行的比較麻煩:
1, -include 和c語言的 #include 差不多,是把文件插入到當(dāng)前文件的當(dāng)前位置。
2, ifneq ($(MAKECMDGOALS),clean) : 如果變量MAKECMDGOALS 的值 不等于 clean.
3,strip函數(shù)的功能是取掉字符串開頭和結(jié)尾的空格, $(stip ni hao ) 示例以" ni hao "作參數(shù)時(shí)其返回值是"ni hao".
注意: makefile和shell類似,變量類型只有一種,那就是字符串類型,即使你這樣定義 INT = 123, INT 也會(huì)被當(dāng)作"123"字符串來處理。
1, ../makefile.init 代表當(dāng)前目錄的父目錄下的makfile.init 文件, 這句就是把當(dāng)期目錄的父目錄下的makefile.init插入到當(dāng)前文件的當(dāng)前位置。
2, ifneq ($(MAKECMDGOALS),clean) 里面這個(gè)MAKECMDGOALS是個(gè)變量,makefile沒有宏這個(gè)說法。 因?yàn)樵谶@句之前有 -include ../makefile.init -include sources.mk -include subdir.mk -include objects.mk 這4句,所以如果你在當(dāng)前makefile找不到MAKECMDGOALS這個(gè)變量就去上面的4個(gè)文件里去找找,如果真的找不到,那么就是說沒有定義MAKECMDGOALS這個(gè)變量,這時(shí)$(MAKECMDGOALS)等于空,即""。
添加回答
舉報(bào)