checkmake VS make-audit

Compare checkmake vs make-audit and see what are their differences.

checkmake

experimental linter/analyzer for Makefiles (by mrtazz)

make-audit

Easy-to-use tool for auditing Makefiles for errors (by david-a-wheeler)
Our great sponsors
  • WorkOS - The modern identity platform for B2B SaaS
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • SaaSHub - Software Alternatives and Reviews
checkmake make-audit
5 3
993 4
- -
3.1 10.0
8 months ago over 1 year ago
Go Python
MIT License MIT License
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
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

Posts with mentions or reviews of checkmake. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2022-08-14.

make-audit

Posts with mentions or reviews of make-audit. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2022-08-14.
  • Make-audit: Easy-to-use tool for auditing Makefiles for errors
    1 project | news.ycombinator.com | 29 Oct 2023
  • Checkmake: Experimental Linter/Analyzer for Makefiles
    6 projects | news.ycombinator.com | 14 Aug 2022
    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
    10 projects | news.ycombinator.com | 7 Aug 2022
    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?

When comparing checkmake and make-audit you can also consider the following projects:

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