menuconfig是干什么的?
编译过uboot或者内核的朋友一定清楚这个命令是干什么的,如果不知道,请记住了,这个命令是用来配置的。什么是配置?就是诸如选择什么CPU,选择什么soc,选择什么特性,是否编译成模块等等。uboot和内核的配置功能非常强大。menuconfig是一类通过ncurses实现的简易图形配置功能。
我们可以通过cd到uboot根目录,然后键入:
make menuconfig
就会出来一个图形配置界面:
然后,就可以通过按键来选择你需要的功能和特性,配置完成之后保存并退出。
menuconfig入口在哪里?
我们知道,make命令带上一个参数,make就会到Makefile里面找特定的目标。这里参数是menuconfig,那么make就会在根目录的Makefile里面去寻址menuconfig目标。我们打开根目录Makefile,很可惜,无论你怎么寻找,都没能找到目标是“menuconfig”的规则。
实际上,如果对make语法比较熟悉的话,你会发现,有一种叫做“模式规则”的东西,就是一个目标,并不是通过全名匹配,而是包含了模式字符'%'。这个'%'可以匹配任意非空字符串。如果研究过make help命令里面的各种命令,你会发现,类似make *config的命令还有好几个,远不止menuconfig这一个。但是都有个共同点,就是都以config结尾。比如:
Configuration targets:
config - Update current config utilising a line-oriented program
nconfig - U