Verifica del valore delle variabili di ambiente in Makefile


21

Ho un target Makefile, in cui devo controllare il valore di una variabile d'ambiente. Ma non ne ottengo l'esatta sintassi. Ho provato duramente, ma non riesco a trovarlo. Qualsiasi aiuto è apprezzato.

Nome della variabile di ambiente: TEST, il suo valore: "TRUE"

test_target: 
    ifeq ($(TEST),"TRUE")
            echo "Do something"
    endif

Ottengo il seguente errore:

/bin/sh: -c: line 0: syntax error near unexpected token `"TRUE","TRUE"'
/bin/sh: -c: line 0: `ifeq ("TRUE","TRUE")'

Risposte:


26

La ifeq()direttiva deve essere nella colonna 1, rimuovere qualsiasi spazio bianco iniziale cioè

test_target: 
ifeq ($(TEST),"TRUE")
        echo "Do something"
endif

^ nessuno spazio bianco


14

Non devi mettere ifeqdopo TAB. Gli spazi sono ammessi. Leggi il documento GNU Make .

test_target: 
ifeq ($(TEST),"TRUE")
    echo "Do something"
endif

Si noti inoltre che si confronta $(TEST)con "TRUE"com'è:

$ make TEST=TRUE
make: Nothing to be done for 'test_target'.

$ make TEST='"TRUE"'
echo "Do something"
Do something

Questo bit è stato di grande aiuto - Nota anche che confronta $ (TEST) con "TRUE" come è :. Grazie
kakoma il
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.