# Install checkmake with Homebrew, dnf, MacPorts, Nix

Linter/analyzer for Makefiles. Version 0.3.2 via Homebrew; verified from local package data.

## Install

```sh
sudo av install brew:checkmake
```

Additional install commands:

### macOS

- Homebrew (100%):

```sh
brew install checkmake
```

  Evidence: local Homebrew formula metadata

- MacPorts (94%):

```sh
sudo port install checkmake
```

  Evidence: MacPorts ports tree: devel/checkmake/Portfile from https://api.github.com/repos/macports/macports-ports/git/trees/master?recursive=1

### Linux

- dnf (92%):

```sh
sudo dnf install checkmake
```

  Evidence: Fedora Rawhide package metadata: checkmake from https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/x86_64/os/repodata/e5ca8ce900cd68f5419e1c39ae517343100b306336cbaeb70a3c153121d95094-primary.xml.zst

- Nix (92%):

```sh
nix profile install nixpkgs#checkmake
```

  Evidence: nixpkgs package indexes: pkgs/by-name/ch/checkmake/package.nix from https://api.github.com/repos/NixOS/nixpkgs/git/trees/master?recursive=1

## Package facts

- **Package key:** brew:checkmake
- **Package manager:** Homebrew
- **Package manager page:** <https://formulae.brew.sh/formula/checkmake>
- **Version:** 0.3.2
- **Source summary:** Linter/analyzer for Makefiles
- **Homepage:** <https://github.com/checkmake/checkmake>
- **Repository:** <https://github.com/checkmake/checkmake>
- **Upstream docs:** <https://github.com/checkmake/checkmake#readme>
- **License:** MIT
- **Source archive:** <https://github.com/checkmake/checkmake/archive/refs/tags/v0.3.2.tar.gz>
- **Generated:** 2026-07-08T07:18:31+00:00

## Executables

- checkmake (cli)
- checkmake (alias)

## Build dependencies

- go
- pandoc

## Install behavior

- Post-install hook: not defined
- Bottle: available on arm64_linux, arm64_sequoia, arm64_sonoma, arm64_tahoe, sonoma, x86_64_linux

## Freshness

- Page generated: 2026-07-08
- Package-manager version: 0.3.2
- Local data: ok
- Upstream repository: https://github.com/checkmake/checkmake
- Upstream latest detected: v0.3.2 (current)
- info: No package-manager update timestamp was available.
## Project history and usage

checkmake is a Go command-line linter for Makefiles. It is a small but package-relevant tool because Makefiles are ubiquitous, and checkmake gives them the kind of static analysis that shell scripts, YAML, and source code often already receive.

### Project history

The checkmake/checkmake repository was created in August 2016 and describes the project as a linter and analyzer for Makefiles. The README says it scans one or more Makefiles for potential issues according to configurable rules.

The project was inspired by an idea from Dan Buch, according to the README, and later moved into the checkmake GitHub organization while retaining older badge references to the original mrtazz/checkmake namespace.

### Adoption history

The official README documents installation with Go, prebuilt releases, packages, packagecloud, Homebrew-style package-manager use through batch metadata, and official container images on quay.io. It also provides pre-commit hook configuration for repository-level adoption.

The README notes that checkmake is natively embedded in MegaLinter, which makes it available inside a broader multi-language linting workflow even when users do not install it directly.

### How it is used

Typical usage is to run checkmake against Makefile, GNUmakefile, or *.mk inputs and receive text or JSON reports. The CLI supports a default checkmake.ini configuration file, listing rules, and custom output templates.

In CI and pre-commit workflows, checkmake is used to catch missing phony declarations and similar Makefile maintainability issues before they are merged.

### Why package nerds care

checkmake is package-nerd interesting because it lints one of the oldest build-description formats still found in modern repositories. It is also a tidy example of a Go CLI distributed through source install, binary releases, containers, packagecloud, Homebrew, MacPorts, Nix, and distro packages.

Its presence in pre-commit and MegaLinter shows the common path from standalone command to plumbing inside larger developer-tool aggregators.

### Timeline

- 2016: checkmake/checkmake repository created.
- 2022: 0.2.1 release published on GitHub.
- 2023: 0.2.2 release used in the official pre-commit example.
- 2026: v0.3.x releases published, showing renewed maintenance.

### Related projects

- pre-commit is an adjacent integration surface documented by the project.
- MegaLinter embeds checkmake for Makefile linting, and GNU Make is the input format the tool analyzes.

### Sources

- <https://github.com/checkmake/checkmake>
- <https://github.com/checkmake/checkmake/releases>
- <https://github.com/checkmake/checkmake#readme>


## Security Notes

narrow executable package without higher-risk signals.

- **Geiger risk:** green / low
- narrow executable package without higher-risk signals


## Configuration and credential file locations

These source-backed paths show where this package keeps local settings or durable credentials. Automic Vault can use them as review targets for secret scanning, migration, and command approval.


## Configuration files

- Unix: ./checkmake.ini
- Windows: .\checkmake.ini
## Source Database Details

- **Source Database:** Homebrew formula API
- **Tap:** homebrew/core
- **Full Name:** checkmake
- **Version Scheme:** 0
- **Revision:** 0
- **Head Version:** HEAD
- **Bottle Stable Root URL:** <https://ghcr.io/v2/homebrew/core>
- **Deprecated:** no
- **Disabled:** no
- **Keg Only:** no
- **URL Keys:** head, stable

## Other Package-Manager Records

- Nix - checkmake: normalized package name match | nixpkgs package indexes: pkgs/by-name/ch/checkmake/package.nix from https://api.github.com/repos/NixOS/nixpkgs/git/trees/master?recursive=1
- dnf - checkmake - 0.3.2-2.fc45: normalized package name match | Fedora Rawhide package metadata: checkmake from https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/x86_64/os/repodata/e5ca8ce900cd68f5419e1c39ae517343100b306336cbaeb70a3c153121d95094-primary.xml.zst | Linter/analyzer for Makefiles | https://github.com/checkmake/checkmake
- MacPorts - checkmake: normalized package name match | MacPorts ports tree: devel/checkmake/Portfile from https://api.github.com/repos/macports/macports-ports/git/trees/master?recursive=1


## Related links

- [Source-control packages](https://www.automicvault.com/pkg/source-control-tools/) - Belongs to a source-control command family.
- [Terminal utility packages](https://www.automicvault.com/pkg/terminal-utilities/) - Matched terminal and command-line workflow metadata.
- [Text processing packages](https://www.automicvault.com/pkg/text-processing-tools/) - Matched text, document, or structured-data processing metadata.
- [Developer build packages](https://www.automicvault.com/pkg/developer-build-tools/) - Matched build, compiler, generator, or developer workflow metadata.
- [go](https://www.automicvault.com/pkg/brew/go/) - Build dependency declared by Homebrew.
- [pandoc](https://www.automicvault.com/pkg/brew/pandoc/) - Build dependency declared by Homebrew.
- [golangci-lint](https://www.automicvault.com/pkg/brew/golangci-lint/) - Shares av.db curated category or tags: cli, developer-tools, go, linting, static-analysis.
- [actionlint](https://www.automicvault.com/pkg/brew/actionlint/) - Shares av.db curated category or tags: cli, developer-tools, linting, static-analysis.
- [flake8](https://www.automicvault.com/pkg/brew/flake8/) - Shares av.db curated category or tags: cli, developer-tools, linting, static-analysis.
- [hadolint](https://www.automicvault.com/pkg/brew/hadolint/) - Shares av.db curated category or tags: cli, developer-tools, linting, static-analysis.
- [tfproviderlint](https://www.automicvault.com/pkg/brew/tfproviderlint/) - Shares av.db curated category or tags: cli, developer-tools, linting, static-analysis.
- [bashate](https://www.automicvault.com/pkg/brew/bashate/) - Shares av.db curated category or tags: cli, developer-tools, linting.
- [bpmnlint](https://www.automicvault.com/pkg/brew/bpmnlint/) - Shares av.db curated category or tags: cli, developer-tools, linting.
- [checkbashisms](https://www.automicvault.com/pkg/brew/checkbashisms/) - Shares av.db curated category or tags: cli, developer-tools, linting.
- [elvis](https://www.automicvault.com/pkg/brew/elvis/) - Local package facts share a topical domain. Shared terms: analysis, cli, developer, developer-tools, linter.
- [protolint](https://www.automicvault.com/pkg/brew/protolint/) - Local package facts share a topical domain. Shared terms: analysis, cli, developer, developer-tools, linter.

## Combined YAML source

View the package source record on GitHub. [combined/checkmake.yml](https://github.com/automic-vault/db/blob/main/combined/checkmake.yml)


## Sources

- Nucleus package database
- Geiger risk classifier
- package-page enrichment
- curated configuration and credential file locations
- curated package history
- package version freshness
- av.db category and tag curation
- package relationship graph
- external package-manager database matches
- cross-ecosystem install command graph
