美文网首页
uboot Makefile解析(二)

uboot Makefile解析(二)

作者: QUIZ_JS | 来源:发表于2018-10-06 22:37 被阅读0次

    make参数传递

    Uboot的编译需要找到并配置所需的配置文件,make命令要使用到的参数都需要从这些配置文件获取。


    控制输出编译信息的模式

    参数-v

    ifeq ("$(origin V)", "command line")
      KBUILD_VERBOSE = $(V)
    endif
    ifndef KBUILD_VERBOSE
      KBUILD_VERBOSE = 0
    endif
    
    ifeq ($(KBUILD_VERBOSE),1)
      quiet =
      Q =
    else
      quiet=quiet_
      Q = @
    endif
    

    如果命令行中有-V的参数,V=n这个选项传给了make,系统就会给变量KBUILD_VERBOSE选项附上V的值,否则的话KBUILD_VERBOSE就会为0。然后系统会检查KBUILD_VERBOSE的值,以此来决定quiet和Q的值。
    ifeq的语法是:feq (<arg1>;, <arg2>;),功能是比较参数“arg1”和“arg2”的值是否相同。
    origin的语法:$(origin <variable>;) 函数origin并不操作变量的值,只是告诉你你的这个变量是哪里来的。
    origin的返回值如下:
    (1)返回值为"undefine"时,这个变量没有被定义过;
    (2)返回值为“command line”时,这个变量是被命令行定义的;
    (3)返回值为“environment”时,这个变量是定义为环境变量;
    (4)返回值为“file”时,这个变量是定义在Makefile中;
    (5)返回值为“default”时,变量是默认定义的;
    (6)返回值为“override”时,被override指示符重新定义;
    (7)返回值为“automatic”时,是一个命令运行中自动化变量。


    参数 -s

    ifneq ($(filter 4.%,$(MAKE_VERSION)),)  # make-4
    ifneq ($(filter %s ,$(firstword x$(MAKEFLAGS))),)
      quiet=silent_
    endif
    else                    # make-3.8x
    ifneq ($(filter s% -s%,$(MAKEFLAGS)),)
      quiet=silent_
    endif
    endif
    

    如果命令行中有 -s 的参数,则输出slient模式。
    full模式:输出完整编译命令。
    quiet模式:输出Compiling ***的格式。
    silent模式:输出任何信息。

    export quiet Q KBUILD_VERBOSE
    

    允许三个参数在下一级中作为参数使用

    相关文章

      网友评论

          本文标题:uboot Makefile解析(二)

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