Makefile-filter和filter-out

filter:代表中目标串中找出符合匹配规则的。

示例: 
sources := foo.c bar.c baz.s ugh.h 
foo: $(sources) 
cc $(filter %.c %.s,$(sources)) -o foo 
 
使用“$(filter %.c %.s,$(sources))”的返回值给 cc 来编译生成目标“foo”,函数返回
值为“foo.c bar.c baz.s”

 

filter-out:代表从目标串中过滤掉符合匹配规则的。

示例: 
objects=main1.o foo.o main2.o bar.o 
mains=main1.o main2.o 
 
$(filter-out $(mains),$(objects)) 
实现了去除变量“objects”中“mains”定义的字串(文件名)功能。它的返回值
为“foo.o bar.o”。

posted @ 2018-01-17 19:47  Key_Ky  阅读(1465)  评论(0编辑  收藏  举报