GNU autotools 安装和使用

转载 2015年07月09日 18:17:05

1. 下载
http://www.gnu.org/software/software.html

2. 安装
m4-1.4.11.tar.gz
autoconf-2.63.tar.gz
automake-1.9.1.tar.gz

3. autotools五工具

  • aclocal
  • autoscan
  • autoconf
  • autoheader
  • automake

4. autotools使用流程
第一步:手工编写Makefile.am这个文件
第二步:在源代码目录树的最高层运行autoscan。然后手动修改configure.scan文件,并改名为configure.ac/configure.in
第三步:运行aclocal,它会根据configure.ac的内容生成aclocal.m4文件
第四步:运行autoconf,它根据configure.ac和aclocal.m4的内容生成configure这个配置脚本文件
第五步:运行automake –add-missing,它根据Makefile.am的内容生成Makefile.in
第六步:运行configure,它会根据Makefile.in的内容生成Makefile这个文件

5. 流程图
autotools

6. 举例

# cat hello.c 

#include <stdio.h>
#include "include/hello.h"

int main()
{
        puts("hello");

        return 0;
}
# cat Makefile.am   //automake使用

SUBDIRS = lib
AUTOMAKE_OPTIONS = foreign
bin_PROGRAMS = hello
hello_SOURCES = hello.c
hello_LDADD = lib/libprint.a

AUTOMAKE_OPTIONS为设置automake的选项。automake提供了3种软件等级:

  • foreign //只检测必须的文件
  • gnu //默认级别
  • gnits

SUBDIRS:子目录选项
bin_PROGRAMS:如果多个执行文件, 用空格隔开
hello_SOURCES:”hello”这个可执行程序所需的原始文件。如果”hello”这个程序是由多个源文件所产生, 所有源文件用空格隔开

# cat lib/Makefile.am

noinst_LIBRARIES = libprint.a
libprint_a_SOURCES = print.c ../include/print.h
# ls include

hello.h
print.h

7. 开始使用

# autoscan

生成configure.scan

//修改(软件名称, 版本信息, bug汇报E-mail)
AC_INIT([FULL-PACKAGE-NAME], [VERSION], [BUG-REPORT-ADDRESS])
//为
AC_INIT(hello, 0.01, [bug@sounos.org])
AM_INIT_AUTOMAKE
AC_PROG_RANLIB

重命名为configure.ac
AC_CONFIG_SCRDIR:宏用来侦测所指定的源码文件是否存在, 来确定源码目录的有效性
AC_CONFIG_HEADER:宏用于生成config.h文件,以便 autoheader 命令使用
AC_PROG_CC:用来指定编译器,如果不指定,默认gcc
AC_CONFIG_FILES:宏用于生成相应的Makefile文件
AC_OUTPUT:用来设定 configure 所要产生的文件,如果是makefile,configure 会把它检查出来的结果带入makefile.in文件产生合适的makefile

# aclocal
# autoconf
# autoheader
# automake --add-missing

Automake工具会根据 configure.in 中的参量把 Makefile.am 转换成 Makefile.in 文件
–add-missing:可以让 Automake 自动添加一些必需的脚本文件
再次运行,可以辅助生成几个必要的文件:

Makefile.am: required file `./NEWS' not found
Makefile.am: required file `./README' not found
Makefile.am: required file `./AUTHORS' not found
Makefile.am: required file `./ChangeLog' not found

解决办法:手动touch

# ./configure
# make

GNU Autotools的使用方法

手工写Makefile是一件很有趣的事情,对于比较大型的项目,如果有工具可以代劳,自然是一件好事。在Linux系统开发环境中,GNU Autotools 无疑就充当了这个重要角色。(在Windows系...
  • scucj
  • scucj
  • 2010年12月16日 02:03
  • 27640

Linux下autotools的使用

由于某些原因(持续集成:travis-ci+github),尝试给项目写个Makefile。整个项目最初在windows下编写,make这些工作都由VS做了。但travis-ci给c++提供的环境是l...
  • zxc024000
  • zxc024000
  • 2017年02月16日 16:27
  • 670

Ubuntu autotools的安装

autotools是个系列工具,首先确认你的Ubuntu系统是否安装了以下工具(可以通过which命令查看):    aclocal    autoscan    autoconf    autohe...
  • lusehu
  • lusehu
  • 2011年05月12日 17:03
  • 13143

《Autotools - GNU Autoconf, Automake与Libtool实践者指南》第一章<GNU Autotools简要介绍>

前言   本文根据《Autotools - A Practioner's Guide to GNU Autoconf, Automake, and Libtool》第一章翻译整理,省...
  • abcd1f2
  • abcd1f2
  • 2015年09月30日 12:37
  • 526

《Autotools - GNU Autoconf, Automake与Libtool实践者指南》第二章<理解GNU编码标准>

在第一章中,我给出了GNU Autotools和一些资源的概述,可以帮助降低所需要的学习曲线来掌握它们。在这一章节中,我们会退一小步,调查可用于任何工程的项目组织技术,不仅仅使用Autotools。 ...
  • abcd1f2
  • abcd1f2
  • 2015年09月30日 12:39
  • 419

GNU autotools

  • 2011年02月28日 20:27
  • 159KB
  • 下载

Linux下autoTools工具集使用介绍

Author : iStone E-mail : liul.stone@gmail.com Date : 2015-09-19 15:16:38 一 使用autoTools工具集 1.1 什么是...
  • stone548534
  • stone548534
  • 2015年10月13日 10:28
  • 1673

使用autotools工具用configure、make、make install编译安装linux工程的详细步骤

autotools是个系列工具,主要由autoconf、automake、perl语言环境和m4等组成,所包含的命令有5个: 下图是autotools使用的流程图: ...
  • tmxkwzy
  • tmxkwzy
  • 2016年11月24日 10:20
  • 1835

autotools 安装

  • 2009年03月13日 10:12
  • 5.14MB
  • 下载

ubuntu下安装autotools工具

本文参考了: http://www.linuxidc.com/wap.aspx?nid=36616&p=1&cp=2&cid=6&sp=1019 http://blog.chinaunix.net...
  • ubuntucc
  • ubuntucc
  • 2013年07月07日 17:19
  • 1627
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:GNU autotools 安装和使用
举报原因:
原因补充:

(最多只允许输入30个字)