makefile 编译程序,经常会遇到需要编译不同的子模块,需要先编译好子模块,再编译自己的应用的情况。
子模块分布在不同的目录(可能直接就是不同的组成员写的),这时候需要顶层makefile进入子模块目录执行makefile编译。
- 进入不同的目录,不需要使用 cd 进入对应目录,可以使用
会自动进入相关的目录执行寻找makefile,执行make,进行编译,编译完之后,退出到当前目录。
- 要希望从顶层 makefile 传递变量到下层的makefile,可以使用
export variable
参考网址,http://www.gnu.org/savannah-checkouts/gnu/make/manual/html_node/Variables_002fRecursion.html#Variables_002fRecursion
举例说明,比如,现在有项目代码,顶层是自己的程序,包含下属两个子模块, eXosip2 目录,存放eXosip2库文件;sdp目录存放sdp分析文件。