Précédent Index Suivant

Calcul des dépendances

Le calcul de dépendances d'un ensemble de fichiers d'implantation et d'interface d'une application Objective CAML a un double but. Le premier est d'obtenir une vision globale des interdépendances entre modules. Le deuxième est d'utiliser cette information pour ne recompiler que le strict nécessaire lors de modifications de certains fichiers.

La commande ocamldep prend un ensemble de fichiers .ml et .mli et affiche les dépendances entre fichiers dans le format des fichiers Makefile1.

Ces dépendances proviennent de l'utilisation de déclarations globales d'autres modules, soit en utilisant la notation pointée (ex: M1.f), soit en ouvrant un module (ex: open M1).

Supposons écrits les fichiers dp.ml :

let print_vect v =
for i = 0 to Array.length v do
Printf.printf "%f " v.(i)
done;
print_newline();;


et d1.ml :

let init n e =
let v = Array.create 4 3.14 in
Dp.print_vect v;
v;;


La commande ocamldep à qui l'on passe les noms de ces fichiers indiquera les dépendances suivantes :
$ ocamldep dp.ml d1.ml array.ml array.mli printf.ml printf.mli
dp.cmo: array.cmi printf.cmi 
dp.cmx: array.cmx printf.cmx 
d1.cmo: array.cmi dp.cmo 
d1.cmx: array.cmx dp.cmx 
array.cmo: array.cmi 
array.cmx: array.cmi 
printf.cmo: printf.cmi 
printf.cmx: printf.cmi 
Les dépendances sont calculées pour les compilateurs code-octet et natif. On lit le résultat de la manière suivante : la production du fichier dp.cmo dépend des fichiers array.cmi et printf.cmi. Les fichiers d'extension .cmi dépendent des fichiers de même nom d'extension .mli. Il en est de même pour les .ml avec les .cmo et .cmx.

Les fichiers objet de la distribution n'apparaissent pas dans la liste des dépendances. En fait le résultat précédent de ocamldep s'il ne trouve pas des fichiers array.ml et printf.ml dans le catalogue courant, les trouvera dans le chemin des bibliothèques de l'installation et produira :
$ ocamldep dp.ml d1.ml
d1.cmo: dp.cmo 
d1.cmx: dp.cmx 
Pour indiquer de nouveaux chemins de recherche de fichiers à la commande ocamldep on utilisera l'option de commande -I catalogue qui ajoute un catalogue aux chemins de recherche.


Précédent Index Suivant