//*
//*******************************************************************************
//*
//*   Copyright (C) 2003, International Business Machines
//*   Corporation and others.  All Rights Reserved.
//*
//*******************************************************************************
//*   file name:  Readme.txt
//*  


			REAME


Pre-requisities
===============
o ICU 2.4 build
o VC++ 6 with Service Pack 2


Building gendlml
================
o Open a command window

o enter the following commands
c:\>  set ICU_ROOT=<absolute path to ICU directory>
c:\>  set PATH=%PATH%;<absolute path to ICU directory>\bin

o Launch Microsoft Development studio from the command window so that it inherits the environment
c:\> msdev

o Open genldml.dsw

o Select Build > Rebuild All  