makefile bash配方-包含在配方时存在的文件



我有一个运行一些自定义工具的makefile。其中一个工具有时会吐出一个多余的文件。该文件必须在后续配方中使用(如果存在(。我不能假设它存在于依赖项中,但如果它存在,我必须将其添加到后续的配方命令中。以下是我目前的处理方式:

final_recipe:
[ ! -f "maybe.file" ] || tool maybe.file ...
[ -f "maybe.file" ] || tool ...

这太难看了。对于bash可执行行,bash可以评估文件是否存在并嵌入文件(如果存在(,有什么建议吗?更像:

final_recipe
tool ([ -f "maybe.file"] ? maybe.file) ...

这可能会实现您想要的:

final_recipe:
tool $$(test -f maybe.file && echo maybe.file) ...

根据MadScientist的评论更新

最新更新