zoukankan      html  css  js  c++  java
  • GNU Makefile手札

    通配符

    $@ 目标集合

    $< 第一个依赖文件

    $^ 所有依赖文件

    $? 执行结果

    % 表示任意长度的字符

    $$$$ 随机数

    @<command> 执行时不输出该命令到控制台

    变量赋值

    =  直接赋值

    := 未定义赋值

    += 追加赋值

    ?= 

    Makefile函数

    在Makefile中可以使用函数来处理变量,函数的返回值可以当做变量来使用。
    函数调用,很像变量的使用,也是以“$”来标识的,其语法为:$( )或${ }。
    参数间以逗号分隔,函数名和参数间以空格分隔。函数调用以“$”开头,以圆括号或花括号把函数名和参数括起。

    1) wildcard

    objects := $(wildcard *.o)

    等价于objects := a.o b.o xxx.o

    2) subst

    $(subst FROM, TO, TEXT),即将字符串TEXT中的子串FROM变为TO

    3) patsubst

    $(patsubst <pattern>, <replacement>, <text>)

    查找text中的单词(以空格、Tab、回车、换行分隔)是否符合pattern模式,如果匹配,则以replacement替换。其中,pattern可以包括通配符%,表示任意长度的字符串。

    4) filter

    $(filter PATTERN…,TEXT) 

    函数功能:过滤掉字串“TEXT”中所有不符合模式“PATTERN”的单词,保留所有符合此模式的单词。可以使用多个模式。模式中一般需要包含模式字符“%”。存在多个模式时,模式表达式之间使用空格分割。 
    返回值:空格分割的“TEXT”字串中所有符合模式“PATTERN”的字串。

    5) filter-out

    $(filter-out <pattern>, <text>)

    顾名思义,反过滤函数,返回text中不匹配pattern的字符串

    6) firstword

    $(firstword NAMES…) 
    函数名称:取首单词函数—firstword。 
    函数功能:取字串“NAMES…”中的第一个单词。 
    返回值:字串“NAMES…”的第一个单词。 
    函数说明:“NAMES”被认为是使用空格分割的多个单词(名字)的序列。函数忽略“NAMES…”中除第一个单词以外的所有的单词。

    7) $(var:a=b)

    把var中所有以a字符串结尾的a替换成b字符串,结尾指空格或者结束符。

    8) strip

    $(strip STRINT) 
    函数名称:去空格函数—strip。 
    函数功能:去掉字串(若干单词,使用若干空字符分割) “STRINT”开头和结尾的
    空字符,并将其中多个连续空字符合并为一个空字符。 
    返回值:无前导和结尾空字符、使用单一空格分割的多单词字符串。 
    函数说明:空字符包括空格、[Tab]等不可显示字符。 

    9) findstring 查找字符串函数

    $(findstring <find>, <in>)

    在in中查找find字符串,如果找到,返回find,否则返回空字符串。

    10) sort 按照升序排序函数

    $(sort <list>)

    11) word

    $(word <n>, <text>)

    取单词函数,取text字符串中第n个字符,从1开始计数。

    示例$(word 2, foo bar baz)返回bar

    12) wordlist

    $(wordlist <s>, <e>, <text>)

    取单词串,在text中取s到e的单词串

    13) words

    $(words <text>)

    统计text字符串中的单词个数

    调试技巧

    $(info xxx)

    $(warning xxx)

    $(error xxx)

  • 相关阅读:
    css3
    js的去重
    mongodb的db.collection is not function
    mongoose的关联查询 :populate
    html/css杂题
    经典的Foo和getName
    AngularJS控制器
    AJAX请求小项目
    AngularJS 依赖注入
    Canvas画布实现自定义时钟效果
  • 原文地址:https://www.cnblogs.com/justin-y-lin/p/9120288.html
Copyright © 2011-2022 走看看