维护我不想要的程序列表编译我可以用>>进行更改和SED而不是编辑makefile?

时间:2014-03-12 05:44:13

标签: c bash makefile

我是Make的新手。我当前的Makefile如下。它将所有.c文件编译到相应的可执行文件中。 c文件列表不断增长(我正在添加越来越多的文件,p1.c,p2.c,p3.c,...)。所以我希望它能够编译大多数,但是如果有一个特殊的文件有错误我不想打扰,我希望能够把它放在do-not-compile列表上 - 也就是说,不要告诉make我想要编译的东西,而是告诉它我不要&#t; t < / em>想要编译。有一个文件说dont.txt很容易我添加和删除行,每个包含&#34; px.c&#34;。如果我有这样的文件,我怎么告诉make 来编译那些.c文件?

CFLAGS = -g -pedantic -std=c99 -Wall

SRCS = $(wildcard *.c)

PROGS = $(patsubst %.c,%,$(SRCS))

all: $(PROGS)

%: %.c

    $(CC) $(CFLAGS)  -o $@ $<

感谢

1 个答案:

答案 0 :(得分:1)

您可以过滤掉您不想编译的源文件,如

SRCS = $(filter-out excludefile.c, $(wildcard *.c))

此外,如果您维护要排除的文件名,请使用以下命令

例如文件是exclude.txt然后

EXCLUDES := $(shell cat ./exclude.txt)

SRCS = $(filter-out $(EXCLUDES), $(wildcard *.c))