利用autotool自动生成Makefile

假设目录下只有hello.c文件
$ ls
    hello.c
$ autoscan                          <----扫描目录及其子目录中的文件
$ ls
    autoscan.log configure.scan hello.c                         <---生成 autoscan.log 和 configure.scan
2.创建 configure.in 脚本配置文件
configure.in 可以通过修改 configure.scan 得到,configure.scan 文件内容如下:
# -*- Autoconf -*-# Process this file with autoconf to produce a configure script.
AC_PREREQ([2.63])
AC_INIT([FULL-PACKAGE-NAME], [VERSION], [BUG-REPORT-ADDRESS])
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_OUTPUT 
AC_PREREQ 表示文件要求的 autoconf 的版本, AC_INIT 定义了程序的名字、版本和错误
报告地址,一般情况下 BUG-REPORT-ADDRESS 可以省略,用户可以根据自己的要求来定义。
AC_CONFIG_SRCDIR 是用来检查指定源文件是否存在, AC_CONFIG_HEADERS 用来生成 config.h
文件,这两项一般不需要修改。AC_OUTPUT 则是用来指定生成的 Makefile,另外还要添加
AM_INIT_AUTOMAKE(hello, 1.0),修改后的具体内容如下,请注意粗斜体部分
# -*- Autoconf -*-# Process this file with autoconf to produce a configure script.
AC_PREREQ([2.63])
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.
[root@JLUZH makefile]# mv configure.scan configure.in 
[root@JLUZH makefile]# gedit Makefile.am
AUTOMAKE_OPTIONS=foreign
bin_PROGRAMS=hello
hello_SOURCES=hello.c
# Checks for typedefs, structures, and compiler characteristics.
# Checks for library functions.
AC_OUTPUT(Makefile)
修改 configure.scan 文件名为 configure.in 其操作如下:
$ mv configure.scan configure.in
$ gedit Makefile.am  其内容如下:

AUTOMAKE_OPTIONS=foreign
bin_PROGRAMS=hello
hello_SOURCES=hello.c
AUTOMAKE_OPTIONS 用来设置 automake 的软件等级,可选项有 foreign、gnu 和 gnits。
Foreign 表示只检测必要的文件
bin_PROGRAMS 用来指定要生成的可执行文件的名称,如果要产生多个可执行文件时,请
用空格分开。
hello_SOURCES 用来指定生成可执行文件的依赖文件,多个依赖文件请用空格隔开
4.生成 configure 文件
通过执行命令 autoreconf 命令,即可生成 configure 文件,其操作如下
$ ls
    autoscan.log configure.in hello.c Makefile.am
$ autoreconf –fvi 
5 生成Makefile
$ ./configure
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值