Как скомпилировать разные c файлы с разными CFLAGS, используя Makefile?

все. Позволять'скажем, у меня есть программа, которая содержит длинный список исходных файлов C, Ac, Bc, ...., Zc, теперь я хочу скомпилировать Ac, Bc с определенными CFLAGS и скомпилировать оставшуюся часть исходных файлов с другим Значение CFLAGS.

Как написать Makefile для выполнения описанной выше работы? в настоящее время то, что я делаю в моем Makefile:

OBJ=[all other .o files here, e.g. D.o, D.o, E.o .... Z.o]
SPECIAL_OBJS=A.o B.o

all: $(OBJ) $(SPECIAL_OBJS)

$(SPECIAL_OBJS): 
     @echo [Compiling]: $(@:.o=.c)
     $(CC) [SOME OTHER GCC OPTIONS HERE] $(CFLAGS) -c $(@:.o=.c) -o $@

%.o: %.c
     @echo [Compiling]: 
OBJ=[all other .o files here, e.g. D.o, D.o, E.o .... Z.o]
SPECIAL_OBJS=A.o B.o

all: $(OBJ) $(SPECIAL_OBJS)

$(SPECIAL_OBJS): 
     @echo [Compiling]: $(@:.o=.c)
     $(CC) [SOME OTHER GCC OPTIONS HERE] $(CFLAGS) -c $(@:.o=.c) -o $@

%.o: %.c
     @echo [Compiling]: $<      $(CC) $(CFLAGS) -o $@ -c $< 
lt; $(CC) $(CFLAGS) -o $@ -c
OBJ=[all other .o files here, e.g. D.o, D.o, E.o .... Z.o]
SPECIAL_OBJS=A.o B.o

all: $(OBJ) $(SPECIAL_OBJS)

$(SPECIAL_OBJS): 
     @echo [Compiling]: $(@:.o=.c)
     $(CC) [SOME OTHER GCC OPTIONS HERE] $(CFLAGS) -c $(@:.o=.c) -o $@

%.o: %.c
     @echo [Compiling]: $<      $(CC) $(CFLAGS) -o $@ -c $< 
lt;

Это работает, но выглядит просто глупо / сложно. Кто-нибудь может помочь указать, каков рекомендуемый способ сделать это в Makefile? Спасибо!

Ответы на вопрос(3)

Ваш ответ на вопрос