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

举例分析 Makefile 中的 filter 与 filter-out 函数

时间:2018-04-11 19:58:37      阅读:1081      评论:0      收藏:0      [点我收藏+]

标签:main   string   more   opp   compile   举例   spec   using   this   

$(filter pattern…,text)

Returns all whitespace-separated words in text that do match any of the pattern words, removing any words that do not match. The patterns are written using ‘%’, just like the patterns used in the patsubst function above.

The filter function can be used to separate out different types of strings (such as file names) in a variable. For example:

sources := foo.c bar.c baz.s ugh.h
foo: $(sources)
        cc $(filter %.c %.s,$(sources)) -o foo

says that foo depends of foo.c、bar.c、baz.s and ugh.h but only foo.c、bar.c and baz.s should be specified in the command to the compiler.

$(filter-out pattern…,text)

Returns all whitespace-separated words in text that do not match any of the pattern words, removing the words that do match one or more. This is the exact opposite of the filter function.

For example, given:

objects := main1.o foo.o main2.o bar.o
mains   := main1.o main2.o

the following generates a list which contains all the object files not in ‘mains’:

$(filter-out $(mains),$(objects))

举例分析 Makefile 中的 filter 与 filter-out 函数

标签:main   string   more   opp   compile   举例   spec   using   this   

原文地址:https://www.cnblogs.com/GyForever1004/p/8797850.html

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