checkmake(1)
π NAME π
okay so bestie, listen: checkmake is an experimental linter for Makefiles. that's the whole vibe. it looks at your Makefiles and is like "girl... no." β¨
π SYNOPSIS π
checkmake [options] makefile ...
π¦ DESCRIPTION π¦
so checkmake is an experimental linter for Makefiles β lowkey iconic of it. what it does is run a whole set of configurable rules against a Makefile, or against a bunch of *.mk files if you're feeling extra. that's it, that's the girl. π
β¨ OPTIONS β¨
-h,--helpβ prints a friendly help message π«Ά (yes it's actually friendly, we don't do mean here)--versionβ shows the version, in case you forgot which one you're running--debugβ turns on debug mode, for when you need to see everything π--config=<configPath>β the configuration file to read--format=<format>β output format, given as a Golangtext/templatetemplate--list-rulesβ lists all the registered rules, so you know what's coming for you
πΈ CONFIGURATION πΈ
so by default, checkmake goes looking for a checkmake.ini file in the same folder it's executed in. that's its home base. but you can override that by passing the --config= argument and pointing it at a different configuration file instead. main character energy, honestly.
inside that config file:
- the
[default]section is forcheckmakeitself π - sections named after the rule names get passed to those rules as their configuration
and just so we're clear: all keys and values are treated as strings here, and they get handed to the rule in a string/string map. no fancy types, no cap. π§
β configuration options for checkmake itself β
these live inside the default section:
default.formatβ this enables the custom output formatter, using the given template string as a format
π EXIT STATUS π
checkmake bails out with these statuses:
0: checkmake ran successfully and found 0 violations
>1: checkmake found the number of violations reflected by the exit status
okay and here's the important bit, don't skip this: in addition to checkmake having found 1 violation, exit status 1 is also used to denote an error in execution happening. so if you see a 1, it could be one violation, or it could be the whole thing faceplanting. rude of it, but there you go. π
π BUGS π
found a bug? bestie, please file it against the issue tracker:
https://github.com/mrtazz/checkmake/issues
π SEE ALSO π
π AUTHORS π
- Daniel Schauenberg
d@unwiredcouch.com
and that's the whole page, bestie!! π this was the checkmake user manual, dated 2025-09-29T00:00:00Z. go forth, lint your Makefiles, and slay π
β¨
π¦ where this page comes from
- fedora 43: checkmake 0.2.2-1.fc43 Β· Apache-2.0 AND BSD-3-Clause AND ISC AND MIT
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms