美文网首页
《GNU Autoconf》基础2017.4.24-4.25

《GNU Autoconf》基础2017.4.24-4.25

作者: jrglinux | 来源:发表于2017-04-25 11:29 被阅读0次

    第二章 如何运行configure以及Makefile标准

    2.1 configuring

    讲解了./configure 命令的用法,列举了典型的命令参数
    如 '--prefix=prefix' 用来指定路径
    示例:./configure --prefix=/opt/gnu
    并不推荐在源代码的路径中运行configure,这样容易混乱,不便于再次配置源代码用于其他系统平台

    2.2 cinfigure产生了哪些文件

    configure之后主要生成一下几个文件:
    config.cache:存放系统检测数据,可被手动修改和删除的纯文本文件
    config.log:存放configure中每一步的test操作以及test结果
    config.status:可以用来重新产生configuration配置文件
    config.h:许多package使用configure的源码是用C或者C++语言写的,config.h中预定义了一些可能会被用到的宏
    Makefile:主要目的

    附录C:生成文件之间的依赖关系
    C.1 aclocal
    aclocal生成‘acloca.m4’文件,定义了文件‘configure.in’所需要的各种宏,包含了已有库中的宏、用户自定义宏以及‘acinclude.m4’文件中的内容

    aclocal关系图
    C.2 autoheader
    autoheader在‘configure.in’的基础场运行‘aclocal.m4’文件,同时,当autoconf运行时,需要‘acconding.h’头文件,从而生成‘confi.h.in’
    autoheaderg
    C.3 automake and libtoolize
    automake and libtoolize
    C.4 autoconf
    autoconf产生configure脚本
    C.5 configure
    前面四个命令都是为了生成运行configure所需的文件,
    configure
    C.6 make
    make产生目标文件
    make

    从网上看到一个关系图,比较清楚:


    Autotools调用流程

    2.3 最常用的Makefile命令

    make all
    make check
    make install
    make clean

    第三章 Makefile语法简介

    all: foo
    foo: foo.o bar.o baz.o
    .c.o:
    <tab> $(CC) $(CFLAGS) -c $< -o $@@
    .l.c:
    <tab> $(LEX) $< && mv lex.yy.c $@@

    target1: dep1 dep2 ... depN
    <tab> cmd1
    <tab> cmd2
    <tab> ...
    <tab> cmdN
    target2: dep4 dep5
    <tab> cmd1
    <tab> cmd2
    dep4 dep5:
    <tab> cmd1

    默认宏变量
    The default value for $(CC) is 'cc'.
    $@和$<分别是目标文件和第一个依赖关系

    相关文章

      网友评论

          本文标题:《GNU Autoconf》基础2017.4.24-4.25

          本文链接:https://www.haomeiwen.com/subject/kswpzttx.html