| @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\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 |