Makelint

From dankwiki
Jump to navigation Jump to search

lint (static analysis) for GNU Make.

Checks

  • Tabs rather than spaces in target definitions
  • Unconditional definition of common variables (CC, CFLAGS, etc)
  • Unnecessary specification of tools (gcc, install, etc)
  • Use of hardcoded paths outside the tree
  • Failure to use .DELETE_ON_ERROR:
  • Incomplete use of PHONY
  • Use of undefined variables
  • Duplicate targets
  • Redefinition of variables (rather than aggregation)
  • Invalid use of automatic variables ($< with no deps, etc)