asterisk1.8 Makefile分析 (2)
menuselect.makeopts分析
查找makefile,這個(gè)目錄的依賴關(guān)系如下:
menuselect.makeopts: menuselect/menuselect??? menuselect-tree??? makeopts??? build_tools/menuselect-deps $(GLOBAL_MAKEOPTS)??? $(USER_MAKEOPTS)
下面我們逐個(gè)分析:
1) menuselect/menuselect
?? 查找makefile,這個(gè)目標(biāo)的規(guī)則如下:
?? menuselect/menuselect: menuselect/makeopts
?? ???????????????? +$(MAKE_MENUSELECT) menuselect
?? menuselect/makeopts這個(gè)依賴不用管,在configure的時(shí)候就會(huì)生成。
? $(MAKE_MENUSELECT) 展開如下:
CC="$(BUILD_CC)" CXX="" LD="" AR="" RANLIB="" CFLAGS="" $(MAKE) -C menuselect CONFIGURE_SILENT="--silent"
?? 可以看到這條命令就是要進(jìn)入menuselect目錄下去執(zhí)行makefile并生成menuselect。
2) menuselect-tree
??? 這個(gè)目標(biāo)的生成,比較復(fù)雜,先不看了
3) makeopts不用管,這個(gè)在_all的依賴?yán)镆呀?jīng)分析過了。
4) build_tools/menuselect-deps,這個(gè)文件在configure的時(shí)候生成。在Makefile里就查不到。
5) $(GLOBAL_MAKEOPTS)和$(USER_MAKEOPTS)
?? 這兩個(gè)目錄展開后為:
??? GLOBAL_MAKEOPTS=$(wildcard /etc/asterisk.makeopts)
??? USER_MAKEOPTS=$(wildcard ~/.asterisk.makeopts)
???? wildcard為makefile的關(guān)鍵字,是將后面的通配符展開的,但是后面沒有通配符,不知道是什么意思。
??? 不過makefile里面有一個(gè)段話來解釋這兩個(gè)變量,大概意思是說,asterisk.makeopts文件是asterisk用menuselect生成的配置文件,如果我們的系統(tǒng)里有這個(gè)文件,以后用新版本的asterisk的時(shí)候就不需要再用menuselect重新設(shè)置了。第一個(gè)asterisk.makeopts是全局的,第二個(gè).asterisk.makeopts是用戶的。如果有第一個(gè),就會(huì)覆蓋第二個(gè)。
??
總結(jié)
以上是生活随笔為你收集整理的asterisk1.8 Makefile分析 (2)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 《哥谭骑士》游戏:我们和同名电视剧没有关
- 下一篇: pin controller drive