一、简介
Linux的make
程序用来自动化编译大型源码,make程序会根据Makefile文件去编译和链接文件。
二、Makefile 基础
2.1 构造文件
Makefile
由若干条规则(Rule)构成,每一条规则指出一个目标文件(Target),若干依赖文件(prerequisites),以及生成目标文件的命令。
# 目标文件: 依赖文件1 依赖文件2
m.txt: a.txt b.txt
#生成目标文件命令
cat a.txt b.txt > m.txt
x.txt: m.txt c.txt
cat m.txt c.txt > x.txt
2.2 伪目标
伪目标主要是为了执行某些操作或指令,不是为了构造目标。
.PHONY: clean
clean:
rm m.txt
rm x.txt
2.3 执行多条指令
每条shell指令使用不同shell环境
.PHONY: cd
cd:
pwd
cd ..
pwd
所有shell指令使用相同shell环境
.PHONY: cd
cd:
pwd;cd ..;pwd
.PHONY: cd
cd:
pwd && cd .. && pwd
.PHONY: cd
cd:
pwd; \
cd ..;\
pwd
2.4 忽略错误
ignore_error:
-rm z.txt
echo 'ok'
2.5 使用变量
TARGET = world.out
clean:
rm -f $(TARGET)
2.6 自动变量
$@
表示目标文件,$^
表示所有依赖文件
world.out: hello.o main.o
cc -o $@ $^