Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1707166
  • 博文数量: 607
  • 博客积分: 10031
  • 博客等级: 上将
  • 技术积分: 6633
  • 用 户 组: 普通用户
  • 注册时间: 2006-03-30 17:41
文章分类

全部博文(607)

文章存档

2011年(2)

2010年(15)

2009年(58)

2008年(172)

2007年(211)

2006年(149)

我的朋友

分类: 项目管理

2007-12-24 16:54:02

Make命令帮助
    make -h
    例如make -v是其中一个常用的命令,显示make的版本。

GNU Make的特点
    去除文件名中的./
    支持模式匹配
    使用了.PHONY

Make变量

变量
    VARNAME = some-text

变量的引用
    $(VARNAME)

变量的展开方式
    简单展开
    CC := gcc -o
    CC += -o2

    递归展开
    CC = gcc
    CC2 = $(CC) -o

make的显式规则

    最好用显式规则定义所有的动作。

    目标:依赖关系
    当一个规则中依赖关系描述的对象存在时,就开始执行规则,生成目标。
    当希望执行规则但又不产生目标时,就要采用哑目标方式声明
    .PHONY : 哑目标
    哑目标 :
       ...
   
    匹配符 %

    %.o: %.c
    为所有的c文件生成相应的.o文件

    规则中的固有变量
    $@   规则中的目标文件
    $^   规则中依赖关系中所有对象列表,以空格为分割符
    $<   依赖关系中第一个对象
    $?   依赖关系中新于目标的文件
   
    通常 echo 在执行向标准输出输出指定内容前,会把命令本身显示在标准输出上。
    @echo 表示echo命令本身并不显示在标准输出上。
   
make的分支语句

    ifeq (v1,v2)
       ..
    else
       ..
    endif

    ifdef v
       ..
    else
       ..
    endif


make的模式匹配函数wildcard
    $(wildcard ) 展开(当前目录下)匹配该模式的文件列表

   
make的循环函数foreach
    $(foreach A, B, C)
    dirs = a b c d
    dirlist: = $(foreach dir, $(dirs), $(wildcard  $(dirs)/*))

make的控制函数
    $(error TEXT...)  
    发生致命错误,显示TEXT...并退出执行
    $(warning TEXT...)
    显示TEXT...并继续执行



   


   

阅读(1257) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~