makefile - 与 Makefile 的混淆

标签 makefile

我正在尝试了解 makefile,主要是为了了解我正在使用的 makefile,但我却被一些可能很简单的事情所困扰。我的 makefile 中让我困惑的部分如下所示:

SUBS = dir1 dir2 dir3

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

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

另外,为什么 X 和 i 需要在前面加上“$$”而不是只用“$”?我已经通过实验验证了这两个 $ 都是必要的,但我认为只需要一个即可将每个 $ 替换为它们的值

最佳答案

I have no idea how to read the "@-" syntax.

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

X & i need to be prepended with '$$' instead of just '$'?

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

关于makefile - 与 Makefile 的混淆,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11378718/

相关文章:

在 PHP_NEW_EXTENSION 中有多个源文件的 phpize 的 config.m4 生成一个什么都不做的 Makefile

git - 为什么 `git checkout -` 在 Makefile 中的工作方式不同?

makefile - makefile 图灵完整吗?

android - 将c文件与android bionic c库静态链接

makefile - makefile 中的命令前面有反斜杠

drupal - 如何使用 drush make 将补丁应用到 drupal 核心

perl - 如何管理开源 Perl 项目使用的模块的安装?

docker - 如何处理 make missing from alpine docker image?

c++ - make中的依赖顺序

c++ - 如何设置这个makefile