通过读取另一个文件的内容在一个生成文件中创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))