about summary refs log tree commit diff
path: root/man/man1/redo-dot.1
blob: 33f77cfcb257ee81faa36723ab75d3f727ae9002 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
.de URL
\\$2 \(laURL: \\$1 \(ra\\$3
..
.if \n[.g] .mso www.tmac
.TH REDO-DOT 1
.SH NAME
redo-dot \- print
.I redo
dependency graph for the current directory
.SH SYNOPSIS
.B redo-dot
.RI [pattern]
.SH DESCRIPTION
.IR redo(1)
is a tool for building files and for rebuilding them if any of their dependencies have changed.
.I redo-dot
prints the dependency graph for the current directory in the file format consumed by
.IR dot(1)
from the Graphviz layout programs. If the current working directory is not a
.IR redo(1)
build directory,
.I redo-dot
exits with a status code indicating failure.
.PP
In the dependency graph, targets and sources are represented by nodes, dependencies are represented by solid edges, and non-existence dependencies are represented by dotted edges. Targets that have impossible to satisfy dependencies have a bold outline. Targets that are rebuilt depending on input to
.IR redo-stamp(1)
have a dashed outline.
.PP
A pattern contains characters that match themselves and the meta-characters “!”, “*”, “?”, and “[”, which lose their special meanings if they are quoted. Asterisks (“*”) match any string of characters. Question marks (“?”) match any single character. Left brackets (“[”) and right brackets (“]”) indicate start and end of a character class. Character classes match any characters between brackets or a range of characters specified using a minus (“-”); to include literal minus, make it the first or last character. Exclamation marks (“!”) as the first character of any character class negates it.
.SH EXAMPLES
.TP
.B redo-dot |dot -Tx11
shows the full dependency graph in an X11 window using
.IR dot(1).
.TP
.B redo-dot '*/stdio.h'
outputs a dependency graph with only nodes that match the pattern
.IR */stdio.h ,
dependencies of nodes that match the pattern, and nodes that depend on nodes that match the pattern.
.TP
.B redo-dot |sed s%"$(pwd)"/%%g >deps.dot; dot deps.dot -Tpng >deps.png
outputs the full dependency graph into a file named
.IR deps.dot ,
then generates a PNG (Portable Network Graphics) file named
.IR deps.png
from it using
.IR dot(1) .
The
.IR sed(1)
invocation removes the current working directory from the node names.
.SH HISTORY
.I redo-dot
was designed and implemented by Nils Dagsson Moskopp.
.SH AUTHOR
.I redo-dot
and this man page were written by Nils Dagsson Moskopp.
.SH COPYRIGHT
Copyright © 2015-2016 Nils Dagsson Moskopp.
License AGPLv3+: GNU Affero GPL version 3 or later <http://www.gnu.org/licenses/agpl-3.0.html>.
This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law.
.SH SEE ALSO
.IR sh(1) ,
.IR redo(1) ,
.IR redo-always(1) ,
.IR redo-ifchange(1) ,
.IR redo-ifcreate(1) ,
.IR redo-ood(1) ,
.IR redo-sources(1) ,
.IR redo-stamp(1) ,
.IR redo-targets(1)
.SH BUGS
.I redo-dot
may break if the target filename contains a tab or newline character.