博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
图解aclocal、autoconf、automake、autoheader、configure
阅读量:5166 次
发布时间:2019-06-13

本文共 2031 字,大约阅读时间需要 6 分钟。

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

 

转载于:https://www.cnblogs.com/DjangoBlog/p/6912897.html

你可能感兴趣的文章
[BZOJ 3531] [Sdoi2014] 旅行 【离线+LCT】
查看>>
使用JMeter代理录制app测试脚本
查看>>
MVC 未启用角色管理功能
查看>>
Linq to Object实现分页获取数据
查看>>
mac常用系统命令
查看>>
第42章:MongoDB-集群--Sharding(分片)--单机的搭建
查看>>
异步执行js脚本——防止阻塞
查看>>
利用Excel导出sql语句
查看>>
android上传文件到服务器
查看>>
我回答了90%的面试题,为什么还被拒?
查看>>
Html - Table 表头固定和 tbody 设置 height 在IE不起作用的解决
查看>>
iOS SVN终端指令
查看>>
Linux如何更新软件源
查看>>
NYOJ-289 苹果 又是一个典型的01背包和上题一样没啥好说的
查看>>
HDU 2262 回溯算法 递归枚举
查看>>
九度0J 1374 所有员工年龄排序
查看>>
listview初始化后仍为空
查看>>
无刷新分页
查看>>
SIFT算法
查看>>
git各种撤销操作
查看>>