【发布时间】:2017-07-01 06:37:09
【问题描述】:
我的项目的目录结构如下:
我的 Makefile 看起来像这样:
dir1_contents = $(shell ls dir1/*)
dir3_contents = $(shell ls 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/file2.junk dir1/dir2: file1.junk
dir3_contents = dir3/file3.junk
我想在dir1_contents 中获取dir1 的内容。但我不想要递归内容。只是在dir1 目录下的内容。我该怎么做?
如果我从 Makefile 的前两行中删除 /*,我会得到我想要的正确内容。但是他们错过了我也需要的路径:
$ pwd
make-test
$ make -s
dir1_contents = dir2 file2.junk
dir3_contents = file3.junk
如何通过我还需要的文件路径获得我想要的正确内容?
【问题讨论】:
-
dir1_contents = dir1/$(shell ls dir1) -
该解决方案可以更正:
dir1_contents = $(addprefix dir1/, $(shell ls dir1)),但我仍然更喜欢我的解决方案。