zoukankan      html  css  js  c++  java
  • 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,失败

    少壮不识cpp,老大方知cpp可怕
  • 相关阅读:
    查看web访问日志各url shell
    分页公式
    编译hadoop2.6.0源码
    淘宝微信支付
    nodejs hot deployment
    nwjs
    css小技巧
    webpack babel 相关文章
    nodejs web framework
    swiper
  • 原文地址:https://www.cnblogs.com/Jacket-K/p/9522496.html
Copyright © 2011-2022 走看看