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

  • 相关阅读:
    VMware&ESXI虚拟机黑群晖7.2 正式版 (懒人包)
    【氮化镓】GaN HEMT SEEs效应影响因素和机制
    五、同步计数器及源码
    【JUC】中断机制(interrupt,interrupted,isInterrupted)
    JUC学习笔记——进程与线程
    使用 FAT12 文件系统实现简单的 Boot 加载 Loader 到内存
    【场景化解决方案】电商平台与钉钉打通,实现客户静默下单催付
    计算机专业突然不香了?会成为下一个土木工程吗?
    vsCode 格式化配置
    模型训练中的常见超参数解析
  • 原文地址:https://blog.csdn.net/qq_54674051/article/details/133019922