3个重要的makefile函数,
1, wildcard
使用:SRC = $(wildcard *.c ./foo/*.c)
搜索当前目录及./foo/下所有以.c结尾的文件,生成一个以空格间隔的文件名列表,并赋值给SRC.当前目录文件只有文件名,子目录下的文件名包含路径信息,比如./foor/bar.c。
2、notdir
使用:SRC = $(notdir wildcard)
去除所有的目录信息,SRC里的文件名列表将只有文件名。
3 dir
使用 $(dir $(subst $(obj),,$@)) 得到单词的目录路径如果 单词为xx/xx/dd.o 则返回xx/xx/
uboot是怎么进入各个源码make的
d比如common目录:
LIBS += common/libcommon.a
$(obj)u-boot: depend version $(SUBDIRS) $(OBJS) $(LIBS) $(LDSCRIPT)
.....
$(LIBS):
$(MAKE) -C $(dir $(subst $(obj),,$@))