1. 引言
我们在学习和使用很多开源软件的时候,会发现其源码中并不总是有现成的configure文件和makefile文件,而是需要先执行一个安装脚本。例如,SOHO-DBproxy中,使用build.sh完成编译安装:
sh autogen.sh
bash ./configure --prefix=${MYSQL_PROXY_INSTALL_PATH} --with-mysql=${MYSQL_INSTALL_PATH}/bin/mysql_config
make && make install && mkdir -p ${MYSQL_PROXY_INSTALL_PATH}/var/log && \
cp -r ./etc ${MYSQL_PROXY_INSTALL_PATH}/etc && chmod 600 ${MYSQL_PROXY_INSTALL_PATH}/etc/mysql-proxy.cnf
我们看到,其在运行configure之前先调用了aotugen.sh。这里面的内容就是本文要讲的,自动化编译工具GNU autoconf 和 automake。
2. 工具简介
软件环境:autoconf/automake/m4/perl/libtool
autoconf:生成自动配置的源码包,依赖于m4
automake:依赖Makefile.am生成Makefile.in,需要使用到perl
libtool:用于生成各种工具库
目前automake支持三种目录层次:</