makefile的规则和常用知识点
2019-01-25 本文已影响0人
会飞的蜗牛07
规则
双目标sinclude
变量
内建函数
dir获取目录
mkdir -p $(dir $(TIMESTAMP_FILE))
TIMESTAMP_FILE
为TIMESTAMP_FILE = $(obj)include/generated/timestamp_autogenerated.h
,则获取的目录是$(obj)include/generated/
。
sort排序
LIBS := $(sort $(LIBS-y))
对LIBS-y
排序后赋值给LIBS
。
addprefix加前缀
LIBS := $(addprefix $(obj),$(lib))
假如obj=/home/boot/
,lib=a.o b.o
,则LIBS := /home/boot/a.o /home/boot/b.o
。
调用shell命令
@( localvers='$(shell $(TOPDIR)/tools/setlocalversion $(TOPDIR))' ; \
printf '#define U_BOOT_VERSION "U-Boot %s%s"\n' \
"$(U_BOOT_VERSION)" "$${localvers}" ; \
) > version_autogenerated.h
向version_autogenerated.h
写入
#define U_BOOT_VERSION "U-Boot 2013.04"
调试方法
debug选项
make --debug=basic