clean :
rm *.tmp

规则格式:

targets : prerequisites
recipe
... targets : prerequisites : recipe
recipe
...

target:  中文为目标,一般指目标文件名。即你编译产生的目标文件。

prerequisite:依赖,目标文件的依赖文件。make根据prerequisite的时间戳来判断target是否需要更新。

recipe:中文指烹饪方法。这里指的是使用prerequisite生成target的方法。如gcc tmp.c -o tmp。recipe行的开始符号一般为\tab。你也可以通过设置.RECIPEPREFIX变量来使用其他字符,而非tab。

不是所有target都需要前置依赖的,target也不一定非的是一个文件名,如

clean :
rm *.tmp

当我们执行make clean 时,他会执行相应的shell命令删除所有的tmp文件。

  clean这种没有前置依赖的target属于phony target,即伪目标。他不会生成相应的文件。由于没有前置依赖,伪目标被视为永远最新,所以make不会自动执行伪目标(除非显示的make target)。

  凡事有特殊,处于首行的target为默认target。如果phony target在首行,会被默认执行。

  

GNU make 规则的更多相关文章

  1. GNU make规则的命令④书写命令

    命令回显 通常, make 在执行命令行之前会把要执行的命令行输出到标准输出设备.我们称之为"回显",就好像我们在 shell 环境下输入命令执行时一样. 如果规则的命令行以字符& ...

  2. gnu make规则记录

    1. $(shell CMD) 名称: 执行 shell 命令函数 功能: 在新的 shell 中执行 CMD 命令 返回值: CMD 在 shell 中执行的结果 例如:PLATFORM=$(she ...

  3. makefile 学习(一)

    一.Makefile的基本规则 GNU make 规则: target ... : prerequisites ...     command     ....     .... target - 目 ...

  4. Linux-0.11内核源代码分析系列:内存管理get_free_page()函数分析

    Linux-0.11内存管理模块是源码中比較难以理解的部分,如今把笔者个人的理解发表 先发Linux-0.11内核内存管理get_free_page()函数分析 有时间再写其它函数或者文件的:) /* ...

  5. arm交叉编译 扫盲贴

    ARM交叉编译工具链 为什么要用交叉编译器? 交叉编译通俗地讲就是在一种平台上编译出能运行在体系结构不同的另一种平台上的程序, 比如在PC平台(X86 CPU)上编译出能运行在以ARM为内核的CPU平 ...

  6. 关于GNU软件的版本号命名规则

    这里所说的版本号命名并非指“正式版”.“测试版”这种方式,而是在讨论版本编号的问题,例如Linux内核3.0以后的版本命名规则是3.A.B,A是内核的版本,B是安全补丁.那么对于一般的软件的版本号命名 ...

  7. GNU make简要介绍①指定变量、自动推导规则、清除工作目录过程文件

    Makefile简介 在执行make之前需要一个命名为Makefile的特殊文件来告诉make需要做些什么. 当使用 make 工具进行编译时,工程中以下几种文件在执行 make 时将会被编译 (重新 ...

  8. GNU make使用变量⑤变量的引用、定义等

    在 Makefile 中,变量是一个名字(像是 C 语言中的宏),代表一个文本字符串(变量的值).在 Makefile 的目标.依赖.命令中引用变量的地方,变量会被它的值所取代(与 C 语言中宏引用的 ...

  9. GNU C 内联汇编介绍

    GNU C 内联汇编介绍 简介 1.很早之前就听说 C 语言能够直接内嵌汇编指令.但是之前始终没有去详细了解过.最近由于某种需求,看到了相关的 C 语言代码.也就自然去简单的学习了一下如何在 C 代码 ...

随机推荐

  1. git学习第一课

     ##git管理工具学习(Windows7)###1.下载安装git安装包###2.注册github账号①github.com官网注册并创建项目用户名xiaqiubo项目名xiaoxia②复制http ...

  2. 简单的as3操作xml

    package { import flash.display.Sprite; import flash.events.Event; import flash.net.URLLoader; import ...

  3. C# 枚举显示中文

    转自:http://www.cnblogs.com/yank/archive/2011/09/08/EnumDisplayInChinese.html   using System; using Sy ...

  4. 再看.net本质(二)

    3.[HTTP协议]  当浏览器寻找到Web服务器的地址之后,浏览器将帮助我们把对服务器的请求转换为一系列参数发送给Web服务器.服务器收到浏览器的请求对数之后,将会分析这些数据并进行处理,然后向浏览 ...

  5. HTML5-新API选择器

    新的选择器document.querySelector("selector");selector:根据CSS选择器返回第一个匹配到的元素,如果没有匹配到,则返回null;支持: C ...

  6. 【ILSpy反编译】C# 写的程序反编译查看是不是也太容易了点吧,太恐怖了。。。

    最近由于要写一些界面的东西,写了几个月c#(之前一直做c/c++项目),发现c#写界面很方便,效果也不错,在这个过程中也听说c#程序可以很容易被反编译到,但一直也没时间去自己反编译去试着看看,心想就算 ...

  7. C# 正则表达式及常用正则表达式

    元字符 描述 .点 匹配任何单个字符.例如正则表达式r.t匹配这些字符串:rat.rut.r t,但是不匹配root. $ 匹配行结束符.例如正则表达式weasel$ 能够匹配字符串"He' ...

  8. SQL更新表的字段

    Oracle: alter table CAPIAGENTLOG modify(clientcode nvarchar2()) SQL Server: alter table CAPIAGENTLOG ...

  9. git备忘(长久更新)

    一直想了解一下git,正好最近的有一个问题就是,实验室写的代码,怎么同步到自己宿舍的笔记本上面来.最开始想用dropbox,但是用VS的人都知道,工程文件里面会给你生成乱七八糟的很多东西,很占空间,d ...

  10. Min Stack [LeetCode 155]

    1- 问题描述 Design a stack that supports push, pop, top, and retrieving the minimum element in constant ...