对于Makefile 由于源码特别长,所以,我在这里就一边摘录一边分析
这段代码中,上面的解释已经很到位了.我这里就不多说了,直接看一个相对比较重要的文件include $(TOPDIR)/config.mk
不知道怎么分析好.就挑几个重点讲下.
1:编译器的变量声明
2:连接脚本
3:连接选项
1:编译器的变量声明
这里就知道为什么交叉编译器只需要指定前缀的原因了。
2:连接脚本
LDSCRIPT会根据是否启用nand_boot的选项,来选择连接脚本,连接脚本可以指定代码生成的先后位置,比如把nand相关的函数指定到最前面.
uboot就是通过该连接脚本来使start.S这段代码放到整个程序的最前面,这样才能保证arm能正常启动
3:连接选项
LDFLAGS指明在连接的时候,指定连接地址,还有连接脚本的参数之类的.
剩下的就自己分析吧....
再回到Makefile,指定要编译的对象了