01
Makefile入门
什么是Makefile · 为什么需要 · 自动化构建 · Hello World
基础概念
02
核心规则
目标·依赖·命令语法 · 伪目标 .PHONY
语法必学
03
变量与赋值
= := ?= += 区别与场景
变量赋值
04
自动变量 & 模式规则
$@ $< $^ $? · % 模式匹配
自动变量模式
05
函数基础
字符串处理 · 文件名操作 (subst, patsubst, dir, notdir…)
函数字符串
06
文件搜索与路径
VPATH / vpath · 多目录项目组织
路径搜索
07
条件判断
ifeq ifneq ifdef ifndef · 项目应用
逻辑分支
08
多目标 & 多规则
一个Makefile生成多个目标 · 多规则依赖
多目标结构
09
隐含规则与自动推导
隐含规则列表 · 如何禁用
隐含推导
10
静态模式
静态模式规则语法 · 批量生成文件
模式批量
11
递归Makefile
子目录调用 · $(MAKE) · 变量传递
递归子目录
12
Shell命令
命令执行 · 回显 · 错误处理 · @ - 前缀
Shell调试
13
文件读写操作基础
读取文件 (cat, $(file…)) · 写入 (echo, printf, 重定向)
读写基础
14
$(file ...) 函数详解
< > >> 操作 · 读写文件实战
函数文件
15
生成配置文件
模板生成 config.h / config.mk
配置模板
16
生成代码文件
自动生成 C/C++ 头文件、源文件、初始化代码
代码生成C/C++
17
生成文档
自动生成 README · CHANGELOG · API文档
文档自动化
18
生成测试数据
批量生成测试输入文件、预期输出文件
测试数据
19
生成报告
编译报告 · 代码统计 · 依赖分析报告
报告统计
20
Makefile + Python
调用Python脚本进行文件读写
Python脚本
21
Makefile + Shell脚本
复杂文件处理逻辑的Shell封装
Shell封装
22
时间戳与文件依赖
基于修改时间的增量构建 · 强制重建
时间戳增量
23
错误处理与日志
错误捕获 · 日志输出 · 调试技巧
错误日志
24
大型项目Makefile设计
模块化 · include · 复用
架构模块
25
Makefile与Git集成
自动版本号 · 提交信息 · 构建标签
Git版本
26
CI/CD集成
Jenkins · GitLab CI 中调用Makefile读写
CI/CD流水线
27
并发与并行
-j选项 · 并行写入冲突解决
并发并行
28
性能优化
减少文件读写 · 缓存 · 优化规则
性能优化
29
安全与权限
文件权限 · 安全写入 · 竞争条件
安全权限
30
综合实战
完整自动化文件读写系统 (代码+配置+文档+测试数据)
实战全栈