Category Archives: make

[make] Makefile 에서 shell command 실행

Makefile 내에서 shell 명령어를 수행하고 싶을 때가 종종 생긴다.

그럴 때 요긴하게 사용할 수 있는 방법이다.

위 예제에 보면 info 라는 make function이 나온다.

info 외에 warning, error 라는 function도 있다.

 

[make] make 수행 명령 (-n, –just-print, -j) / cat -v -t -e

make를 사용할 때 요긴한(? ) 옵션들이 있다. (계속 추가 예정)

make -n <target>  실제 명령을 수행하지는 않고, 실행할 명령어들을 print 한다. (–just-print 도 마찬가지)

make -j<n> <target> # n = 1,2,3,...,n  -j는 multiprocessing option 이다. 여러 개의 cpu를 사용한다. 적절하게 사용하면 빠르다.

 

cat -v -e -t <makefile>  사용하고 있는 makefile의 공백과 tap을 구분해서 확인 할 수 있다.  (^I , $ 등으로 구분자로 확인 가능)

[make] Makefile Color Setup

make 를 사용할 때, 중간 중간의 메시지에 color를 넣어서 가독성을 높이기 위해서 사용된다.

두 가지 방법이 있는데..

첫 번째는 sed를 이용해서 make 동작 중에 pipe(|)사용하여 바꾸는 방법이 있고, 두 번째는 Makefile 안에 echo 항목에 color를 넣는 방법이 있다. 둘을 적절하게 사용하면 원하는 화면을 얻을 수 있을 것이다.

아래는 make 에서 활용할 수 있는 color를 variable에 담은 것이다.

이들을 적절하게 섞어서 사용하는 것이다.

물론, 더 많은 색상을 사용할 수 있다. (참고, http://misc.flogisoft.com/bash/tip_colors_and_formatting)

사용 법은 아래와 같다.
예를 들어, 노란색 배경에 파란색 글씨를 넣고, 이를 깜빡이게 하고 싶다면,
C_EXAM = ${CL_BLINK}${BG_YELLOW}${FG_BLUE}
와 같이 C_EXAM을 지정하고, 아래와 같이 사용하면 된다.

 

다음으로는 sed를 활용한 방법을 알아보자,

$ make <target> | sed -e <치환>  요렇게 해주면 되는데 예제를 보면 간단하다. 물론, sed를 잘 사용한다면 더 좋을 것 같긴하다.

필자는 make 안에서 make를 호출할 때 sed를 사용한다.

예제는 아래와 같다.