Makefile中的这一行是什么意思?

时间:2014-05-28 14:04:10

标签: c++ c linux makefile

我是makefile的新手。想要学习它。有人能解释一下makefile中这一行的确切含义吗?

  

(call makelib_export_shell_noexport_varlist,$(filter gBRD_NEXUS_VARS__%,$(.VARIABLES))) $(call makelib_export_shell_noexport_varlist,$(filter gBRD_DIRECTFB_VARS__%,$(.VARIABLES)))make -C ${b-mk-dir} c-export | grep '^[ \t]*export ' > ${b-mk-dir}/b-flags-environ.sh

1 个答案:

答案 0 :(得分:0)

首先,您错过了示例中的初始$。其次,如果不看到更多的makefile,就不可能确切地知道这是做什么的。

$(call ...)函数调用用户定义的函数。在这种情况下,每个调用都在调用用户定义的函数makelib_export_shell_noexport_varlist;你必须找到它才能确切地看到它的作用。该函数传递一个参数,该参数由与模式gBRD_NEXUS_VARS__%匹配的所有make变量组成。据推测,该函数将扩展为为shell设置这些变量的字符串。

同样下一次调用$(call ...),但是对于一组不同的变量。

然后,运行命令make -C ...并将输出通过管道传递给grep,并将结果写入文件b-flags-environ.sh。注意这可能是不正确的;您几乎不想直接从makefile中调用make:您想要运行$(MAKE)