blob: b84f7780329f296a7fce524d4a2c9f6e619f7dc3 [file] [log] [blame]
@echo off
rem makedata.bat
rem batch file for Windows for creating the ICU data files
rem parameter:
rem %1 path where the icu folder resides
if "%1"=="" goto :error
if "%ICU_DATA%"=="" set ICU_DATA=%1\icu\data\
rem toolversion: Debug or Release
set toolversion=Release
if not "%2"=="" set toolversion=%2
nmake /f makedata.mak icup=%1 cfg=%2 %3 %4
if not errorlevel 9009 goto :othererror
echo Build tools are not on path! Please make sure that MSVC++ is setup correctly!
goto :error
:othererror
if errorlevel 0 goto :end
echo Nmake has unsuccesfully finished with errorcode %errorlevel%!
goto :end
rem setup mkhelper to read ucmfiles.mk and ucmlocal.mk
set conv=mkhelper\%toolversion%\mkhelper -n UCM_SOURCE -n UCM_SOURCE_LOCAL makeconv\ucmfiles.mk makeconv\ucmlocal.mk
echo create conversion tables
rem delete preexisting files to prevent upper/lowercase file name problems
del "%ICU_DATA%*.cnv"
del "%ICU_DATA%*_cnv.c"
del *_cnv.obj
%conv% -p "$toolversion$\makeconv \"$ICU_DATA$" -s "\"">makeconv\mkcnvtmp.bat
cd makeconv
call mkcnvtmp.bat
echo create locale resource bundles
cd ..\genrb
call genrb %toolversion% %1
echo create binary collation tables
cd ..\gencol
%toolversion%\gencol
cd ..
echo create unames.dat and unames_dat.c from UnicodeData.txt
gennames\%toolversion%\gennames -v- -c- "%ICU_DATA%UnicodeData-3.0.0.txt"
genccode\%toolversion%\genccode "%ICU_DATA%unames.dat"
echo create cnvalias.dat and cnvalias_dat.c from convrtrs.txt
gencnval\%toolversion%\gencnval -c-
genccode\%toolversion%\genccode "%ICU_DATA%cnvalias.dat"
echo create tz.dat from tz.txt
gentz\%toolversion%\gentz -c- gentz\tz.txt
genccode\%toolversion%\genccode "%ICU_DATA%tz.dat"
echo create the converters
%conv% -p "genccode\$toolversion$\genccode \"$ICU_DATA$" -s "\"" -old ".ucm" -new ".cnv">mkconv.bat
call mkconv.bat
echo create the data DLL
type mkobj.cl>mkobj.tmp
echo "%ICU_DATA%unames_dat.c">>mkobj.tmp
echo "%ICU_DATA%cnvalias_dat.c">>mkobj.tmp
echo "%ICU_DATA%tz_dat.c">>mkobj.tmp
%conv% -p "\"$ICU_DATA$" -s "\"" -old ".ucm" -new "_cnv.c">>mkobj.tmp
cl @mkobj.tmp
echo "/out:%ICU_DATA%icudata.dll">mkdll.tmp
echo unames_dat.obj>>mkdll.tmp
echo cnvalias_dat.obj>>mkdll.tmp
echo tz_dat.obj>>mkdll.tmp
%conv% -old ".ucm" -new "_cnv.obj">>mkdll.tmp
type mkdll.lk>>mkdll.tmp
link @mkdll.tmp
echo create the common, memory-mappable file
del "%ICU_DATA%icudata.dat"
echo %ICU_DATA%unames.dat>mkmap.tmp
echo %ICU_DATA%cnvalias.dat>>mkmap.tmp
echo %ICU_DATA%tz.dat>>mkmap.tmp
%conv% -p "$ICU_DATA$" -old ".ucm" -new ".cnv">>mkmap.tmp
gencmn\%toolversion%\gencmn 1000000 mkmap.tmp
echo create memory mappable test.dat using gentest and creating test_dat.c
gentest\%toolversion%\gentest
genccode\%toolversion%\genccode "%ICU_DATA%test.dat"
echo create the test data DLL
type mkobj.cl>mkobj.tmp
echo "%ICU_DATA%test_dat.c">>mkobj.tmp
cl @mkobj.tmp
echo "/out:%ICU_DATA%test_dat.dll">mkdll.tmp
echo test_dat.obj>>mkdll.tmp
type mkdll.lk>>mkdll.tmp
link @mkdll.tmp
goto :end
:error
echo call makedata with the absolute path to the icu directory
echo for example, if the full path is d:\mytools\icu then call
echo makedata d:\mytools
echo a second, optional, parameter can be Debug or Release to specify the tools versions
echo.
echo the current directory must be the icu\source\tools directory with makedata.bat
echo also, the cl compiler and link linker must be on the PATH
:end