Linux软件移植configure和menuconfig优缺点对比
在Linux系统中安装、测试一项beta版软件,真不是一件容易的事。相信Linux软件测试工程师对configure和menuconfig优缺点深有体会,待测软件预编译阶段依赖库,autoconf、automake、libtool等脚本工具,及字符图形界面库libncurses都是必备。而native-compile及cross-compile前都要对待测软件进行预编译配置,这就需要最常用的configure和menuconfig来完成。
一、GNU configure配置
这种方式是GNU组织发布的软件通用配置方式,我称之为“GNU风格”。配置完成后,生成Makefile.in、Makefile等脚本,供后续正式编译阶段make的自动化执行。
优点:1、预编译阶段全面检查依赖库,并打印出结果;
2、Makefile脚本逻辑清晰、执行高效;
缺点:1、纯字符命令行界面,不能直观、全面地展示软件的组件、功能选项;
2、配置参数复杂,完全手工输入,效率较低;
代表性软件:binutils、coreutils、gcc、ncurses、samba、texinfo
二、Kbuild menuconfig配置
这种方式是Kbuild框架的软件通用配置方式,我称之为“Kbuild风格”。配置完成后,生成隐藏的.config文件,供后续正式编译阶段make的自动化执行。
优点:1、直观、较全面地展示软件的组件、功能选项;
2、项目清单式的.config文件内容,易于阅读;
缺点:1、软件依赖性不能直观打印出来,调试、改配置循环进行,效率低;
2、Kconfig框架复杂,增减配置需对多层子项目Kconfig修改;
代表性软件:Linux-kernel、buildroot、crosstool-ng、busybox、uClibc