1 #**********************************************************************
2 #* Copyright (C) 1999-2011, 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=icudt49
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_CTD_SOURCE=$(BRK_CTD_SOURCE) $(BRK_CTD_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_CTD_SOURCE
256 BRK_CTD_FILES = $(ICUBRK)\$(BRK_CTD_SOURCE:.txt =.ctd brkitr\)
257 BRK_CTD_FILES = $(BRK_CTD_FILES:.txt=.ctd)
258 BRK_CTD_FILES = $(BRK_CTD_FILES: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" "$(ICUBLD_PKG)\$(ICUCOL)\invuca.icu" $(CURR_RES_FILES) $(LANG_RES_FILES) $(REGION_RES_FILES) $(ZONE_RES_FILES) $(BRK_FILES) $(BRK_CTD_FILES) $(BRK_RES_FILES) $(COL_COL_FILES) $(RBNF_RES_FILES) $(TRANSLIT_RES_FILES) $(ALL_RES) $(SPREP_FILES) "$(ICUBLD_PKG)\confusables.cfu"
606 @echo Building icu data
608 "$(ICUPBIN)\pkgdata" $(COMMON_ICUDATA_ARGUMENTS) <<"$(ICUTMP)\icudata.lst"
611 $(ICUCOL)\ucadata.icu
618 $(CNV_FILES:.cnv =.cnv
620 $(CNV_FILES_SPECIAL:.cnv =.cnv
624 $(CURR_RES_FILES:.res =.res
626 $(LANG_RES_FILES:.res =.res
628 $(REGION_RES_FILES:.res =.res
630 $(ZONE_RES_FILES:.res =.res
632 $(COL_COL_FILES:.res =.res
634 $(RBNF_RES_FILES:.res =.res
636 $(TRANSLIT_RES_FILES:.res =.res
638 $(BRK_FILES:.brk =.brk
640 $(BRK_CTD_FILES:.ctd =.ctd
642 $(BRK_RES_FILES:.res =.res
644 $(SPREP_FILES:.spp=.spp
647 -@erase "$(ICU_LIB_TARGET)"
648 copy "$(U_ICUDATA_NAME).dll" "$(ICU_LIB_TARGET)"
649 -@erase "$(U_ICUDATA_NAME).dll"
650 copy "$(ICUTMP)\$(ICUPKG).dat" "$(ICUOUT)\$(U_ICUDATA_NAME)$(U_ICUDATA_ENDIAN_SUFFIX).dat"
651 -@erase "$(ICUTMP)\$(ICUPKG).dat"
654 # utility target to create missing directories
656 @if not exist "$(ICUOUT)\$(NULL)" mkdir "$(ICUOUT)"
657 @if not exist "$(ICUTMP)\$(NULL)" mkdir "$(ICUTMP)"
658 @if not exist "$(ICUOUT)\build\$(NULL)" mkdir "$(ICUOUT)\build"
659 @if not exist "$(ICUBLD_PKG)\$(NULL)" mkdir "$(ICUBLD_PKG)"
660 @if not exist "$(ICUBLD_PKG)\curr\$(NULL)" mkdir "$(ICUBLD_PKG)\curr"
661 @if not exist "$(ICUBLD_PKG)\lang\$(NULL)" mkdir "$(ICUBLD_PKG)\lang"
662 @if not exist "$(ICUBLD_PKG)\region\$(NULL)" mkdir "$(ICUBLD_PKG)\region"
663 @if not exist "$(ICUBLD_PKG)\zone\$(NULL)" mkdir "$(ICUBLD_PKG)\zone"
664 @if not exist "$(ICUBLD_PKG)\$(ICUBRK)\$(NULL)" mkdir "$(ICUBLD_PKG)\$(ICUBRK)"
665 @if not exist "$(ICUBLD_PKG)\$(ICUCOL)\$(NULL)" mkdir "$(ICUBLD_PKG)\$(ICUCOL)"
666 @if not exist "$(ICUBLD_PKG)\$(ICURBNF)\$(NULL)" mkdir "$(ICUBLD_PKG)\$(ICURBNF)"
667 @if not exist "$(ICUBLD_PKG)\$(ICUTRNS)\$(NULL)" mkdir "$(ICUBLD_PKG)\$(ICUTRNS)"
668 @if not exist "$(TESTDATAOUT)\$(NULL)" mkdir "$(TESTDATAOUT)"
669 @if not exist "$(TESTDATABLD)\$(NULL)" mkdir "$(TESTDATABLD)"
670 @if not exist "$(TESTDATAOUT)\testdata\$(NULL)" mkdir "$(TESTDATAOUT)\testdata"
672 # utility target to send us to the right dir
676 # This is to remove all the data files
678 @echo Cleaning up the data files.
693 -@erase "region\*.res"
694 -@erase "region\*.txt"
697 @cd "$(ICUBLD_PKG)\$(ICUBRK)"
702 @cd "$(ICUBLD_PKG)\$(ICUCOL)"
705 @cd "$(ICUBLD_PKG)\$(ICURBNF)"
708 @cd "$(ICUBLD_PKG)\$(ICUTRNS)"
727 @cd "$(TESTDATAOUT)\testdata"
732 # RBBI .brk file generation.
733 {$(ICUSRCDATA_RELATIVE_PATH)\$(ICUBRK)}.txt.brk:
735 @"$(ICUTOOLS)\genbrk\$(CFG)\genbrk" -c -r $< -o $@ -d"$(ICUBLD_PKG)" -i "$(ICUBLD_PKG)"
737 # RBBI .ctd file generation.
738 {$(ICUSRCDATA_RELATIVE_PATH)\$(ICUBRK)}.txt.ctd:
740 @"$(ICUTOOLS)\genctd\$(CFG)\genctd" -c -o $@ -d"$(ICUBLD_PKG)" -i "$(ICUBLD_PKG)" $<
742 !IFNDEF ICUDATA_SOURCE_ARCHIVE
743 # Rule for creating converters
744 $(CNV_FILES): $(UCM_SOURCE)
745 @echo Making Charset Conversion tables
746 @"$(ICUTOOLS)\makeconv\$(CFG)\makeconv" -c -d"$(ICUBLD_PKG)" $(ICUSRCDATA_RELATIVE_PATH)\$(ICUUCM)\$(@B).ucm
749 !IFDEF BUILD_SPECIAL_CNV_FILES
750 $(CNV_FILES_SPECIAL): $(UCM_SOURCE_SPECIAL)
751 @echo Making Special Charset Conversion tables
752 @"$(ICUTOOLS)\makeconv\$(CFG)\makeconv" -c --ignore-siso-check -d"$(ICUBLD_PKG)" $(ICUSRCDATA_RELATIVE_PATH)\$(ICUUCM)\$(@B).ucm
755 # Batch inference rule for creating miscellaneous resource files
756 # TODO: -q option is specified to squelch the 120+ warnings about
757 # empty intvectors and binary elements. Unfortunately, this may
758 # squelch other legitimate warnings. When there is a better
759 # way, remove the -q.
760 {$(ICUSRCDATA_RELATIVE_PATH)\$(ICUMISC2)}.txt.res::
761 @echo Making Miscellaneous Resource Bundle files
762 @"$(ICUTOOLS)\genrb\$(CFG)\genrb" -k -q -d"$(ICUBLD_PKG)" $<
764 # Inference rule for creating resource bundle files
765 {$(ICUSRCDATA_RELATIVE_PATH)\$(ICULOC)}.txt.res::
766 @echo Making Locale Resource Bundle files
767 @"$(ICUTOOLS)\genrb\$(CFG)\genrb" --usePoolBundle $(ICUSRCDATA_RELATIVE_PATH)\$(ICULOC) -k -d"$(ICUBLD_PKG)" $<
769 # copy the locales/pool.res file from the source folder to the build output folder
770 # and swap it to native endianness
771 pool.res: $(ICUSRCDATA_RELATIVE_PATH)\$(ICULOC)\pool.res
772 "$(ICUPBIN)\icupkg" -tl "$(ICUSRCDATA_RELATIVE_PATH)\$(ICULOC)\pool.res" pool.res
775 @echo Generating <<res_index.txt
776 // Warning this file is automatically generated
777 res_index:table(nofallback) {
779 $(GENRB_SOURCE:.txt= {""}
784 @"$(ICUTOOLS)\genrb\$(CFG)\genrb" -k -d"$(ICUBLD_PKG)" .\res_index.txt
787 {$(ICUSRCDATA_RELATIVE_PATH)\curr}.txt{curr}.res::
788 @echo Making currency display name files
789 @"$(ICUTOOLS)\genrb\$(CFG)\genrb" --usePoolBundle $(ICUSRCDATA_RELATIVE_PATH)\curr -k -i "$(ICUBLD_PKG)" -d"$(ICUBLD_PKG)\curr" $<
791 # copy the curr/pool.res file from the source folder to the build output folder
792 # and swap it to native endianness
793 curr\pool.res: $(ICUSRCDATA_RELATIVE_PATH)\curr\pool.res
794 "$(ICUPBIN)\icupkg" -tl "$(ICUSRCDATA_RELATIVE_PATH)\curr\pool.res" curr\pool.res
797 @echo Generating <<curr\res_index.txt
798 // Warning this file is automatically generated
799 res_index:table(nofallback) {
801 $(CURR_SOURCE:.txt= {""}
806 @"$(ICUTOOLS)\genrb\$(CFG)\genrb" -k -d"$(ICUBLD_PKG)\curr" .\curr\res_index.txt
809 {$(ICUSRCDATA_RELATIVE_PATH)\lang}.txt{lang}.res::
810 @echo Making language/script display name files
811 @"$(ICUTOOLS)\genrb\$(CFG)\genrb" --usePoolBundle $(ICUSRCDATA_RELATIVE_PATH)\lang -k -i "$(ICUBLD_PKG)" -d"$(ICUBLD_PKG)\lang" $<
813 # copy the lang/pool.res file from the source folder to the build output folder
814 # and swap it to native endianness
815 lang\pool.res: $(ICUSRCDATA_RELATIVE_PATH)\lang\pool.res
816 "$(ICUPBIN)\icupkg" -tl "$(ICUSRCDATA_RELATIVE_PATH)\lang\pool.res" lang\pool.res
819 @echo Generating <<lang\res_index.txt
820 // Warning this file is automatically generated
821 res_index:table(nofallback) {
823 $(LANG_SOURCE:.txt= {""}
828 @"$(ICUTOOLS)\genrb\$(CFG)\genrb" -k -d"$(ICUBLD_PKG)\lang" .\lang\res_index.txt
831 {$(ICUSRCDATA_RELATIVE_PATH)\region}.txt{region}.res::
832 @echo Making region display name files
833 @"$(ICUTOOLS)\genrb\$(CFG)\genrb" --usePoolBundle $(ICUSRCDATA_RELATIVE_PATH)\region -k -i "$(ICUBLD_PKG)" -d"$(ICUBLD_PKG)\region" $<
835 # copy the region/pool.res file from the source folder to the build output folder
836 # and swap it to native endianness
837 region\pool.res: $(ICUSRCDATA_RELATIVE_PATH)\region\pool.res
838 "$(ICUPBIN)\icupkg" -tl "$(ICUSRCDATA_RELATIVE_PATH)\region\pool.res" region\pool.res
840 region\res_index.res:
841 @echo Generating <<region\res_index.txt
842 // Warning this file is automatically generated
843 res_index:table(nofallback) {
845 $(REGION_SOURCE:.txt= {""}
850 @"$(ICUTOOLS)\genrb\$(CFG)\genrb" -k -d"$(ICUBLD_PKG)\region" .\region\res_index.txt
853 {$(ICUSRCDATA_RELATIVE_PATH)\zone}.txt{zone}.res::
854 @echo Making time zone display name files
855 @"$(ICUTOOLS)\genrb\$(CFG)\genrb" --usePoolBundle $(ICUSRCDATA_RELATIVE_PATH)\zone -k -i "$(ICUBLD_PKG)" -d"$(ICUBLD_PKG)\zone" $<
857 # copy the zone/pool.res file from the source folder to the build output folder
858 # and swap it to native endianness
859 zone\pool.res: $(ICUSRCDATA_RELATIVE_PATH)\zone\pool.res
860 "$(ICUPBIN)\icupkg" -tl "$(ICUSRCDATA_RELATIVE_PATH)\zone\pool.res" zone\pool.res
863 @echo Generating <<zone\res_index.txt
864 // Warning this file is automatically generated
865 res_index:table(nofallback) {
867 $(ZONE_SOURCE:.txt= {""}
872 @"$(ICUTOOLS)\genrb\$(CFG)\genrb" -k -d"$(ICUBLD_PKG)\zone" .\zone\res_index.txt
875 {$(ICUSRCDATA_RELATIVE_PATH)\$(ICUCOL)}.txt{$(ICUCOL)}.res::
876 @echo Making Collation files
877 @"$(ICUTOOLS)\genrb\$(CFG)\genrb" -k -i "$(ICUBLD_PKG)" -d"$(ICUBLD_PKG)\$(ICUCOL)" $<
879 $(ICUCOL)\res_index.res:
880 @echo Generating <<$(ICUCOL)\res_index.txt
881 // Warning this file is automatically generated
882 res_index:table(nofallback) {
884 $(COLLATION_SOURCE:.txt= {""}
889 @"$(ICUTOOLS)\genrb\$(CFG)\genrb" -k -d"$(ICUBLD_PKG)\$(ICUCOL)" .\$(ICUCOL)\res_index.txt
891 {$(ICUSRCDATA_RELATIVE_PATH)\$(ICURBNF)}.txt{$(ICURBNF)}.res::
892 @echo Making RBNF files
893 @"$(ICUTOOLS)\genrb\$(CFG)\genrb" -k -i "$(ICUBLD_PKG)" -d"$(ICUBLD_PKG)\$(ICURBNF)" $<
895 $(ICURBNF)\res_index.res:
896 @echo Generating <<$(ICURBNF)\res_index.txt
897 // Warning this file is automatically generated
898 res_index:table(nofallback) {
900 $(RBNF_SOURCE:.txt= {""}
905 @"$(ICUTOOLS)\genrb\$(CFG)\genrb" -k -d"$(ICUBLD_PKG)\$(ICURBNF)" .\$(ICURBNF)\res_index.txt
907 $(ICUBRK)\res_index.res:
908 @echo Generating <<$(ICUBRK)\res_index.txt
909 // Warning this file is automatically generated
910 res_index:table(nofallback) {
912 $(BRK_RES_SOURCE:.txt= {""}
917 @"$(ICUTOOLS)\genrb\$(CFG)\genrb" -k -d"$(ICUBLD_PKG)\$(ICUBRK)" .\$(ICUBRK)\res_index.txt
919 {$(ICUSRCDATA_RELATIVE_PATH)\$(ICUBRK)}.txt{$(ICUBRK)}.res::
920 @echo Making Break Iterator Resource files
921 @"$(ICUTOOLS)\genrb\$(CFG)\genrb" -k -i "$(ICUBLD_PKG)" -d"$(ICUBLD_PKG)\$(ICUBRK)" $<
923 {$(ICUSRCDATA_RELATIVE_PATH)\$(ICUTRNS)}.txt{$(ICUTRNS)}.res::
924 @echo Making Transliterator files
925 @"$(ICUTOOLS)\genrb\$(CFG)\genrb" -k -i "$(ICUBLD_PKG)" -d"$(ICUBLD_PKG)\$(ICUTRNS)" $<
928 # DLL version information
929 # If you modify this, modify winmode.c in pkgdata.
930 "$(ICUTMP)\icudata.res": "$(ICUMISC)\icudata.rc"
931 @echo Creating data DLL version information from $**
932 @rc.exe /i "..\..\..\..\common" /r /fo $@ $**
934 # Targets for converters
935 "$(ICUBLD_PKG)\cnvalias.icu" : {"$(ICUSRCDATA)\$(ICUUCM)"}\convrtrs.txt "$(ICUTOOLS)\gencnval\$(CFG)\gencnval.exe"
936 @echo Creating data file for Converter Aliases
937 @"$(ICUTOOLS)\gencnval\$(CFG)\gencnval" -d "$(ICUBLD_PKG)" "$(ICUSRCDATA)\$(ICUUCM)\convrtrs.txt"
939 # Targets for prebuilt Unicode data
940 "$(ICUBLD_PKG)\pnames.icu": $(ICUSRCDATA_RELATIVE_PATH)\in\pnames.icu
941 "$(ICUPBIN)\icupkg" -tl $? $@
943 "$(ICUBLD_PKG)\ubidi.icu": $(ICUSRCDATA_RELATIVE_PATH)\in\ubidi.icu
944 "$(ICUPBIN)\icupkg" -tl $? $@
946 "$(ICUBLD_PKG)\ucase.icu": $(ICUSRCDATA_RELATIVE_PATH)\in\ucase.icu
947 "$(ICUPBIN)\icupkg" -tl $? $@
949 "$(ICUBLD_PKG)\uprops.icu": $(ICUSRCDATA_RELATIVE_PATH)\in\uprops.icu
950 "$(ICUPBIN)\icupkg" -tl $? $@
952 "$(ICUBLD_PKG)\unames.icu": $(ICUSRCDATA_RELATIVE_PATH)\in\unames.icu
953 "$(ICUPBIN)\icupkg" -tl $? $@
955 "$(ICUBLD_PKG)\nfc.nrm": $(ICUSRCDATA_RELATIVE_PATH)\in\nfc.nrm
956 "$(ICUPBIN)\icupkg" -tl $? $@
958 "$(ICUBLD_PKG)\nfkc.nrm": $(ICUSRCDATA_RELATIVE_PATH)\in\nfkc.nrm
959 "$(ICUPBIN)\icupkg" -tl $? $@
961 "$(ICUBLD_PKG)\nfkc_cf.nrm": $(ICUSRCDATA_RELATIVE_PATH)\in\nfkc_cf.nrm
962 "$(ICUPBIN)\icupkg" -tl $? $@
964 "$(ICUBLD_PKG)\uts46.nrm": $(ICUSRCDATA_RELATIVE_PATH)\in\uts46.nrm
965 "$(ICUPBIN)\icupkg" -tl $? $@
967 "$(ICUBLD_PKG)\coll\invuca.icu": $(ICUSRCDATA_RELATIVE_PATH)\in\coll\invuca.icu
968 "$(ICUPBIN)\icupkg" -tl $? $@
970 "$(ICUBLD_PKG)\coll\ucadata.icu": $(ICUSRCDATA_RELATIVE_PATH)\in\coll\ucadata.icu
971 "$(ICUPBIN)\icupkg" -tl $? $@
973 # Stringprep .spp file generation.
974 {$(ICUSRCDATA_RELATIVE_PATH)\$(ICUSPREP)}.txt.spp:
976 @"$(ICUTOOLS)\gensprep\$(CFG)\gensprep" -s $(<D) -d "$(ICUBLD_PKG)" -b $(@B) -m "$(ICUUNIDATA)" -u 3.2.0 $(<F)
978 # Confusables .cfu file generation
979 # Can't use an inference rule because two .txt source files combine to produce a single .cfu output file
980 "$(ICUBLD_PKG)\confusables.cfu": "$(ICUUNIDATA)\confusables.txt" "$(ICUUNIDATA)\confusablesWholeScript.txt" "$(ICUTOOLS)\gencfu\$(CFG)\gencfu.exe"
982 @"$(ICUTOOLS)\gencfu\$(CFG)\gencfu" -c -r "$(ICUUNIDATA)\confusables.txt" -w "$(ICUUNIDATA)\confusablesWholeScript.txt" -o $@ -i "$(ICUBLD_PKG)"
984 !IFDEF ICUDATA_ARCHIVE
985 "$(ICUDATA_SOURCE_ARCHIVE)": CREATE_DIRS $(ICUDATA_ARCHIVE) "$(ICUTOOLS)\icupkg\$(CFG)\icupkg.exe"
986 "$(ICUTOOLS)\icupkg\$(CFG)\icupkg" -t$(U_ICUDATA_ENDIAN_SUFFIX) "$(ICUDATA_ARCHIVE)" "$(ICUDATA_SOURCE_ARCHIVE)"
989 # Dependencies on the tools for the batch inference rules
991 !IFNDEF ICUDATA_SOURCE_ARCHIVE
992 $(UCM_SOURCE) : {"$(ICUTOOLS)\makeconv\$(CFG)"}makeconv.exe
994 !IFDEF BUILD_SPECIAL_CNV_FILES
995 $(UCM_SOURCE_SPECIAL): {"$(ICUTOOLS)\makeconv\$(CFG)"}makeconv.exe
998 # This used to depend on "$(ICUBLD_PKG)\uprops.icu" "$(ICUBLD_PKG)\ucase.icu" "$(ICUBLD_PKG)\ubidi.icu"
999 # This data is now hard coded as a part of the library.
1000 # See Jitterbug 4497 for details.
1001 $(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"
1003 # This used to depend on "$(ICUBLD_PKG)\pnames.icu" "$(ICUBLD_PKG)\uprops.icu" "$(ICUBLD_PKG)\ucase.icu" "$(ICUBLD_PKG)\ubidi.icu"
1004 # These are now hardcoded in ICU4C and only loaded in ICU4J.
1005 $(BRK_SOURCE) : "$(ICUBLD_PKG)\unames.icu" "$(ICUBLD_PKG)\nfc.nrm"