zoukankan      html  css  js  c++  java
  • GNU make manual 翻译( 一百零八)

    继续翻译

    `.SECONDARY'
         The targets which `.SECONDARY' depends on are treated as
         intermediate files, except that they are never automatically
         deleted.  *Note Chains of Implicit Rules: Chained Rules.
    
         `.SECONDARY' with no prerequisites causes all targets to be treated
         as secondary (i.e., no target is removed because it is considered
         intermediate).
    
    `.SECONDEXPANSION'
         If `.SECONDEXPANSION' is mentioned as a target anywhere in the
         makefile, then all prerequisite lists defined _after_ it appears
         will be expanded a second time after all makefiles have been read
         in.  *Note Secondary Expansion: Secondary Expansion.
    
    `.DELETE_ON_ERROR'
         If `.DELETE_ON_ERROR' is mentioned as a target anywhere in the
         makefile, then `make' will delete the target of a rule if it has
         changed and its recipe exits with a nonzero exit status, just as it
         does when it receives a signal.  *Note Errors in Recipes: Errors.
    
    `.IGNORE'
         If you specify prerequisites for `.IGNORE', then `make' will
         ignore errors in execution of the recipe for those particular
         files.  The recipe for `.IGNORE' (if any) is ignored.
    
         If mentioned as a target with no prerequisites, `.IGNORE' says to
         ignore errors in execution of recipes for all files.  This usage of
         `.IGNORE' is supported only for historical compatibility.  Since
         this affects every recipe in the makefile, it is not very useful;
         we recommend you use the more selective ways to ignore errors in
         specific recipes.  *Note Errors in Recipes: Errors.

    .SECONDARY 依赖的目的被认为是中间文件。除了那些永远不会自动删除的。

    *Note Chains of Implicit Rules: Chained Rules.

    没有前提条件的.SECONDARY 导致所有的目的都被当成 从属的(没有目的会被删除,因为它被认为是中间文件)。

    *此处我插一句,这里的说明是非常错误的。我认为正确的说法应当是:中间文件一般会被删除,但是标记为 .SECONDARY 的中间文件不会被删除*

    .SECONDEXPANSION

    如果 .SECONDEXPANSION 作为一个目的被声明在makefile 的某处,那么所有的在此之后的定义的前提条件将在所有 makefile 被读取后,扩展两次。

    *Note Secondary Expansion: Secondary Expansion

    如果 DELETE_ON_ERRORS 作为一个目的在makefile中的任何一个地方被提及,make 将要删除一个规则的目的,如果它在规则中变化了并且此规则的片段返回一个非零值,就和它接收到了一个信号时的行为一样。 *Note Errors in Recipes: Errors.

    `.IGNORE'
    如果你为 .IGNORE 指定前提条件,那么 make 将要在执行片段的过程中忽略错误。.IGNORE 的片段被忽略。

    If mentioned as a target with no prerequisites, `.IGNORE' says to
    ignore errors in execution of recipes for all files. This usage of
    `.IGNORE' is supported only for historical compatibility. Since
    this affects every recipe in the makefile, it is not very useful;
    we recommend you use the more selective ways to ignore errors in
    specific recipes. *Note Errors in Recipes: Errors.

    当 .IGNORE 中没有前提条件的时候,表示为所有文件,忽略片段执行中的错误。这种用法知识为了支持对旧有版本的兼容性而设。由于这影响到makefile中的所有片段,它不是很有用;我们建议你采用更加有选择性的方式来忽略特定片段中的错误。 *Note Errors in Recipes: Errors.

    后文待续

  • 相关阅读:
    hdu5360 Hiking(水题)
    hdu5348 MZL's endless loop(欧拉回路)
    hdu5351 MZL's Border(规律题,java)
    hdu5347 MZL's chemistry(打表)
    hdu5344 MZL's xor(水题)
    hdu5338 ZZX and Permutations(贪心、线段树)
    hdu 5325 Crazy Bobo (树形dp)
    hdu5323 Solve this interesting problem(爆搜)
    hdu5322 Hope(dp)
    Lightoj1009 Back to Underworld(带权并查集)
  • 原文地址:https://www.cnblogs.com/gaojian/p/2697070.html
Copyright © 2011-2022 走看看