Makefile 用于定义如何创建目标文件, 比如如何从源码到可执行文件. 创建这一工具的目标是 减少不必要的编译或者任务.是传说中的 Stuart Feldman 在 1976 年花了一个周末写出来的, 而今仍然使用广泛, 特别是在 Unix 和 Linux 系统上.

虽然每个语言可能都有相应的或多或少提供 make 的功能, 比如 ruby 的 rake, node 的 gulp, broccoli , scala 的 sbt 等等. 但是 make 的简洁与高效, 和只做一件事并做到极致的风格, 使其至今仍是无可替代的, 甚至与其他构建工具一起使用也并无冲突.

尽管有许多的分支和变体, 这篇文章针对是标准的 GNU make.

资源