'makefile'에 해당되는 글 2건

  1. 2013.12.30 [Makefile] 다른 makefile 포함
  2. 2012.10.19 [Makefile] if 문 사용하여 파일 존재 여부 확인

출처: gnu doc for Makefile

 

makefile에서 다른 makefile을 include하고자 할 때는 다음과 같이 한다.

include filename

 

위와 같이 하면, 현재 makefile을 읽는 걸 중단하고, 상기의 filename에 대한 읽기를 진행한다. 포함된 file에 대한 읽기가 끝나면 다시 현재 makefile에 대해 진행한다. 

만약 상기 파일이 /로 시작하지 않거나 현재 디렉터리에 존재하지 않다면 다음과 같은 순서로 찾는다.

 

1. '-I' 혹은 '--include_dir'로 정의된 디렉터리

2. prefix/include('/usr/local/include') '/usr/gnu/include', '/usr/local/include', '/usr/include' 순서로 찾는다.

 

만약 위와 같이 해도 못 찾는다고 해서, 곧바로 에러를 내지는 않는다.(경고 메세지는 나온다.)  우선 현재 makefile에 대한 모든 진행을 맞추고, make는 현재 out-of-date 혹은 아직 존재하지 않는 파일에 대해 진행을 시도한다.  여기서도 만약 실패한다면, 에러가 난다.

 

만약 이런 에러를 피해, 있으면 좋구 없으면 에러내지 말라 라고 하고 싶다면, '-include'를 사용하라.

 

한개 이상의 makefile을 포함하고자 할 때는 다음과 같은 형식으로도 가능하다.

include foo *.mk $(bar)

 

보통 언제 include를 쓰면 좋으냐면,

1. 여러 directory에 makefile들이 존재하고, 공용 variable에 대한 사용을 하고자 할 때

2. 소스 파일로부터의 dependencies를 자동으로 생성코자 할 때.

 

할 때 사용하면 좋다.

 

Posted by code cat

Makefile에서 가끔 파일의 존재 여부를 보고 선행 작업을 해줘야 할 때가 있다. 그럴 때는 다음의 간단한 예제를 보고 응용하자.

  (예제를 위한 거니 밑에처럼 하지는 말자...)


Posted by code cat