DragonFly On-Line Manual Pages
MAKEPPLOG(1) Makepp MAKEPPLOG(1)
NAME
makepplog -- Textual analysis of the build log
DESCRIPTION
?: -?, A: -A,
--args-file,
--arguments-file, C: -C,
-c,
--current-working-directory,
--current-working-directory-and-up, F: -f,
--follow, H: -h,
--help, I: -i,
--installation-directories,
--install-dirs, K: -K,
-k,
--keylist,
--keys, L: -l,
--log,
--log-file, M: $MAKEPPLOGFLAGS, N: -n,
--no-indent, O: -o,
--output, P: -p,
--prefix, S: --showkey, T: -t,
--tabulate, U: -u,
--uniq,
--unique, V: -V,
--version
makepplog option ...
mppl option ...
Makepp by default writes a detailed log of its decision finding and
actions. So as to not waste its time with pretty printing, this data
is dumped in a compact but fairly cryptic format. This tool does the
pretty printing in various formats. For a less detailed but even
prettier graphical view see makeppgraph.
This is solely based on the contents of the log file, so it can be
performed at any time, and even on a different machine. Valid options
are:
-A filename
--args-file=filename
--arguments-file=filename
Read the file and parse it as possibly quoted whitespace- and/or
newline-separated options.
-c
--current-working-directory
-C number
--current-working-directory-and-up=number
The first two options strip the current directory from the front of
all filenames it outputs. The second two additionally replace
number directories up from here, with the necessary number of ../
entries.
These options only work meaningfully when you call makepplog in the
same directory makepp ran, or one near there.
-f
--follow
As in "tail" command, process more lines of logfile as it grows.
-?
-h
--help
Print out a brief summary of the options.
-i
--install-dirs
--installation-directories
These options replace the invocation of makepp and the pathes to
the built in makefiles with .../ so as to keep odd pathes out of
your sight.
-k list
--keys=list
--keylist=list
The list specifies one or more space separated Shell style patterns
(with [xyz], ?, *, {a,bc,def}). Remember to protect these from
your Shell by quoting. These are matched against the message keys
(as shown by "--showkey"). Each pattern may be preceded with an
exclamation mark ("!") or a caret ("^") to exclude the matched keys
from those selected before instead of adding them to the selection.
If the first pattern starts with an exclamation mark, it operates
on all keys. There are a few key prefixes with fixed meanings so
you can select categories of keys:
BC* All build cache related messages.
BUILD*
All build reason related messages.
LOAD*
All makefile loading related messages.
REP*
All repository related messages.
RULE*
All rule related messages.
SCAN*
All scanning related messages.
--keys='LOAD* RULE*' # Only makefile loading and rule messages.
--keys='!BUILD* *CMD' # No build messages, except BUILD_CMD.
-K
--showkey
This prefixes each output line with the internal name of the
message key, for use with "--keys".
-l filename
--log=filename
--log-file=filename
The filename is to where makepp wrote its log. It may also be a
directory, in which a file called .makepp/log or log will be
searched. To read from stdin, you must give - as a filename. When
this option is not given, it defaults to the current directory.
This option can be given multiple times, e.g. for merging all the
logs from "--traditional-recursive-make". But it will get the
message version information, which keeps track of message formats,
only from the first file. So if you feed it log files from
different version of makepp in the same invocation, output can get
a bit messed up.
-n
--no-indent
Makepp puts indentation information into the log file to show you
what happened because of what else. This option turns indentation
off.
-o filename
--output=filename
Write the output to this file, rather than stdout.
-p
--prefix
Prefix every structured message with the string "makepplog: ".
IDEs like Emacs can then parse the lines and hyperlink to the
mentioned files.
-t
--tabulate
Put each list item on a new line, rather than outputting a line
that can easily become longer than a screenful.
-u
--uniq
--unique
Report each found include statement and each scan output only once.
-V
--version
Print out the version number.
EXAMPLES
If you want to know which file includes which other file, and nothing
else:
makeppclean -r
makepp # Full build to scan all source files.
makepplog -p '/^INCL$/'
If you want to format lines with a prefix so Emacs' compilation-mode
can parse the lines and exclude all scanning related messages:
makepplog -mp '!/^SCAN/'
If you want to explore which keys you can exclude or include in the
above manners:
makepplog -kn
ENVIRONMENT
Makepplog looks at the following environment variable:
$MAKEPPLOGFLAGS
Any flags in this environment variable are interpreted as command
line options before any explicit options. Quotes are interpreted
like in makefiles.
AUTHOR
Daniel Pfeiffer (occitan@esperanto.org)
perl v5.20.3 2012-02-07 MAKEPPLOG(1)