Avoid using Makefiles as a Script Runner

The purpose of a makefile is to create a directed acyclic graph of dependencies to build files.

  • it is yet another custom syntax with its own caveats to learn
  • long shell scripts must be separate files or badly inlined
  • most targets will be .PHONY defeating the purpose of the tool
  • makefiles use mtime to detect changes which can be unreliable for when a team develops using git branches
  • makefiles usually need additional configuration (help, .PHONY, flags, failure)
  • make may require explicit installation on a developer's system

Instead, just use bash scripts in a folder.