Skip to content
experimental linter/analyzer for Makefiles
Go Makefile
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.
.github add PULL_REQUEST_TEMPLATE Aug 30, 2016
config increase unit test coverage for config package Jul 1, 2018
formatters add unit tests for and fix bug in NewCustomFormatter Sep 4, 2016
man/man1 add CustomFormatter Sep 4, 2016
parser goimports Aug 30, 2016
rules add maxbodylength rule Jul 27, 2017
validator add maxbodylength rule Jul 27, 2017
vendor vendor stretchr/testify/require Aug 30, 2016
.codeclimate.yml exclude test files from codeclimate paths Sep 8, 2016
.gitignore ignore package build artefacts in git Aug 30, 2016
.travis.yml add minphony rule and --list-rules cli param Aug 30, 2016 release version 0.1.0 Aug 30, 2016 add Jul 28, 2017
LICENSE commit initial parser structure Aug 24, 2016
Makefile add ability to run tests for single package Jul 1, 2018 add codeclimate badge to README Sep 8, 2016
checkmake.go make checkmake go install-able Jul 28, 2017
checkmake.ini add checkmake.ini Jul 28, 2017


Build Status Coverage Status Code Climate Packagecloud MIT license


checkmake is an experimental tool for linting and checking Makefiles. It may not do what you want it to.


% checkmake Makefile

% checkmake --help

checkmake [--debug|--config=<configPath>] <makefile>
checkmake -h | --help
checkmake --version

-h --help               Show this screen.
--version               Show version.
--debug                 Enable debug mode
--config=<configPath>   Configuration file to read
--list-rules            List registered rules

% checkmake fixtures/missing_phony.make

      RULE                 DESCRIPTION             LINE NUMBER

  minphony        Missing required phony target    0
  minphony        Missing required phony target    0
  phonydeclared   Target "all" should be           18
                  declared PHONY.


There are packages for linux up on but you can also just clone the repo and build the binary and man page yourself.

go get
cd $GOPATH/src/


This is totally inspired by an idea by Dan Buch.

You can’t perform that action at this time.