checkmake
make-audit
Our great sponsors
checkmake | make-audit | |
---|---|---|
5 | 3 | |
996 | 4 | |
- | - | |
3.1 | 10.0 | |
9 months ago | over 1 year ago | |
Go | Python | |
MIT License | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
checkmake
-
Checkmake: Experimental Linter/Analyzer for Makefiles
I note the maintainer has asked for help with the project and called for additional maintainers:
https://github.com/mrtazz/checkmake/issues/44
make-audit
- Make-audit: Easy-to-use tool for auditing Makefiles for errors
-
Checkmake: Experimental Linter/Analyzer for Makefiles
Cool!
I also have an experimental (GNU) makefile auditor called "make-audit", available here: https://github.com/david-a-wheeler/make-audit
Per its README: "It will report when an execution of make reads or changes files in ways that are inconsistent with its Makefile. It requires an "auditor" tool named pmaudit in your PATH. It also requires GNU make to be installed and run as make."
Sadly, make-audit is also rather experimental. As I say in its README, "This is an extremely early version. Much needs fixing." For example:
* This doesn't properly handle grouped targets or empty commands. It should handle makefiles with their own SHELL and .ONESHELL values.
* I don't think it handles multi-line make commands exactly correctly (it's close but not quite right).
* Lots more options are needed.
* It needs a better internal test suite.
Still, make-audit does do some useful things, and it'd be awesome if others would be willing to work with me to make it reliably useful.
-
Using Landlock to Sandbox GNU Make
This is very cool.
A while back I started an experiment/prototype called "make-audit"; this is a (draft) tool to report when an execution of GNU make reads or changes files in ways that are inconsistent with its Makefile: https://github.com/david-a-wheeler/make-audit It's nowhere ready for serious use, but it can detect the following:
* Error: Target TARGET : unreported prerequisites: SET : The make recipe for creating TARGET is reading from the prerequisites in SET, but the makefile fails to report them as dependencies. You may want to add SET to the prerequisites of TARGET.
* Error: Target TARGET : claimed but unused prerequisites: SET : The make recipe for creating TARGET claims that it depends on SET, but the items in SET were never read. You may want to remove SET from the prerequisites of TARGET.
* Error: Target TARGET : unreported target: SET The make recipe for updating TARGET also modifies the files in SET but this is not reported.
* Error: Target TARGET : unmodified reported target: SET
This depended on Poor Man's File Auditor (pmaudit): https://github.com/boyski/pmaudit
What are some alternatives?
hadolint - Dockerfile linter, validate inline bash, written in Haskell
Microsoft Research Detours Package - Detours is a software package for monitoring and instrumenting API calls on Windows. It is distributed in source code form.
mmake - Modern Make
chromium - The official GitHub mirror of the Chromium source
ShellCheck - ShellCheck, a static analysis tool for shell scripts
Bazel - a fast, scalable, multi-language and extensible build system
reviewdog - 🐶 Automated code review tool integrated with any code analysis tools regardless of programming language
Task - A task runner / simpler Make alternative written in Go
BuildXL - Microsoft Build Accelerator
cosmopolitan - build-once run-anywhere c library
samurai - ninja-compatible build tool written in C