Makefile Linter

Makefile Linter

Lint a GNU Makefile for the classic tab-vs-spaces "missing separator" mistake, duplicate target definitions, undefined variables and target references, and phony-looking targets missing from .PHONY; or generate a starter Makefile from a Node.js/Go/Generic preset with editable variables, .PHONY targets, and target dependencies — entirely client-side.

Paste a Makefile above to check for the tab-vs-spaces "missing separator" mistake, duplicate targets, undefined variables and targets, and missing .PHONY declarations.

Client-side heuristic linter for GNU Makefiles — checks recipe-line tab/space separators, duplicate target definitions, targets/variables referenced but never defined, and phony-looking targets missing from .PHONY. It parses line-by-line rather than running a real Make preprocessor, so "undefined target" findings are informational — they may simply be real files that exist on disk.

Makefile Linter

Lint a GNU Makefile for the classic tab-vs-spaces "missing separator" mistake, duplicate target definitions, undefined variables and target references, and phony-looking targets missing from .PHONY; or generate a starter Makefile from a Node.js/Go/Generic preset with editable variables, .PHONY targets, and target dependencies — entirely client-side.

Common uses

  • Find the missing tab causing "*** missing separator"
  • Check for targets missing from .PHONY
  • Spot a duplicate target definition
  • Generate a starter Makefile for a Node.js project
  • Generate a Makefile with build/test/clean targets and dependencies

Frequently asked questions

Can I use Makefile Linter to find the missing tab causing "*** missing separator"?

Yes. Makefile Linter can find the missing tab causing "*** missing separator", directly in your browser.

Can I use Makefile Linter to check for targets missing from .PHONY?

Yes. Makefile Linter can check for targets missing from .PHONY, directly in your browser.

Can I use Makefile Linter to spot a duplicate target definition?

Yes. Makefile Linter can spot a duplicate target definition, directly in your browser.

Is my data uploaded to a server?

No. This tool runs entirely in your browser — your input is processed locally on your device and is never uploaded or stored on a server.