automake工具基本使用

以下以hello.c程序为例
1.执行autoscan
生成configure.scan
这个为configure.ac的模板,内容如下与解释如下

#-- Autoconf --
#Process this file with autoconf to produce a configure script.
#AC_PREREQQ宏声明本文件要求的autoconf版本,这里是2.69
AC_PREREQ([2.69])

#AC_INIT定义软件的名称和信息。(DULL-PACKAGE-NAME为软件名,VERSION为软件
#的版本号,BUG-REPORT-ADDRESS为bug的报告地址,一般为软件作者的邮箱)
AC_INIT([FULL-PACKAGE-NAME], [VERSION], [BUG-REPORT-ADDRESS])

#AC_CONFIG_SRCDIR用来侦测指定的源码文件是否存在,确定源码目录的有效性。此处
#为当前目录下hello.c
AC_CONFIG_SRCDIR([hello.c])

#AC_CONFIG_HEADER用于生成config.h文件,以便autoheader使用
AC_CONFIG_HEADERS([config.h])

#Checks for programs.
#AC_PROG_CC用来指定编译器,以便不指定的时候默认为gcc
AC_PROG_CC

#Checks for libraries.

#Checks for header files.

#Checks for typedefs, structures, and compiler characteristics.

#Checks for library functions.
#AC_OUTPUT用来设定config要产生的文件。如果是Makefile,config会把它检查出
#来的结果带入Makefile.in文件产生合适的Makefile.
AC_OUTPUT(Makefile)

2.修改configure.scan为configure.ac,并且修改内容
修改后如下
AC_PREREQ([2.69])
AC_INIT([hello, 1.0, xxxxxx.qq.com)
#必须添加AM_INIT_AUTOMAKE,否则下auromake会发生报错
#这个宏描述了我们将要生成的软件包的名字和版本号
AM_INIT_AUTOMAKE(hello,1.0)
AC_CONFIG_SRCDIR([hello.c])
AC_CONFIG_HEADERS([config.h])
AC_PROG_CC
#Checks for libraries.
#Checks for header files.
#Checks for typedefs, structures, and compiler characteristics.
#Checks for library functions.
AC_OUTPUT
3.执行aclocal
生成aclocal.m4

4.执行autoconf
生成configure文件

5.执行autoheader
生成config.h.in

6.添加一些必要文件
touch NEWS README ChangeLog AUTHORS

7.Makefile.am
需要自己写(案例如下)
AUTOMAKE_OPTIONS=foreign
bin_PROGRAMS=hello
hello_SOURCES=hello.c

AUTOMAKE_OPTIONS为设置的Automake选项。它有三种等级提供给用户选择:foreign,gnu,gnits,默认等级为gnu.在此使用foreign,它只检测必须的文件。

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

hello_SOURCES定义为hello这个程序所需要的原始文件。如果其中由多个文件组成的,则必须用空格进行隔开。

8.执行automake
automake --add-missing
生成configure

9.执行./configure
生成Makefile

10.make
生成程序

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值