Makefile否定通配符

时间:2012-07-02 10:30:16

标签: makefile

我用来在Makefile中使用通配符,以便选择名称中以 .c 后缀结尾的所有文件。这看起来像SRCS := $(wildcard *.c)。在Makefile的其他部分使用SRCS

我现在需要做的是防止给定文件包含在SRCS变量中。我发现的方法是将shell指令与一些控制台命令结合起来:SRC :=$(shell find . -name "*.c" | grep -v "file_to_exclude.c" | xargs)

这很好用,但我想知道是否还有一些比仅使用通配符更优雅的方式。

1 个答案:

答案 0 :(得分:6)

您可以使用 $(过滤掉P,T)命令...

SRCS := $(filter-out icky-file.c,$(wildcard *.c))

当然,使用shell脚本几乎可以把事情带到另一个层面,因为那时你不会被Make的命令所限制。

有一堆不想要的东西?

NOWANTS := one.c two.c three.c
SRCS := $(filter-out $(NOWANTS),$(wildcard *.c))