1 #**********************************************************************
2 #* Copyright (C) 1999-2014, International Business Machines Corporation
3 #* and others. All Rights Reserved.
4 #**********************************************************************
5 # nmake file for creating data files on win32
7 # nmake /f makedata.mak icumake=$(ProjectDir)
9 # 12/10/1999 weiv Created
11 ##############################################################################
12 # Keep the following in sync with the version - see common/unicode/uvernum.h
13 U_ICUDATA_NAME=icudt53
14 ##############################################################################
15 U_ICUDATA_ENDIAN_SUFFIX=l
17 ICU_LIB_TARGET=$(DLL_OUTPUT)\$(U_ICUDATA_NAME).dll
20 # Must be provided by whoever runs this makefile.
21 # Is the directory containing this file (makedata.mak)
22 # Is the directory into which most data is built (prior to packaging)
26 !ERROR Can't find ICUMAKE (ICU Data Make dir, should point to icu\source\data\ )!
28 !MESSAGE ICU data make path is $(ICUMAKE)
30 # Suffixes for data files
31 .SUFFIXES : .nrm .icu .ucm .cnv .dll .dat .res .txt .c
35 # the prefix "icudt21_" for use in filenames
36 ICUPKG=$(U_ICUDATA_NAME)$(U_ICUDATA_ENDIAN_SUFFIX)
38 # need to nuke \\ for .NET...
41 ICUBLD=$(ICUOUT)\build
42 ICUBLD_PKG=$(ICUBLD)\$(ICUPKG)
46 # The root of the ICU source directory tree
49 ICUP=$(ICUP:\source\data\..\..=)
50 # In case the first one didn't do it, try this one. .NET would do the second one.
51 ICUP=$(ICUP:\source\data\\..\..=)
52 !MESSAGE ICU root path is $(ICUP)
56 # The data directory in source
58 ICUSRCDATA=$(ICUP)\source\data
59 ICUSRCDATA_RELATIVE_PATH=..\..\..
62 # The directory that contains ucmcore.mk files along with *.ucm files
67 # The directory that contains resfiles.mk files along with *.txt locale data files
72 # The directory that contains colfiles.mk files along with *.txt collation data files
77 # The directory that contains rbnffiles.mk files along with *.txt RBNF data files
82 # The directory that contains trfiles.mk files along with *.txt transliterator files
87 # The directory that contains resfiles.mk files along with *.txt break iterator files
92 # The directory that contains Unicode data files
94 ICUUNIDATA=$(ICUP)\source\data\unidata
98 # The directory that contains miscfiles.mk along with files that are miscelleneous data
100 ICUMISC=$(ICUP)\source\data\misc
104 # The directory that contains sprepfiles.mk files along with *.txt stringprep files
110 # The source directory. Contains the source files for the common data to be built.
111 # WARNING: NOT THE SAME AS ICU_DATA environment variable. Confusing.
112 ICUDATA=$(ICUP)\source\data
116 # Destination directory for the common data DLL file.
117 # This is the same place that all of the other ICU DLLs go (the code-containing DLLs)
118 # The lib file for the data DLL goes in $(DLL_OUTPUT)/../lib/
120 !IF "$(CFG)" == "x64\Release" || "$(CFG)" == "x64\Debug"
121 DLL_OUTPUT=$(ICUP)\bin64
123 DLL_OUTPUT=$(ICUP)\bin
128 # The source directory for data needed for test programs.
129 TESTDATA=$(ICUP)\source\test\testdata
133 # The destination directory for the built test data .dat file
134 TESTDATAOUT=$(ICUP)\source\test\testdata\out
138 # The build directory for test data intermidiate files
139 # (Tests are NOT run from this makefile,
140 # only the data is put in place.)
141 TESTDATABLD=$(ICUP)\source\test\testdata\out\build
145 # Directory under which all of the ICU data building tools live.
147 ICUTOOLS=$(ICUP)\source\tools
149 # The current ICU tools need to be in the path first.
150 !IF "$(CFG)" == "x64\Release" || "$(CFG)" == "x64\Debug"
151 PATH = $(ICUP)\bin64;$(PATH)
152 ICUPBIN=$(ICUP)\bin64
154 PATH = $(ICUP)\bin;$(PATH)
159 # This variable can be overridden to "-m static" by the project settings,
160 # if you want a static data library.
161 !IF "$(ICU_PACKAGE_MODE)"==""
162 ICU_PACKAGE_MODE=-m dll
165 # If this archive exists, build from that
166 # instead of building everything from scratch.
167 ICUDATA_SOURCE_ARCHIVE=$(ICUSRCDATA)\in\$(ICUPKG).dat
168 !IF !EXISTS("$(ICUDATA_SOURCE_ARCHIVE)")
169 # Does a big endian version exist either?
170 ICUDATA_ARCHIVE=$(ICUSRCDATA)\in\$(U_ICUDATA_NAME)b.dat
171 !IF EXISTS("$(ICUDATA_ARCHIVE)")
172 ICUDATA_SOURCE_ARCHIVE=$(ICUTMP)\$(ICUPKG).dat
174 # Nothing was usable for input
175 !UNDEF ICUDATA_SOURCE_ARCHIVE
179 !IFDEF ICUDATA_SOURCE_ARCHIVE
180 !MESSAGE ICU data source archive is $(ICUDATA_SOURCE_ARCHIVE)
182 # We're including a list of .ucm files.
183 # There are several lists, they are all optional.
185 # Always build the mapping files for the EBCDIC fallback codepages
186 # They are necessary on EBCDIC machines, and
187 # the following logic is much easier if UCM_SOURCE is never empty.
189 UCM_SOURCE=ibm-37_P100-1995.ucm ibm-1047_P100-1995.ucm
191 !IF EXISTS("$(ICUSRCDATA)\$(ICUUCM)\ucmcore.mk")
192 !INCLUDE "$(ICUSRCDATA)\$(ICUUCM)\ucmcore.mk"
193 UCM_SOURCE=$(UCM_SOURCE) $(UCM_SOURCE_CORE)
195 !MESSAGE Warning: cannot find "ucmcore.mk". Not building core MIME/Unix/Windows converter files.
198 !IF EXISTS("$(ICUSRCDATA)\$(ICUUCM)\ucmfiles.mk")
199 !INCLUDE "$(ICUSRCDATA)\$(ICUUCM)\ucmfiles.mk"
200 UCM_SOURCE=$(UCM_SOURCE) $(UCM_SOURCE_FILES)
202 !MESSAGE Warning: cannot find "ucmfiles.mk". Not building many converter files.
205 !IF EXISTS("$(ICUSRCDATA)\$(ICUUCM)\ucmebcdic.mk")
206 !INCLUDE "$(ICUSRCDATA)\$(ICUUCM)\ucmebcdic.mk"
207 UCM_SOURCE=$(UCM_SOURCE) $(UCM_SOURCE_EBCDIC)
208 !IFDEF UCM_SOURCE_EBCDIC_IGNORE_SISO
209 BUILD_SPECIAL_CNV_FILES=YES
210 UCM_SOURCE_SPECIAL=$(UCM_SOURCE_EBCDIC_IGNORE_SISO)
212 !UNDEF BUILD_SPECIAL_CNV_FILES
215 !MESSAGE Warning: cannot find "ucmebcdic.mk". Not building EBCDIC converter files.
218 !IF EXISTS("$(ICUSRCDATA)\$(ICUUCM)\ucmlocal.mk")
219 !INCLUDE "$(ICUSRCDATA)\$(ICUUCM)\ucmlocal.mk"
220 UCM_SOURCE=$(UCM_SOURCE) $(UCM_SOURCE_LOCAL)
221 !IFDEF UCM_SOURCE_EBCDIC_IGNORE_SISO_LOCAL
222 UCM_SOURCE_SPECIAL=$(UCM_SOURCE_SPECIAL) $(UCM_SOURCE_EBCDIC_IGNORE_SISO_LOCAL)
223 BUILD_SPECIAL_CNV_FILES=YES
226 !MESSAGE Information: cannot find "ucmlocal.mk". Not building user-additional converter files.
229 CNV_FILES=$(UCM_SOURCE:.ucm=.cnv)
230 !IFDEF BUILD_SPECIAL_CNV_FILES
231 CNV_FILES_SPECIAL=$(UCM_SOURCE_SPECIAL:.ucm=.cnv)
234 !IF EXISTS("$(ICUSRCDATA)\$(ICUBRK)\brkfiles.mk")
235 !INCLUDE "$(ICUSRCDATA)\$(ICUBRK)\brkfiles.mk"
236 !IF EXISTS("$(ICUSRCDATA)\$(ICUBRK)\brklocal.mk")
237 !INCLUDE "$(ICUSRCDATA)\$(ICUBRK)\brklocal.mk"
238 BRK_SOURCE=$(BRK_SOURCE) $(BRK_SOURCE_LOCAL)
239 BRK_DICT_SOURCE=$(BRK_DICT_SOURCE) $(BRK_DICT_SOURCE_LOCAL)
240 BRK_RES_SOURCE=$(BRK_RES_SOURCE) $(BRK_RES_SOURCE_LOCAL)
242 !MESSAGE Information: cannot find "brklocal.mk". Not building user-additional break iterator files.
245 !MESSAGE Warning: cannot find "brkfiles.mk"
249 # Break iterator data files.
251 BRK_FILES=$(ICUBRK)\$(BRK_SOURCE:.txt =.brk brkitr\)
252 BRK_FILES=$(BRK_FILES:.txt=.brk)
253 BRK_FILES=$(BRK_FILES:brkitr\ =brkitr\)
255 !IFDEF BRK_DICT_SOURCE
256 BRK_DICT_FILES = $(ICUBRK)\$(BRK_DICT_SOURCE:.txt =.dict brkitr\)
257 BRK_DICT_FILES = $(BRK_DICT_FILES:.txt=.dict)
258 BRK_DICT_FILES = $(BRK_DICT_FILES:brkitr\ =brkitr\)
261 !IFDEF BRK_RES_SOURCE
262 BRK_RES_FILES = $(BRK_RES_SOURCE:.txt =.res brkitr\)
263 BRK_RES_FILES = $(BRK_RES_FILES:.txt=.res)
264 BRK_RES_FILES = $(ICUBRK)\root.res $(ICUBRK)\$(BRK_RES_FILES:brkitr\ =)
265 ALL_RES = $(ALL_RES) $(ICUBRK)\res_index.res
268 # Read list of locale resource bundle files
269 !IF EXISTS("$(ICUSRCDATA)\$(ICULOC)\resfiles.mk")
270 !INCLUDE "$(ICUSRCDATA)\$(ICULOC)\resfiles.mk"
271 !IF EXISTS("$(ICUSRCDATA)\$(ICULOC)\reslocal.mk")
272 !INCLUDE "$(ICUSRCDATA)\$(ICULOC)\reslocal.mk"
273 GENRB_SOURCE=$(GENRB_SOURCE) $(GENRB_SOURCE_LOCAL)
275 !MESSAGE Information: cannot find "reslocal.mk". Not building user-additional resource bundle files.
278 !MESSAGE Warning: cannot find "resfiles.mk"
282 RB_FILES = root.res pool.res $(GENRB_ALIAS_SOURCE:.txt=.res) $(GENRB_ALIAS_SOURCE_LOCAL:.txt=.res) $(GENRB_SOURCE:.txt=.res)
283 ALL_RES = $(ALL_RES) res_index.res
287 # Read the list of currency display name resource bundle files
288 !IF EXISTS("$(ICUSRCDATA)\curr\resfiles.mk")
289 !INCLUDE "$(ICUSRCDATA)\curr\resfiles.mk"
290 !IF EXISTS("$(ICUSRCDATA)\curr\reslocal.mk")
291 !INCLUDE "$(ICUSRCDATA)\curr\reslocal.mk"
292 CURR_SOURCE=$(CURR_SOURCE) $(CURR_SOURCE_LOCAL)
294 !MESSAGE Information: cannot find "curr\reslocal.mk". Not building user-additional resource bundle files.
297 !MESSAGE Warning: cannot find "curr\resfiles.mk"
301 CURR_FILES = curr\root.txt supplementalData.txt $(CURR_ALIAS_SOURCE) $(CURR_SOURCE)
302 CURR_RES_FILES = $(CURR_FILES:.txt =.res curr\)
303 CURR_RES_FILES = $(CURR_RES_FILES:.txt=.res)
304 CURR_RES_FILES = curr\pool.res $(CURR_RES_FILES:curr\ =curr\)
305 ALL_RES = $(ALL_RES) curr\res_index.res
308 # Read the list of language/script display name resource bundle files
309 !IF EXISTS("$(ICUSRCDATA)\lang\resfiles.mk")
310 !INCLUDE "$(ICUSRCDATA)\lang\resfiles.mk"
311 !IF EXISTS("$(ICUSRCDATA)\lang\reslocal.mk")
312 !INCLUDE "$(ICUSRCDATA)\lang\reslocal.mk"
313 LANG_SOURCE=$(LANG_SOURCE) $(LANG_SOURCE_LOCAL)
315 !MESSAGE Information: cannot find "lang\reslocal.mk". Not building user-additional resource bundle files.
318 !MESSAGE Warning: cannot find "lang\resfiles.mk"
322 LANG_FILES = lang\root.txt $(LANG_ALIAS_SOURCE) $(LANG_SOURCE)
323 LANG_RES_FILES = $(LANG_FILES:.txt =.res lang\)
324 LANG_RES_FILES = $(LANG_RES_FILES:.txt=.res)
325 LANG_RES_FILES = lang\pool.res $(LANG_RES_FILES:lang\ =lang\)
326 ALL_RES = $(ALL_RES) lang\res_index.res
329 # Read the list of region display name resource bundle files
330 !IF EXISTS("$(ICUSRCDATA)\region\resfiles.mk")
331 !INCLUDE "$(ICUSRCDATA)\region\resfiles.mk"
332 !IF EXISTS("$(ICUSRCDATA)\region\reslocal.mk")
333 !INCLUDE "$(ICUSRCDATA)\region\reslocal.mk"
334 REGION_SOURCE=$(REGION_SOURCE) $(REGION_SOURCE_LOCAL)
336 !MESSAGE Information: cannot find "region\reslocal.mk". Not building user-additional resource bundle files.
339 !MESSAGE Warning: cannot find "region\resfiles.mk"
343 REGION_FILES = region\root.txt $(REGION_ALIAS_SOURCE) $(REGION_SOURCE)
344 REGION_RES_FILES = $(REGION_FILES:.txt =.res region\)
345 REGION_RES_FILES = $(REGION_RES_FILES:.txt=.res)
346 REGION_RES_FILES = region\pool.res $(REGION_RES_FILES:region\ =region\)
347 ALL_RES = $(ALL_RES) region\res_index.res
350 # Read the list of time zone display name resource bundle files
351 !IF EXISTS("$(ICUSRCDATA)\zone\resfiles.mk")
352 !INCLUDE "$(ICUSRCDATA)\zone\resfiles.mk"
353 !IF EXISTS("$(ICUSRCDATA)\zone\reslocal.mk")
354 !INCLUDE "$(ICUSRCDATA)\zone\reslocal.mk"
355 ZONE_SOURCE=$(ZONE_SOURCE) $(ZONE_SOURCE_LOCAL)
357 !MESSAGE Information: cannot find "zone\reslocal.mk". Not building user-additional resource bundle files.
360 !MESSAGE Warning: cannot find "zone\resfiles.mk"
364 ZONE_FILES = zone\root.txt $(ZONE_ALIAS_SOURCE) $(ZONE_SOURCE)
365 ZONE_RES_FILES = $(ZONE_FILES:.txt =.res zone\)
366 ZONE_RES_FILES = $(ZONE_RES_FILES:.txt=.res)
367 ZONE_RES_FILES = zone\pool.res $(ZONE_RES_FILES:zone\ =zone\)
368 ALL_RES = $(ALL_RES) zone\res_index.res
371 # Read the list of collation resource bundle files
372 !IF EXISTS("$(ICUSRCDATA)\$(ICUCOL)\colfiles.mk")
373 !INCLUDE "$(ICUSRCDATA)\$(ICUCOL)\colfiles.mk"
374 !IF EXISTS("$(ICUSRCDATA)\$(ICUCOL)\collocal.mk")
375 !INCLUDE "$(ICUSRCDATA)\$(ICUCOL)\collocal.mk"
376 COLLATION_SOURCE=$(COLLATION_SOURCE) $(COLLATION_SOURCE_LOCAL)
378 !MESSAGE Information: cannot find "collocal.mk". Not building user-additional resource bundle files.
381 !MESSAGE Warning: cannot find "colfiles.mk"
384 !IFDEF COLLATION_SOURCE
385 COL_FILES = $(ICUCOL)\root.txt $(COLLATION_ALIAS_SOURCE) $(COLLATION_SOURCE)
386 COL_COL_FILES = $(COL_FILES:.txt =.res coll\)
387 COL_COL_FILES = $(COL_COL_FILES:.txt=.res)
388 COL_COL_FILES = $(COL_COL_FILES:coll\ =)
389 ALL_RES = $(ALL_RES) $(ICUCOL)\res_index.res
392 # Read the list of RBNF resource bundle files
393 !IF EXISTS("$(ICUSRCDATA)\$(ICURBNF)\rbnffiles.mk")
394 !INCLUDE "$(ICUSRCDATA)\$(ICURBNF)\rbnffiles.mk"
395 !IF EXISTS("$(ICUSRCDATA)\$(ICURBNF)\rbnflocal.mk")
396 !INCLUDE "$(ICUSRCDATA)\$(ICURBNF)\rbnflocal.mk"
397 RBNF_SOURCE=$(RBNF_SOURCE) $(RBNF_SOURCE_LOCAL)
399 !MESSAGE Information: cannot find "rbnflocal.mk". Not building user-additional resource bundle files.
402 !MESSAGE Warning: cannot find "rbnffiles.mk"
406 RBNF_FILES = $(ICURBNF)\root.txt $(RBNF_ALIAS_SOURCE) $(RBNF_SOURCE)
407 RBNF_RES_FILES = $(RBNF_FILES:.txt =.res rbnf\)
408 RBNF_RES_FILES = $(RBNF_RES_FILES:.txt=.res)
409 RBNF_RES_FILES = $(RBNF_RES_FILES:rbnf\ =rbnf\)
410 ALL_RES = $(ALL_RES) $(ICURBNF)\res_index.res
413 # Read the list of transliterator resource bundle files
414 !IF EXISTS("$(ICUSRCDATA)\$(ICUTRNS)\trnsfiles.mk")
415 !INCLUDE "$(ICUSRCDATA)\$(ICUTRNS)\trnsfiles.mk"
416 !IF EXISTS("$(ICUSRCDATA)\$(ICUTRNS)\trnslocal.mk")
417 !INCLUDE "$(ICUSRCDATA)\$(ICUTRNS)\trnslocal.mk"
418 TRANSLIT_SOURCE=$(TRANSLIT_SOURCE) $(TRANSLIT_SOURCE_LOCAL)
420 !MESSAGE Information: cannot find "trnslocal.mk". Not building user-additional transliterator files.
423 !MESSAGE Warning: cannot find "trnsfiles.mk"
426 !IFDEF TRANSLIT_SOURCE
427 TRANSLIT_FILES = $(ICUTRNS)\$(TRANSLIT_ALIAS_SOURCE) $(TRANSLIT_SOURCE)
428 TRANSLIT_RES_FILES = $(TRANSLIT_FILES:.txt =.res translit\)
429 TRANSLIT_RES_FILES = $(TRANSLIT_RES_FILES:.txt=.res)
430 TRANSLIT_RES_FILES = $(TRANSLIT_RES_FILES:translit\ =translit\)
431 #ALL_RES = $(ALL_RES) $(ICUTRNS)\res_index.res
434 # Read the list of miscellaneous resource bundle files
435 !IF EXISTS("$(ICUSRCDATA)\$(ICUMISC2)\miscfiles.mk")
436 !INCLUDE "$(ICUSRCDATA)\$(ICUMISC2)\miscfiles.mk"
437 !IF EXISTS("$(ICUSRCDATA)\$(ICUMISC2)\misclocal.mk")
438 !INCLUDE "$(ICUSRCDATA)\$(ICUMISC2)\misclocal.mk"
439 MISC_SOURCE=$(MISC_SOURCE) $(MISC_SOURCE_LOCAL)
441 !MESSAGE Information: cannot find "misclocal.mk". Not building user-additional miscellaenous files.
444 !MESSAGE Warning: cannot find "miscfiles.mk"
447 MISC_FILES = $(MISC_SOURCE:.txt=.res)
449 # don't include COL_FILES
450 ALL_RES = $(ALL_RES) $(RB_FILES) $(MISC_FILES)
453 # Read the list of stringprep profile files
454 !IF EXISTS("$(ICUSRCDATA)\$(ICUSPREP)\sprepfiles.mk")
455 !INCLUDE "$(ICUSRCDATA)\$(ICUSPREP)\sprepfiles.mk"
456 !IF EXISTS("$(ICUSRCDATA)\$(ICUSPREP)\spreplocal.mk")
457 !INCLUDE "$(ICUSRCDATA)\$(ICUSPREP)\spreplocal.mk"
458 SPREP_SOURCE=$(SPREP_SOURCE) $(SPREP_SOURCE_LOCAL)
460 !MESSAGE Information: cannot find "spreplocal.mk". Not building user-additional stringprep files.
463 !MESSAGE Warning: cannot find "sprepfiles.mk"
466 SPREP_FILES = $(SPREP_SOURCE:.txt=.spp)
468 # Common defines for both ways of building ICU's data library.
469 COMMON_ICUDATA_DEPENDENCIES="$(ICUPBIN)\pkgdata.exe" "$(ICUTMP)\icudata.res" "$(ICUP)\source\stubdata\stubdatabuilt.txt"
470 COMMON_ICUDATA_ARGUMENTS=-f -e $(U_ICUDATA_NAME) -v $(ICU_PACKAGE_MODE) -c -p $(ICUPKG) -T "$(ICUTMP)" -L $(U_ICUDATA_NAME) -d "$(ICUBLD_PKG)" -s .
472 #############################################################################
475 # This target builds all the data files. The world starts here.
476 # Note: we really want the common data dll to go to $(DLL_OUTPUT), not $(ICUBLD_PKG). But specifying
477 # that here seems to cause confusion with the building of the stub library of the same name.
478 # Building the common dll in $(ICUBLD_PKG) unconditionally copies it to $(DLL_OUTPUT) too.
480 #############################################################################
481 ALL : GODATA "$(ICU_LIB_TARGET)" "$(TESTDATAOUT)\testdata.dat"
482 @echo All targets are up to date
484 # The core Unicode properties files (uprops.icu, ucase.icu, ubidi.icu)
485 # are hardcoded in the common DLL and therefore not included in the data package any more.
486 # They are not built by default but need to be built for ICU4J data and for getting the .c source files
487 # when updating the Unicode data.
488 # Changed in makedata.mak revision 1.117. See Jitterbug 4497.
489 # 2010-dec Removed pnames.icu.
491 # C:\svn\icuproj\icu\trunk\source\data>nmake -f makedata.mak ICUMAKE=C:\svn\icuproj\icu\trunk\source\data\ CFG=x86\Debug uni-core-data
492 uni-core-data: GODATA "$(ICUBLD_PKG)\pnames.icu" "$(ICUBLD_PKG)\uprops.icu" "$(ICUBLD_PKG)\ucase.icu" "$(ICUBLD_PKG)\ubidi.icu"
493 @echo Unicode .icu files built to "$(ICUBLD_PKG)"
495 # Build the ICU4J icudata.jar and testdata.jar.
496 # see icu4j-readme.txt
498 ICU4J_TZDATA="$(ICUOUT)\icu4j\icutzdata.jar"
499 ICU4J_DATA_DIRNAME=com\ibm\icu\impl\data\$(U_ICUDATA_NAME)b
500 ICU4J_TZDATA_PATHS=$(ICU4J_DATA_DIRNAME)\zoneinfo64.res $(ICU4J_DATA_DIRNAME)\metaZones.res $(ICU4J_DATA_DIRNAME)\timezoneTypes.res $(ICU4J_DATA_DIRNAME)\windowsZones.res
502 generate-data: GODATA "$(ICUOUT)\$(ICUPKG).dat" uni-core-data
503 if not exist "$(ICUOUT)\icu4j\$(ICU4J_DATA_DIRNAME)" mkdir "$(ICUOUT)\icu4j\$(ICU4J_DATA_DIRNAME)"
504 if not exist "$(ICUOUT)\icu4j\tzdata\$(ICU4J_DATA_DIRNAME)" mkdir "$(ICUOUT)\icu4j\tzdata\$(ICU4J_DATA_DIRNAME)"
505 echo pnames.icu ubidi.icu ucase.icu uprops.icu > "$(ICUOUT)\icu4j\add.txt"
506 "$(ICUPBIN)\icupkg" "$(ICUOUT)\$(ICUPKG).dat" "$(ICUOUT)\icu4j\$(U_ICUDATA_NAME)b.dat" -a "$(ICUOUT)\icu4j\add.txt" -s "$(ICUBLD_PKG)" -x * -tb -d "$(ICUOUT)\icu4j\$(ICU4J_DATA_DIRNAME)"
507 @for %f in ($(ICU4J_TZDATA_PATHS)) do @move "$(ICUOUT)\icu4j\%f" "$(ICUOUT)\icu4j\tzdata\$(ICU4J_DATA_DIRNAME)"
509 "$(ICUOUT)\icu4j\icutzdata.jar": GODATA generate-data
510 "$(JAR)" cf "$(ICUOUT)\icu4j\icutzdata.jar" -C "$(ICUOUT)\icu4j\tzdata" "$(ICU4J_DATA_DIRNAME)"
513 # - add the uni-core-data to the ICU package
514 # - swap the ICU data
515 # - extract all data items
516 # - package them into the .jar file
517 "$(ICUOUT)\icu4j\icudata.jar": GODATA generate-data
518 "$(JAR)" cf "$(ICUOUT)\icu4j\icudata.jar" -C "$(ICUOUT)\icu4j" "$(ICU4J_DATA_DIRNAME)"
520 # Build testdata.jar:
521 # - swap the test data
522 # - extract all data items
523 # - package them into the .jar file
524 "$(ICUOUT)\icu4j\testdata.jar": GODATA "$(TESTDATAOUT)\testdata.dat"
525 if not exist "$(ICUOUT)\icu4j\com\ibm\icu\dev\data\testdata" mkdir "$(ICUOUT)\icu4j\com\ibm\icu\dev\data\testdata"
526 "$(ICUPBIN)\icupkg" "$(TESTDATAOUT)\testdata.dat" -r test.icu -x * -tb -d "$(ICUOUT)\icu4j\com\ibm\icu\dev\data\testdata"
527 "$(JAR)" cf "$(ICUOUT)\icu4j\testdata.jar" -C "$(ICUOUT)\icu4j" com\ibm\icu\dev\data\testdata
529 ## Compare to: source\data\Makefile.in and source\test\testdata\Makefile.in
531 DEBUGUTILITIESDATA_DIR=main\tests\core\src\com\ibm\icu\dev\test\util
532 DEBUGUTILITIESDATA_SRC=DebugUtilitiesData.java
534 # Build DebugUtilitiesData.java
535 "$(ICUOUT)\icu4j\src\$(DEBUGUTILITIESDATA_DIR)\$(DEBUGUTILITIESDATA_SRC)" : {"$(ICUTOOLS)\gentest\$(CFG)"}gentest.exe
536 if not exist "$(ICUOUT)\icu4j\src\$(DEBUGUTILITIESDATA_DIR)" mkdir "$(ICUOUT)\icu4j\src\$(DEBUGUTILITIESDATA_DIR)"
537 "$(ICUTOOLS)\gentest\$(CFG)\gentest" -j -d"$(ICUOUT)\icu4j\src\$(DEBUGUTILITIESDATA_DIR)"
539 ICU4J_DATA="$(ICUOUT)\icu4j\icudata.jar" "$(ICUOUT)\icu4j\testdata.jar" "$(ICUOUT)\icu4j\src\$(DEBUGUTILITIESDATA_DIR)\$(DEBUGUTILITIESDATA_SRC)"
541 icu4j-data: GODATA $(ICU4J_DATA) $(ICU4J_TZDATA)
545 "$(ICU4J_ROOT)\main\shared\data\icudata.jar": "$(ICUOUT)\icu4j\icudata.jar"
546 if not exist "$(ICU4J_ROOT)\main\shared\data" mkdir "$(ICU4J_ROOT)\main\shared\data"
547 copy "$(ICUOUT)\icu4j\icudata.jar" "$(ICU4J_ROOT)\main\shared\data"
549 "$(ICU4J_ROOT)\main\shared\data\icutzdata.jar": "$(ICUOUT)\icu4j\icutzdata.jar"
550 if not exist "$(ICU4J_ROOT)\main\shared\data" mkdir "$(ICU4J_ROOT)\main\shared\data"
551 copy "$(ICUOUT)\icu4j\icutzdata.jar" "$(ICU4J_ROOT)\main\shared\data"
553 "$(ICU4J_ROOT)\main\shared\data\testdata.jar": "$(ICUOUT)\icu4j\testdata.jar"
554 if not exist "$(ICU4J_ROOT)\main\shared\data" mkdir "$(ICU4J_ROOT)\main\shared\data"
555 copy "$(ICUOUT)\icu4j\testdata.jar" "$(ICU4J_ROOT)\main\shared\data"
557 # "$(DEBUGUTILTIESDATA_OUT)"
559 "$(ICU4J_ROOT)\$(DEBUGUTILITIESDATA_DIR)\$(DEBUGUTILITIESDATA_SRC)": "$(ICUOUT)\icu4j\src\$(DEBUGUTILITIESDATA_DIR)\$(DEBUGUTILITIESDATA_SRC)"
560 if not exist "$(ICU4J_ROOT)\$(DEBUGUTILITIESDATA_DIR)" mkdir "$(ICU4J_ROOT)\$(DEBUGUTILITIESDATA_DIR)"
561 copy "$(ICUOUT)\icu4j\src\$(DEBUGUTILITIESDATA_DIR)\$(DEBUGUTILITIESDATA_SRC)" "$(ICU4J_ROOT)\$(DEBUGUTILITIESDATA_DIR)\$(DEBUGUTILITIESDATA_SRC)"
563 ICU4J_DATA_INSTALLED="$(ICU4J_ROOT)\main\shared\data\icudata.jar" "$(ICU4J_ROOT)\main\shared\data\icutzdata.jar" "$(ICU4J_ROOT)\main\shared\data\testdata.jar" "$(ICU4J_ROOT)\$(DEBUGUTILITIESDATA_DIR)\$(DEBUGUTILITIESDATA_SRC)"
565 icu4j-data-install : GODATA $(ICU4J_DATA) $(ICU4J_TZDATA) $(ICU4J_DATA_INSTALLED)
566 @echo ICU4J data output to "$(ICU4J_ROOT)"
571 @echo ERROR ICU4J_ROOT not set
579 # testdata - nmake will invoke pkgdata, which will create testdata.dat
581 "$(TESTDATAOUT)\testdata.dat": "$(TESTDATA)\*" "$(ICUBLD_PKG)\$(ICUCOL)\ucadata.icu" $(TRANSLIT_RES_FILES) $(MISC_FILES) $(RB_FILES) {"$(ICUTOOLS)\genrb\$(CFG)"}genrb.exe
583 @echo building testdata...
584 nmake /nologo /f "$(TESTDATA)\testdata.mak" TESTDATA=. ICUTOOLS="$(ICUTOOLS)" ICUPBIN="$(ICUPBIN)" ICUP="$(ICUP)" CFG=$(CFG) TESTDATAOUT="$(TESTDATAOUT)" TESTDATABLD="$(TESTDATABLD)"
586 #invoke pkgdata for ICU common data
587 # pkgdata will drop all output files (.dat, .dll, .lib) into the target (ICUBLD_PKG) directory.
588 # move the .dll and .lib files to their final destination afterwards.
589 # The $(U_ICUDATA_NAME).lib and $(U_ICUDATA_NAME).exp should already be in the right place due to stubdata.
591 # 2005-may-05 Removed Unicode properties files (unorm.icu, uprops.icu, ucase.icu, ubidi.icu)
592 # from data build. See Jitterbug 4497. (makedata.mak revision 1.117)
594 !IFDEF ICUDATA_SOURCE_ARCHIVE
595 "$(ICU_LIB_TARGET)" : $(COMMON_ICUDATA_DEPENDENCIES) "$(ICUDATA_SOURCE_ARCHIVE)"
596 @echo Building icu data from $(ICUDATA_SOURCE_ARCHIVE)
598 "$(ICUPBIN)\icupkg" -x * --list "$(ICUDATA_SOURCE_ARCHIVE)" > "$(ICUTMP)\icudata.lst"
599 "$(ICUPBIN)\pkgdata" $(COMMON_ICUDATA_ARGUMENTS) "$(ICUTMP)\icudata.lst"
600 copy "$(U_ICUDATA_NAME).dll" "$(DLL_OUTPUT)"
601 -@erase "$(U_ICUDATA_NAME).dll"
602 copy "$(ICUTMP)\$(ICUPKG).dat" "$(ICUOUT)\$(U_ICUDATA_NAME)$(U_ICUDATA_ENDIAN_SUFFIX).dat"
603 -@erase "$(ICUTMP)\$(ICUPKG).dat"
605 "$(ICU_LIB_TARGET)" : $(COMMON_ICUDATA_DEPENDENCIES) $(CNV_FILES) $(CNV_FILES_SPECIAL) "$(ICUBLD_PKG)\unames.icu" "$(ICUBLD_PKG)\cnvalias.icu" "$(ICUBLD_PKG)\nfc.nrm" "$(ICUBLD_PKG)\nfkc.nrm" "$(ICUBLD_PKG)\nfkc_cf.nrm" "$(ICUBLD_PKG)\uts46.nrm" "$(ICUBLD_PKG)\$(ICUCOL)\ucadata.icu" $(CURR_RES_FILES) $(LANG_RES_FILES) $(REGION_RES_FILES) $(ZONE_RES_FILES) $(BRK_FILES) $(BRK_DICT_FILES) $(BRK_RES_FILES) $(ALL_RES) $(COL_COL_FILES) $(RBNF_RES_FILES) $(TRANSLIT_RES_FILES) $(SPREP_FILES) "$(ICUBLD_PKG)\confusables.cfu"
606 @echo Building icu data
608 "$(ICUPBIN)\pkgdata" $(COMMON_ICUDATA_ARGUMENTS) <<"$(ICUTMP)\icudata.lst"
611 $(ICUCOL)\ucadata.icu
617 $(CNV_FILES:.cnv =.cnv
619 $(CNV_FILES_SPECIAL:.cnv =.cnv
623 $(CURR_RES_FILES:.res =.res
625 $(LANG_RES_FILES:.res =.res
627 $(REGION_RES_FILES:.res =.res
629 $(ZONE_RES_FILES:.res =.res
631 $(COL_COL_FILES:.res =.res
633 $(RBNF_RES_FILES:.res =.res
635 $(TRANSLIT_RES_FILES:.res =.res
637 $(BRK_FILES:.brk =.brk
639 $(BRK_DICT_FILES:.dict =.dict
641 $(BRK_RES_FILES:.res =.res
643 $(SPREP_FILES:.spp=.spp
646 -@erase "$(ICU_LIB_TARGET)"
647 copy "$(U_ICUDATA_NAME).dll" "$(ICU_LIB_TARGET)"
648 -@erase "$(U_ICUDATA_NAME).dll"
649 copy "$(ICUTMP)\$(ICUPKG).dat" "$(ICUOUT)\$(U_ICUDATA_NAME)$(U_ICUDATA_ENDIAN_SUFFIX).dat"
650 -@erase "$(ICUTMP)\$(ICUPKG).dat"
653 # utility target to create missing directories
655 @if not exist "$(ICUOUT)\$(NULL)" mkdir "$(ICUOUT)"
656 @if not exist "$(ICUTMP)\$(NULL)" mkdir "$(ICUTMP)"
657 @if not exist "$(ICUOUT)\build\$(NULL)" mkdir "$(ICUOUT)\build"
658 @if not exist "$(ICUBLD_PKG)\$(NULL)" mkdir "$(ICUBLD_PKG)"
659 @if not exist "$(ICUBLD_PKG)\curr\$(NULL)" mkdir "$(ICUBLD_PKG)\curr"
660 @if not exist "$(ICUBLD_PKG)\lang\$(NULL)" mkdir "$(ICUBLD_PKG)\lang"
661 @if not exist "$(ICUBLD_PKG)\region\$(NULL)" mkdir "$(ICUBLD_PKG)\region"
662 @if not exist "$(ICUBLD_PKG)\zone\$(NULL)" mkdir "$(ICUBLD_PKG)\zone"
663 @if not exist "$(ICUBLD_PKG)\$(ICUBRK)\$(NULL)" mkdir "$(ICUBLD_PKG)\$(ICUBRK)"
664 @if not exist "$(ICUBLD_PKG)\$(ICUCOL)\$(NULL)" mkdir "$(ICUBLD_PKG)\$(ICUCOL)"
665 @if not exist "$(ICUBLD_PKG)\$(ICURBNF)\$(NULL)" mkdir "$(ICUBLD_PKG)\$(ICURBNF)"
666 @if not exist "$(ICUBLD_PKG)\$(ICUTRNS)\$(NULL)" mkdir "$(ICUBLD_PKG)\$(ICUTRNS)"
667 @if not exist "$(TESTDATAOUT)\$(NULL)" mkdir "$(TESTDATAOUT)"
668 @if not exist "$(TESTDATABLD)\$(NULL)" mkdir "$(TESTDATABLD)"
669 @if not exist "$(TESTDATAOUT)\testdata\$(NULL)" mkdir "$(TESTDATAOUT)\testdata"
671 # utility target to send us to the right dir
675 # This is to remove all the data files
677 @echo Cleaning up the data files.
692 -@erase "region\*.res"
693 -@erase "region\*.txt"
696 @cd "$(ICUBLD_PKG)\$(ICUBRK)"
700 @cd "$(ICUBLD_PKG)\$(ICUCOL)"
703 @cd "$(ICUBLD_PKG)\$(ICURBNF)"
706 @cd "$(ICUBLD_PKG)\$(ICUTRNS)"
726 @cd "$(TESTDATAOUT)\testdata"
731 # RBBI .brk file generation.
732 {$(ICUSRCDATA_RELATIVE_PATH)\$(ICUBRK)}.txt.brk:
734 @"$(ICUTOOLS)\genbrk\$(CFG)\genbrk" -c -r $< -o $@ -d"$(ICUBLD_PKG)" -i "$(ICUBLD_PKG)"
736 #RBBI .dict file generation.
737 {$(ICUSRCDATA_RELATIVE_PATH)\$(ICUBRK)}.txt.dict:
739 @"$(ICUTOOLS)\gendict\$(CFG)\gendict" -c --uchars $< "$(ICUBLD_PKG)\$@"
741 $(ICUBRK)\thaidict.dict:
742 @echo Creating $(ICUBRK)\thaidict.dict
743 @"$(ICUTOOLS)\gendict\$(CFG)\gendict" -c --bytes --transform offset-0xe00 $(ICUSRCDATA_RELATIVE_PATH)\$(ICUBRK)\thaidict.txt "$(ICUBLD_PKG)\$(ICUBRK)\thaidict.dict"
745 $(ICUBRK)\laodict.dict:
746 @echo Creating $(ICUBRK)\laodict.dict
747 @"$(ICUTOOLS)\gendict\$(CFG)\gendict" -c --bytes --transform offset-0xe00 $(ICUSRCDATA_RELATIVE_PATH)\$(ICUBRK)\laodict.txt "$(ICUBLD_PKG)\$(ICUBRK)\laodict.dict"
749 $(ICUBRK)\khmerdict.dict:
750 @echo Creating $(ICUBRK)\khmerdict.dict
751 @"$(ICUTOOLS)\gendict\$(CFG)\gendict" -c --bytes --transform offset-0x1780 $(ICUSRCDATA_RELATIVE_PATH)\$(ICUBRK)\khmerdict.txt "$(ICUBLD_PKG)\$(ICUBRK)\khmerdict.dict"
753 !IFNDEF ICUDATA_SOURCE_ARCHIVE
754 # Rule for creating converters
755 $(CNV_FILES): $(UCM_SOURCE)
756 @echo Building Charset Conversion table $(@B)
757 @"$(ICUTOOLS)\makeconv\$(CFG)\makeconv" -c -d"$(ICUBLD_PKG)" $(ICUSRCDATA_RELATIVE_PATH)\$(ICUUCM)\$(@B).ucm
760 !IFDEF BUILD_SPECIAL_CNV_FILES
761 $(CNV_FILES_SPECIAL): $(UCM_SOURCE_SPECIAL)
762 @echo Building Special Charset Conversion table $(@B)
763 @"$(ICUTOOLS)\makeconv\$(CFG)\makeconv" -c --ignore-siso-check -d"$(ICUBLD_PKG)" $(ICUSRCDATA_RELATIVE_PATH)\$(ICUUCM)\$(@B).ucm
766 # Batch inference rule for creating miscellaneous resource files
767 # TODO: -q option is specified to squelch the 120+ warnings about
768 # empty intvectors and binary elements. Unfortunately, this may
769 # squelch other legitimate warnings. When there is a better
770 # way, remove the -q.
771 {$(ICUSRCDATA_RELATIVE_PATH)\$(ICUMISC2)}.txt.res::
772 @echo Making Miscellaneous Resource Bundle files
773 @"$(ICUTOOLS)\genrb\$(CFG)\genrb" -k -q -d"$(ICUBLD_PKG)" $<
775 # Inference rule for creating resource bundle files
776 {$(ICUSRCDATA_RELATIVE_PATH)\$(ICULOC)}.txt.res::
777 @echo Making Locale Resource Bundle files
778 @"$(ICUTOOLS)\genrb\$(CFG)\genrb" --usePoolBundle $(ICUSRCDATA_RELATIVE_PATH)\$(ICULOC) -k -d"$(ICUBLD_PKG)" $<
780 # copy the locales/pool.res file from the source folder to the build output folder
781 # and swap it to native endianness
782 pool.res: $(ICUSRCDATA_RELATIVE_PATH)\$(ICULOC)\pool.res
783 "$(ICUPBIN)\icupkg" -tl "$(ICUSRCDATA_RELATIVE_PATH)\$(ICULOC)\pool.res" pool.res
786 @echo Generating <<res_index.txt
787 // Warning this file is automatically generated
788 res_index:table(nofallback) {
790 $(GENRB_SOURCE:.txt= {""}
795 @"$(ICUTOOLS)\genrb\$(CFG)\genrb" -k -d"$(ICUBLD_PKG)" .\res_index.txt
798 {$(ICUSRCDATA_RELATIVE_PATH)\curr}.txt{curr}.res::
799 @echo Making currency display name files
800 @"$(ICUTOOLS)\genrb\$(CFG)\genrb" --usePoolBundle $(ICUSRCDATA_RELATIVE_PATH)\curr -k -i "$(ICUBLD_PKG)" -d"$(ICUBLD_PKG)\curr" $<
802 # copy the curr/pool.res file from the source folder to the build output folder
803 # and swap it to native endianness
804 curr\pool.res: $(ICUSRCDATA_RELATIVE_PATH)\curr\pool.res
805 "$(ICUPBIN)\icupkg" -tl "$(ICUSRCDATA_RELATIVE_PATH)\curr\pool.res" curr\pool.res
808 @echo Generating <<curr\res_index.txt
809 // Warning this file is automatically generated
810 res_index:table(nofallback) {
812 $(CURR_SOURCE:.txt= {""}
817 @"$(ICUTOOLS)\genrb\$(CFG)\genrb" -k -d"$(ICUBLD_PKG)\curr" .\curr\res_index.txt
820 {$(ICUSRCDATA_RELATIVE_PATH)\lang}.txt{lang}.res::
821 @echo Making language/script display name files
822 @"$(ICUTOOLS)\genrb\$(CFG)\genrb" --usePoolBundle $(ICUSRCDATA_RELATIVE_PATH)\lang -k -i "$(ICUBLD_PKG)" -d"$(ICUBLD_PKG)\lang" $<
824 # copy the lang/pool.res file from the source folder to the build output folder
825 # and swap it to native endianness
826 lang\pool.res: $(ICUSRCDATA_RELATIVE_PATH)\lang\pool.res
827 "$(ICUPBIN)\icupkg" -tl "$(ICUSRCDATA_RELATIVE_PATH)\lang\pool.res" lang\pool.res
830 @echo Generating <<lang\res_index.txt
831 // Warning this file is automatically generated
832 res_index:table(nofallback) {
834 $(LANG_SOURCE:.txt= {""}
839 @"$(ICUTOOLS)\genrb\$(CFG)\genrb" -k -d"$(ICUBLD_PKG)\lang" .\lang\res_index.txt
842 {$(ICUSRCDATA_RELATIVE_PATH)\region}.txt{region}.res::
843 @echo Making region display name files
844 @"$(ICUTOOLS)\genrb\$(CFG)\genrb" --usePoolBundle $(ICUSRCDATA_RELATIVE_PATH)\region -k -i "$(ICUBLD_PKG)" -d"$(ICUBLD_PKG)\region" $<
846 # copy the region/pool.res file from the source folder to the build output folder
847 # and swap it to native endianness
848 region\pool.res: $(ICUSRCDATA_RELATIVE_PATH)\region\pool.res
849 "$(ICUPBIN)\icupkg" -tl "$(ICUSRCDATA_RELATIVE_PATH)\region\pool.res" region\pool.res
851 region\res_index.res:
852 @echo Generating <<region\res_index.txt
853 // Warning this file is automatically generated
854 res_index:table(nofallback) {
856 $(REGION_SOURCE:.txt= {""}
861 @"$(ICUTOOLS)\genrb\$(CFG)\genrb" -k -d"$(ICUBLD_PKG)\region" .\region\res_index.txt
864 {$(ICUSRCDATA_RELATIVE_PATH)\zone}.txt{zone}.res::
865 @echo Making time zone display name files
866 @"$(ICUTOOLS)\genrb\$(CFG)\genrb" --usePoolBundle $(ICUSRCDATA_RELATIVE_PATH)\zone -k -i "$(ICUBLD_PKG)" -d"$(ICUBLD_PKG)\zone" $<
868 # copy the zone/pool.res file from the source folder to the build output folder
869 # and swap it to native endianness
870 zone\pool.res: $(ICUSRCDATA_RELATIVE_PATH)\zone\pool.res
871 "$(ICUPBIN)\icupkg" -tl "$(ICUSRCDATA_RELATIVE_PATH)\zone\pool.res" zone\pool.res
874 @echo Generating <<zone\res_index.txt
875 // Warning this file is automatically generated
876 res_index:table(nofallback) {
878 $(ZONE_SOURCE:.txt= {""}
883 @"$(ICUTOOLS)\genrb\$(CFG)\genrb" -k -d"$(ICUBLD_PKG)\zone" .\zone\res_index.txt
886 {$(ICUSRCDATA_RELATIVE_PATH)\$(ICUCOL)}.txt{$(ICUCOL)}.res::
887 @echo Making Collation files
888 @"$(ICUTOOLS)\genrb\$(CFG)\genrb" -k -i "$(ICUBLD_PKG)" -d"$(ICUBLD_PKG)\$(ICUCOL)" $<
890 $(ICUCOL)\res_index.res:
891 @echo Generating <<$(ICUCOL)\res_index.txt
892 // Warning this file is automatically generated
893 res_index:table(nofallback) {
895 $(COLLATION_SOURCE:.txt= {""}
900 @"$(ICUTOOLS)\genrb\$(CFG)\genrb" -k -d"$(ICUBLD_PKG)\$(ICUCOL)" .\$(ICUCOL)\res_index.txt
902 {$(ICUSRCDATA_RELATIVE_PATH)\$(ICURBNF)}.txt{$(ICURBNF)}.res::
903 @echo Making RBNF files
904 @"$(ICUTOOLS)\genrb\$(CFG)\genrb" -k -i "$(ICUBLD_PKG)" -d"$(ICUBLD_PKG)\$(ICURBNF)" $<
906 $(ICURBNF)\res_index.res:
907 @echo Generating <<$(ICURBNF)\res_index.txt
908 // Warning this file is automatically generated
909 res_index:table(nofallback) {
911 $(RBNF_SOURCE:.txt= {""}
916 @"$(ICUTOOLS)\genrb\$(CFG)\genrb" -k -d"$(ICUBLD_PKG)\$(ICURBNF)" .\$(ICURBNF)\res_index.txt
918 $(ICUBRK)\res_index.res:
919 @echo Generating <<$(ICUBRK)\res_index.txt
920 // Warning this file is automatically generated
921 res_index:table(nofallback) {
923 $(BRK_RES_SOURCE:.txt= {""}
928 @"$(ICUTOOLS)\genrb\$(CFG)\genrb" -k -d"$(ICUBLD_PKG)\$(ICUBRK)" .\$(ICUBRK)\res_index.txt
930 {$(ICUSRCDATA_RELATIVE_PATH)\$(ICUBRK)}.txt{$(ICUBRK)}.res::
931 @echo Making Break Iterator Resource files
932 @"$(ICUTOOLS)\genrb\$(CFG)\genrb" -k -i "$(ICUBLD_PKG)" -d"$(ICUBLD_PKG)\$(ICUBRK)" $<
934 {$(ICUSRCDATA_RELATIVE_PATH)\$(ICUTRNS)}.txt{$(ICUTRNS)}.res::
935 @echo Making Transliterator files
936 @"$(ICUTOOLS)\genrb\$(CFG)\genrb" -k -i "$(ICUBLD_PKG)" -d"$(ICUBLD_PKG)\$(ICUTRNS)" $<
939 # DLL version information
940 # If you modify this, modify winmode.c in pkgdata.
941 "$(ICUTMP)\icudata.res": "$(ICUMISC)\icudata.rc"
942 @echo Creating data DLL version information from $**
943 @rc.exe /i "..\..\..\..\common" /r /fo $@ $**
945 # Targets for converters
946 "$(ICUBLD_PKG)\cnvalias.icu" : {"$(ICUSRCDATA)\$(ICUUCM)"}\convrtrs.txt "$(ICUTOOLS)\gencnval\$(CFG)\gencnval.exe"
947 @echo Creating data file for Converter Aliases
948 @"$(ICUTOOLS)\gencnval\$(CFG)\gencnval" -d "$(ICUBLD_PKG)" "$(ICUSRCDATA)\$(ICUUCM)\convrtrs.txt"
950 # Targets for prebuilt Unicode data
951 "$(ICUBLD_PKG)\pnames.icu": $(ICUSRCDATA_RELATIVE_PATH)\in\pnames.icu
952 "$(ICUPBIN)\icupkg" -tl $? $@
954 "$(ICUBLD_PKG)\ubidi.icu": $(ICUSRCDATA_RELATIVE_PATH)\in\ubidi.icu
955 "$(ICUPBIN)\icupkg" -tl $? $@
957 "$(ICUBLD_PKG)\ucase.icu": $(ICUSRCDATA_RELATIVE_PATH)\in\ucase.icu
958 "$(ICUPBIN)\icupkg" -tl $? $@
960 "$(ICUBLD_PKG)\uprops.icu": $(ICUSRCDATA_RELATIVE_PATH)\in\uprops.icu
961 "$(ICUPBIN)\icupkg" -tl $? $@
963 "$(ICUBLD_PKG)\unames.icu": $(ICUSRCDATA_RELATIVE_PATH)\in\unames.icu
964 "$(ICUPBIN)\icupkg" -tl $? $@
966 "$(ICUBLD_PKG)\nfc.nrm": $(ICUSRCDATA_RELATIVE_PATH)\in\nfc.nrm
967 "$(ICUPBIN)\icupkg" -tl $? $@
969 "$(ICUBLD_PKG)\nfkc.nrm": $(ICUSRCDATA_RELATIVE_PATH)\in\nfkc.nrm
970 "$(ICUPBIN)\icupkg" -tl $? $@
972 "$(ICUBLD_PKG)\nfkc_cf.nrm": $(ICUSRCDATA_RELATIVE_PATH)\in\nfkc_cf.nrm
973 "$(ICUPBIN)\icupkg" -tl $? $@
975 "$(ICUBLD_PKG)\uts46.nrm": $(ICUSRCDATA_RELATIVE_PATH)\in\uts46.nrm
976 "$(ICUPBIN)\icupkg" -tl $? $@
978 "$(ICUBLD_PKG)\coll\ucadata.icu": $(ICUSRCDATA_RELATIVE_PATH)\in\coll\ucadata.icu
979 "$(ICUPBIN)\icupkg" -tl $? $@
981 # Stringprep .spp file generation.
982 {$(ICUSRCDATA_RELATIVE_PATH)\$(ICUSPREP)}.txt.spp:
984 @"$(ICUTOOLS)\gensprep\$(CFG)\gensprep" -s $(<D) -d "$(ICUBLD_PKG)" -b $(@B) -m "$(ICUUNIDATA)" -u 3.2.0 $(<F)
986 # Confusables .cfu file generation
987 # Can't use an inference rule because two .txt source files combine to produce a single .cfu output file
988 "$(ICUBLD_PKG)\confusables.cfu": "$(ICUUNIDATA)\confusables.txt" "$(ICUUNIDATA)\confusablesWholeScript.txt" "$(ICUTOOLS)\gencfu\$(CFG)\gencfu.exe"
990 @"$(ICUTOOLS)\gencfu\$(CFG)\gencfu" -c -r "$(ICUUNIDATA)\confusables.txt" -w "$(ICUUNIDATA)\confusablesWholeScript.txt" -o $@ -i "$(ICUBLD_PKG)"
992 !IFDEF ICUDATA_ARCHIVE
993 "$(ICUDATA_SOURCE_ARCHIVE)": CREATE_DIRS $(ICUDATA_ARCHIVE) "$(ICUTOOLS)\icupkg\$(CFG)\icupkg.exe"
994 "$(ICUTOOLS)\icupkg\$(CFG)\icupkg" -t$(U_ICUDATA_ENDIAN_SUFFIX) "$(ICUDATA_ARCHIVE)" "$(ICUDATA_SOURCE_ARCHIVE)"
997 # Dependencies on the tools for the batch inference rules
999 !IFNDEF ICUDATA_SOURCE_ARCHIVE
1000 $(UCM_SOURCE) : {"$(ICUTOOLS)\makeconv\$(CFG)"}makeconv.exe
1002 !IFDEF BUILD_SPECIAL_CNV_FILES
1003 $(UCM_SOURCE_SPECIAL): {"$(ICUTOOLS)\makeconv\$(CFG)"}makeconv.exe
1006 # This used to depend on "$(ICUBLD_PKG)\uprops.icu" "$(ICUBLD_PKG)\ucase.icu" "$(ICUBLD_PKG)\ubidi.icu"
1007 # This data is now hard coded as a part of the library.
1008 # See Jitterbug 4497 for details.
1009 $(MISC_SOURCE) $(RB_FILES) $(CURR_FILES) $(LANG_FILES) $(REGION_FILES) $(ZONE_FILES) $(COL_COL_FILES) $(RBNF_RES_FILES) $(BRK_RES_FILES) $(TRANSLIT_RES_FILES): {"$(ICUTOOLS)\genrb\$(CFG)"}genrb.exe "$(ICUBLD_PKG)\nfc.nrm" "$(ICUBLD_PKG)\$(ICUCOL)\ucadata.icu"
1011 # This used to depend on "$(ICUBLD_PKG)\pnames.icu" "$(ICUBLD_PKG)\uprops.icu" "$(ICUBLD_PKG)\ucase.icu" "$(ICUBLD_PKG)\ubidi.icu"
1012 # These are now hardcoded in ICU4C and only loaded in ICU4J.
1013 $(BRK_SOURCE) : "$(ICUBLD_PKG)\unames.icu" "$(ICUBLD_PKG)\nfc.nrm"