在 Makefile 中抑制输出的第一部分

本A
DEPRECATED_CHECK := $(shell grep "test454" tex/*.tex)

ifneq ($(DEPRECATED_CHECK), )
$(warning \test454 is deprecated. Use \test2 instead)
endif

当我运行这个时,我得到:

../common/Makefile.include:133: \test454 is deprecated. Use \test2 instead

没关系,但我很想只有:

\test454 is deprecated. Use \test2 instead

这可能吗?某种awk功能?我想我需要一些东西:

@echo \text454 is deprecated ...

但我不知道如何让它与我的 MWE 的基本目的一起工作,因为它一直在抱怨缺少分隔符。

非常感谢

黑鬼

您可以使用$(info ...)代替$(warning ...). info不预先添加文件和行号。

顺便说一句——我通常会尝试将这些检查作为健全规则的一部分,并使一切都依赖于该规则,而不是在顶层进行。它以这种方式为您提供了更大的灵活性。例如,如果您不想在构建 clean 时运行检查,则它变得简单,或者如果您希望在检查失败时使构建失败,则它也变得简单。


编辑 (在旁边添加更多细节)

ifneq您可以添加一个目标,而不是在 make 的顶层执行

sanity_check: 
   @ ! grep -q "test454" tex/*.txt || echo "test454 is depricated"

.PHONY: sanity check

将主要目标的依赖项添加到完整性检查中:

all maintarg1 maintarg2: sanity_check

这样,健全性检查将在您的任何主要目标之前运行,并将根据需要输出。在我看来,这是一种更简洁的测试方式。这样,测试仅在您构建任何目标时运行,并且不会运行,例如您正在制作clean,或者如果您的 makefile 包含在父 makefile 中,或者在一堆其他可能的极端情况下将来弹出。

只是对配方语法的快速说明:这@是一个 make 指令,它告诉 make 在运行时不要回显命令。!用于反转 grep 返回is bash 语法(因此,! grep如果找到文本,则返回 false,从而导致||对语句一部分进行评估。)。.PHONY: sanity_check告诉make运行规则,即使一个名为sanity_check中已经存在

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

ASOP Makefile的这一部分如何工作?

来自分类Dev

Makefile仅显示echo语句的一部分

来自分类Dev

Makefile仅显示echo语句的一部分

来自分类Dev

Makefile仅显示echo语句的一部分

来自分类Dev

隐藏第一部分

来自分类Dev

给每行的第一部分上色

来自分类Dev

删除网址的第一部分

来自分类Dev

第一部分的 Youtube 背景

来自分类Dev

输出的第一部分是正确的,然后我得到了分段错误?

来自分类Dev

如何在python中删除字符串的第一部分

来自分类Dev

在Excel中递增自定义字段的第一部分

来自分类Dev

如何基于R中列名的第一部分收集列?

来自分类Dev

书签删除URL的第一部分中的文本

来自分类Dev

在python中替换第一部分字符串的单词

来自分类Dev

如何删除B中字符串的第一部分

来自分类Dev

Ruby Sinatra不会在浏览器中显示任何IF语句的第一部分或IF语句的ELSE / END之前的任何输出

来自分类Dev

如何在bash脚本中收集第二行输出的第一部分并设置为变量

来自分类Dev

SPARQL属性路径,第一部分是唯一的,路径在之后重复

来自分类Dev

在量角器中获取currentUrl后,如何更改Url第一部分?

来自分类Dev

Workbook_BeforeClose()在第一部分中起作用,但不会关闭工作簿

来自分类Dev

Bash:如何从for循环中的多个文件的数组中删除目录的第一部分?

来自分类Dev

用计算结果替换文件第一部分中的数字

来自分类Dev

NSFetchedResultsController在第一部分中插入第二行时返回错误的行数

来自分类Dev

正则表达式,从图像的src属性中删除第一部分

来自分类Dev

简单的正则表达式替换URL的第一部分

来自分类Dev

推导PCA第一部分中使用的变量

来自分类Dev

grep不匹配行的第一部分?

来自分类Dev

从邮政编码获得第一部分?

来自分类Dev

仅获取英国邮政编码的第一部分

Related 相关文章

  1. 1

    ASOP Makefile的这一部分如何工作?

  2. 2

    Makefile仅显示echo语句的一部分

  3. 3

    Makefile仅显示echo语句的一部分

  4. 4

    Makefile仅显示echo语句的一部分

  5. 5

    隐藏第一部分

  6. 6

    给每行的第一部分上色

  7. 7

    删除网址的第一部分

  8. 8

    第一部分的 Youtube 背景

  9. 9

    输出的第一部分是正确的,然后我得到了分段错误?

  10. 10

    如何在python中删除字符串的第一部分

  11. 11

    在Excel中递增自定义字段的第一部分

  12. 12

    如何基于R中列名的第一部分收集列?

  13. 13

    书签删除URL的第一部分中的文本

  14. 14

    在python中替换第一部分字符串的单词

  15. 15

    如何删除B中字符串的第一部分

  16. 16

    Ruby Sinatra不会在浏览器中显示任何IF语句的第一部分或IF语句的ELSE / END之前的任何输出

  17. 17

    如何在bash脚本中收集第二行输出的第一部分并设置为变量

  18. 18

    SPARQL属性路径,第一部分是唯一的,路径在之后重复

  19. 19

    在量角器中获取currentUrl后,如何更改Url第一部分?

  20. 20

    Workbook_BeforeClose()在第一部分中起作用,但不会关闭工作簿

  21. 21

    Bash:如何从for循环中的多个文件的数组中删除目录的第一部分?

  22. 22

    用计算结果替换文件第一部分中的数字

  23. 23

    NSFetchedResultsController在第一部分中插入第二行时返回错误的行数

  24. 24

    正则表达式,从图像的src属性中删除第一部分

  25. 25

    简单的正则表达式替换URL的第一部分

  26. 26

    推导PCA第一部分中使用的变量

  27. 27

    grep不匹配行的第一部分?

  28. 28

    从邮政编码获得第一部分?

  29. 29

    仅获取英国邮政编码的第一部分

热门标签

归档