Ubuntu下automake工具的使用

刚看了automake工具的使用 ,还挺不错 ,在源文件较多时,自己动手写makefile确实显得不太好,不过makefile规则还是要会的 。下面总结一下自己的学习体会 ,以免将来忘了,可以拿来看看,希望大家赐教,本人水平也不咋地(《===》), 就以最简单的程序hello word为例子 ,即有hello.c hello.h两个文件。

1,首先是安装automake工具,用apt-get  安装, 即在终端输入:apt-get install automake

2,输入命令autoscan,此时会生成autoscan.log(日记文件)和configure.scan两个文件,下面修改configure.scan文件,并且另存为configure.ac (有的需要改为.in文件,但在Ubuntu中改为.ac), 修改如下

 解释一下

• AC_PREREQ 宏声明本文件要求的 autoconf 版本,如本例使用的版本 2.59。
• AC_INIT 宏用来定义软件的名称和版本等信息,在本例中省略了 BUG-REPORT-ADDRESS,
一般为作者的 E-mail。
• AM_INIT_AUTOMAKE 是笔者另加的,它是 automake 所必备的宏,也同前面一样,
PACKAGE 是所要产生软件套件的名称,VERSION 是版本编号。
• AC_CONFIG_SRCDIR 宏用来侦测所指定的源码文件是否存在,来确定源码目录的有
效性。在此处为当前目录下的 hello.c。
• AC_CONFIG_HEADER 宏用于生成 config.h 文件,以便 autoheader 使用。
• AC_CONFIG_FILES 宏用于生成相应的 Makefile 文件。

3,在源文件下新建一个Makefile.am文件,并写入下面内容

AUTOMAKE_OPTIONS=foreign
bin_PROGRAMS=hello
hello_SOURCES=hello.c

 AUTOMAKE_OPTIONS:   automake 提供了 3 种软件等级:foreign、gnu 和 gnits,让用户选择采用,默认等级为 gnu

bin_PROGRAMS : bin_PROGRAMS 定义要产生的执行文件名。如果要产生多个执行文件,每个文件名用空格隔开

hello_SOURCES:hello_SOURCES 定义“hello”这个执行程序所需要的原始文件。如果“hello”这个程序是由多个原始文件所产生的,则必须把它所用到的所有原始文件都列出来,并用空格隔开

4,运行命令aclocal

  生成aclocal.m4和automtecache两个文件

5,,运行命令autoheader

  命令成功之后,会在目录下产生config.h.in这个新文件。

6,运行命令autoconf

  命令成功之后,会在目录下产生configure这个新文件。

7,运行命令automake --add-missing

   

  命令成功之后,会在目录下产生depcomp,install-sh和missing这三个新文件和执行下一步的Makefile.in文件

8,运行./configure 即可生成makefile 可以make 一下啊

9,大概流程图

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值