通过读取另一个文件的内容在一个生成文件中创build一个variables

我怎样才能从makefile中创build一个variables,其值将是另一个数据文件的全部内容。

我猜你喜欢在你的Makefile中设置一个variables为另一个文件的内容:

FILE=test.txt VARIABLE=`cat $(FILE)` target: echo $(VARIABLE) 

假设GNU使:

 file := whatever.txt variable := $(shell cat ${file}) 

cat在Windows上不存在。 适用于Linux和Windows的解决scheme:

 cat := $(if $(filter $(OS),Windows_NT),type,cat) variable := $(shell $(cat) filename) 

说明:看起来像在Windows上总是定义的OS环境variables等于'Windows_NT'。 这样,对于使用Windows type命令,对于非Windows的cat使用。

由于平台没有被指定,所以这就是它在Solaris上的工作方式:

 VERSION:sh = cat VERSION all: echo $(VERSION) 

GNU make 4.2版本支持文件读取操作,所以就Maxim Egorushkin的出色答案而言,现在有一个可选的方法来解决这个问题:

 file:=test.txt variable:=$(file < $(FILE))