makefile : quelles dépendances faut-il mettre ?

makefile : quelles dépendances faut-il mettre ? - C++ - Programmation

Marsh Posté le 29-04-2007 à 17:37:57    

Bonjour,
voilà mon problème : je suis en train de faire un makefile, dont la syntaxe je vous le rappelle est :
 
fichier : dépendances
   commande
 
Cependant, comment déterminer les dépendances ?
 
Par exemple, là je suis en train de faire un jeu de cartes. J'ai une classe "joueur", qui inclue les en-tête d'une classe "tas" qui à son tour inclue les en-têtes de la classe "carte".
 
Est-ce que je dois considérer comme dépendances tous les fichiers en-tête ?
ce qui donnerait :
joueur.o : joueur.cc joueur.hh tas.hh carte.hh
 
Mais si mon joueur.cc ne manipule aucun objet "carte", est-ce que je dois tout de même mettre carte.hh dans mes dépendances ?
Ne pourrait-je pas me contenter de :
joueur.o : joueur.cc joueur.hh tas.hh ?
 
Merci d'avance pour vos réponses.

Reply

Marsh Posté le 29-04-2007 à 17:37:57   

Reply

Marsh Posté le 29-04-2007 à 19:03:13    

C'est vous qui voyez !
Vous pouvez mettre  

joueur.o : joueur.cc joueur.hh tas.hh carte.hh

ou juste  

joueur.o : joueur.cc


 
A quoi servent les dépendances ?
Elle servent lorsque l'on ne recompile pas tous les programmes, seulement ceux qui ont changés. C'est à dire lorsque l'on faire un build plutôt qu'un make all.
On peut donner les dépendances que l'on veut. Mais généralement, on donne le nom du fichier c ou cpp, ou cc, et de tous les includes, car si l'on en change un, par exemple si on ajoute un champ dans une structure dans carte.h, cela peut avoir des conséquences sur le fichier tas.h, et cela peut avoir, à son tour, des conséquences sur le fichier joueur.cc

Reply

Marsh Posté le 30-04-2007 à 08:44:55    

euh je regarderais du côté de makedepend, parce qu'autrement ca peut rapidement devenir lourd.
 
http://www10.informatik.uni-erlang [...] /howto.pdf
 
Bon courage.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed