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.
  1. -a(或automake --adding-missing),可以让automake自动添加一些必须的脚本文件。
  • 8.执行./configure,生成makefile
  • 9.之后就直接可以make,make install,make clean之类的了。如果想要打包为压缩文档发布,直接运行make dist生成tar.gz压缩文件。