web-dev-qa-db-fra.com

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

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")'
22
Ashwin Tumma

La directive ifeq() doit être dans la colonne 1, supprimez tous les espaces en tête, c'est-à-dire

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

^ aucun espace

29
gwillie

Vous ne devez pas mettre ifeq après TAB. Les espaces sont autorisés. Lire GNU Make document .

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

Notez également qu'il compare $(TEST) avec "TRUE" Tel quel:

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

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