与Makefile混淆

时间:2012-07-07 21:19:43

标签: makefile

我正在尝试学习makefile,主要是为了理解我正在使用的makefile,但是我会被简单的东西抛出。我的makefile中让我困惑的部分看起来像这样:

SUBS = dir1 dir2 dir3

depend clean:
         @-X=`pwd`;\
         for i in $(SUBS);\
         cd $$X/$$i;\
         done

“-X = pwd做什么?我收集它以某种方式将当前目录的值分配给X,但我不知道如何阅读”@ - “语法。

另外,为什么X&我需要加上'$$'而不只是'$'?我已经通过实验验证了两个$都是必要的,但是我认为只需要一个就可以用它们的值替换它们

1 个答案:

答案 0 :(得分:3)

  

我不知道如何阅读“@ - ”语法。

只需从左到右阅读:-)除了开头,“@”在行的开头告诉make在执行之前不要回显该行; “ - ”告诉它忽略错误

  

X&我需要加上'$$'而不只是'$'?

因为make本身具有通过$访问的变量,但在这种情况下,规则使用shell变量,这些变量也可以通过$访问。 $$只是一个转义,所以执行的shell命令包含$ X,而不是makefile变量X的内容,它可能是空的。