我想通过传递要删除的二进制文件来清理目录。在我的目录中是这些文件:
foo.c foo.o foo
我想删除foo.o
和foo
。现在在我的makefile中,我有这个:
clean:
rm *.o
rm [...] #the [...] should be the argument
所以我想运行make clean foo
,这里的foo
将是传递给clean
目标的参数。我在某个地方读到,正确的方法应该是简单地在makefile的内创建可用的$(BINARIES)
,并在rm
命令中使用该变量,但每次编译另一个二进制文件时,我都必须编辑该变量。因此,我想将该二进制文件作为参数传递给clean
目标。如何做到这一点?(此外,我不想发布类似make ARGS=foo clean
的make,这太长了,我想要正好3个单词。1(make,2(target,3((参数。
GNU Make的概要是make [OPTION]... [TARGET]...
,所以我怀疑你唯一的选择是
-
查找或实现其他
make
可执行文件,该可执行文件实现您想要的概要, -
使用
make ARGS=foo clean
语法或 -
使用类似破解的模式规则:
clean-%: echo $(@:clean-%=%)
使用
make clean-foo
调用它;清洁-";前缀并打印";foo";。