如何在makefile中打印输出值

时间:2012-07-05 14:45:50

标签: makefile gnu-make

我有一个我想调试的make文件。我有一个如下的结构:

ifeq ($(CC_VER),4.3)
error "I am here"
AR             = ar6x qwe
CSL_LIBDIR     = $(CC_DIR)\lib
CSL_INCDIR     = $(CC_DIR)\include
else
    error "Please check that commands and include/lib path are correct for your version of CC  compiler"
endif

但它不起作用。从批处理文件中运行此makefile,该文件将CC_Ver设置如下:

set CC_VER= 4.3

我想找到一种打印出CC_Ver的方法,这样我就可以找到为什么if不起作用。

另外如何生成错误?错误“消息”不起作用。

我正在使用Gmake。

1 个答案:

答案 0 :(得分:0)

您可以使用$(error text...)构造来处理错误。它会产生致命错误,其中的消息为text,如下所示:

$(error Please check that commands and include/lib path are correct for your version of CC  compiler)

同样,您可以将$(info text...)构造用于参考目的,如

$(info CC_VER has the value "$(CC_VER)")

有关文档,请参阅Functions That Control Make

如果您只是想快速检查变量的值,您还可以使用-p--print-data-base选项make,这将打印 all 规则和变量值。

if语句失败,因为=命令中的4.3set CC_VER之间有空格。此空格会保留在您的变量值中,因此$(CC_VER)不等于4.3,而是<space>4.3