如何将某些编译器标志仅与某些目标相关联



我只想为某些 make 目标定义一些宏。

all : process1 process2
prcoess1: process1.c process.h
prcoess2: process2.c process.h
%.o:%.c
        $(CC) $(CCOPTS) -o $@ $<

CCOPTS += -DEXTRA1 
extra1 : clean all

CCOPTS += -DEXTRA2
extra2 : clean all

我希望宏 EXTRA1 仅在我调用 make extra1 时才定义。如果我打电话给make我不希望定义 EXTRA1。我该如何实现此目的?

extra1 : CCOPTS += -DEXTRA1 
extra1 : clean all
extra2 : CCOPTS += -DEXTRA2
extra2 : clean all

参见 GNU 制作手册中的 §6.11 目标特定变量值。

最新更新