make读取makefile
多文件
是否修改是根据目标文件和源文件的时间先后关系判断
命令把依赖文件生成目标文件的方法列了出来,make根据TAB键识别哪一行是命令
简化:
make嵌套执行
space是$(empty) $(empty) 即空格
subst在foo中找第一个参数替换为第二个参数
某安装包的 makefile 文件解析:
InstallDir := /usr/local/bin/ #命名变量
install:a b
cp -f $^ $(InstallDir) #把a,b文件拷贝到/usr/local/bin/
cd $(InstallDir); chmod 777 $^ # 切换到/usr/local/bin/路径,给a, b执行权限
rm -f *.o $^
uninstall:
cd $(InstallDir); rm a b
a:a.o
gcc -o a a.o #连接
a.o:a.c
gcc -c -o a.o a.c #编译a.c生成a.o
clean:
rm -f *.o #删除所有.o文件
执行 make install 即可安装
makefile 常见错误:
1.制表符用空格代替。解决办法:cat -t makefile可查看makefile中的制表符:^I
2.连接符’'和换行符之间插入了空格。解决办法:cat -e makefile。会将换行符用 $ 显示