Makefileでcatを使用して生成された変数で文字列置換を実行するには?

Makefileでcatを使用して生成された変数で文字列置換を実行するには?

鉱山では、Makefileファイルの内容に基づいていくつかの変数を割り当て、ファイルの内容の文字列置換を実行して新しい変数を定義しようとします。

.file-a私のプロジェクトディレクトリには、次の内容を含むファイルがあります。

foo-bar

私のMakefile外観は次のとおりです。

FILE_A_NAME := .file-a
FILE_A_CONTENTS := `cat $(FILE_A_NAME)`
NEW_VAR := $(subst -,_, $(FILE_A_CONTENTS))

.PHONY: foo
foo: 
    @echo $(NEW_VAR)

make fooechoしたいのですが、foo_bar代わりに次のような結果を得ます。

cat: .file_a: No such file or directory

NEW_VAR交換が行われているようですFILE_A_NAME。交換作業を実行するにはどうすればよいですかFILE_A_CONTENTS

答え1

shell以下を実行するには、この関数を使用する必要がありますcat

FILE_A_CONTENTS := $(shell cat $(FILE_A_NAME))

関連情報