我项目的目录结构如下:
我的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
中获取dir1_contents
的内容。但我想从该列表中排除file3.junk
。我该怎么做?
也许我应该使用grep -v
?但我不确定这是最好的方式。我可以在这里使用内置的GNUMake功能吗?
答案 0 :(得分:2)
使用$(filter-out
模式,文字 )
text function
$(filter-out file3.junk,${dir1_contents})
(有人建议使用%/file3.junk
代替file3.junk
,但我相信您不需要;我让您去实验)