我的项目的目录结构如下所示:
我的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_contents
获取dir1
的内容。 但我想从该列表中排除file3.junk
。 我该怎么做?
也许我应该使用grep -v
? 但我不确定这是最好的方法。 有一个内置的GNUMakefunction,我可以在这里使用?
使用$(filter-out
图案 , 文字 )
文字功能
$(filter-out file3.junk,${dir1_contents})
(有人建议使用%/file3.junk
而不是file3.junk
,但我相信你不需要这个;我让你去实验)