GNU make manual 번역

5001 단어 Make
계속 번역
4.10 Multiple Targets in a Rule

===============================



A rule with multiple targets is equivalent to writing many rules, each

with one target, and all identical aside from that.  The same recipe

applies to all the targets, but its effect may vary because you can

substitute the actual target name into the recipe using `$@'.  The rule

contributes the same prerequisites to all the targets also.



   This is useful in two cases.



   * You want just prerequisites, no recipe.  For example:



          kbd.o command.o files.o: command.h



     gives an additional prerequisite to each of the three object files

     mentioned.



   * Similar recipes work for all the targets.  The recipes do not need

     to be absolutely identical, since the automatic variable `$@' can

     be used to substitute the particular target to be remade into the

     commands (*note Automatic Variables::).  For example:



          bigoutput littleoutput : text.g

                  generate text.g -$(subst output,,$@) > $@

     

     is equivalent to



          bigoutput : text.g

                  generate text.g -big > bigoutput

          littleoutput : text.g

                  generate text.g -little > littleoutput



     Here we assume the hypothetical program `generate' makes two types

     of output, one if given `-big' and one if given `-little'.  *Note

     Functions for String Substitution and Analysis: Text Functions,

     for an explanation of the `subst' function.



   Suppose you would like to vary the prerequisites according to the

target, much as the variable `$@' allows you to vary the recipe.  You

cannot do this with multiple targets in an ordinary rule, but you can

do it with a "static pattern rule".  *Note Static Pattern Rules: Static

Pattern.

4.10 규칙의 여러 목적 ==============================
여러 개의 규칙을 쓰고 각 규칙이 하나의 목적을 가진 방법과 비교하면 여러 개의 목적을 가진 규칙이 더욱 편리하다.같은 부분은 모든 목적에 작용하지만, 그 작용 범위는 변화할 수 있다. 왜냐하면 세션에서 $@를 통해 세기의 목적 이름을 바꿀 수 있기 때문이다.규칙도 같은 전제조건을 모든 목적에 작용시킬 수 있다.
이것은 두 가지 상황에서 유용하다.
*당신은 전제조건만 필요하고 단편은 필요하지 않습니다.예:
kdo.o command.o files.o: command.h
이 세 개의 목표 파일에 대해 별도의 전제 조건을 제시했다.
* 모든 목적을 위해 작업하는 동일한 부분입니다.세션은 절대 고유할 필요가 없습니다. 자동 변수 $@ 는 특정한 목적을 대체하여 명령을 다시 설정할 수 있기 때문입니다(*note Automatic Variables::).
bigoutput littleoutput : text.g   generate text.g -$(subst output,, $@) > $@ 등가:
bigoutput : text.g   generate text.g -big > bigoutput
littleoutput : text.g   generate text.g -little > littleoutput
이 책에서 우리는 가상의 프로그램generate가 두 가지 유형의 출력을 생성한다고 가정한다. 하나는 빅 옵션을 제시할 때이고, 하나는 리틀 옵션을 제시할 때이다.*Note Functions for String Substitution and Analysis: Text Functions에서subst 함수에 대한 설명을 참조할 수 있습니다.
네가 목적을 위해 전제조건을 바꿀 것이라고 생각해 봐라.$@ 변수로 세션을 변경하는 것처럼;너는 일반적인 여러 가지 목적을 가진 규칙에서는 달성할 수 없지만, 정적 패턴 규칙으로 이 점을 할 수 있다. *Note Static Pattern Rules: Static Pattern.
후문이 계속되다

좋은 웹페이지 즐겨찾기