Makefile中的小魔方

简介:

本文主要收集Makefile中的各种稀奇古怪的小魔法。Makefile文件在Gnu文档中。开始之前先注解一下GNU文档中的名词:

VARIABLE = value # 变量,通常大写

Target:
    Recipes

:= 简单扩展性变量

不同于递归扩展性变量 =

X = hello
Y := $(X) world
X = hello the

test:
     @echo Y   # print `hello world`

参考 The Two Flavors of Variables

@ 忽略任务命令输出

通常make命令会在执行target下的每一行任务之前,会打印这行任务代码, 使用@ 可以屏蔽这个输出

参考 Recipe Echoing

- 屏蔽错误

ERROR_STOPED = mkdir test
-ERROR_THROUGH = mkdir test

test-error:
    @mkdir test
    @$(ERROR_STOPED)
    @echo 'done'    # can not print this message, because error occur

test-error:
    @mkdir test
    @$(ERROR_THROUGH)
    @echo 'done'  # print message, because of `-` make ignore the err

参考 Errors in Recipes

`

$$ ` 在Recipes中使用得到字符`$` 典型例子:

LIST = one two three
all:
   @for i in $(LIST); do \
        echo 
$$
i; \
    done

参考Using Variables in Recipes

-- to be continue

目录
相关文章
|
6月前
|
vr&ar
Makefile基础教学(预定义变量)
Makefile基础教学(预定义变量)
56 0
|
1月前
|
Linux Python
一文教你学会Makefile脚本的简单应用
一文教你学会Makefile脚本的简单应用
24 0
|
5月前
|
Linux 编译器 开发工具
【看表情包学Linux】探讨项目构建问题 | Makefile | 依赖关系与依赖方法 | 伪目标 PHONY
【看表情包学Linux】探讨项目构建问题 | Makefile | 依赖关系与依赖方法 | 伪目标 PHONY
32 0
【看表情包学Linux】探讨项目构建问题 | Makefile | 依赖关系与依赖方法 | 伪目标 PHONY
|
11月前
|
程序员 编译器 Shell
一步步写属于自己的makefile
一步步写属于自己的makefile
|
自然语言处理 算法 NoSQL
【六、深度解析Makefile】工程文件编译链接的“规则制定者”:带你走进 makefile 的世界(二)
【六、深度解析Makefile】工程文件编译链接的“规则制定者”:带你走进 makefile 的世界
152 0
【六、深度解析Makefile】工程文件编译链接的“规则制定者”:带你走进 makefile 的世界(二)
|
Shell Linux 开发工具
【六、深度解析Makefile】工程文件编译链接的“规则制定者”:带你走进 makefile 的世界(一)
【六、深度解析Makefile】工程文件编译链接的“规则制定者”:带你走进 makefile 的世界
344 0
【六、深度解析Makefile】工程文件编译链接的“规则制定者”:带你走进 makefile 的世界(一)
|
NoSQL Shell Linux
【六、深度解析Makefile】工程文件编译链接的“规则制定者”:带你走进 makefile 的世界(三)
【六、深度解析Makefile】工程文件编译链接的“规则制定者”:带你走进 makefile 的世界
205 0
【六、深度解析Makefile】工程文件编译链接的“规则制定者”:带你走进 makefile 的世界(三)
玩转Makefile | 企业项目Makefile实例
玩转Makefile | 企业项目Makefile实例
215 0
玩转Makefile | 企业项目Makefile实例
|
C语言
玩转Makefile | 四步教你从零开始写Makefile
玩转Makefile | 四步教你从零开始写Makefile
121 0