2010-07-30 11 views
2

environnement si je lance make comme ceci:cible Makefile dépendent de fichier de variables

make VAR=dir 

est-il un moyen d'ajouter l'emplacement indiqué par la variable VAR en tant que dépendance cible? En fait, j'ai besoin de définir un fichier dans ce répertoire comme une dépendance.

je partirais avec:

target: $(VAR)/file.txt 
    echo yes 

mais si la variable n'a pas été définie, la cible comprendra /file.txt, ce qui est pas ce que je veux. J'ai également pensé à créer une cible bidon pour vérifier la variable, avec test, mais alors la cible bidon serait exécutée à chaque fois et, par conséquent, target le ferait aussi.

une solution à cela?

Répondre

5

Vous ne l'avez pas dit ce que le comportement que vous voulez si la variable est pas définie, mais cela est probablement ce que vous voulez:

ifdef VAR 
target: $(VAR)/file.txt 
endif 

target: 
    echo yes 
    @echo and here are the dependencies: $^ 
+1

grâce, voilà ce qu'il me fallait. en fait, j'utiliserais une clause 'else' pour entourer la dernière cible, de sorte que make ne se plaindra pas de redéfinir une cible. – cd1

+0

Make ne se plaindra pas, et l'astuce ne fonctionnera pas si vous mettez la deuxième partie dans une clause 'else'. Essayez-le. – Beta