图解aclocal、autoconf、automake、autoheader、configure

原文地址: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

你可能感兴趣的:(图解aclocal、autoconf、automake、autoheader、configure)