tutti. Diciamo che ho un programma che contiene una lunga lista di file sorgente C, Ac, Bc, ...., Zc, ora voglio compilare Ac, Bc con alcuni CFLAGS e compilare la parte restante dei file sorgente con un diverso Valore CFLAGS.Come compilare diversi file c con CFLAG differenti usando Makefile?
Come scrivere un Makefile per eseguire il lavoro sopra descritto? attualmente quello che sto facendo nel mio 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 [email protected]
%.o: %.c
@echo [Compiling]: $<
$(CC) $(CFLAGS) -o [email protected] -c $<
Funziona, ma sembra solo stupido/complicato. Qualcuno può aiutare a sottolineare qual è il modo consigliato di farlo in Makefile? Grazie!
Se non si desidera ridefinire la regola di compilazione .c -> .o predefinita, un 'CFLAGS + = $ (EXTRA_CFLAGS) 'funzionerebbe pure (almeno per GNU make). – sstn
Anche l'aggiunta diretta a CFLAGS sembra funzionare: '$ (SPECIAL_OBJS): CFLAGS + = - std = c99' (GNU make again). – sstn
@sstn Come indicato sopra, è possibile utilizzare qualsiasi forma valida di assegnazione. –