对 mde-1.3.0 中的 configure.in 进行解读
dnl Process this file with autoconf to produce a configure script.
/* dnl 是注释的开头 */
AC_PREREQ(2.13)
/* AC_PREREQ宏声明本文件要求的autoconf版本 */
AC_INIT(mginit/mginit.c)
/* configure.in文件必须在开始所有工作之前调用AC_INIT宏,并且在结束所有工作后调用AC_OUTPUT宏。
而事实上,也只有这两个宏是configure.in文件所必须的。AC_INIT语法如下:
AC_INIT(unique_file_in_source_dir)
unique_file_in_source_dir是在源代码目录下的一个文件,对AC_INIT的调用在所产生的配置脚本文件
中生成一条shell命令,通过检查unique_file_source_dir是否存在来验证当前目录是否正确。 */
dnl ========================================================================
dnl needed for cross-compiling
AC_CANONICAL_SYSTEM
/* 检测系统类型并把输出变量设置成规范的系统类型,在调用了AC_CANONICAL_SYSTEM之后,下列输出变量包含了系统类型信息。
build,host,target 于是可以在configure 命令行通过 --host=arm_linux 来设置交叉编译
build就是您正在使用的机器,host就是您编译好的程式能够运行的平台,target就是您编译的程式能够处理的平台.这个build和host比较好理解,但是target就不好办了,到底什么意思呢?一般来说,我们平时所说的交差编译用不到他target的,比如./configure --build=i386-linux,--host=arm-linux就能够了, 在386的平台上编译能够运行在arm板的程式.但是,一般我们都是编译程式,而不是编译工具,假如我们编译工具,比如gcc,这个target就有用了.假如我们需要在一个我们的机器上为arm研发板编译一个能够处理mips程式的gcc,那么target就是mips了 */
dnl ========================================================================
dnl Checks for programs.
AC_PROG_MAKE_SET
/* 如果你在子目录中运行make,你应该通过使用make变量MAKE来运行它。 make的大部分版本把MAKE设置成make的程序名以及它所需要的任何选项。(但许多版本并没有把在命令行中设定的变量的值包括进来,因此它们没有被自动地传递。)一些老版本的 make并不设定这个变量。以下的宏使你可以在这些版本上使用它。
宏: AC_PROG_MAKE_SET
如果make预定义了变量MAKE,把输出变量SET_MAKE定义为空。否则,把 SET_MAKE定义成`MAKE=make'。为SET_MAKE调用AC_SUBST。
为了使用这个宏,在每个其他的、运行MAKE的目录中的`Makefile.in'添加一行:
@SET_MAKE@ */