MAKEPPLOG(1)
π MAKEPPLOG(1) π
okay bestie, say hi to makepplog β it's a page from the Makepp manual, section 1, and it's literally just here to do a textual analysis of the build log for you. no cap. π
β¨ NAME β¨
makepplog β textual analysis of the build log π«Ά
πΈ DESCRIPTION πΈ
okay so first things first, here's the whole option family photo, all together, exactly as they come:
?: -?, A: -A,
--args-file,
--arguments-file, C: -C,
-c,
--current-working-directory,
--current-working-directory-and-up, D: -d, 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: --set-directory,
--showkey, T: -t,
--tabulate, U: -u,
--uniq,
--unique, V: -V,
--version
and here's how you actually call her:
makepplog option ...
mppl option ...
so here's the tea π β Makepp by default writes a detailed log of all its decision finding and its actions. and because it does NOT want to waste its time with pretty printing, it just dumps all that data in a compact, cryptic format. rude? maybe. but that's literally this tool's whole job: makepplog does the pretty printing and the filtering in various formats for you. π
and if you want a less detailed but prettier graphical view, go look at makeppgraph instead. different vibe, same family. π¦
the way this works is that it's solely based on the contents of the log file (.makepp/log), which means you can do this at any time as long as you preserve that file β and even on a different machine. iconic behavior honestly. β¨
also, every time makepp stops when running with option --loop, you get a page break π. and now, the valid options:
-Afilename,--args-file=filename,--arguments-file=filename β read the file and parse it as possibly quoted whitespace- and/or newline-separated options. π-c,--current-working-directoryand-Cnumber,--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.
heads up bestie: these options only work meaningfully when you call makepplog in the same directory makepp ran, or one near there. π«
-d,--set-directoryβ virtually switch to the directory where the log file was originally produced. if you copied or moved it from there, this is necessary for-c(which is implied by this option) to shorten the original path. π§-f,--followβ as in thetailcommand, 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. π«£-klist,--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.
and here's how that looks irl:
--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 later use with--keys. π-lfilename,--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/logorlogwill 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. π-ofilename,--output=filename β write the output to this file, rather than stdout. πΎ-p,--prefixβ prefix every structured message with the stringmakepplog:. 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 π₯
so you want to know which file includes which other file, and nothing else? say less:
makeppclean -r
makepp # Full build to scan all source files.
makepplog -p '/^INCL$/'
you want to format lines with a prefix so Emacs' compilation-mode can parse the lines and exclude all scanning related messages? boom:
makepplog -mp '!/^SCAN/'
you want to explore which keys you can exclude or include in the above manners? go off:
makepplog -kn
π ENVIRONMENT π
makepplog looks at the following environment variable, bestie:
$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)
okay that's the whole page, you ate it up π«Ά this was perl v5.32.0, dated 2021-01-06, and it's the MAKEPPLOG(1) page from the Makepp manual β go build something iconic with it. periodt. πβ¨π
π¦ where this page comes from
- debian bookworm: makepp 2.0.98.5-2.1
- ubuntu jammy: makepp 2.0.98.5-2.1
- ubuntu noble: makepp 2.0.98.5-2.1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms