/*
 * Program to make verdep.h
 
   Owner:
   Lei Jin(leijin)
   
   Borrowed from Access team.(Andrew)
 */
#pragma hdrstop
#include <time.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "windows.h"

main()
	{
	// need to collect the current date, the version number, the version
	// type, and the volume label.
	struct tm *tmTime;
	char szVersNum[120];
	char szbuf[256];
	char *szMakeType, *szUserName;
	time_t tt;

	static char *szMonth[] =
		{
		"January",
		"February",
		"March",
		"April",
		"May",
		"June",
		"July",
		"August",
		"September",
		"October",
		"November",
		"December"
		};


	// Get the time
	time(&tt);
	tmTime = localtime(&tt);
  

	// Get the types from environment
	szMakeType = getenv("MAKETYPE");

	if (!szMakeType)
		szMakeType = "Unknown";


	// Get the user name
	szUserName = getenv("USERNAME");

	if (!szUserName)
		{
		//unsigned long dw;

		if (!GetVolumeInformation(NULL, szbuf, 255, NULL, NULL, NULL, NULL, 0))
			szUserName = "NOBODY";
		else
			szUserName = szbuf;
		}

	// Get the version number from stdin
	//gets(szVersNum);
	sprintf(szVersNum, "2");	
	

	printf("#define vszMakeDate\t\"%s %d, 19%d\"\n", szMonth[tmTime->tm_mon], tmTime->tm_mday, tmTime->tm_year);
	printf("#define vszMakeVers\t\"Version %s - %s - %s\"\n", szVersNum, szMakeType, szUserName);
	printf("#define vszVersNum\t\"%s\"\n", szVersNum, szMakeType);
	printf("#define vszCopyright\t\"Copyright \251 1996 Microsoft Corp.\"\n");
	printf("#define vszVersName\t\"%s (%s)\"\n", szUserName, szMakeType);
	printf("#define vszMakeSerial\t\"%02d-%02d-%02d-%02d%02d%02d\"\n", tmTime->tm_mon + 1, tmTime->tm_mday, tmTime->tm_year, 
		tmTime->tm_hour, tmTime->tm_min, tmTime->tm_sec);
	printf("#define vszDenaliVersion\t%s.%02d.%02d.0\n", szVersNum, (tmTime->tm_year - 96)*12 + tmTime->tm_mon + 1, tmTime->tm_mday);
	printf("#define vszDenaliVersionNULL\t\"%s.%02d.%02d.0\\0\"\n", szVersNum, (tmTime->tm_year - 96)*12 + tmTime->tm_mon + 1, tmTime->tm_mday);
	
	// the following block is for the version stamp resource
	{
	#include <string.h>
	char *sz;
	// major
	if(sz = strtok(szVersNum, ".\n \t"))
		printf("#define rmj\t\t%0u\n", atoi(sz));
	// minor
	if(sz = strtok(NULL, ".\n \t"))
		printf("#define rmm\t\t%01u\n", atoi(sz));
	else
		printf("#define rmm\t\t0\n");
	// release
	if(sz = strtok(NULL, ""))
		printf("#define rup\t\t%0u\n", atoi(sz));
	else
		printf("#define rup\t\t0\n");
	}

	return 0;
	}