继续翻译
复制代码
It's important to understand this two-phase approach because it has a direct impact on how variable and function expansion happens; this is often a source of some confusion when writing makefiles.  Here we will present a summary of the phases in which expansion happens for different  constructs within the makefile.  We say that expansion is "immediate"if it happens during the first phase: in this case `make' will expand any variables or functions in that section of a construct as the
makefile is parsed.  We say that expansion is "deferred" if expansion is not performed immediately.  Expansion of a deferred construct is not performed until either the construct appears later in an immediate context, or until the second phase.
You may not be familiar with some of these constructs yet.  You can reference this section as you become familiar with them, in later                        
chapters.                        
复制代码
理解这两个阶段,是十分重要的,因为它对变量和函数如何展开有直接的影响。这常常是写makefile时造成困扰的源头。这里我们将要对这两个阶段给出一个关于扩展(变量和函数)的总结。
我们说,在第一阶段,扩展是立即发生的:在这种情形下,make分析makefile时,在构建的时候, 要展开所有变量和函数。我们说如果扩展不是立即执行,那么这种扩展将被推迟。
对一个推迟性的构造,扩展不会发生,直到此构造出现在一个立即性的上下文中的时候,或者直到第二个阶段。
也许你还太熟悉某些构造。你可以在后面的章节中,后来参照此节。
后文待续
本文转自健哥的数据花园博客园博客,原文链接:http://www.cnblogs.com/gaojian/archive/2012/09/17/2688319.html,如需转载请自行联系原作者

GNU make manual 翻译(五十七)相关推荐

  1. GNU make manual 翻译(五十一)

    继续翻译 复制代码 When you use the `-t' or `--touch' option (*note Instead of  Executing Recipes: Instead of ...

  2. GNU make manual 翻译(五十八)

    继续翻译 Variable Assignment ------------------- Variable definitions are parsed as follows: IMMEDIATE = ...

  3. GNU make manual 翻译(八十七)

    继续翻译 4.5 Searching Directories for Prerequisites =========================================== For lar ...

  4. GNU make manual 翻译( 一百五十五)

    继续翻译 6.2 The Two Flavors of Variables ================================There are two ways that a vari ...

  5. GNU make manual 翻译( 一百五十四)

    继续翻译 6.1 Basics of Variable References =================================To substitute a variable's v ...

  6. GNU make manual 翻译( 一百五十九)

    继续翻译 A computed variable name need not consist entirely of a single variable reference. It can conta ...

  7. GNU make manual 翻译( 一百七十五)

    继续翻译 `.DEFAULT_GOAL' Sets the default goal to be used if no targets were specified onthe command lin ...

  8. GNU make manual 翻译(一)

    当分析PostgreSQL 的源代码的时候,经常遇到 Makefile, 读不懂其中的语句,很是令人烦恼.最近准备静下心来,好好地阅读. 为了达到这一目的,进行一次翻译. 复制代码 1 Overvie ...

  9. GNU make manual 翻译( 一百四十九)

    继续翻译 5.7.4 The `--print-directory' Option ------------------------------------If you use several lev ...

最新文章

  1. Oracle批量导出AWR报告
  2. (chap6 Http首部) 响应首部字段 AllowCt-EncodingCt-LanguageCt-LengthCt-Location
  3. TaskIcon 系统任务栏图标
  4. c语言构造体二维数组,怎么才能把结构体里面的二维数组打印出来?
  5. 前端学习(2110):组件化得开发和实现步骤
  6. 一年工作经验的java面试题
  7. 怎么下载小程序图片 ?
  8. js禁止中文输入 最简洁的【禁止输入中文】
  9. 【CSS】flex布局平分三等分中间间距相等且两端对齐
  10. 一步一步学Silverlight 2系列(30):使用Transform实现更炫的效果(下)
  11. 免费登陆百度搜索引擎
  12. iOS 9-iPhone6s-iPadmini4企业证书信任
  13. 性能测试流程-性能测试2
  14. 开环放大倍数和闭环放大倍数的区别
  15. enq: PS - contention
  16. 商品详细信息的代码html_实操分享:如何将商品优惠券,添加到淘宝详情页?...
  17. python实现寻找最长回文子串
  18. 强大的海思Hi3531D 4K编码器评测(ENC2,ENC5多路推流编解码一体机)
  19. 什么是麒麟(kylin)?查数据贼快的哟
  20. MVS学习(一):综述论文阅读记录

热门文章

  1. vue 用户拖拽窗口大小_VUE实战1:鼠标拖放改变窗口大小,后台管理界面
  2. LeetCode 7 反转整数
  3. RxSwift设置 UITextField文本订阅未响应
  4. android组件化开发视频教程,教你打造一个Android组件化开发框架
  5. Selenium-switch_to_window出现删除线
  6. 第四章 数据库和SQL 4-3 数据的更新(UPDATE语句的使用方法)
  7. 关系数据库标准语言 SQL (ch.3)
  8. (笔记)电路设计(三)之0欧姆电阻、磁珠、电感的应用
  9. 设置IIS缓存的方法
  10. 解决“The type initializer for‘Oracle.DataAccess.Client.OracleConnection‘ threw an exception ”异常