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. user input files optional input process output files
  4. ================ ============== ======= ============
  5. acinclude.m4 - - - - -.
  6. V
  7. .-------,
  8. configure.ac ------------------------>|aclocal|
  9. {user macro files} ->| |------> aclocal.m4
  10. `-------'
  11. 3.autoheader(autoconf): 根据configure.ac中的某些宏,比如cpp宏定义,运行m4,声称config.h.in
  12. user input files optional input process output files
  13. ================ ============== ======= ============
  14. aclocal.m4 - - - - - - - .
  15. |
  16. V
  17. .----------,
  18. configure.ac ----------------------->|autoheader|----> autoconfig.h.in
  19. `----------'
  20. 4.automake: automake将Makefile.am中定义的结构建立Makefile.in,然后configure脚本将生成的Makefile.in文件转换为Makefile。如果在configure.ac中定义了一些特殊的宏,比如AC_PROG_LIBTOOL,它会调用libtoolize,否则它会自己产生config.guess和config.sub
  21. user input files optional input processes output files
  22. ================ ============== ========= ============
  23. .--------,
  24. | | - - -> COPYING
  25. | | - - -> INSTALL
  26. | |------> install-sh
  27. | |------> missing
  28. |automake|------> mkinstalldirs
  29. configure.ac ----------------------->| |
  30. Makefile.am ----------------------->| |------> Makefile.in
  31. | |------> stamp-h.in
  32. .---+ | - - -> config.guess
  33. | | | - - -> config.sub
  34. | `------+-'
  35. | | - - - -> config.guess
  36. |libtoolize| - - - -> config.sub
  37. | |--------> ltmain.sh
  38. | |--------> ltconfig
  39. `----------'
  40. 5.autoconf:将configure.ac中的宏展开,生成configure脚本。这个过程可能要用到aclocal.m4中定义的宏。
  41. user input files optional input processes output files
  42. ================ ============== ========= ============
  43. aclocal.m4 - - - - - -.
  44. V
  45. .--------,
  46. configure.ac ----------------------->|autoconf|------> configure ----->autoconfig.h,Makefile
05-18 08:00