1COQ(1) General Commands Manual COQ(1)
2
3
4
6 coqdep - Compute inter-module dependencies for Coq and Caml programs
7
8
10 coqdep [ -w ] [ -I directory ] [ -coqlib directory ] [ -c ] [ -i ] [ -D
11 ] [ -slash ] filename ... directory ...
12
13
15 coqdep compute inter-module dependencies for Coq and Caml programs, and
16 prints the dependencies on the standard output in a format readable by
17 make. When a directory is given as argument, it is recursively looked
18 at.
19
20 Dependencies of Coq modules are computed by looking at Require commands
21 (Require, Require Export, Require Import, Require Implementation),
22 Declare ML Module commands and Load commands. Dependencies relative to
23 modules from the Coq library are not printed.
24
25 Dependencies of Caml modules are computed by looking at open directives
26 and the dot notation module.value.
27
28
30 -c Prints the dependencies of Caml modules. (On Caml modules, the
31 behaviour is exactly the same as ocamldep).
32
33 -w Prints a warning if a Coq command Declare ML Module is incor‐
34 rect. (For instance, you wrote `Declare ML Module "A".', but the
35 module A contains #open "B"). The correct command is printed
36 (see option -D). The warning is printed on standard error.
37
38 -i Prints also the dependencies for .vi files (Coq specification
39 modules).
40
41 -D This commands looks for every command Declare ML Module of each
42 Coq file given as argument and complete (if needed) the list of
43 Caml modules. The new command is printed on the standard output.
44 No dependency is computed with this option.
45
46 -slash Prints paths using a slash instead of the OS specific separator.
47 This option is useful when developping under Cygwin.
48
49 -I directory
50 The files .v .ml .mli of the directory directory are taken into
51 account during the calculus of dependencies, but their own
52 dependencies are not printed.
53
54 -coqlib directory
55 Indicates where is the Coq library. The default value has been
56 determined at installation time, and therefore this option
57 should not be used under normal circumstances.
58
59
60
62 ocamlc(1), coqc(1), make(1).
63
64
66 Lexers (for Coq and Caml) correctly handle nested comments and strings.
67
68 The treatment of symbolic links is primitive.
69
70 If two files have the same name, in two different directories, a warn‐
71 ing is printed on standard error.
72
73 There is no way to limit the scope of the recursive search for directo‐
74 ries.
75
76
78 Consider the files (in the same directory):
79
80 A.ml B.ml C.ml D.ml X.v Y.v and Z.v
81
82 where
83
84 + D.ml contains the commands `open A', `open B' and `type t = C.t'
85 ;
86
87 + Y.v contains the command `Require X' ;
88
89 + Z.v contains the commands `Require X' and `Declare ML Module
90 "D"'.
91
92 To get the dependencies of the Coq files:
93
94 example% coqdep -I . *.v
95 Z.vo: Z.v ./X.vo ./D.cmo
96 Y.vo: Y.v ./X.vo
97 X.vo: X.v
98
99 With a warning:
100
101 example% coqdep -w -I . *.v
102 Z.vo: Z.v ./X.vo ./D.cmo
103 Y.vo: Y.v ./X.vo
104 X.vo: X.v
105 ### Warning : In file Z.v, the ML modules declaration should be
106 ### Declare ML Module "A" "B" "C" "D".
107
108 To get only the Caml dependencies:
109
110 example% coqdep -c -I . *.ml
111 D.cmo: D.ml ./A.cmo ./B.cmo ./C.cmo
112 D.cmx: D.ml ./A.cmx ./B.cmx ./C.cmx
113 C.cmo: C.ml
114 C.cmx: C.ml
115 B.cmo: B.ml
116 B.cmx: B.ml
117 A.cmo: A.ml
118 A.cmx: A.ml
119
120
122 Please report any bug to coq-bugs@pauillac.inria.fr
123
124
125
126Coq tools 28 March 1995 COQ(1)