autotools
autotools是一系列工具,可以用来制作makefile
其中包括了aclocal,autoscan,autoconf,autoheader,automake
流程
- 1.运行autoscan.
它会搜索源文件以寻找一般移植性的问题,并创建一个文件"configure.scan"
configure.scan为configure.in的原形文件。
- 2.修改configure.scan为configure.in,按照描述填上配置
下面是单hello文件的配置。与原始文件相比加上了AM_INIT_AUTOMAKE()和AC_CONFIG_FILES()
# -*- Autoconf -*-
# Process this file with autoconf to produce a configure script.
AC_PREREQ([2.69])
AC_INIT(hello, 1.0)
AM_INIT_AUTOMAKE(hello,1.0)
AC_CONFIG_SRCDIR([hello.c])
AC_CONFIG_HEADERS([config.h])
# Checks for programs.
AC_PROG_CC
# Checks for libraries.
# Checks for header files.
# Checks for typedefs, structures, and compiler characteristics.
# Checks for library functions.
AC_CONFIG_FILES([makefile])
AC_OUTPUT
- 3.执行aclocal,生成"aclocal.m4",主要功能是处理本地宏定义
- 4.执行autoconf,生成configure可执行文件
- 5.执行autoheader,负责生成config.h.in,复制用户附加的符号定义
- 6.编写makefile.am
AUTOMAKE_OPTIONS=foreign
bin_PROGRAMS=hello
hello_SOURCES=hello.c
#如果有头文件,则hello_SOURCES=hello.c hello.h
- 7.执行automake,把makefile.am转换成makefile.in.
- -a(或automake --adding-missing),可以让automake自动添加一些必须的脚本文件。
- 8.执行./configure,生成makefile
- 9.之后就直接可以make,make install,make clean之类的了。如果想要打包为压缩文档发布,直接运行make dist生成tar.gz压缩文件。