• 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
    生成程序

  • 相关阅读:
    数据结构专题 | 先序非递归遍历二叉树
    CentOS Linux 的安装
    Spring Boot 国际化 i18n
    moea中return, risk的计算
    npm 使用简介及 package.json 详解
    汇编语言(2)基础知识
    Sublime和iTerm中使用FiraCode编程连字等宽字体的配置
    Java网络编程 - 网络基础、Socket网络编程、TCP和UDP网路编程、URL编程
    功率放大器的主要指标有哪些呢
    详细教程。2022年滁州市明光市、来安县等各地区高新技术企业申报
  • 原文地址:https://blog.csdn.net/qq_54674051/article/details/133019922