리눅스라면 셸 스크립트로 우주선도 쏠 수 있겠지만서도..
도스에서도 배치파일로 별걸 다 할 수 있다.
아래 배치파일은 오늘날짜, 현재시간, 빌드횟수를 헤더파일로 만들어준다.
임베디드 개발시 사용하는 IDE 의 프리빌드에 넣은 후 헤더로 사용하면 된다.
version.bat
for /f "tokens=1,2,3* delims=- " %%i in ('date/t') do set my_date=%%i%%j%%k
for /f "tokens=1 delims= " %%i in ('time/t') do set my_time1=%%i
for /f "tokens=2 delims=: " %%i in ('time/t') do set my_hour=%%i
for /f "tokens=3 delims=: " %%i in ('time/t') do set my_min=%%i
set my_time2=12
if %my_time1%==오전 set my_time2=0
set /a my_time=my_hour+my_time2
set my_time=%my_hour%%my_min%
for /f "tokens=1 delims=" %%i in ('type build_no.dat') do set /a build_no=%%i
if build_no==0 echo 0 > build_no.dat
set /a build_no=build_no+1
echo #define BUILD_DATE %my_date% > build_data.h
echo #define BUILD_TIME %my_time% >> build_data.h
echo #define BUILD_NO %build_no% >> build_data.h
echo %build_no% > build_no.dat
결과물은..
#define BUILD_DATE 20090723
#define BUILD_TIME 1040
#define BUILD_NO 2
BUILD_NO 은 빌드시마다 증가한다.
문자열 상수로 쓰지 않은 이유는 32비트값으로 바로 쌔리기 위함
정말 셸답게 쓰고 싶다면 시그윈을 깔지말고.
야후 위젯을 깔아서 필요한 유틸만 복사하는 편이 라이트하다.
참고 :
컴파일러 지원 내장 매크로 상수를 쓸 수도 있지만. 여기서는 BUILD_NO에 유의...
IAR 지원 __BUILD_NO__는 유니크 상수이며 증가 상수는 아니다.