makefile로 구현할때.. 전달인자를 main에 주는 방법이 어떻게

shean0의 이미지

움.. 지금까지.. 이럴 필요가 없었는데..
컴파일시.. 옵션으로 debug level를 조절하려구 합니다...

이와 같은 일을 한다고 생각하니..
기본적으로
makefile로 구현할때.. 전달인자를 main에 주는 방법이 어떻게 되는지요?
이것이 고민이 되는데요...

조언 부탁드립니다.

see2002의 이미지

여러가지 방법이 있을 수 있겠지만...
gcc같은 컴파일러로 컴파일 할때, -D 옵션(define)을 주면 됩니다. 예를 들면 Makefile에,

 DEBUG_LEVEL = -DLEVEL9
... 생략 ...
    gcc -c $(DEBUG_LEVEL) 소스코드이름.c 

make 실행하면, 그 소스코드내에 #define LEVEL9 과 같은 효과를 냅니다.
이렇게 해서 디버그 레벨을 조절하실 수 있습니다. 물론 디버그 레벨의 실제 구현은 직접 작성하셔야 겠죠.
또한 빌드 시, make DEBUG_LEVEL="-DLEVEL9" all 이렇게 해서, 명시적으로 선언할 수도 있겠죠.