美文网首页
Makefile: 函数origin

Makefile: 函数origin

作者: louyang | 来源:发表于2017-12-07 11:08 被阅读16次

    在make语言中,origin是一个自带的函数。用于查看一个变量有没有定义,或到底在哪里被定义的。

    语法格式:

    $(origin variable)
    

    可能的返回值:

    undefined:   这个变量没有被定义
    default:     这个变量是make语言自带的变量
    environment: 这个变量来自环境变量
    environment override: 来自环境变量,但是已经被修改了
    file:        这个变量来自Makefile
    command line:这个变量来自命令行
    override: 即使该变量在命令行中定义了,但仍以Makefile中的为准。该变量在Makefile中的定义应该加了override修饰符。(通常,一个变量在命令行中被定义了,则在Makefile中的普通定义将被忽略。)
    automatic:   自动变量,例如$@, $%...等。
    

    例如:

    ifeq ($(VERBOSE),0)
    MAKEFLAGS += --no-print-directory
    endif
    

    这样一段Makefile中的内容,我想知道变量VERBOSE来自哪里,我就可以通过origin函数来查看。

    $(info $(origin VERBOSE))
    ifeq ($(VERBOSE),0)
    MAKEFLAGS += --no-print-directory
    endif
    
    # make
    undefined
    

    原来这个变量需要在命令行中定义。

    相关文章

      网友评论

          本文标题:Makefile: 函数origin

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