Makefile(二)-----Makefile中使用变量
2011-08-23 14:01
239 查看
接第一篇,我们可以在makefile中声明变量来替代重复的内容。比如:
objects = main.o kbd.o command.o display.o \
insert.o search.o files.o utils.o
我们就可以很方便地在我们的makefile中以“$(objects)”的方式来使用这个变量了,于是我们的改良版makefile就变成下面这个样子:
GNU的make很强大,它可以自动推导文件以及文件依赖关系后面的命令,只要make看到一个[.o]文件,它就会自动的把[.c]文件加在依赖关系中,如果make找到一个whatever.o,那么whatever.c,就会是whatever.o的依赖文件。并且 cc -c whatever.c 也会被推导出来,于是,我们的makefile再也不用写得这么复杂。
“.PHONY”表示,clean是个伪目标文件,伪目标文件在后续介绍。
[.o]和[.h]文件的依赖可以写的更简洁:
补充:
在有些命令之前会有“$(Q)”出现,“$(Q)”的定义如下:
其实就是为空或者"@",在指令前加上它,表示执行命令时,不打印这条命令,当然你可以
"make -s",就是不打印命令,但是这个会将所有的命令都屏蔽掉,想灵活一点就用“@”。
objects = main.o kbd.o command.o display.o \
insert.o search.o files.o utils.o
我们就可以很方便地在我们的makefile中以“$(objects)”的方式来使用这个变量了,于是我们的改良版makefile就变成下面这个样子:
objects = main.o kbd.o command.o display.o \ insert.o search.o files.o utils.o edit : $(objects) cc -o edit $(objects)
GNU的make很强大,它可以自动推导文件以及文件依赖关系后面的命令,只要make看到一个[.o]文件,它就会自动的把[.c]文件加在依赖关系中,如果make找到一个whatever.o,那么whatever.c,就会是whatever.o的依赖文件。并且 cc -c whatever.c 也会被推导出来,于是,我们的makefile再也不用写得这么复杂。
objects = main.o kbd.o command.o display.o \ insert.o search.o files.o utils.o edit : $(objects) cc -o edit $(objects)
main.o : defs.h
kbd.o : defs.h command.h
command.o : defs.h command.h
display.o : defs.h buffer.h
insert.o : defs.h buffer.h
search.o : defs.h buffer.h
files.o : defs.h buffer.h command.h
utils.o : defs.h
.PHONY : clean
clean :
rm edit $(objects)
“.PHONY”表示,clean是个伪目标文件,伪目标文件在后续介绍。
[.o]和[.h]文件的依赖可以写的更简洁:
$(objects) : defs.h//所以的.o文件都依赖defs.h头文件 kbd.o command.o files.o : command.h//这三个.o文件都依赖command.h display.o insert.o search.o files.o : buffer.h .PHONY
补充:
在有些命令之前会有“$(Q)”出现,“$(Q)”的定义如下:
ifeq ($(KBUILD_VERBOSE),1) quiet = Q = else quiet=quiet_ Q = @ endif
其实就是为空或者"@",在指令前加上它,表示执行命令时,不打印这条命令,当然你可以
"make -s",就是不打印命令,但是这个会将所有的命令都屏蔽掉,想灵活一点就用“@”。
相关文章推荐
- linux下Makefile学习之四(使用变量)
- Makefile中自动化变量使用详解
- Makefile中的变量及条件判断的使用
- makefile变量使用
- Makefile 和 shell中的环境变量使用
- 跟我一起写makefile 之 使用变量
- makefile详解 使用变量 十七
- Linux makefile教程之使用变量五[转]
- makefile中变量的使用心得(转)
- 在makefile中使用变量
- makefile变量使用
- makefile变量的使用
- makefile中使用变量及函数(3.注意.o输出路径问题)
- 三、Makefile使用变量
- makefile变量使用及其条件判断
- Makefile中变量的使用
- Makefile (六) 使用变量
- 很详细、很移动的Linux makefile教程:介绍,总述,书写规则,书写命令,使用变量,使用条件推断,使用函数,Make 的运行,隐含规则 使用make更新函数库文件 后序
- 跟我一起写 Makefile——1.7 使用变量
- 很详细、很移动的Linux makefile教程:介绍,总述,书写规则,书写命令,使用变量,使用条件推断,使用函数,Make 的运行,隐含规则 使用make更新函数库文件 后序