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

时间:2018-09-24 10:55:41

标签: linux 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,没有任何错误,它只是清空了文件,因此最后两个文件都被清空变为空。

1 个答案:

答案 0 :(得分:1)

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

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

file1 file2:
   touch $@
相关问题