2010-06-21 10 views
1

J'ai un makefile avec le code suivant. J'essaie de définir une variable dans une instruction if. Il ne fait pas erreur, mais %OPTION% imprime simplement %OPTION (avec un seul signe de pourcentage) et le $(OPTION) n'imprime rien. S'il vous plaît aiderComment accéder aux variables en utilisant NMake?

Makefile

RELEASE_OR_DEBUG=debug 
init: 
    SET OPTION=test 
    @echo test1 = %OPTION% 
     @echo test2 = $(OPTION) 
    if ".$(RELEASE_OR_DEBUG)" == ".debug" SET OPTION="-d" 
    @echo OPTION = %OPTION% 
    @echo OPTION = $(OPTION) 

Sortie

test1 = %OPTION 
test2 = 
if ".debug" == ".debug" SET OPTION="-d" 
OPTION = %OPTION 
OPTION = $(OPTION) 

Répondre

2

Vous ne pouvez pas définir des variables dans les états de dépendance (comme dans ce cas "init"). En fait, vous ne pouvez pas utiliser si des déclarations là non plus. Les variables peuvent être définies par des fichiers batch externes avant d'appeler le fichier makefile (et ce fichier batch peut ensuite appeler le fichier makefile) ou en dehors des instructions de dépendances telles que RELEASE_OR_DEBUG dans cet exemple.
Pour accéder aux variables à l'intérieur des instructions de dépendance, utilisez $ (VARIABLE_NAME). Sachez que si le nom de la variable n'est pas trouvé, il utilisera simplement une chaîne vide (comme dans votre test "@echo test2 = $ (OPTION)" où la variable OPTION n'a pas été trouvée).