autotools 使用二

原创 2015年11月17日 16:52:16

产生configure需要三个文件
configure.ac
Makefile.am
src/Makefile.am
(参考我的另外两篇文章编写configure.ac编写Makefile.am
编辑好这几个文件就可以产生configure脚本,和config.h.in,Makefile.in,src/Makefile.in
configure.ac主要初始化一些信息,检查编译器,检查头文件,检查库,检查函数等。
下面是一个configure.ac样本

AC_INIT([amhello], [1.0], [bug-report@address])
AM_INIT_AUTOMAKE([foreign -Wall -Werror])
AC_PROG_CC
AC_CONFIG_HEADERS([config.h])
AC_CONFIG_FILES([Makefile src/Makefile])
AC_OUTPUT

AC_INIT初始化工程名,版本,bug报告地址一个emall
AM_INIT_AUTOMAKE 初始化automake
AC_PROG_CC检查编译器
AC_CONFIG_HEADERS产生config.h.in
AC_CONFIG_FILES 产生Makefile
AC_OUTPUT 输出这些文件 configure,config.h.in,Makefile

Makefile.am 指定建造目标程序,库还是动态库等
下面看一个例子
根目录下的Makefile.am

SUBDIRS=src

SUBDIRS表示建造路径为src,去到src下寻找Makefile.am
src/Makefile.am

bin_PROGRAMS=hello
hello_SOURCES=main.c

bin_PROGRAMS = hello表示建造一个应用程序hello,bin表示安装路径,PROGRAMS表示建造的是一个程序。
hello_SOURCES=main.c表示建造hello需要的源文件。

有两这些文件你输入下面的命令将会产生configure,config.h.in等文件
autoreconf –install

注意autoreconf其实会为你以一种正确的顺序去启动一系列的工具。
具体这些过程和用到的工具见下文
这里写图片描述

工具 描述
autoconf 从configure.ac创建configure
autoheader 从configure.ac创建config.h.in
autoreconf 以正确的顺序运行全部命令
autoscan 搜索源代码中的移植问题,最终configure.ac中没提及的宏
autoupdate 跟新configure.ac中废弃的宏
ifnames 收集源代码中的#if/#ifdef/…并且标示定义
autom4te autoconf的核心,它驱动M4通过下面的工具实现功能。
automake 从Makefile.am和configure.ac创建Makefile.in文件
aclocal 扫描configure.ac中的第三方宏,并且标示定义到aclocal.m4中

大多数时候不需要记住这些复杂的命令,只需要执行autoreconf –install就可以了。

configure相关的产生关系图

这里写图片描述

这里写图片描述

这里写图片描述

这里写图片描述
资料来源
autotools.pdf

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

autotools入门笔记(二)——创建和使用静态库、动态库

带有静态库或者动态库的工程的构建过程与上一节()只包含一个源文件的工程的构建过程是类似的。只是对于复杂的工程,如果包含多个还有源文件的目录时,需要对每个包含源文件的目录执行构建过程,另外创建和使用库文...

使用autotools制作makefile

  • 2015年05月24日 00:34
  • 534KB
  • 下载

使用autotools组织工程示例

  • 2013年12月10日 15:33
  • 308KB
  • 下载

Linux c 开发 - Autotools使用详细解读

我们前面的章节中已经讲到了Makefile的使用(点击进入查看文章)。我们知道在Linux下面如果编译一个比较大型的项目,我们可以通过Makefile的方式来完成。 但是,我们又蛋疼了,Makefil...
  • initphp
  • initphp
  • 2015年02月10日 17:35
  • 4772

使用 GNU autotools手册

  • 2008年02月11日 10:43
  • 213KB
  • 下载

Makefile自动生成工具-----autotools的使用

相信每个学习Linux的人都知道Makefile,这是一个很有用的东西,但是编写它是比较复杂,今天介绍一个它的自动生成工具,autotools的使用。很多GNULinux的的软件都是用它生成Makef...
  • a_tu_
  • a_tu_
  • 2014年10月27日 20:25
  • 630

Makefile自动生成工具-----autotools的使用(详细)

相信每个学习Linux的人都知道Makefile,这是一个很有用的东西,但是编写它是比较复杂,今天介绍一个它的自动生成工具,autotools的使用。很多GNULinux的的软件都是用它生成Makef...

Makefile自动生成工具-----autotools的使用(详细)

相信每个学习Linux的人都知道Makefile,这是一个很有用的东西,但是编写它是比较复杂,今天介绍一个它的自动生成工具,autotools的使用。很多GNULinux的的软件都是用它生成Makef...

autotools 使用流程

在较大项目中, 如果手动维护Makefile, 那将是一件复杂并痛苦的事情. 那么, 有没有一种轻松的手段生成Makefile呢? autotools系列工具正是在这样的呼声中诞生的. 它只需用户输入...

使用autotools

autotools (autoconf, automake)能自动创建用来编译代码的各种文件(configure, makefile). 有了它,我们就不需要手动写makefile了,也不用在环境变化...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:autotools 使用二
举报原因:
原因补充:

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