层级makefile初探

源码目录树

层级makefile初探

顶层Makefile

层级makefile初探

次级Makefile,另一个makefile类似

层级makefile初探

编译命令

make -f custom.mk mobil
其中 -f 为指定的makefile文件名字,不带该参数则默认为makefile 或者Makefile
make -C xxx ,代表执行xxx目录中的makefile

部分函数

foreach: 循环遍历关键字

$(foreach tmp ,,)

names := a b c d

files := (foreachn,(foreach n,(names),$(n).o)

上面的例子中,(name)n(name)中的单词会被挨个取出,并存到变量“n”中,“(n).o”每次根据“(n)foreach(n)”计算出一个值,这些值以空格分隔,最后作为foreach函数的返回,所以,(files)的值是“a.o b.o c.o d.o”。

patsubst 字符串模式替换

$(patsubst pattern ,replacement,text)
obj := $(patsubst %.c,%.o,x.c.c bar.c)
则 obj 为x.c.o,bar.o

shell ,执行shell 命令

$(shell dir ./src) 意为显示src 目录下的所有文件

export 导出变量到次级makefile使用

详情可以参考make 官网文档,此源码位于