zoukankan      html  css  js  c++  java
  • GNU make manual 翻译( 一百三十四)

    继续翻译

    5.3.1 Using One Shell
    ---------------------
    
    Sometimes you would prefer that all the lines in the recipe be passed
    to a single invocation of the shell.  There are generally two
    situations where this is useful: first, it can improve performance in
    makefiles where recipes consist of many command lines, by avoiding
    extra processes.  Second, you might want newlines to be included in
    your recipe command (for example perhaps you are using a very different
    interpreter as your `SHELL').  If the `.ONESHELL' special target
    appears anywhere in the makefile then _all_ recipe lines for each
    target will be provided to a single invocation of the shell.  Newlines
    between recipe lines will be preserved.  For example:
    
         .ONESHELL:
         foo : bar/lose
                 cd $(@D)
                 gobble $(@F) > ../$@
    
    would now work as expected even though the commands are on different
    recipe lines.

    5.3.1 使用 One Shell
    ---------------------

    有些时候可能想要一个片段的所有行都被传递给shell的一次激活。在两种情况下,这是有用的: 

    首先,当片段由很多命令行组成的时候,它能够避免额外的处理以提高性能。

    第二,你可能想要在片段中包含新的行 (例如你可能正在使用一个非常不一样的解释器来作为你的shell)。

    如果特殊目的 .ONESHELL 出现在makefile的任何地方,每一个目的的所有行都会被一个单独的shell 激活所处理。片段之间的新行被保留。例如:

    .ONESHELL:

    foo : bar/lose
    cd $(@D)
    gobble $(@F) > ../$@

    将会按照预想的方式来工作,哪怕是他们在不同的行。

    后文待续

  • 相关阅读:
    bzoj3473 字符串
    洛谷P4070 生成魔咒
    洛谷P3975 弦论
    AT1219 歴史の研究
    课上讲的几个新的技巧
    索引与视图(转载)
    oracle中的分支与循环语句
    Oracle to_date()函数的用法《转载》
    自定义函数的存储过程的区别
    UNION 和 UNION ALL 操作符
  • 原文地址:https://www.cnblogs.com/gaojian/p/2707016.html
Copyright © 2011-2022 走看看