09课02节 u-boot-1.1.6分析之Makefile结构分析
来源:互联网 发布:去水印用什么软件 编辑:程序博客网 时间:2024/05/02 16:56
我们配置时 是make 100ask24x0_config
这条命令到底干了什么?现在分析一下
打开源码目录树顶层的makefile
就相当于执行这条命令 @$(MKCONFIG) $(@:_config=) arm arm920t 100ask24x0 NULL s3c24x0
1:MKCONFIG是什么东西?MKCONFIG := $(SRCTREE)/mkconfig 源码树下面有一个mkconfig
2: $(@:_config=) 是什么意思?
还依稀记得makefile手册中的替换引用规则吗?有个例子,反正我是看到过;
obj=$(srcfiles:%.c=%.o) 把只要是.c结尾的替换成.o文件
这里是一样的道理,@是目标,也就是100ask24x0_config ,把_config用空格替换嘛;
所以$(@:_config=) 的结果就是100ask24x0
还不理解的话,就做个例子打印出来自己欣赏下嘛
100ask24x0_config : unconfig
@echo $(@:_config=)
@代表目标吗?我的记忆是$@才代表目标吧; 做个实验先
all:
@echo $@ 输出all
@echo @ 输出@
@echo $(@) 输出all
基本退出$@ 和$(@) 是一样的 都代表目标
所以make 100ask24x0_config 就相当于执行mkconfig 100ask24x0 arm arm920t 100ask24x0 NULL s3c24x0
---
我们再来分析这条命令,我们把mkconfig这个脚本文件打开;
$#: 代表参数的个数 -gt 大于则为真
也就是判断第一个参数(100ask24x0 )是不是-- -a -n ,我们都不是;所以这句话没有什么用
判断BOARD_NAME有没定义,如果定义了 就BOARD_NAME="S1" 不会执行;如果定义了;BOARD_NAME="S1"就不会执行
貌似跟C语言很相似;我们没有定义; 所以会执行后面的;那$1是什么,是100ask24x0
所以BOARD_NAME=100ask24x0
显然不会退出
打印出这句话
在makefile 查找
OBJTREE := $(if $(BUILD_DIR),$(BUILD_DIR),$(CURDIR)) 这句话的意思是如果定义了BUILD_DIR,OBJTREE=BUILD_DIR,否则=OBJTREE
SRCTREE := $(CURDIR)
OBJTREE没有人定义;所以上面的if不成立
会执行下面的
cd ./include
rm -f asm
ln -s asm-$2 asm #建立一个链接文件,ln -s asm-arm asm asm指向asm-arm
- 09课02节 u-boot-1.1.6分析之Makefile结构分析
- u-boot分析之Makefile结构分析
- “第09课第2节 u-boot分析之Makefile结构分析”之学习笔记
- u-boot Makefile结构分析
- u-boot分析之Makefile结构分析----配置
- u-boot分析之Makefile结构分析---编译
- u-boot分析之顶层Makefile、mkconfig结构分析
- u-boot之Makefile分析
- u-boot分析之Makefile
- u-boot-1.1.6分析之makefile(待续)
- 伟东山视频自学笔记——第9课第2节 u-boot分析之Makefile结构分析
- 03-S3C2440u-boot学习之u-boot分析之Makefile结构分析
- U-boot Makefile 分析
- u-boot Makefile分析
- U-Boot Makefile分析
- u-boot makefile分析
- U-Boot Makefile分析
- U-Boot Makefile分析
- 使用Fragment应用放置后台很久,被系统回收,出现crash
- iOS 裁剪头像为圆形
- iOS 截屏
- iOS 生成条纹图片
- boost之词法解析器spirit
- 09课02节 u-boot-1.1.6分析之Makefile结构分析
- 浅谈C++多态性
- stm32调试,进入 HardFault_Handler
- 你是我的小玫瑰花!!!
- 性能优化-Server优化
- C++中智能指针的设计和使用
- hdu 1502 字符串dp与高精度运算(mark)
- 程序在内存中的分布
- WebForm 使用log4net