MAKEFILE简明指南(七)(转)
2010-11-23 16:35
162 查看
MAKEFILE简明指南(七)
2010/06/08 14:55
2010/06/08 14:55
文件名宏 在commands block中使用,以表示特定的文件名,包括: 1) $@ 用来表示相关联的dependent line中第一个target的全名(包括路径)。 2) $$@ 同上,但只能用在dependent line中。 3) $* target的路径加基本名。 4) $** 相应的dependent line中的所有dependent。 5) $? 相应的dependent line中的所有time stamp大于target的dependent。 6) $< 同上,但只能用在IR中。 下面是一个例子: DIR = c:\objects $(DIR)\a.obj : a.obj COPY a.obj $@ 最后一句展开来就相当于:copy a.obj c:\objects\a.obj 另外,在使用以上这些宏的时候,还可以通过以下的字符来提取文件名中的某一个部分: D 路径 B 基本名 F 基本名加扩展名 R 路径加基本名 例如:如果$@表示c:\objects\a.object,则 $(@D) c:\objects $(@B) a $(@F) a.obj $(@R) c:\objects\a 递归宏 有3个,它们都是用来在makefile中方便地进行NMAKE的递归调用,它们分别是: 1) MAKE 表示运行当前makefile的NMAKE程序的名字。例如,如果你在控制台用以下语句运行makefile: NMAKE her.mak 则MAKE就等于NMAKE。 但如果你将NMAKE.EXE改名为FUCK.EXE,那么你运行makefile的命令就应该改为: FUCK her.mak 此时,MAKE就等于FUCK。 2) MAKEDIR 表示你调用NMAKE时所在的目录。 3) MAKEFLAGS 表示你运行当前makefile时使用的NMAKE参数。 这几个宏在build程序的不同版本时特别有用,例如: all : vers1 vers2 vers1 : cd \vers1 $(MAKE) cd .. vers2 : cd \vers2 $(MAKE) /F vers2.mak cd .. NMAKE会分别在.\vers1和.\vers2目录下运行vers1.mak和vers2.mak。 |
相关文章推荐
- MAKEFILE简明指南(二)(转)
- makefile简明指南
- MAKEFILE简明指南(三)(转)
- MAKEFILE简明指南(四)(转)
- MAKEFILE简明指南(五)(转)
- MAKEFILE简明指南(六)(转)
- MAKEFILE简明指南(一)
- MAKEFILE简明指南(八)(转)
- MAKEFILE简明指南(二)
- MAKEFILE简明指南(一)
- MAKEFILE简明指南(一)
- MAKEFILE简明指南(二)
- MAKEFILE简明指南(一)(转)
- Rails性能优化简明指南 (转载)
- Java8简明指南
- Visual C++中使用OLE DB读写SQL Server简明指南
- C,C++网络编程学习简明指南
- Astyle:代码格式化工具简明指南
- git - 简明指南——助你入门 git 的简明指南,木有高深内容 ;)
- 有趣的机器学习:最简明入门指南