码迷,mamicode.com
首页 > 其他好文 > 详细

GNU-makefle (三) 规则语法、文件查找、伪目标

时间:2014-11-07 19:05:08      阅读:188      评论:0      收藏:0      [点我收藏+]

标签:makefile

参考链接:http://blog.csdn.net/haoel/article/details/2889


当命令和依赖关系描述在同一行时,可以使用分号 分隔。


当命令太长时,也可以用反斜杠 \ 来分隔成多行,分隔出的行首有没有tab都可以(空格更无所谓了)。


在指定文件目录时,可以用~来表示系统home目录,因为make会以shell来执行。


VPATH Makefile文件中的特殊变量。它指定make可以去哪些目录找寻依赖文件和目标文件。

默认不定义它,则在当前目录找,多目录用冒号(:)分隔


vpath是一个命令,用于查找匹配目录。用%来匹配文件名中的零个或若干字符

   vpath pattern directories   在目录中查找与模式匹配的文件

   vpath pattern 清除当前模式的查找目录

   vpath      清除所有vpath定义的查找目录


mymk = ~/Desktop/b.mkf
-include $(mymk)
edit : $(objs)
		cc -o edit $(objs)
#VPATH = srcs:headers
vpath %.c srcs:headers
vpath %.h srcs:headers
#vpath %
#vpath

 main.o:
 kbd.o:
 command.o:
 display.o:
 insert.o:
 search.o:
 utils.o: ; cc -c utils.c
 files.o: ; cc -c -g  				        files.c
                 
 .PHONY : clean
 clean :
#		-rm edit $(objs)
		-rm *.o edit

伪目标作 首目标

#定义了一个伪目标all,为makefie的首目标。前面说,第1个首目标就是makefile生成的执行目标,而这里是伪目标,所以不会生成执行文件。
#   直接make all  或者 make 即可。这样会生成三个执行文件 AA BB CC

all : AA BB CC
 .PHONY : all

    AA : A.o command.o
		cc -o AA A.o command.o

    BB : B.o
		cc -o BB B.o

    CC : C.o utils.o
		cc -o CC C.o utils.o

伪目标 依赖 伪目标

#cleanall 依赖(包含)了 cleanobj cleandiff
 .PHONY: cleanall cleanobj cleandiff

    cleanall : cleanobj cleandiff
			-rm AA BB CC edit

    cleanobj :
			-rm *.o

    cleandiff :
			-rm *.diff




GNU-makefle (三) 规则语法、文件查找、伪目标

标签:makefile

原文地址:http://blog.csdn.net/jjwwmlp456/article/details/40895743

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!