了解了这些,手痒的话就可以先执行下面的脚本试一下,但是并不会生成真正适配我们板子的uboot,只是适配参考板#!/bin/bashexport ARCH=armexport CROSS_COMPILE=/opt/arm-cross-compile/arm-none-linux-gnueabi-2014-05/bin/arm-none-linux-gnueabi-make origen_config make all
根据Makefile语法,%是Makefile中的通配符,表示任意字符串,所以我们的origen_config就会与之相匹配,这个目标的依赖于unconfig,就是说如果你键入两次make origen_config,那么它最终只会形成一个相应的配置文件,这种写法在Makefile中很常见,可以学习。这个目标的生成方法是执行$(MKCONFIG) -A $(@:_config=),查看Makefile开头可以知道这个MKCONFIG就是顶层目录下的mkconfig脚本,而$(@:_config=)就是去除目标中的_config串,所以实际上就是去到顶层目录下执行$mkconfig -A origen这个命令。我们去里面看看它都做了什么 一上来我们就知道,我们传入的参数会导致脚本执行这个if里面的内容,即使用扩展正则表达式去顶层目录下的boads.cfg文件中提取含有origen相应的行到line变量中,并把line设置为新的参数列表。取得了这个参数字符串,mkconfig就可以把相应的头文件,链接和全局变量准备好,我们来稍微看点细节,首先,line里应该有的内容是我们在Boards.cfg中搜到的这个: