Non sono esperto con i makefile, ma sono abituato a quelli semplici. In questo momento, ho un compito a portata di mano.Makefile - modifica il valore della variabile in base a un target
Ho bisogno di compilare e collegare un'applicazione di test con una libreria diversa e un percorso di inclusione diverso basato sul dato target. Se la destinazione è TARGET1, quindi il collegamento a LIB1 e include INCLUDEPATH1 durante la compilazione. Allo stesso modo, se l'obiettivo dato è TARGET2, compilare con INCLUDEPATH2 in CFLAGS e collegarlo a LIB2.
%.o: %.c
@echo [CC] $< ...
$(CC) $(CFLAGS) -o $*.o $<
Ora ho una regola come sopra che compila la mia applicazione di test. Ora come possono essere modificati i CFLAG in base all'obiettivo.
Wow, non sapevo che le variabili specifiche della destinazione venissero propagate a regole implicite! –
Ottimo consiglio. Anche se ho scritto Makefile per troppo tempo, in qualche modo non sono mai stato a conoscenza di questa funzione. –