Debugging 如何在目标之外的makefile中打印文本?

Debugging 如何在目标之外的makefile中打印文本?,debugging,makefile,printf,Debugging,Makefile,Printf,例如,我尝试在我的makefile序言中测试这是否有效: ifneq(,$(shell latexmk--version 2>/dev/null)) 回声工程 其他的 回声不起作用 恩迪夫 全部: 做事。。。 以下哪项会导致错误: *** recipe commences before first target. Stop. 那么,如何打印规则之外的内容呢 Makefile不允许在规则之外或在结果=$(shell…之外的命令,在我发现这个问题之后 我认为这是可行的: ifneq (,$(s

例如,我尝试在我的makefile序言中测试这是否有效:

ifneq(,$(shell latexmk--version 2>/dev/null))
回声工程
其他的
回声不起作用
恩迪夫
全部:
做事。。。
以下哪项会导致错误:

*** recipe commences before first target.  Stop.
那么,如何打印规则之外的内容呢


Makefile不允许在规则之外或在
结果=$(shell…

之外的命令,在我发现这个问题之后

我认为这是可行的:

ifneq (,$(shell latexmk --version 2>/dev/null))
    useless := $(shell echo Works 1>&2)
else
    useless := $(shell echo Does not Works 1>&2)
    useless := $(error exiting...)
endif

all:
    echo Hey sister, do you still believe in love I wonder...
奖金:


  • 我发现这个问题以后,

    我认为这是可行的:

    ifneq (,$(shell latexmk --version 2>/dev/null))
        useless := $(shell echo Works 1>&2)
    else
        useless := $(shell echo Does not Works 1>&2)
        useless := $(error exiting...)
    endif
    
    all:
        echo Hey sister, do you still believe in love I wonder...
    
    奖金:


  • GNU Make中有
    $(信息…
    $(警告…
    $(错误…
    内置函数。请注意,从语法上讲,它们是文本替换,但它们的返回值始终是空字符串(除了永不返回的
    $(error…
    ),就像
    $(eval…
    等一样。因此它们几乎可以在任何地方使用


    另一个选项是
    $(文件>/dev/stdout…)
    (在Windows下使用“con”)。

    在GNU Make中有
    $(信息…
    $(警告…
    $(错误…
    内置函数。请注意,从语法上讲,它们是文本替换,但它们的返回值始终是空字符串(除了永不返回的
    $(error…
    ),就像
    $(eval…
    等一样。因此它们几乎可以在任何地方使用

    另一个选项是
    $(文件>/dev/stdout,…)
    (在Windows下使用“con”)