uboot Makefile 分析
来源:互联网 发布:软件功能过期怎么办 编辑:程序博客网 时间:2024/06/15 19:47
uboot Makefile 分析
makefile基础
简单示例:#samplemain.o:main.c defs.h cc -c main.cclean: rm *.*
包含其他makefile
include FILENAMESinclude指示符用于make暂停读取当前Makefile,转而去读取inlcude制定的文件,完成后再继续当前的makefile读取
[Tab]字符开始make程序将此行作为一个命令行来处理
变量 MAKEFILES
变量 MAKEFILE_LIST
makefile普通规则
makefile模式规则
%.o : %.c$(CC) -c $(CFLAGS) $(CPPFLAGS) $< -o $@此规则描述了一个.o文件如何由对应的.c文件创建。规则的命令行中使用了自动化变量“ $<”和“ $@”,其中自动化变量“ $<”代表规则的依赖,“ $@”代表规则的目标。此规则在执行时,命令行中的自动化变量将根据实际的目标和依赖文件取对应值。
依赖类型:常规依赖与order-only依赖
LIBS = libtest.afoo : foo.c | $(LIBS)$(CC) $(CFLAGS) $< -o $@ $(LIBS)规则中依赖文件$(LIBS)只有在目标文件不存在的情况下,才会参与规则的执行。当目标文件存在时此依赖不会参与规则的执行过程
变量
变量是一个名字(像是 C 语言中的宏),代表一个文本字符串(变
量的值)
objects = program.o foo.o utils.oprogram : $(objects)cc -o program $(objects)$(objects) : defs.h
变量的替换引用,格式为“ $(VAR:A=B)”(或者“ ${VAR:A=B}”),foo := a.o b.o c.obar := $(foo:.o=.c)变量“ bar”的值就为“ a.c b.c c.c”。
: 以冒号开头表示注释@ 以@开头表示命令执行的时候不显示命令本身自动化变量$@ 表示规则的目标文件名$< 规则的第一个依赖文件名$^ 规则的所有依赖文件列表$? 所有比目标文件更新的依赖文件列表,空格分割$% 当规则的目标文件是一个静态库文件时,代表静态库的一个成员名$(@D) 表示目标文件的目录部分(不包括斜杠)$(@F) 目标文件的完整文件名中除目录以外的部分(实际文件名)$(*D) $(*F) 分别代表目标“茎”中的目录部分和文件名部分$(<D) $(<F) 分别表示规则中第一个依赖文件的目录部分和文件名部分$(^D) $(^F) 分别表示所有依赖文件的目录部分和文件部分(不存在同一文件)$(+D) $(+F) 分别表示所有依赖文件的目录部分和文件部分(可存在重复文件)。$(?D) $(?F) 分别表示被更新的依赖文件的目录部分和文件名部分
0 0
- Uboot 之Makefile 分析
- Uboot的Makefile分析
- uboot之Makefile分析
- uboot makefile 分析 转
- uboot makefile 分析
- uboot Makefile 分析
- uboot makefile分析
- uboot makefile 分析 转
- Uboot 之Makefile 分析
- uboot-Makefile分析
- uboot之Makefile分析
- uboot的 MakeFile分析
- uboot之Makefile分析
- uboot Makefile源码分析
- Uboot 之Makefile 分析
- uboot makefile 分析 转
- uboot 学习 Makefile分析
- uboot makefile分析
- 封装
- (十一)洞悉linux下的Netfilter&iptables:iptables命令行工具源码解析【上】
- Java基础——Java的抽象机制,抽象方法抽象类和接口
- [opencv] 将摄像头图像做镜像变换(split, merge, 矩阵相乘)
- shader - 属性
- uboot Makefile 分析
- (十二)洞悉linux下的Netfilter&iptables:iptables命令行工具源码解析【下】
- 指令 机器指令 汇编指令 指令系统 汇编指令的基本构成 操作数
- iOS之系列设备的分辨率
- Git 分支 - 分支的新建与合并
- 强连通分量(模板)
- Android SwipeRefreshLayout:谷歌官方SDK包中的下拉刷新
- shadre - SubShader
- 【IMPDP】实现不同用户之间的数据迁移——REMAP_SCHEMA参数