# Install checkmake with Homebrew, dnf, MacPorts, Nix

Linter/analyzer for Makefiles. Version 0.3.2 via Homebrew; verified from local package data. Also installable with nix: nix profile install nixpkgs#checkmake.

## 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/07190dc5ae9f35ae73866675fed6d95fe6e8d9fe22c9d7cdf85862cb2ed24a4c-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
- **Version:** 0.3.2
- **Source summary:** Linter/analyzer for Makefiles
- **Homepage:** <https://github.com/checkmake/checkmake>
- **Repository:** <https://github.com/checkmake/checkmake>
- **Generated:** 2026-08-03T19:37:03+00:00

## Executables

- checkmake (alias)

## Install behavior

- Bottle: not available

## Freshness

- Page generated: 2026-08-03
- Package-manager version: 0.3.2
## 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
## 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-3.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/07190dc5ae9f35ae73866675fed6d95fe6e8d9fe22c9d7cdf85862cb2ed24a4c-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


## Combined YAML source

View the package source record on GitHub. [combined/checkmake.yml](https://github.com/mxcl/pkgdb/blob/main/combined/checkmake.yml)


## Sources

- pkg.so package database
- Geiger risk classifier
- curated configuration and credential file locations
- curated package history
- pkgdb category and tag curation
- external package-manager database matches
- cross-ecosystem install command graph
