IT TIP

make : 규칙 호출 규칙

itqueen 2020. 11. 26. 20:36
반응형

make : 규칙 호출 규칙


메이크 파일에서 다른 규칙의 규칙을 호출 할 수 있습니까?

비슷하다:

rule1:
        echo "bye"
rule2:
        date
rule3:
        @echo "hello"
        rule1

한 규칙에서 다른 규칙으로 연결하기 위해 종속성 또는 재귀 작성을 사용하십시오.

종속성은 다음과 같이 수행됩니다 (순서는 다를 수 있음).

rule1:
        echo "bye"
rule2:
        date
rule3: rule1
        @echo "hello"

재귀 적 작성은 다음과 같이 수행됩니다 (하위 프로세스를 포함하지만) :

rule1:
        echo "bye"
rule2:
        date
rule3:
        @echo "hello"
        $(MAKE) rule1

둘 다 완벽하지 않습니다. 실제로 재귀 make를 사용하면 루프를 만들면 심각한 문제가 발생할 수 있습니다. 또한 .PHONY위의 규칙을 합성으로 표시하기 위해 규칙 을 추가해야 할 수도 있습니다. 그래야 rule1디렉토리 의 이탈 (등)이 혼동을 일으키지 않습니다.


원하는 순서로 새 규칙을 추가하기 만하면됩니다.

rule1:
        echo "bye"
rule2:
        date
rule3:
        @echo "hello"

rule4: rule3 rule1

Makefile은 절차 적이 지 않습니다. "규칙"은 기능과 다릅니다. 즉, 한 규칙이 다른 규칙의 전제 조건임을 지정할 수 있습니다.

rule1:
    @echo "Rule 1"

rule2: rule1
    @echo "Rule 2"

하면 다음이 make rule2표시됩니다.

Rule 1
Rule 2

GNU Make에는이를 수행 할 수있는 두 가지 고급 기능이 있습니다. 비록 정상 참작이 가능한 경우에만 사용해야합니다. 이 SO는 Google에서 최고 등급입니다.

규칙 전제 조건이 더 권장되지만 때로는 사후 요구 사항이 필요합니다.

GNU Make Call 기능

GNU Make Eval 기능

기본적으로 Eval을 사용하면 즉시 대상을 구축 할 수 있고 Call을 사용하면 "정의"와 같은 기능을 만들 수 있습니다.

참고 URL : https://stackoverflow.com/questions/8646688/make-rule-call-rule

반응형