GNU Make,在不存在时使用默认 settings/content 生成文件
GNU Make, generate file with default settings/content when absent
我希望 make 将文件从源代码树复制到 target/build 目录(如果它退出)或者生成一个 empty/default 文件(如果不退出) .
执行以下操作很容易:
target/settings.json: src/settings.json
cp $? $@
src/settings.json:
echo "default..." > $@
但这会用一个可能会无意中签入 RCS 的文件污染源存储库。
是否有一个简单的 make 规则可以在文件退出时复制文件,或者只使用来自其他来源的 command/copy 生成目标?
GNU-Make 特定的解决方案很好
您可以使用 $(wildcard)
检查文件是否存在,所以可能是这样的:
ifeq ($(wildcard src/settings.json),)
SETTINGS = tmp/settings.json
else
SETTINGS = src/settings.json
endif
target/settings.json: $(SETTINGS)
cp $? $@
tmp/settings.json:
echo "default..." > $@
我希望 make 将文件从源代码树复制到 target/build 目录(如果它退出)或者生成一个 empty/default 文件(如果不退出) .
执行以下操作很容易:
target/settings.json: src/settings.json
cp $? $@
src/settings.json:
echo "default..." > $@
但这会用一个可能会无意中签入 RCS 的文件污染源存储库。
是否有一个简单的 make 规则可以在文件退出时复制文件,或者只使用来自其他来源的 command/copy 生成目标?
GNU-Make 特定的解决方案很好
您可以使用 $(wildcard)
检查文件是否存在,所以可能是这样的:
ifeq ($(wildcard src/settings.json),)
SETTINGS = tmp/settings.json
else
SETTINGS = src/settings.json
endif
target/settings.json: $(SETTINGS)
cp $? $@
tmp/settings.json:
echo "default..." > $@