GNU make 实用工具全面解析
1. 基本概念
在软件开发中,尤其是处理大型项目时,自动化构建工具显得尤为重要。make就是这样一种工具,它能根据文件之间的依赖关系,自动确定哪些文件需要重新编译,从而节省大量的时间和精力。
在make中,每个依赖关系的声明被称为规则。规则定义了一个或多个目标(即要生成的文件)以及它们所依赖的文件(先决条件或依赖项)。例如,prog.o是一个依赖于prog.c的目标,每次更新prog.c时,prog.o都必须重新生成。
包含所有规则的文件被称为makefile。对于 GNUmake,它可以命名为GNUmakefile、makefile或Makefile,在这种情况下,make会自动读取它;也可以使用其他名称的文件,并通过-f选项告知make。
多年来,许多供应商对make进行了不同的增强,这些增强方式往往互不兼容。POSIX 对make的工作方式进行了标准化。如今,GNUmake是 Unix 世界中最流行的版本,它具备(或可以模拟)几乎所有其他版本