automake原理图(configure.in也为configure.ac):
test工程目录如下:
其中NEWS、AUTHORS、ChangeLog、README需要手动创建,可以为空但必须存在,否则automake阶段会报错。
Makefile.am文件需要手动编写。
src/Makefile.am可以为空但必须存在,否则编译阶段会报错。
test.c为测试构建的文件。
build.sh为手动编写的自动构建的脚本,详细的构建过程可以参见build.sh文件。
Makefile.am内容如下:
AUTOMAKE_OPTIONS=foreign
SUBDIRS=src
bin_PROGRAMS=test
test_SOURCES=src/test.c
# test_LDADD=xxx.a
# tets_LIBS=-l xxx -l xxx
build.sh的内容如下:
#!/bin/bash
# autoscan:用于生成configure.scan文件
autoscan
# 修改configure.scan为configure.ac
mv configure.scan configure.ac
# 修改configure.ac中的相关配置
sed -i 's/FULL-PACKAGE-NAME/test.tar.gz/g' configure.ac
sed -i 's/VERSION/1.0/g' configure.ac
sed -i 's/BUG-REPORT-ADDRESS/tongyishu@huawei.com/g' configure.ac
sed -i '/AC_INIT/aAM_INIT_AUTOMAKE' configure.ac
# aclocal:由configure.in生成aclocal.m4
aclocal
# autoheader:生成config.h.in
autoheader
# autoconf:由configure.ac和aclocal.m4生成configure脚本
autoconf
# automake:由Makefile.am和configure.ac生成各级目录下的Makefile.in
# --add-missing 让automake自动添加一些必需的脚本文件
automake --add-missing
# configure:生成Makefile文件
./configure
# make:由Makeile生成可执行程序
make
# make install
在workspace目录下执行./build.sh即可产生 test 二进制可执行文件。
这里只是生成了test,并未执行make install的安装动作。