MyDevLife (257) 썸네일형 리스트형 16. Recipe - Variable Recipe 는 앞서 "Rule 의 구성" 에서 살펴본 바와 같이 선행조건이 만족될 때 수행될 명령이며 보통 한줄씩 실행되는 쉘 명령 라인들로 이루어진다. Syntax 변수를 사용시에는 ${변수명}, 혹은 $(변수명) 을 사용할 수 있다. for 루프를 사용시 item 변수는 $$ 를 사용해야 한다. 15. Recipe - BACK SLASH Recipe 는 앞서 05. Rule 의 구성 에서 살펴본 바와 같이 선행조건이 만족될 때 수행될 명령이며 보통 한줄씩 실행되는 쉘 명령 라인들로 이루어진다. Syntax 백슬러시 기호를 사용하면 하나의 쉘 명령 라인을 여러 라인으로 분할 할수 있다. ( Continuation ) 예를 들어 아래의 경우 두줄에 걸친 쉘 명령 라인이 echo continuation line 와 같이 하나의 쉘 명령 라인으로 인식된다. ( 마지막 서브라인만 제외하고 모든 라인의 마지막에다 역슬래쉬를 사용해야 한다.) 14. Recipe - TAB Recipe 는 앞서 "Rule 의 구성" 에서 살펴본 바와 같이 선행조건이 만족될 때 수행될 명령이며 보통 한줄씩 실행되는 쉘 명령 라인들로 이루어진다. Syntax 개행시 TAB 문자로 시작하며 (개행 없을시 ; 로 구분) 하며 Shell 의 문법을 따른다. makefile 실행시 다른 경우를 지정하지 않았다면 항상 '/bin/sh' 에 의해 해석된다. 빈 라인들도 Command 의 사이에 올 수 있으며 빈 라인들의 경우도 Tab 으로 시작하면 Empty Commands 로 해석된다. Comment 들도 Command 사이에 올 수 있으며 Shell 에 그대로 전달된다. 변수 정의시에도 tab 문자가 들어가면 변수가 아닌 command 로 해석된다. 13. define define Variable 설정시 일반 할당에서의 값은 개행을 가지지 못한다. 그러나 define 지시어(directive)는 안의 값들의 라인을 나누는 개행들은 그 변수의 값이 된다 즉 아래와 같이 define 지시어 를 사용해서 변수 값을 할당하게 되면 define test = echo foo echo $(bar) endef 이는 기능적으로 아래와 동일하다. test = echo foo; echo $(bar) 즉 각 라인별로 쉘을 호출하게 된다. 12. include include include 지시어(directive) 는 make가 현재 makefile을 읽는 것을 잠시 중단하고 계속하기 전에 하나 이상의 다른 makefile 들을 읽도록 한다. 11. Empty Target .PHONY 의 변종으로 Empty Target 라는 것이 있다. 이를 위해 touch 명령으로 파일을 항상 최신으로 만들어서 파일이 존재하더라도 Command 가 항상 실행되도록 만든다. 10. Target Without Recipe And Prerequiste .PHONY 의 변종으로 Empty Recipe 라는 것이 있다. Target 에 Recipe 와 Prerequiste 들이 존재하지 않는 파일이라면 make는 이 Target 을 Rule 이 실행될 때마다 업데이트되어야 할 것으로 생각한다. 그래서 결과적으로 이것에 종속적인 모든 Target 들의 Shell Command 는 항상 실행된다. 결국 위와 사용되며 일반적으로 .PHONEY 와 별반 다를게 없이 동작한다. 09. Phony Target Phony Targets Make 유틸리티는 Target 이 있는 경우 Target 이 업데이트 되었는지 확인하고 업데이트 되지 않은 경우 Target 을 만들지 않는다. Target 이 실행파일이 아니라고 make 유틸리티에 알려주어야 하는 경우가 몇 개 있는데 이때 사용하는 문법이 Phony Target 이다. 대표적으로 아래와 같은 목적으로 사용된다. 특정 명령을 조건 없이 수행하기 위하여 사용 clean 명령과 같이 항상 실행되어야 하는 명령이 있는 경우 clean 이라는 파일이 있다면 실제 clean 이 일어나지 않을수 도 있다. 이런 경우 Phony Target 이라는 문법을 통해 Target 이 실행파일이 아님을 알려주어 항상 clean 이 일어나게 한다. 퍼포먼스 개선을 위해 사용 두번째로.. 이전 1 ··· 14 15 16 17 18 19 20 ··· 33 다음