您的位置:首页 > 其它

asterisk1.8 Makefile分析 (2)

2014-02-27 17:49 429 查看
menuselect.makeopts分析

查找makefile,这个目录的依赖关系如下:

menuselect.makeopts: menuselect/menuselect menuselect-tree makeopts build_tools/menuselect-deps $(GLOBAL_MAKEOPTS) $(USER_MAKEOPTS)

下面我们逐个分析:

1) menuselect/menuselect

查找makefile,这个目标的规则如下:

menuselect/menuselect: menuselect/makeopts

+$(MAKE_MENUSELECT) menuselect

menuselect/makeopts这个依赖不用管,在configure的时候就会生成。

$(MAKE_MENUSELECT) 展开如下:

CC="$(BUILD_CC)" CXX="" LD="" AR="" RANLIB="" CFLAGS="" $(MAKE) -C menuselect CONFIGURE_SILENT="--silent"

可以看到这条命令就是要进入menuselect目录下去执行makefile并生成menuselect。

2)
menuselect-tree

这个目标的生成,比较复杂,先不看了

3) makeopts不用管,这个在_all的依赖里已经分析过了。

4) build_tools/menuselect-deps,这个文件在configure的时候生成。在Makefile里就查不到。

5)
$(GLOBAL_MAKEOPTS)和$(USER_MAKEOPTS)

这两个目录展开后为:

GLOBAL_MAKEOPTS=$(wildcard /etc/asterisk.makeopts)

USER_MAKEOPTS=$(wildcard ~/.asterisk.makeopts)

wildcard为makefile的关键字,是将后面的通配符展开的,但是后面没有通配符,不知道是什么意思。

不过makefile里面有一个段话来解释这两个变量,大概意思是说,asterisk.makeopts文件是asterisk用menuselect生成的配置文件,如果我们的系统里有这个文件,以后用新版本的asterisk的时候就不需要再用menuselect重新设置了。第一个asterisk.makeopts是全局的,第二个.asterisk.makeopts是用户的。如果有第一个,就会覆盖第二个。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: