Unix 如何使用GNUMake';排除特定文件;什么是通配符函数?

Unix 如何使用GNUMake';排除特定文件;什么是通配符函数?,unix,grep,gnu-make,Unix,Grep,Gnu Make,我的项目的目录结构如下: 我的Makefile如下所示: dir1_contents := $(wildcard dir1/*) dir3_contents := $(wildcard dir3/*) all: clean_dir1 clean_dir3 clean_dir1: echo 'dir1_contents = $(dir1_contents)' clean_dir3: echo 'dir3_contents = $(dir3_contents)' 当我运行make

我的项目的目录结构如下:

我的Makefile如下所示:

dir1_contents := $(wildcard dir1/*) 
dir3_contents := $(wildcard dir3/*)

all: clean_dir1 clean_dir3

clean_dir1:
    echo 'dir1_contents = $(dir1_contents)'

clean_dir3:
echo 'dir3_contents = $(dir3_contents)'
当我运行make时,我得到的是:

$ pwd
make-test

$ make -s
dir1_contents = dir1/dir2 dir1/file2.junk dir1/file3.junk
dir3_contents = dir3/file4.junk
我想在
dir1\u contents
中获取
dir1
的内容。但是我想从列表中排除
file3.junk
。我怎么做

也许我应该使用
grep-v
?但我不确定这是不是最好的办法。这里有内置的GNUMake函数吗?

使用
$(过滤掉
模式,文本

(有人建议使用
%/file3.junk
而不是
file3.junk
,但我相信你不需要这样做;我让你去做实验)

我认为(使用
%/code>的更正)是不对的。
 $(filter-out file3.junk,${dir1_contents})