如何检查文件是否存在于";foreach“;在Makefile中?

如何检查文件是否存在于";foreach“;在Makefile中?,makefile,foreach,gnu-make,Makefile,Foreach,Gnu Make,所以我有一个带有文件名的变量,但是我不确定这些文件名是否存在。我想把存在的变量放到其他变量中。 所有这些都发生在一个Makefile中 以下是我为实现这一目标所做的众多努力之一: 文件是包含文件集的预设变量 OUTPUT += $(foreach file, $(FILES), \ ifneq (,$(wildcard $(file)) $(file) endif 很明显,由于

所以我有一个带有文件名的变量,但是我不确定这些文件名是否存在。我想把存在的变量放到其他变量中。 所有这些都发生在一个Makefile中

以下是我为实现这一目标所做的众多努力之一:

文件是包含文件集的预设变量

OUTPUT += $(foreach file, $(FILES), \
                   ifneq (,$(wildcard $(file))
                     $(file)
                   endif
很明显,由于很多原因,它不起作用,只是试图弄清楚我想要实现什么

如果可能的话,我也希望避免使用$(shell*)

谢谢

获取多个目标,并且与shell globs不同,输出中省略了不匹配的模式,因此我认为这是可行的:

OUTPUT = $(wildcard $(FILES))
获取多个目标,与shell globs不同的是,输出中忽略了不匹配的模式,因此我认为这是可行的:

OUTPUT = $(wildcard $(FILES))

如果可能的话,您确实想在这里使用
:=
。这是一个重大的性能提升。“重大?”我闻到了过早优化的味道。如果可能的话,你真的想在这里使用
:=
。这是一个重大的性能提升。“重大?”我闻到了过早优化的味道。