Vérification de la valeur des variables d'environnement dans Makefile


21

J'ai une cible Makefile, dans laquelle je dois vérifier la valeur d'une variable d'environnement. Mais je n'en ai pas la syntaxe exacte. J'ai essayé dur, mais je ne le trouve pas. Toute aide est appréciée.

Nom de la variable d'environnement: TEST, sa valeur: "TRUE"

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

J'obtiens l'erreur suivante:

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

Réponses:


26

La ifeq()directive doit être dans la colonne 1, supprimer tous les espaces en tête, c.-à-d.

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

^ aucun espace


14

Vous ne devez pas mettre ifeqaprès TAB. Les espaces sont autorisés. Lisez le document GNU Make .

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

Notez également qu'il compare $(TEST)avec tout "TRUE"comme:

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

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

Ce bit était très utile - Notez également qu'il compare $ (TEST) avec "TRUE" tel quel :. Merci
kakoma
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.