make에 명령행 파라미터값으로 컴파일시 조건 분기를 하고 싶습니다.

rma8806의 이미지

make에 명령행 파라미터값으로 컴파일시 조건 분기를 하고 싶습니다.

만약 xxx.c에

#ifdef COMPILE_OPTION

...

#endif

다음과 같은 구문이 있다고 하면

maxk xxx라고 하면 COMPILE_OPTION이 정의 되어서 해당 ifdef~endif구문이 컴파일 되고, 그냥 make만 했을 경우에는 해당 해당 구문이 컴파일 되지 않도록 하고 싶은데... 방법이 있을까요?

hys545의 이미지

http://www.hanbit.co.kr/network/view.html?bi_id=351
처럼

gcc $(CFLAG) xxx
이런 식으로 Makefile안에 만들어 놓고

make CFLAG=-Dxx
하면 저 부분이 컴파일 되고]
그냥 하면 안되고

그런데 소스 파일이 안바뀌면 재컴파일이 안되서
한번 옵션 안주고 컴파일한거 나중에 옵션 주고 컴파일해도 바뀐게 업다라고해서 컴파일이 안될수도 있습니다
touch xxx로 수정시간은 바꾸어주아야 할수도

즐린

익명 사용자의 이미지

DEF = -DCOMPILE_OPTION

일반 make 시:
g++ -o 등등 옵션

xxx:
g++ -o 등등 옵션 $(DEF)

이런식으로 하면 될 것 같은데요..
make 랑 make xxx

익명 사용자의 이미지

삭제가 안되네요 댓글을 안보고 달아서.. 위 내용과 동일합니다.

ktd2004의 이미지

cmake 같은 걸 한번 사용해 보시면 어떨까요???

rma8806의 이미지

배우고 갑니다. 감사합니다. ㅎㅎ