如何读取文本文件的第一行并将其分配给makefile中的变量?

如何读取文本文件的第一行并将其分配给makefile中的变量?,makefile,Makefile,我有一个名为info.txt的文件。我想读取文件的第一行并将其分配给makefile中的变量BUILD_NO。我该怎么做 BUILD_NO = `sed 1q info.txt` 在操作中引用${BUILD\u NO}或$(BUILD\u NO)时,将执行shell片段。您可能决定也要在其周围加上双引号: BUILD_NO = "`sed 1q info.txt`" 如果您想在依赖项信息中使用该值,您必须更加努力—您在哪个平台上使用哪个版本的make?如果您认为该值仅在命令脚本中可用,并且您

我有一个名为info.txt的文件。我想读取文件的第一行并将其分配给makefile中的变量BUILD_NO。我该怎么做

BUILD_NO = `sed 1q info.txt`
在操作中引用
${BUILD\u NO}
$(BUILD\u NO)
时,将执行shell片段。您可能决定也要在其周围加上双引号:

BUILD_NO = "`sed 1q info.txt`"

如果您想在依赖项信息中使用该值,您必须更加努力—您在哪个平台上使用哪个版本的
make

如果您认为该值仅在命令脚本中可用,并且您不担心被引用,Jonathan的解决方案将非常有效。如果您希望它也可以在makefile中使用,或者您关心脚本中出现的
“$(BUILD_NO)
,并且您愿意将自己限制为GNU make,您可以使用:

BUILD_NO := $(shell head -n 1 info.txt)
(我在这里使用
head
,只是因为它稍微高效一些)。make的其他一些版本中也有替代方案,但不幸的是,没有真正的可移植性