Autotools知识点
最近研究了下glog使用autotools编译方法的脚本文件,略有所得
configure.ac
AC_INIT初始化一些信息 Package Version ReportBug
AC_CONFIG_MACRO_DIR([m4])加载 m4目录下的规则脚本 应该需要aclocal一下先,把规则集成到aclocal.m4
AM_CONFIG_HEADER(src/config.h)生成config.h,内容由一些函数定义,如AC_DEFINE。应该需要autoconf autoheader(生成config.h.in) ./configure(生成config.h)
AC_CANONICAL_HOST检测系统,得到如build host cpu等参数
AC_CONFIG_SRCDIR([src])检测src目录是否存在,也可以验证文件的存在
AM_CONDITIONAL([xxx],[条件])如果满足条件,xxx会是true吧,但是只能在Makefile.am使用ARM,在configure.ac是没含义的
AC_HEADER_STDC检测stdlib.h stdarg.h string.h float.h ctype.h是否存在,并定义相应宏到config.h
AC_CHECK_HEADERS([unistd.h], [ac_cv_have_unistd_h=1], [ac_cv_have_unistd_h=0])检测头文件存在与否,会定义HAVE_UNISTD_H到config.h,
AC_CHECK_HEADER只有检测的作用,其实unistd上面那个macro也检测了,但是要用到ac_cv_have_unistd_h,所以有检测了一次
AC_CHECK_SIZEOF(void *)也会生成一个宏到config.h
AC_DEFINE(HAVE_FCNTL, 1,[ if you have the `fcntl' function])会定义一个macro到config.h
AC_SUBST(xxx)会把变量向下级传递,AC_CONFIG_FILES()内的文件应该都可以接收到,比如通过xxx.h.in可以生存xxx.h,Makefile.am怎么使用还不清楚(看了下Makefile存在下传的变量,那么直接使用就好了,在Makefile.am里面)
Makefile.am
暂时感觉就是一些简单的规则,至于怎么规定安装那些文件,比如可执行文件需要的库,还有规定哪些需要打包等等,我也没搞太清楚,以后需要再弄清吧,现在单纯生成可执行文件就好,尝试过安装时顺便安装依赖的library,失败
最新文章
- mysql explain用法和结果的含义
- JavaScript(Iframe、window.open、window.showModalDialog)父窗口与子窗口之间的操作
- [转] 再探java基础——break和continue的用法
- 友盟消息推送和更新XML配置
- [Flash&;Flex] AS3.0 如何利用[Embed(source=";...";)]嵌入资源
- sqlite3加密支持
- (转)[老老实实学WCF] 第二篇 配置WCF
- 使用axios post 提交数据,后台获取不到提交的数据解决方案
- Entity Framework Core 2.0 入门简介
- jenkin服务关闭和重启
- python day07作业
- 1. Ubuntu下MongoDB的安装和使用
- 允许Ubuntu系统下Mysql数据库远程连接
- 【Python】将对象存成json文件及从json取出对象
- Java 9 模块化(Modularity)
- chrome 调试参数大全
- mysql数据库使用insert语句插入中文数据报错
- [Node.js]32. Level 7: Working with Lists -- Redis
- 计算机bit是什么意思
- Vitya in the Countryside