예를들어 pwd 명령을 실행한다고 하자.
하지만, Makefie에서는 DOS Batch파일처럼 바로 실행 되지 않는다.
Target을 지정하고 TAB을 띄워줘야만 명령이 진행된다.
위와 같이 해줘야만 Command창에 결과가 출력된다.
Command 명령을 내릴 때는 1. Target 과 2. Tab이 필요하다는 얘기.
그럼 타겟이 없을경우의 방법은...?
모른다 ㅡㅡ; 인터넷 뒤지고, 지인의 도움 받고.... 해서 찾아다닌 결과 다음과 같은 방법이 있다.
라고 하면 shell에서 pwd라고 내린 결과와 같은 역할을 한다.
즉 VAR에 현재 경로의 문자열이 저장이 된다.
하지만, 이 역시 문제가 될 수 있다.
VAR는 한번 문자열을 가지고 있는 것이 아니라.
VAR를 쓸 때마다 Shell 명령을 수행한다.
때문에, 속도저하의 문제가 발생한다.
이를 해결하기 위해
http://www.viper.pe.kr/docs/make-ko/make-ko_6.html#SEC58
위 페이지를 참고하면 대입참고에 대해 설명되어 있다.
위와 같이 = 앞에 ':'를 넣어주면 한번 내린 명령을 항상 저장하도록 한다.
즉, 매번 명령을 내리지 않고, 한번 얻은 결과값을 항상 가지고 처리하여 속도의 문제가 없다.
하지만, Makefie에서는 DOS Batch파일처럼 바로 실행 되지 않는다.
Target을 지정하고 TAB을 띄워줘야만 명령이 진행된다.
TARGET: echo 이것은 테스트입니다 |
위와 같이 해줘야만 Command창에 결과가 출력된다.
Command 명령을 내릴 때는 1. Target 과 2. Tab이 필요하다는 얘기.
그럼 타겟이 없을경우의 방법은...?
모른다 ㅡㅡ; 인터넷 뒤지고, 지인의 도움 받고.... 해서 찾아다닌 결과 다음과 같은 방법이 있다.
VAR = $(shell pwd) |
라고 하면 shell에서 pwd라고 내린 결과와 같은 역할을 한다.
즉 VAR에 현재 경로의 문자열이 저장이 된다.
하지만, 이 역시 문제가 될 수 있다.
VAR는 한번 문자열을 가지고 있는 것이 아니라.
VAR를 쓸 때마다 Shell 명령을 수행한다.
때문에, 속도저하의 문제가 발생한다.
이를 해결하기 위해
http://www.viper.pe.kr/docs/make-ko/make-ko_6.html#SEC58
위 페이지를 참고하면 대입참고에 대해 설명되어 있다.
VAR := $(shell pwd) |
위와 같이 = 앞에 ':'를 넣어주면 한번 내린 명령을 항상 저장하도록 한다.
즉, 매번 명령을 내리지 않고, 한번 얻은 결과값을 항상 가지고 처리하여 속도의 문제가 없다.
'Develop > Unix / Liux' 카테고리의 다른 글
Makefile 내에서 문자열 치환하기. (0) | 2007.09.08 |
---|---|
GNU Make 설명 (0) | 2007.09.06 |