2015-01-09 25 views
7

Qual è l'uso previsto di EXTRA_CFLAGS?Qual è lo scopo di EXTRA_CFLAGS?

Lo vedo in alcuni contesti ma non ho mai capito perché non si dovrebbero semplicemente aggiungere flag a CFLAGS invece di EXTRA_CFLAGS.

Inizialmente ho pensato che ci fosse qualcosa da fare con il modo in cui make ha definito le sue regole implicite, ma questo non sembrava essere il caso. A quanto ho capito, non ci sono usi di EXTRA_CFLAGS nelle regole implicite di make, corretto?

Gradirei qualsiasi chiarimento.

+0

Avete qualche esempio di questo disponibile a mano libera? –

+0

Non ho nessun esempio che possa condividere. Questa domanda riguarda anche il modo in cui questo è usato in generale, e quali convenzioni di codifica e supporto/aspettative software che potrebbero esistere per questo parametro. –

risposta

8

Bene, questo non fa parte del make standard o delle regole di make built-in, quindi è solo una convenzione che alcuni dei makefile che hai usato. Il motivo per cui è fatto come una bandiera separata è così lo si può utilizzare sulla linea di comando: le assegnazioni delle variabili linea

make EXTRA_CFLAGS=-O3 

Comando di override ogni ambiente della variabile all'interno del makefile, quindi apposizione non funziona. Cioè:

$ cat Makefile 
CFLAGS += -Dfoo 

all: ; @echo '$(CFLAGS)' 

$ make CFLAGS=-Dbar 
-Dbar 

$ make CFLAGS+=-Dbar 
-Dbar 

sia mostrerà -Dbar, non -Dfoo -Dbar.

Ecco perché è una bandiera separata. Negli ambienti di automake, mantengono esplicitamente CFLAGS per l'utente da fornire sulla riga di comando e tutti i flag "normali" vengono inseriti in altre variabili.

+0

Questa sembra una buona ragione! –