改进Makefile,使其仅创建和清除已更改/特别请求的程序

时间:2015-02-12 02:40:13

标签: c makefile

基于this stackoverflow响应,我创建了一个Makefile,它将所有.c文件编译成单独的可执行文件。我添加了clean部分,删除了所有程序。它现在看起来像:

CFLAGS=-Wall -g

SRCS = $(wildcard *.c)

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

all: $(PROGS)

clean:
    rm -f $(PROGS)

%: %.c
    $(CC) $(CFLAGS)  -o $@ $<

我的问题是:

  1. 你如何让Makefile读取额外的命令行参数,以便它只清理指定的程序?

1 个答案:

答案 0 :(得分:3)

您可以添加仅清除特定二进制文件或其他此类游戏的clean-%目标,但为什么?你的&#34;清洁&#34;食谱只是rm所以只需自己运行rm

至于仅构建特定二进制文件,只需运行make $binary而不是makemake all

所有make / make all正在按名称运行每个列出的二进制文件的目标。