在 Makefile 中,如果文件不存在,则创建一个空文件



在makefile中,我正在使用awk脚本进行一些文本操作

$(phony xyz):
awk 'some script' file1 file2 > output;

执行此操作时,如果缺少任何 File1 或 File2,它将给出错误。 因此,如果该文件已经不存在,我正在考虑添加一个空文件。
如下所示

$(phony xyz):
test -e file1 || echo "" > file1;
test -e file2 || echo "" > file2;
awk 'some script' file1 file2 > output;

但这行不通。
例如:如果 file1 不存在,则错误说文件 file1 不存在,然后它正在创建一个空文件"file1",对于 file2 没有任何错误,它只是清空文件,因此最后两个文件都变为空。

为什么不将这些文件添加为先决条件,并在缺少这些文件时添加规则来构建它们?

$(phony xyz): file1 file2
awk 'some script' file1 file2 > output;
file1 file2:
touch $@

相关内容

最新更新