zoukankan      html  css  js  c++  java
  • autoconf/automake工具包

         不知道现在人是懒了还是怎么了都使用这玩意,难道自己不会写makefile吗?我一直觉得makefile书写简单点就好了,就不要用atuomake 之类的工具了。今天同事给了我一个测试程序,就两个文件然后用automake工具生成makefile,我自己又加了一个文件,我自己都不知道如何编译。所以不得已对automake工具简单的研究了下。

    (1) 简介

      Autoconf/Automake工具用于自动创建功能完善的makefile文件。当前大多数软件包都是用这一工具生成makefile文件的。Autoconf/Automake工具组主要包括autoconf、automake、perl语言环境和m4。

    现在大多linux 系统 默认已经安装了上述包,没有安装包的在ubuntu 中 sudo apt-get install 安装。

      可以用命令查看是否安装  rpm -qa |grep autoconf  

      可以用命令查看安装路径 whereis  autoconf  

    (2)生成makefile的步骤

      1> 创建源代码文件,使用"autoscan"生成configure.scan文件,将其重命名为configure.ac,并做适当修改

      2>   使用"aclocal"命令生成aclocal.m4文件

      3>   使用"autoconf"命令由configure.ac和aclocal.m4文件生成configure文件。

      4>   手工编辑Makefile.am文件,使用"automake"命令生成configure.in文件。

      5>   手工编辑或由系统给定acconfig.h文件,使用"autoheader"命令生成config.h.in文件。

      6>  使用"configure"命令由configuer、configure.in和config.h.in文件生成Makefile文件。

    (3) 实例讲解

      假设项目工程目录为:  xxxHello  项目包含的源文件为:main.c    hello.c    hello.h

      1> 在项目目录Hello下,通过运行autoscan,从而创建configure.scan、autoscan.log文件

      2 > 把生成的configure.scan文件重命名为configure.in ,并对它进行修改

      将 AC_INIT([FULL-PACKAGE-NAME], [VERSION], [BUG-REPORT-ADDRESS]) 注释  即 #AC_INIT([FULL-PACKAGE-NAME], [VERSION], [BUG-REPORT-ADDRESS])   

       将 AC_CONFIG_SRCDIR([hello.h])  修改为 AC_CONFIG_SRCDIR([main.c])    //主程序

      文件末尾增加下面几行:   

      AC_INIT(Hiworld,1.0)        //生成程序名称版本

      AM_INIT_AUTOMAKE(Hiworld,1.0) 

      AC_CONFIG_FILES([Makefile])   //config 文件生成的文件名 也就是生成makefile

      3> 运行aclocal 产生aclocal.m4文件和autom4te.cache目录

      4> 运行autoconf产生configure文件

      5> 运行autoheader产生config.h.in文件

      6> 创建文件Makefile.am

      输入下面内容

        AUTOMAKE_OPTIONS=foreign       //默认参数

        bin_PROGRAMS=hworld         //生成可执行程序 

        hworld_SOURCES=main.c hello.c hello.h   //源程序

      7 > 运行automake  --add-missing 产生文件Makefile.in 和链接depcomp、install-sh、missing

      8> 运行./configure 产生文件Makefile

      9> 运行make产生可执行文件hworld

      10> 运行make  install,则对hworld进行安装

    (4) 杂谈

      大部分开源软件包都使用automake 工具,所以我们一般学习或者从源码安装软件包的时候 执行以下步骤。

        1> /configure 

      2> make

          3> make  install

    更多内容可以查看博客 http://www.ibm.com/developerworks/cn/linux/l-makefile/

  • 相关阅读:
    ABAP中COLLECT的用法
    中文字符串提交乱码的解决方法
    我的Ubuntu系统
    SAP消息呈现
    ASP.NET博客站点全静态化的困扰
    JS利用函数修改全局变量
    让电脑速度增快几倍的法宝
    我的Ubuntu门派
    给老乡买本本的经历
    多事之秋
  • 原文地址:https://www.cnblogs.com/wolfrickwang/p/3236583.html
Copyright © 2011-2022 走看看