Le fichier Makefile Faire de dépendance uniquement si le fichier n'existe pas

Comme le dit le titre, je voudrais faire un dépendance uniquement si un fichier n'existe pas, PAS tout le temps de la mise à jour.

J'ai un répertoire racine (celui avec le makefile) et dans un sous-répertoire appelé "exemple". Dans mon répertoire racine sont quatre .h (fichiers de fonctions.h, analyseur.h, nœud.h, et d'exception.h) que je voudrais copier à l'exemple de" sous-répertoire si celles-ci .h les fichiers n'existent pas déjà dans la liste des "exemples".

Malheureusement je ne peux pas juste faire un standard de dépendance afin de vérifier les fichiers d'en-tête de la section "exemple", car chaque fois que je copie les fichiers d'en-tête de la racine à la "exemple", les fichiers d'en-tête de la section "exemple" sera considéré comme mis à jour et ne déclencher que la dépendance à chaque fois que je lance make. Je voudrais un moyen d'avoir mon makefile copier les fichiers d'en-tête à partir du répertoire racine pour "exemple" uniquement si elles n'existent pas en "exemple".

Le manuel est très, très clair que les variables automatiques (tels que $@) sont valides dans la recette. Vous ne pouvez pas les utiliser dans les objectifs, pré-requis, ou à faire des déclarations conditionnelles (parce que ceux qui sont développés tandis que le makefile est lu). Dans ces cas, $@ étend à la chaîne vide.
Je vois, mais parce que je les ajoute "exemple/" il y a quelque chose de l'ifeq() pour toujours la valeur false. Merci pour éclaircir cela. J'ai édité mon post pour se concentrer sur le reste de la question.

OriginalL'auteur Daniel | 2014-02-13