makefile 에서 compile time

macmac83638의 이미지

안녕하세요

windows 에서 gnumake 를 이용하여 개발을 하고 있는데
현재 컴파일 되는 날짜와 시간을 자동으로 코드에 넣고 싶은데
makefile을 통해야 할 것 같아서..

makefile에서 dos command를 이용하여 날짜와
시간을 얻어와서 그 변수를 c 파일에서 쓰고 싶습니다.

가능한건지요..

doldori의 이미지

C 소스에서 __DATE__와 __TIME__의 predefined macro를 쓰면 됩니다.
printf("%s, %s\n", __DATE__, __TIME__);

ktd2004의 이미지

만약 time.c 파일에 __DATE__, __FILE__을 사용했을때
make를 이용해서 컴파일하게 되면
time.c 파일이 일주일동안 수정사항이 없을때, 계속해서 일주일전의 time.o object 파일로 링크가 걸리지 않나요.

계속 날짜는 일주일 전의 날짜로..

그렇다고 "make clean all"로 build한다는 건 make에 어울리지 않고요..

리눅스에서 쉘스크립트나 make를 사용하다가 윈도우에 왔을 때 어려운 점이 이런점인것 같군요...
배치파일이 리눅스 쉘처럼 좀 더 강력했으면 좋을 것 같습니다.

yeppiguy의 이미지

리눅스 환경에서는
CFLAGS += -DDATE=\"`date +'%y/%m/%d'`\"

이런식으로 추가해서 소스코드에
extern char DATE[];
이런 식으로 사용하시면 되는데, 물론 date 포맷은 원하는 형식으로 하시면 되구요...

dos환경이라면, cygwin환경을 말하나요?

답변이 될 지 모르겠지만,....참고하세요....^^