• 图解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
  • 相关阅读:
    POJ3159 Candies —— 差分约束 spfa
    POJ1511 Invitation Cards —— 最短路spfa
    POJ1860 Currency Exchange —— spfa求正环
    POJ3259 Wormholes —— spfa求负环
    POJ3660 Cow Contest —— Floyd 传递闭包
    POJ3268 Silver Cow Party —— 最短路
    POJ1797 Heavy Transportation —— 最短路变形
    POJ2253 Frogger —— 最短路变形
    POJ1759 Garland —— 二分
    POJ3685 Matrix —— 二分
  • 原文地址:https://www.cnblogs.com/DjangoBlog/p/6912897.html
Copyright © 2020-2023  润新知