Je joue avec les fichiers make et la variable VPATH. Fondamentalement, je prends des fichiers source à partir de quelques endroits différents (spécifiés par le VPATH), et les compile dans le répertoire courant en utilisant simplement une liste de fichiers .o que je veux. Jusqu'ici tout va bien, maintenant je génère des informations de dépendance dans un fichier appelé '.depend' et je l'inclut. Gnumake va essayer d'utiliser les règles définies jusqu'à présent pour créer le fichier inclus s'il n'existe pas, donc c'est ok. Fondamentalement, mon makefile ressemble à ceci. Maintenant, pour la vraie question, puis-je supprimer la génération du fichier .depend de quelque façon que ce soit? Je travaille actuellement dans un environnement clearcase -> sloooow, donc je préférerais avoir un peu plus de contrôle quand mettre à jour les informations de dépendance. C'est plus ou moins un exercice académique car je peux juste envelopper la chose dans un script qui touche le fichier .depend avant d'exécuter make (ce qui le rend plus récent que n'importe quel fichier source), mais il serait intéressant de savoir si je peux en quelque sorte le supprimer en utilisant la marque «pure».Tricher Makefile en utilisant VPATH et inclure
Je ne peux pas supprimer la dépendance aux fichiers source (c'est-à-dire en utilisant simplement .depend:
), car je dépends de la variable $^
pour faire la résolution VPATH pour moi.
S'il n'y aurait aucun moyen de dépendances uniquement de mise à jour à la suite des directives #include
mises à jour, ce serait encore mieux bien sûr .. Mais je ne retiens pas mon souffle pour que l'on .. :)
Pourquoi ne pas envelopper '.depend: ...' 'cible dans le travail de directive if'? –
@Pavel: intéressant, je n'y avais jamais pensé. – falstro