zoukankan      html  css  js  c++  java
  • 图解aclocal、autoconf、automake、autoheader、configure

    http://www.laruence.com/2008/11/11/606.html

    原文地址:http://hi.baidu.com/yzkuang/blog/item/557e4f24423d8136c9955908.html

    1. 1.autoscan (autoconf): 扫描源代码以搜寻普通的可移植性问题,比如检查编译器,库,头文件等,生成文件configure.scan,它是configure.ac的一个雏形。
    2. 2.aclocal (automake):根据已经安装的宏,用户定义宏和acinclude.m4文件中的宏将configure.ac文件所需要的宏集中定义到文件 aclocal.m4中。aclocal是一个perl 脚本程序,它的定义是:“aclocal - create aclocal.m4 by scanning configure.ac”
    3.  
    4. user input files optional input process output files
    5. ================ ============== ======= ============
    6.  
    7.                     acinclude.m4 - - - - -.
    8.                                           V
    9.                                       .-------,
    10. configure.ac ------------------------>|aclocal|
    11.                  {user macro files} ->| |------> aclocal.m4
    12.                                       `-------'
    13. 3.autoheader(autoconf): 根据configure.ac中的某些宏,比如cpp宏定义,运行m4,声称config.h.in
    14.  
    15. user input files optional input process output files
    16. ================ ============== ======= ============
    17.  
    18.                     aclocal.m4 - - - - - - - .
    19.                                              |
    20.                                              V
    21.                                      .----------,
    22. configure.ac ----------------------->|autoheader|----> autoconfig.h.in
    23.                                      `----------'
    24. 4.automake: automake将Makefile.am中定义的结构建立Makefile.in,然后configure脚本将生成的Makefile.in文件转换为Makefile。如果在configure.ac中定义了一些特殊的宏,比如AC_PROG_LIBTOOL,它会调用libtoolize,否则它会自己产生config.guess和config.sub
    25.  
    26. user input files optional input processes output files
    27. ================ ============== ========= ============
    28.  
    29.                                      .--------,
    30.                                      | | - - -> COPYING
    31.                                      | | - - -> INSTALL
    32.                                      | |------> install-sh
    33.                                      | |------> missing
    34.                                      |automake|------> mkinstalldirs
    35. configure.ac ----------------------->| |
    36. Makefile.am ----------------------->| |------> Makefile.in
    37.                                      | |------> stamp-h.in
    38.                                  .---+ | - - -> config.guess
    39.                                  | | | - - -> config.sub
    40.                                  | `------+-'
    41.                                  | | - - - -> config.guess
    42.                                  |libtoolize| - - - -> config.sub
    43.                                  | |--------> ltmain.sh
    44.                                  | |--------> ltconfig
    45.                                  `----------'
    46. 5.autoconf:将configure.ac中的宏展开,生成configure脚本。这个过程可能要用到aclocal.m4中定义的宏。
    47.  
    48. user input files optional input processes output files
    49. ================ ============== ========= ============
    50.  
    51.                    aclocal.m4 - - - - - -.
    52.                                          V
    53.                                      .--------,
    54. configure.ac ----------------------->|autoconf|------> configure ----->autoconfig.h,Makefile
  • 相关阅读:
    C#编写的windows程序随系统启动
    CentOS 6.0修改ssh远程连接端口
    C# 控件缩写大全+命名规范+示例
    记录点滴
    C++封装,继承,多态,友元
    策略模式
    OpenGL入门
    C++四种类型转换
    观察者模式Observer Pattern
    双向链表std::list和单向链表std::forward_list
  • 原文地址:https://www.cnblogs.com/DjangoBlog/p/6912897.html
Copyright © 2011-2022 走看看