1 # Copyright (C) 2016 and later: Unicode, Inc. and others.
2 # License & terms of use: http://www.unicode.org/copyright.html
3 #**********************************************************************
4 #* Copyright (C) 1999-2016, International Business Machines Corporation
5 #* and others. All Rights Reserved.
6 #**********************************************************************
7 # nmake file for creating data files on win32
9 # nmake /f makedata.mak icumake=$(ProjectDir)
11 # 12/10/1999 weiv Created
13 ##############################################################################
14 # Keep the following in sync with the version - see common/unicode/uvernum.h
15 U_ICUDATA_NAME=icudt58
16 ##############################################################################
17 U_ICUDATA_ENDIAN_SUFFIX=l
19 ICU_LIB_TARGET=$(DLL_OUTPUT)\$(U_ICUDATA_NAME).dll
22 # Must be provided by whoever runs this makefile.
23 # Is the directory containing this file (makedata.mak)
24 # Is the directory into which most data is built (prior to packaging)
28 !ERROR Can't find ICUMAKE (ICU Data Make dir, should point to icu\source\data\ )!
30 !MESSAGE ICU data make path is $(ICUMAKE)
32 # Suffixes for data files
33 .SUFFIXES : .nrm .icu .ucm .cnv .dll .dat .res .txt .c
37 # the prefix "icudt21_" for use in filenames
38 ICUPKG=$(U_ICUDATA_NAME)$(U_ICUDATA_ENDIAN_SUFFIX)
40 # need to nuke \\ for .NET...
43 ICUBLD=$(ICUOUT)\build
44 ICUBLD_PKG=$(ICUBLD)\$(ICUPKG)
48 # The root of the ICU source directory tree
51 ICUP=$(ICUP:\source\data\..\..=)
52 # In case the first one didn't do it, try this one. .NET would do the second one.
53 ICUP=$(ICUP:\source\data\\..\..=)
54 !MESSAGE ICU root path is $(ICUP)
58 # The data directory in source
60 ICUSRCDATA=$(ICUP)\source\data
61 ICUSRCDATA_RELATIVE_PATH=..\..\..
64 # The directory that contains ucmcore.mk files along with *.ucm files
69 # The directory that contains resfiles.mk files along with *.txt locale data files
74 # The directory that contains colfiles.mk files along with *.txt collation data files
79 # The directory that contains rbnffiles.mk files along with *.txt RBNF data files
84 # The directory that contains trfiles.mk files along with *.txt transliterator files
89 # The directory that contains resfiles.mk files along with *.txt break iterator files
94 # The directory that contains Unicode data files
96 ICUUNIDATA=$(ICUP)\source\data\unidata
100 # The directory that contains miscfiles.mk along with files that are miscelleneous data
102 ICUMISC=$(ICUP)\source\data\misc
106 # The directory that contains sprepfiles.mk files along with *.txt stringprep files
112 # The source directory. Contains the source files for the common data to be built.
113 # WARNING: NOT THE SAME AS ICU_DATA environment variable. Confusing.
114 ICUDATA=$(ICUP)\source\data
118 # Destination directory for the common data DLL file.
119 # This is the same place that all of the other ICU DLLs go (the code-containing DLLs)
120 # The lib file for the data DLL goes in $(DLL_OUTPUT)/../lib/
122 !IF "$(CFG)" == "x64\Release" || "$(CFG)" == "x64\Debug"
123 DLL_OUTPUT=$(ICUP)\bin64
125 DLL_OUTPUT=$(ICUP)\bin
130 # The source directory for data needed for test programs.
131 TESTDATA=$(ICUP)\source\test\testdata
135 # The destination directory for the built test data .dat file
136 TESTDATAOUT=$(ICUP)\source\test\testdata\out
140 # The build directory for test data intermidiate files
141 # (Tests are NOT run from this makefile,
142 # only the data is put in place.)
143 TESTDATABLD=$(ICUP)\source\test\testdata\out\build
147 # Directory under which all of the ICU data building tools live.
149 ICUTOOLS=$(ICUP)\source\tools
151 # The current ICU tools need to be in the path first.
152 !IF "$(CFG)" == "x64\Release" || "$(CFG)" == "x64\Debug"
153 PATH = $(ICUP)\bin64;$(PATH)
154 ICUPBIN=$(ICUP)\bin64
156 PATH = $(ICUP)\bin;$(PATH)
161 # This variable can be overridden to "-m static" by the project settings,
162 # if you want a static data library.
163 !IF "$(ICU_PACKAGE_MODE)"==""
164 ICU_PACKAGE_MODE=-m dll
167 # If this archive exists, build from that
168 # instead of building everything from scratch.
169 ICUDATA_SOURCE_ARCHIVE=$(ICUSRCDATA)\in\$(ICUPKG).dat
170 !IF !EXISTS("$(ICUDATA_SOURCE_ARCHIVE)")
171 # Does a big endian version exist either?
172 ICUDATA_ARCHIVE=$(ICUSRCDATA)\in\$(U_ICUDATA_NAME)b.dat
173 !IF EXISTS("$(ICUDATA_ARCHIVE)")
174 ICUDATA_SOURCE_ARCHIVE=$(ICUTMP)\$(ICUPKG).dat
176 # Nothing was usable for input
177 !UNDEF ICUDATA_SOURCE_ARCHIVE
181 !IFDEF ICUDATA_SOURCE_ARCHIVE
182 !MESSAGE ICU data source archive is $(ICUDATA_SOURCE_ARCHIVE)
184 # We're including a list of .ucm files.
185 # There are several lists, they are all optional.
187 # Always build the mapping files for the EBCDIC fallback codepages
188 # They are necessary on EBCDIC machines, and
189 # the following logic is much easier if UCM_SOURCE is never empty.
191 UCM_SOURCE=ibm-37_P100-1995.ucm ibm-1047_P100-1995.ucm
193 !IF EXISTS("$(ICUSRCDATA)\$(ICUUCM)\ucmcore.mk")
194 !INCLUDE "$(ICUSRCDATA)\$(ICUUCM)\ucmcore.mk"
195 UCM_SOURCE=$(UCM_SOURCE) $(UCM_SOURCE_CORE)
197 !MESSAGE Warning: cannot find "ucmcore.mk". Not building core MIME/Unix/Windows converter files.
200 !IF EXISTS("$(ICUSRCDATA)\$(ICUUCM)\ucmfiles.mk")
201 !INCLUDE "$(ICUSRCDATA)\$(ICUUCM)\ucmfiles.mk"
202 UCM_SOURCE=$(UCM_SOURCE) $(UCM_SOURCE_FILES)
204 !MESSAGE Warning: cannot find "ucmfiles.mk". Not building many converter files.
207 !IF EXISTS("$(ICUSRCDATA)\$(ICUUCM)\ucmebcdic.mk")
208 !INCLUDE "$(ICUSRCDATA)\$(ICUUCM)\ucmebcdic.mk"
209 UCM_SOURCE=$(UCM_SOURCE) $(UCM_SOURCE_EBCDIC)
210 !IFDEF UCM_SOURCE_EBCDIC_IGNORE_SISO
211 BUILD_SPECIAL_CNV_FILES=YES
212 UCM_SOURCE_SPECIAL=$(UCM_SOURCE_EBCDIC_IGNORE_SISO)
214 !UNDEF BUILD_SPECIAL_CNV_FILES
217 !MESSAGE Warning: cannot find "ucmebcdic.mk". Not building EBCDIC converter files.
220 !IF EXISTS("$(ICUSRCDATA)\$(ICUUCM)\ucmlocal.mk")
221 !INCLUDE "$(ICUSRCDATA)\$(ICUUCM)\ucmlocal.mk"
222 UCM_SOURCE=$(UCM_SOURCE) $(UCM_SOURCE_LOCAL)
223 !IFDEF UCM_SOURCE_EBCDIC_IGNORE_SISO_LOCAL
224 UCM_SOURCE_SPECIAL=$(UCM_SOURCE_SPECIAL) $(UCM_SOURCE_EBCDIC_IGNORE_SISO_LOCAL)
225 BUILD_SPECIAL_CNV_FILES=YES
228 !MESSAGE Information: cannot find "ucmlocal.mk". Not building user-additional converter files.
231 CNV_FILES=$(UCM_SOURCE:.ucm=.cnv)
232 !IFDEF BUILD_SPECIAL_CNV_FILES
233 CNV_FILES_SPECIAL=$(UCM_SOURCE_SPECIAL:.ucm=.cnv)
236 !IF EXISTS("$(ICUSRCDATA)\$(ICUBRK)\brkfiles.mk")
237 !INCLUDE "$(ICUSRCDATA)\$(ICUBRK)\brkfiles.mk"
238 !IF EXISTS("$(ICUSRCDATA)\$(ICUBRK)\brklocal.mk")
239 !INCLUDE "$(ICUSRCDATA)\$(ICUBRK)\brklocal.mk"
240 BRK_SOURCE=$(BRK_SOURCE) $(BRK_SOURCE_LOCAL)
241 BRK_DICT_SOURCE=$(BRK_DICT_SOURCE) $(BRK_DICT_SOURCE_LOCAL)
242 BRK_RES_SOURCE=$(BRK_RES_SOURCE) $(BRK_RES_SOURCE_LOCAL)
244 !MESSAGE Information: cannot find "brklocal.mk". Not building user-additional break iterator files.
247 !MESSAGE Warning: cannot find "brkfiles.mk"
251 # Break iterator data files.
253 BRK_FILES=$(ICUBRK)\$(BRK_SOURCE:.txt =.brk brkitr\)
254 BRK_FILES=$(BRK_FILES:.txt=.brk)
255 BRK_FILES=$(BRK_FILES:brkitr\ =brkitr\)
257 !IFDEF BRK_DICT_SOURCE
258 BRK_DICT_FILES = $(ICUBRK)\$(BRK_DICT_SOURCE:.txt =.dict brkitr\)
259 BRK_DICT_FILES = $(BRK_DICT_FILES:.txt=.dict)
260 BRK_DICT_FILES = $(BRK_DICT_FILES:brkitr\ =brkitr\)
263 !IFDEF BRK_RES_SOURCE
264 BRK_RES_FILES = $(BRK_RES_SOURCE:.txt =.res brkitr\)
265 BRK_RES_FILES = $(BRK_RES_FILES:.txt=.res)
266 BRK_RES_FILES = $(ICUBRK)\root.res $(ICUBRK)\$(BRK_RES_FILES:brkitr\ =)
267 ALL_RES = $(ALL_RES) $(ICUBRK)\res_index.res
270 # Read list of locale resource bundle files
271 !IF EXISTS("$(ICUSRCDATA)\$(ICULOC)\resfiles.mk")
272 !INCLUDE "$(ICUSRCDATA)\$(ICULOC)\resfiles.mk"
273 !IF EXISTS("$(ICUSRCDATA)\$(ICULOC)\reslocal.mk")
274 !INCLUDE "$(ICUSRCDATA)\$(ICULOC)\reslocal.mk"
275 GENRB_SOURCE=$(GENRB_SOURCE) $(GENRB_SOURCE_LOCAL)
277 !MESSAGE Information: cannot find "reslocal.mk". Not building user-additional resource bundle files.
280 !MESSAGE Warning: cannot find "resfiles.mk"
284 RB_FILES = root.res pool.res $(GENRB_ALIAS_SOURCE:.txt=.res) $(GENRB_ALIAS_SOURCE_LOCAL:.txt=.res) $(GENRB_SOURCE:.txt=.res)
285 ALL_RES = $(ALL_RES) res_index.res
289 # Read the list of currency display name resource bundle files
290 !IF EXISTS("$(ICUSRCDATA)\curr\resfiles.mk")
291 !INCLUDE "$(ICUSRCDATA)\curr\resfiles.mk"
292 !IF EXISTS("$(ICUSRCDATA)\curr\reslocal.mk")
293 !INCLUDE "$(ICUSRCDATA)\curr\reslocal.mk"
294 CURR_SOURCE=$(CURR_SOURCE) $(CURR_SOURCE_LOCAL)
296 !MESSAGE Information: cannot find "curr\reslocal.mk". Not building user-additional resource bundle files.
299 !MESSAGE Warning: cannot find "curr\resfiles.mk"
303 CURR_FILES = curr\root.txt supplementalData.txt $(CURR_ALIAS_SOURCE) $(CURR_SOURCE)
304 CURR_RES_FILES = $(CURR_FILES:.txt =.res curr\)
305 CURR_RES_FILES = $(CURR_RES_FILES:.txt=.res)
306 CURR_RES_FILES = curr\pool.res $(CURR_RES_FILES:curr\ =curr\)
307 ALL_RES = $(ALL_RES) curr\res_index.res
310 # Read the list of language/script display name resource bundle files
311 !IF EXISTS("$(ICUSRCDATA)\lang\resfiles.mk")
312 !INCLUDE "$(ICUSRCDATA)\lang\resfiles.mk"
313 !IF EXISTS("$(ICUSRCDATA)\lang\reslocal.mk")
314 !INCLUDE "$(ICUSRCDATA)\lang\reslocal.mk"
315 LANG_SOURCE=$(LANG_SOURCE) $(LANG_SOURCE_LOCAL)
317 !MESSAGE Information: cannot find "lang\reslocal.mk". Not building user-additional resource bundle files.
320 !MESSAGE Warning: cannot find "lang\resfiles.mk"
324 LANG_FILES = lang\root.txt $(LANG_ALIAS_SOURCE) $(LANG_SOURCE)
325 LANG_RES_FILES = $(LANG_FILES:.txt =.res lang\)
326 LANG_RES_FILES = $(LANG_RES_FILES:.txt=.res)
327 LANG_RES_FILES = lang\pool.res $(LANG_RES_FILES:lang\ =lang\)
328 ALL_RES = $(ALL_RES) lang\res_index.res
331 # Read the list of region display name resource bundle files
332 !IF EXISTS("$(ICUSRCDATA)\region\resfiles.mk")
333 !INCLUDE "$(ICUSRCDATA)\region\resfiles.mk"
334 !IF EXISTS("$(ICUSRCDATA)\region\reslocal.mk")
335 !INCLUDE "$(ICUSRCDATA)\region\reslocal.mk"
336 REGION_SOURCE=$(REGION_SOURCE) $(REGION_SOURCE_LOCAL)
338 !MESSAGE Information: cannot find "region\reslocal.mk". Not building user-additional resource bundle files.
341 !MESSAGE Warning: cannot find "region\resfiles.mk"
345 REGION_FILES = region\root.txt $(REGION_ALIAS_SOURCE) $(REGION_SOURCE)
346 REGION_RES_FILES = $(REGION_FILES:.txt =.res region\)
347 REGION_RES_FILES = $(REGION_RES_FILES:.txt=.res)
348 REGION_RES_FILES = region\pool.res $(REGION_RES_FILES:region\ =region\)
349 ALL_RES = $(ALL_RES) region\res_index.res
352 # Read the list of time zone display name resource bundle files
353 !IF EXISTS("$(ICUSRCDATA)\zone\resfiles.mk")
354 !INCLUDE "$(ICUSRCDATA)\zone\resfiles.mk"
355 !IF EXISTS("$(ICUSRCDATA)\zone\reslocal.mk")
356 !INCLUDE "$(ICUSRCDATA)\zone\reslocal.mk"
357 ZONE_SOURCE=$(ZONE_SOURCE) $(ZONE_SOURCE_LOCAL)
359 !MESSAGE Information: cannot find "zone\reslocal.mk". Not building user-additional resource bundle files.
361 ZONE_SOURCE=$(ZONE_SOURCE) tzdbNames.txt
363 !MESSAGE Warning: cannot find "zone\resfiles.mk"
367 ZONE_FILES = zone\root.txt $(ZONE_ALIAS_SOURCE) $(ZONE_SOURCE)
368 ZONE_RES_FILES = $(ZONE_FILES:.txt =.res zone\)
369 ZONE_RES_FILES = $(ZONE_RES_FILES:.txt=.res)
370 ZONE_RES_FILES = zone\pool.res $(ZONE_RES_FILES:zone\ =zone\)
371 ALL_RES = $(ALL_RES) zone\res_index.res
374 # Read the list of units display name resource bundle files
375 !IF EXISTS("$(ICUSRCDATA)\unit\resfiles.mk")
376 !INCLUDE "$(ICUSRCDATA)\unit\resfiles.mk"
377 !IF EXISTS("$(ICUSRCDATA)\unit\reslocal.mk")
378 !INCLUDE "$(ICUSRCDATA)\unit\reslocal.mk"
379 UNIT_SOURCE=$(UNIT_SOURCE) $(UNIT_SOURCE_LOCAL)
381 !MESSAGE Information: cannot find "unit\reslocal.mk". Not building user-additional resource bundle files.
384 !MESSAGE Warning: cannot find "unit\resfiles.mk"
388 UNIT_FILES = unit\root.txt $(UNIT_ALIAS_SOURCE) $(UNIT_SOURCE)
389 UNIT_RES_FILES = $(UNIT_FILES:.txt =.res unit\)
390 UNIT_RES_FILES = $(UNIT_RES_FILES:.txt=.res)
391 UNIT_RES_FILES = unit\pool.res $(UNIT_RES_FILES:unit\ =unit\)
392 ALL_RES = $(ALL_RES) unit\res_index.res
395 # Read the list of collation resource bundle files
396 !IF EXISTS("$(ICUSRCDATA)\$(ICUCOL)\colfiles.mk")
397 !INCLUDE "$(ICUSRCDATA)\$(ICUCOL)\colfiles.mk"
398 !IF EXISTS("$(ICUSRCDATA)\$(ICUCOL)\collocal.mk")
399 !INCLUDE "$(ICUSRCDATA)\$(ICUCOL)\collocal.mk"
400 COLLATION_SOURCE=$(COLLATION_SOURCE) $(COLLATION_SOURCE_LOCAL)
402 !MESSAGE Information: cannot find "collocal.mk". Not building user-additional resource bundle files.
405 !MESSAGE Warning: cannot find "colfiles.mk"
408 !IFDEF COLLATION_SOURCE
409 COL_FILES = $(ICUCOL)\root.txt $(COLLATION_ALIAS_SOURCE) $(COLLATION_SOURCE)
410 COL_COL_FILES = $(COL_FILES:.txt =.res coll\)
411 COL_COL_FILES = $(COL_COL_FILES:.txt=.res)
412 COL_COL_FILES = $(COL_COL_FILES:coll\ =)
413 ALL_RES = $(ALL_RES) $(ICUCOL)\res_index.res
416 # Read the list of RBNF resource bundle files
417 !IF EXISTS("$(ICUSRCDATA)\$(ICURBNF)\rbnffiles.mk")
418 !INCLUDE "$(ICUSRCDATA)\$(ICURBNF)\rbnffiles.mk"
419 !IF EXISTS("$(ICUSRCDATA)\$(ICURBNF)\rbnflocal.mk")
420 !INCLUDE "$(ICUSRCDATA)\$(ICURBNF)\rbnflocal.mk"
421 RBNF_SOURCE=$(RBNF_SOURCE) $(RBNF_SOURCE_LOCAL)
423 !MESSAGE Information: cannot find "rbnflocal.mk". Not building user-additional resource bundle files.
426 !MESSAGE Warning: cannot find "rbnffiles.mk"
430 RBNF_FILES = $(ICURBNF)\root.txt $(RBNF_ALIAS_SOURCE) $(RBNF_SOURCE)
431 RBNF_RES_FILES = $(RBNF_FILES:.txt =.res rbnf\)
432 RBNF_RES_FILES = $(RBNF_RES_FILES:.txt=.res)
433 RBNF_RES_FILES = $(RBNF_RES_FILES:rbnf\ =rbnf\)
434 ALL_RES = $(ALL_RES) $(ICURBNF)\res_index.res
437 # Read the list of transliterator resource bundle files
438 !IF EXISTS("$(ICUSRCDATA)\$(ICUTRNS)\trnsfiles.mk")
439 !INCLUDE "$(ICUSRCDATA)\$(ICUTRNS)\trnsfiles.mk"
440 !IF EXISTS("$(ICUSRCDATA)\$(ICUTRNS)\trnslocal.mk")
441 !INCLUDE "$(ICUSRCDATA)\$(ICUTRNS)\trnslocal.mk"
442 TRANSLIT_SOURCE=$(TRANSLIT_SOURCE) $(TRANSLIT_SOURCE_LOCAL)
444 !MESSAGE Information: cannot find "trnslocal.mk". Not building user-additional transliterator files.
447 !MESSAGE Warning: cannot find "trnsfiles.mk"
450 !IFDEF TRANSLIT_SOURCE
451 TRANSLIT_FILES = $(ICUTRNS)\$(TRANSLIT_ALIAS_SOURCE) $(TRANSLIT_SOURCE)
452 TRANSLIT_RES_FILES = $(TRANSLIT_FILES:.txt =.res translit\)
453 TRANSLIT_RES_FILES = $(TRANSLIT_RES_FILES:.txt=.res)
454 TRANSLIT_RES_FILES = $(TRANSLIT_RES_FILES:translit\ =translit\)
455 #ALL_RES = $(ALL_RES) $(ICUTRNS)\res_index.res
458 # Read the list of miscellaneous resource bundle files
459 !IF EXISTS("$(ICUSRCDATA)\$(ICUMISC2)\miscfiles.mk")
460 !INCLUDE "$(ICUSRCDATA)\$(ICUMISC2)\miscfiles.mk"
461 !IF EXISTS("$(ICUSRCDATA)\$(ICUMISC2)\misclocal.mk")
462 !INCLUDE "$(ICUSRCDATA)\$(ICUMISC2)\misclocal.mk"
463 MISC_SOURCE=$(MISC_SOURCE) $(MISC_SOURCE_LOCAL)
465 !MESSAGE Information: cannot find "misclocal.mk". Not building user-additional miscellaenous files.
468 !MESSAGE Warning: cannot find "miscfiles.mk"
471 MISC_FILES = $(MISC_SOURCE:.txt=.res)
473 # don't include COL_FILES
474 ALL_RES = $(ALL_RES) $(RB_FILES) $(MISC_FILES)
477 # Read the list of stringprep profile files
478 !IF EXISTS("$(ICUSRCDATA)\$(ICUSPREP)\sprepfiles.mk")
479 !INCLUDE "$(ICUSRCDATA)\$(ICUSPREP)\sprepfiles.mk"
480 !IF EXISTS("$(ICUSRCDATA)\$(ICUSPREP)\spreplocal.mk")
481 !INCLUDE "$(ICUSRCDATA)\$(ICUSPREP)\spreplocal.mk"
482 SPREP_SOURCE=$(SPREP_SOURCE) $(SPREP_SOURCE_LOCAL)
484 !MESSAGE Information: cannot find "spreplocal.mk". Not building user-additional stringprep files.
487 !MESSAGE Warning: cannot find "sprepfiles.mk"
490 SPREP_FILES = $(SPREP_SOURCE:.txt=.spp)
492 # Common defines for both ways of building ICU's data library.
493 COMMON_ICUDATA_DEPENDENCIES="$(ICUPBIN)\pkgdata.exe" "$(ICUTMP)\icudata.res" "$(ICUP)\source\stubdata\stubdatabuilt.txt"
494 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 .
496 #############################################################################
499 # This target builds all the data files. The world starts here.
500 # Note: we really want the common data dll to go to $(DLL_OUTPUT), not $(ICUBLD_PKG). But specifying
501 # that here seems to cause confusion with the building of the stub library of the same name.
502 # Building the common dll in $(ICUBLD_PKG) unconditionally copies it to $(DLL_OUTPUT) too.
504 #############################################################################
505 ALL : GODATA "$(ICU_LIB_TARGET)" "$(TESTDATAOUT)\testdata.dat"
506 @echo All targets are up to date
508 # The core Unicode properties files (uprops.icu, ucase.icu, ubidi.icu)
509 # are hardcoded in the common DLL and therefore not included in the data package any more.
510 # They are not built by default but need to be built for ICU4J data and for getting the .c source files
511 # when updating the Unicode data.
512 # Changed in makedata.mak revision 1.117. See Jitterbug 4497.
513 # 2010-dec Removed pnames.icu.
515 # 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
516 uni-core-data: GODATA "$(ICUBLD_PKG)\pnames.icu" "$(ICUBLD_PKG)\uprops.icu" "$(ICUBLD_PKG)\ucase.icu" "$(ICUBLD_PKG)\ubidi.icu" "$(ICUBLD_PKG)\nfc.nrm"
517 @echo Unicode .icu files built to "$(ICUBLD_PKG)"
519 # Build the ICU4J icudata.jar and testdata.jar.
520 # see icu4j-readme.txt
522 ICU4J_TZDATA="$(ICUOUT)\icu4j\icutzdata.jar"
523 ICU4J_DATA_DIRNAME=com\ibm\icu\impl\data\$(U_ICUDATA_NAME)b
524 ICU4J_TZDATA_PATHS=$(ICU4J_DATA_DIRNAME)\zoneinfo64.res $(ICU4J_DATA_DIRNAME)\metaZones.res $(ICU4J_DATA_DIRNAME)\timezoneTypes.res $(ICU4J_DATA_DIRNAME)\windowsZones.res
526 generate-data: GODATA "$(ICUOUT)\$(ICUPKG).dat" uni-core-data
527 if not exist "$(ICUOUT)\icu4j\$(ICU4J_DATA_DIRNAME)" mkdir "$(ICUOUT)\icu4j\$(ICU4J_DATA_DIRNAME)"
528 if not exist "$(ICUOUT)\icu4j\tzdata\$(ICU4J_DATA_DIRNAME)" mkdir "$(ICUOUT)\icu4j\tzdata\$(ICU4J_DATA_DIRNAME)"
529 echo pnames.icu ubidi.icu ucase.icu uprops.icu nfc.nrm > "$(ICUOUT)\icu4j\add.txt"
530 "$(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)"
531 @for %f in ($(ICU4J_TZDATA_PATHS)) do @move "$(ICUOUT)\icu4j\%f" "$(ICUOUT)\icu4j\tzdata\$(ICU4J_DATA_DIRNAME)"
533 "$(ICUOUT)\icu4j\icutzdata.jar": GODATA generate-data
534 "$(JAR)" cf "$(ICUOUT)\icu4j\icutzdata.jar" -C "$(ICUOUT)\icu4j\tzdata" "$(ICU4J_DATA_DIRNAME)"
537 # - add the uni-core-data to the ICU package
538 # - swap the ICU data
539 # - extract all data items
540 # - package them into the .jar file
541 "$(ICUOUT)\icu4j\icudata.jar": GODATA generate-data
542 "$(JAR)" cf "$(ICUOUT)\icu4j\icudata.jar" -C "$(ICUOUT)\icu4j" "$(ICU4J_DATA_DIRNAME)"
544 # Build testdata.jar:
545 # - swap the test data
546 # - extract all data items
547 # - package them into the .jar file
548 "$(ICUOUT)\icu4j\testdata.jar": GODATA "$(TESTDATAOUT)\testdata.dat"
549 if not exist "$(ICUOUT)\icu4j\com\ibm\icu\dev\data\testdata" mkdir "$(ICUOUT)\icu4j\com\ibm\icu\dev\data\testdata"
550 "$(ICUPBIN)\icupkg" "$(TESTDATAOUT)\testdata.dat" -r test.icu -x * -tb -d "$(ICUOUT)\icu4j\com\ibm\icu\dev\data\testdata"
551 "$(JAR)" cf "$(ICUOUT)\icu4j\testdata.jar" -C "$(ICUOUT)\icu4j" com\ibm\icu\dev\data\testdata
553 ## Compare to: source\data\Makefile.in and source\test\testdata\Makefile.in
555 DEBUGUTILITIESDATA_DIR=main\tests\core\src\com\ibm\icu\dev\test\util
556 DEBUGUTILITIESDATA_SRC=DebugUtilitiesData.java
558 # Build DebugUtilitiesData.java
559 "$(ICUOUT)\icu4j\src\$(DEBUGUTILITIESDATA_DIR)\$(DEBUGUTILITIESDATA_SRC)" : {"$(ICUTOOLS)\gentest\$(CFG)"}gentest.exe
560 if not exist "$(ICUOUT)\icu4j\src\$(DEBUGUTILITIESDATA_DIR)" mkdir "$(ICUOUT)\icu4j\src\$(DEBUGUTILITIESDATA_DIR)"
561 "$(ICUTOOLS)\gentest\$(CFG)\gentest" -j -d"$(ICUOUT)\icu4j\src\$(DEBUGUTILITIESDATA_DIR)"
563 ICU4J_DATA="$(ICUOUT)\icu4j\icudata.jar" "$(ICUOUT)\icu4j\testdata.jar" "$(ICUOUT)\icu4j\src\$(DEBUGUTILITIESDATA_DIR)\$(DEBUGUTILITIESDATA_SRC)"
565 icu4j-data: GODATA $(ICU4J_DATA) $(ICU4J_TZDATA)
569 "$(ICU4J_ROOT)\main\shared\data\icudata.jar": "$(ICUOUT)\icu4j\icudata.jar"
570 if not exist "$(ICU4J_ROOT)\main\shared\data" mkdir "$(ICU4J_ROOT)\main\shared\data"
571 copy "$(ICUOUT)\icu4j\icudata.jar" "$(ICU4J_ROOT)\main\shared\data"
573 "$(ICU4J_ROOT)\main\shared\data\icutzdata.jar": "$(ICUOUT)\icu4j\icutzdata.jar"
574 if not exist "$(ICU4J_ROOT)\main\shared\data" mkdir "$(ICU4J_ROOT)\main\shared\data"
575 copy "$(ICUOUT)\icu4j\icutzdata.jar" "$(ICU4J_ROOT)\main\shared\data"
577 "$(ICU4J_ROOT)\main\shared\data\testdata.jar": "$(ICUOUT)\icu4j\testdata.jar"
578 if not exist "$(ICU4J_ROOT)\main\shared\data" mkdir "$(ICU4J_ROOT)\main\shared\data"
579 copy "$(ICUOUT)\icu4j\testdata.jar" "$(ICU4J_ROOT)\main\shared\data"
581 # "$(DEBUGUTILTIESDATA_OUT)"
583 "$(ICU4J_ROOT)\$(DEBUGUTILITIESDATA_DIR)\$(DEBUGUTILITIESDATA_SRC)": "$(ICUOUT)\icu4j\src\$(DEBUGUTILITIESDATA_DIR)\$(DEBUGUTILITIESDATA_SRC)"
584 if not exist "$(ICU4J_ROOT)\$(DEBUGUTILITIESDATA_DIR)" mkdir "$(ICU4J_ROOT)\$(DEBUGUTILITIESDATA_DIR)"
585 copy "$(ICUOUT)\icu4j\src\$(DEBUGUTILITIESDATA_DIR)\$(DEBUGUTILITIESDATA_SRC)" "$(ICU4J_ROOT)\$(DEBUGUTILITIESDATA_DIR)\$(DEBUGUTILITIESDATA_SRC)"
587 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)"
589 icu4j-data-install : GODATA $(ICU4J_DATA) $(ICU4J_TZDATA) $(ICU4J_DATA_INSTALLED)
590 @echo ICU4J data output to "$(ICU4J_ROOT)"
595 @echo ERROR ICU4J_ROOT not set
603 # testdata - nmake will invoke pkgdata, which will create testdata.dat
605 "$(TESTDATAOUT)\testdata.dat": "$(TESTDATA)\*" "$(ICUBLD_PKG)\$(ICUCOL)\ucadata.icu" $(TRANSLIT_RES_FILES) $(MISC_FILES) $(RB_FILES) {"$(ICUTOOLS)\genrb\$(CFG)"}genrb.exe
607 @echo building testdata...
608 nmake /nologo /f "$(TESTDATA)\testdata.mak" TESTDATA=. ICUTOOLS="$(ICUTOOLS)" ICUPBIN="$(ICUPBIN)" ICUP="$(ICUP)" CFG=$(CFG) TESTDATAOUT="$(TESTDATAOUT)" TESTDATABLD="$(TESTDATABLD)"
610 #invoke pkgdata for ICU common data
611 # pkgdata will drop all output files (.dat, .dll, .lib) into the target (ICUBLD_PKG) directory.
612 # move the .dll and .lib files to their final destination afterwards.
613 # The $(U_ICUDATA_NAME).lib and $(U_ICUDATA_NAME).exp should already be in the right place due to stubdata.
615 # 2005-may-05 Removed Unicode properties files (unorm.icu, uprops.icu, ucase.icu, ubidi.icu)
616 # from data build. See Jitterbug 4497. (makedata.mak revision 1.117)
618 !IFDEF ICUDATA_SOURCE_ARCHIVE
619 "$(ICU_LIB_TARGET)" : $(COMMON_ICUDATA_DEPENDENCIES) "$(ICUDATA_SOURCE_ARCHIVE)"
620 @echo Building icu data from $(ICUDATA_SOURCE_ARCHIVE)
622 "$(ICUPBIN)\icupkg" -x * --list "$(ICUDATA_SOURCE_ARCHIVE)" > "$(ICUTMP)\icudata.lst"
623 "$(ICUPBIN)\pkgdata" $(COMMON_ICUDATA_ARGUMENTS) "$(ICUTMP)\icudata.lst"
624 copy "$(U_ICUDATA_NAME).dll" "$(DLL_OUTPUT)"
625 -@erase "$(U_ICUDATA_NAME).dll"
626 copy "$(ICUTMP)\$(ICUPKG).dat" "$(ICUOUT)\$(U_ICUDATA_NAME)$(U_ICUDATA_ENDIAN_SUFFIX).dat"
627 -@erase "$(ICUTMP)\$(ICUPKG).dat"
629 "$(ICU_LIB_TARGET)" : $(COMMON_ICUDATA_DEPENDENCIES) $(CNV_FILES) $(CNV_FILES_SPECIAL) "$(ICUBLD_PKG)\unames.icu" "$(ICUBLD_PKG)\cnvalias.icu" "$(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) $(UNIT_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"
630 @echo Building icu data
632 "$(ICUPBIN)\pkgdata" $(COMMON_ICUDATA_ARGUMENTS) <<"$(ICUTMP)\icudata.lst"
635 $(ICUCOL)\ucadata.icu
640 $(CNV_FILES:.cnv =.cnv
642 $(CNV_FILES_SPECIAL:.cnv =.cnv
646 $(CURR_RES_FILES:.res =.res
648 $(LANG_RES_FILES:.res =.res
650 $(REGION_RES_FILES:.res =.res
652 $(ZONE_RES_FILES:.res =.res
654 $(UNIT_RES_FILES:.res =.res
656 $(COL_COL_FILES:.res =.res
658 $(RBNF_RES_FILES:.res =.res
660 $(TRANSLIT_RES_FILES:.res =.res
662 $(BRK_FILES:.brk =.brk
664 $(BRK_DICT_FILES:.dict =.dict
666 $(BRK_RES_FILES:.res =.res
668 $(SPREP_FILES:.spp=.spp
671 -@erase "$(ICU_LIB_TARGET)"
672 copy "$(U_ICUDATA_NAME).dll" "$(ICU_LIB_TARGET)"
673 -@erase "$(U_ICUDATA_NAME).dll"
674 copy "$(ICUTMP)\$(ICUPKG).dat" "$(ICUOUT)\$(U_ICUDATA_NAME)$(U_ICUDATA_ENDIAN_SUFFIX).dat"
675 -@erase "$(ICUTMP)\$(ICUPKG).dat"
678 # utility target to create missing directories
680 @if not exist "$(ICUOUT)\$(NULL)" mkdir "$(ICUOUT)"
681 @if not exist "$(ICUTMP)\$(NULL)" mkdir "$(ICUTMP)"
682 @if not exist "$(ICUOUT)\build\$(NULL)" mkdir "$(ICUOUT)\build"
683 @if not exist "$(ICUBLD_PKG)\$(NULL)" mkdir "$(ICUBLD_PKG)"
684 @if not exist "$(ICUBLD_PKG)\curr\$(NULL)" mkdir "$(ICUBLD_PKG)\curr"
685 @if not exist "$(ICUBLD_PKG)\lang\$(NULL)" mkdir "$(ICUBLD_PKG)\lang"
686 @if not exist "$(ICUBLD_PKG)\region\$(NULL)" mkdir "$(ICUBLD_PKG)\region"
687 @if not exist "$(ICUBLD_PKG)\zone\$(NULL)" mkdir "$(ICUBLD_PKG)\zone"
688 @if not exist "$(ICUBLD_PKG)\$(ICUBRK)\$(NULL)" mkdir "$(ICUBLD_PKG)\$(ICUBRK)"
689 @if not exist "$(ICUBLD_PKG)\$(ICUCOL)\$(NULL)" mkdir "$(ICUBLD_PKG)\$(ICUCOL)"
690 @if not exist "$(ICUBLD_PKG)\$(ICURBNF)\$(NULL)" mkdir "$(ICUBLD_PKG)\$(ICURBNF)"
691 @if not exist "$(ICUBLD_PKG)\$(ICUTRNS)\$(NULL)" mkdir "$(ICUBLD_PKG)\$(ICUTRNS)"
692 @if not exist "$(TESTDATAOUT)\$(NULL)" mkdir "$(TESTDATAOUT)"
693 @if not exist "$(TESTDATABLD)\$(NULL)" mkdir "$(TESTDATABLD)"
694 @if not exist "$(TESTDATAOUT)\testdata\$(NULL)" mkdir "$(TESTDATAOUT)\testdata"
696 # utility target to send us to the right dir
700 # This is to remove all the data files
702 @echo Cleaning up the data files.
717 -@erase "region\*.res"
718 -@erase "region\*.txt"
721 @cd "$(ICUBLD_PKG)\$(ICUBRK)"
726 @cd "$(ICUBLD_PKG)\$(ICUCOL)"
729 @cd "$(ICUBLD_PKG)\$(ICURBNF)"
732 @cd "$(ICUBLD_PKG)\$(ICUTRNS)"
752 @cd "$(TESTDATAOUT)\testdata"
757 # RBBI .brk file generation.
758 {$(ICUSRCDATA_RELATIVE_PATH)\$(ICUBRK)\rules}.txt.brk:
760 @"$(ICUTOOLS)\genbrk\$(CFG)\genbrk" -c -r $< -o $@ -d"$(ICUBLD_PKG)" -i "$(ICUBLD_PKG)"
762 #RBBI .dict file generation.
763 {$(ICUSRCDATA_RELATIVE_PATH)\$(ICUBRK)\dictionaries}.txt.dict:
765 @"$(ICUTOOLS)\gendict\$(CFG)\gendict" -c --uchars $< "$(ICUBLD_PKG)\$@"
767 $(ICUBRK)\thaidict.dict:
768 @echo Creating $(ICUBRK)\thaidict.dict
769 @"$(ICUTOOLS)\gendict\$(CFG)\gendict" -c --bytes --transform offset-0x0e00 $(ICUSRCDATA_RELATIVE_PATH)\$(ICUBRK)\dictionaries\thaidict.txt "$(ICUBLD_PKG)\$(ICUBRK)\thaidict.dict"
771 $(ICUBRK)\laodict.dict:
772 @echo Creating $(ICUBRK)\laodict.dict
773 @"$(ICUTOOLS)\gendict\$(CFG)\gendict" -c --bytes --transform offset-0x0e80 $(ICUSRCDATA_RELATIVE_PATH)\$(ICUBRK)\dictionaries\laodict.txt "$(ICUBLD_PKG)\$(ICUBRK)\laodict.dict"
775 $(ICUBRK)\burmesedict.dict:
776 @echo Creating $(ICUBRK)\burmesedict.dict
777 @"$(ICUTOOLS)\gendict\$(CFG)\gendict" -c --bytes --transform offset-0x1000 $(ICUSRCDATA_RELATIVE_PATH)\$(ICUBRK)\dictionaries\burmesedict.txt "$(ICUBLD_PKG)\$(ICUBRK)\burmesedict.dict"
779 $(ICUBRK)\khmerdict.dict:
780 @echo Creating $(ICUBRK)\khmerdict.dict
781 @"$(ICUTOOLS)\gendict\$(CFG)\gendict" -c --bytes --transform offset-0x1780 $(ICUSRCDATA_RELATIVE_PATH)\$(ICUBRK)\dictionaries\khmerdict.txt "$(ICUBLD_PKG)\$(ICUBRK)\khmerdict.dict"
783 !IFNDEF ICUDATA_SOURCE_ARCHIVE
784 # Rule for creating converters
785 $(CNV_FILES): $(UCM_SOURCE)
786 @echo Building Charset Conversion table $(@B)
787 @"$(ICUTOOLS)\makeconv\$(CFG)\makeconv" -c -d"$(ICUBLD_PKG)" $(ICUSRCDATA_RELATIVE_PATH)\$(ICUUCM)\$(@B).ucm
790 !IFDEF BUILD_SPECIAL_CNV_FILES
791 $(CNV_FILES_SPECIAL): $(UCM_SOURCE_SPECIAL)
792 @echo Building Special Charset Conversion table $(@B)
793 @"$(ICUTOOLS)\makeconv\$(CFG)\makeconv" -c --ignore-siso-check -d"$(ICUBLD_PKG)" $(ICUSRCDATA_RELATIVE_PATH)\$(ICUUCM)\$(@B).ucm
796 # Batch inference rule for creating miscellaneous resource files
797 # TODO: -q option is specified to squelch the 120+ warnings about
798 # empty intvectors and binary elements. Unfortunately, this may
799 # squelch other legitimate warnings. When there is a better
800 # way, remove the -q.
801 {$(ICUSRCDATA_RELATIVE_PATH)\$(ICUMISC2)}.txt.res::
802 @echo Making Miscellaneous Resource Bundle files
803 @"$(ICUTOOLS)\genrb\$(CFG)\genrb" -k -q -d"$(ICUBLD_PKG)" $<
805 # Inference rule for creating resource bundle files
806 {$(ICUSRCDATA_RELATIVE_PATH)\$(ICULOC)}.txt.res::
807 @echo Making Locale Resource Bundle files
808 @"$(ICUTOOLS)\genrb\$(CFG)\genrb" --usePoolBundle $(ICUSRCDATA_RELATIVE_PATH)\$(ICULOC) -k -d"$(ICUBLD_PKG)" $<
810 # copy the locales/pool.res file from the source folder to the build output folder
811 # and swap it to native endianness
812 pool.res: $(ICUSRCDATA_RELATIVE_PATH)\$(ICULOC)\pool.res
813 "$(ICUPBIN)\icupkg" -tl "$(ICUSRCDATA_RELATIVE_PATH)\$(ICULOC)\pool.res" pool.res
816 @echo Generating <<res_index.txt
817 // Warning this file is automatically generated
818 res_index:table(nofallback) {
820 $(GENRB_SOURCE:.txt= {""}
825 @"$(ICUTOOLS)\genrb\$(CFG)\genrb" -k -d"$(ICUBLD_PKG)" .\res_index.txt
828 {$(ICUSRCDATA_RELATIVE_PATH)\curr}.txt{curr}.res::
829 @echo Making currency display name files
830 @"$(ICUTOOLS)\genrb\$(CFG)\genrb" --usePoolBundle $(ICUSRCDATA_RELATIVE_PATH)\curr -k -i "$(ICUBLD_PKG)" -d"$(ICUBLD_PKG)\curr" $<
832 # copy the curr/pool.res file from the source folder to the build output folder
833 # and swap it to native endianness
834 curr\pool.res: $(ICUSRCDATA_RELATIVE_PATH)\curr\pool.res
835 "$(ICUPBIN)\icupkg" -tl "$(ICUSRCDATA_RELATIVE_PATH)\curr\pool.res" curr\pool.res
838 @echo Generating <<curr\res_index.txt
839 // Warning this file is automatically generated
840 res_index:table(nofallback) {
842 $(CURR_SOURCE:.txt= {""}
847 @"$(ICUTOOLS)\genrb\$(CFG)\genrb" -k -d"$(ICUBLD_PKG)\curr" .\curr\res_index.txt
850 {$(ICUSRCDATA_RELATIVE_PATH)\lang}.txt{lang}.res::
851 @echo Making language/script display name files
852 @"$(ICUTOOLS)\genrb\$(CFG)\genrb" --usePoolBundle $(ICUSRCDATA_RELATIVE_PATH)\lang -k -i "$(ICUBLD_PKG)" -d"$(ICUBLD_PKG)\lang" $<
854 # copy the lang/pool.res file from the source folder to the build output folder
855 # and swap it to native endianness
856 lang\pool.res: $(ICUSRCDATA_RELATIVE_PATH)\lang\pool.res
857 "$(ICUPBIN)\icupkg" -tl "$(ICUSRCDATA_RELATIVE_PATH)\lang\pool.res" lang\pool.res
860 @echo Generating <<lang\res_index.txt
861 // Warning this file is automatically generated
862 res_index:table(nofallback) {
864 $(LANG_SOURCE:.txt= {""}
869 @"$(ICUTOOLS)\genrb\$(CFG)\genrb" -k -d"$(ICUBLD_PKG)\lang" .\lang\res_index.txt
872 {$(ICUSRCDATA_RELATIVE_PATH)\region}.txt{region}.res::
873 @echo Making region display name files
874 @"$(ICUTOOLS)\genrb\$(CFG)\genrb" --usePoolBundle $(ICUSRCDATA_RELATIVE_PATH)\region -k -i "$(ICUBLD_PKG)" -d"$(ICUBLD_PKG)\region" $<
876 # copy the region/pool.res file from the source folder to the build output folder
877 # and swap it to native endianness
878 region\pool.res: $(ICUSRCDATA_RELATIVE_PATH)\region\pool.res
879 "$(ICUPBIN)\icupkg" -tl "$(ICUSRCDATA_RELATIVE_PATH)\region\pool.res" region\pool.res
881 region\res_index.res:
882 @echo Generating <<region\res_index.txt
883 // Warning this file is automatically generated
884 res_index:table(nofallback) {
886 $(REGION_SOURCE:.txt= {""}
891 @"$(ICUTOOLS)\genrb\$(CFG)\genrb" -k -d"$(ICUBLD_PKG)\region" .\region\res_index.txt
894 {$(ICUSRCDATA_RELATIVE_PATH)\zone}.txt{zone}.res::
895 @echo Making time zone display name files
896 @"$(ICUTOOLS)\genrb\$(CFG)\genrb" --usePoolBundle $(ICUSRCDATA_RELATIVE_PATH)\zone -k -i "$(ICUBLD_PKG)" -d"$(ICUBLD_PKG)\zone" $<
898 # copy the zone/pool.res file from the source folder to the build output folder
899 # and swap it to native endianness
900 zone\pool.res: $(ICUSRCDATA_RELATIVE_PATH)\zone\pool.res
901 "$(ICUPBIN)\icupkg" -tl "$(ICUSRCDATA_RELATIVE_PATH)\zone\pool.res" zone\pool.res
904 @echo Generating <<zone\res_index.txt
905 // Warning this file is automatically generated
906 res_index:table(nofallback) {
908 $(ZONE_SOURCE:.txt= {""}
913 @"$(ICUTOOLS)\genrb\$(CFG)\genrb" -k -d"$(ICUBLD_PKG)\zone" .\zone\res_index.txt
916 {$(ICUSRCDATA_RELATIVE_PATH)\unit}.txt{unit}.res::
917 @echo Making unit display name files
918 @"$(ICUTOOLS)\genrb\$(CFG)\genrb" --usePoolBundle $(ICUSRCDATA_RELATIVE_PATH)\unit -k -i "$(ICUBLD_PKG)" -d"$(ICUBLD_PKG)\unit" $<
920 # copy the unit/pool.res file from the source folder to the build output folder
921 # and swap it to native endianness
922 unit\pool.res: $(ICUSRCDATA_RELATIVE_PATH)\unit\pool.res
923 "$(ICUPBIN)\icupkg" -tl "$(ICUSRCDATA_RELATIVE_PATH)\unit\pool.res" unit\pool.res
926 @echo Generating <<unit\res_index.txt
927 // Warning this file is automatically generated
928 res_index:table(nofallback) {
930 $(UNIT_SOURCE:.txt= {""}
935 @"$(ICUTOOLS)\genrb\$(CFG)\genrb" -k -d"$(ICUBLD_PKG)\unit" .\unit\res_index.txt
938 {$(ICUSRCDATA_RELATIVE_PATH)\$(ICUCOL)}.txt{$(ICUCOL)}.res::
939 @echo Making Collation files
940 @"$(ICUTOOLS)\genrb\$(CFG)\genrb" -k -i "$(ICUBLD_PKG)" -d"$(ICUBLD_PKG)\$(ICUCOL)" $<
942 $(ICUCOL)\res_index.res:
943 @echo Generating <<$(ICUCOL)\res_index.txt
944 // Warning this file is automatically generated
945 res_index:table(nofallback) {
947 $(COLLATION_SOURCE:.txt= {""}
952 @"$(ICUTOOLS)\genrb\$(CFG)\genrb" -k -d"$(ICUBLD_PKG)\$(ICUCOL)" .\$(ICUCOL)\res_index.txt
954 {$(ICUSRCDATA_RELATIVE_PATH)\$(ICURBNF)}.txt{$(ICURBNF)}.res::
955 @echo Making RBNF files
956 @"$(ICUTOOLS)\genrb\$(CFG)\genrb" -k -i "$(ICUBLD_PKG)" -d"$(ICUBLD_PKG)\$(ICURBNF)" $<
958 $(ICURBNF)\res_index.res:
959 @echo Generating <<$(ICURBNF)\res_index.txt
960 // Warning this file is automatically generated
961 res_index:table(nofallback) {
963 $(RBNF_SOURCE:.txt= {""}
968 @"$(ICUTOOLS)\genrb\$(CFG)\genrb" -k -d"$(ICUBLD_PKG)\$(ICURBNF)" .\$(ICURBNF)\res_index.txt
970 $(ICUBRK)\res_index.res:
971 @echo Generating <<$(ICUBRK)\res_index.txt
972 // Warning this file is automatically generated
973 res_index:table(nofallback) {
975 $(BRK_RES_SOURCE:.txt= {""}
980 @"$(ICUTOOLS)\genrb\$(CFG)\genrb" -k -d"$(ICUBLD_PKG)\$(ICUBRK)" .\$(ICUBRK)\res_index.txt
982 {$(ICUSRCDATA_RELATIVE_PATH)\$(ICUBRK)}.txt{$(ICUBRK)}.res::
983 @echo Making Break Iterator Resource files
984 @"$(ICUTOOLS)\genrb\$(CFG)\genrb" -k -i "$(ICUBLD_PKG)" -d"$(ICUBLD_PKG)\$(ICUBRK)" $<
986 {$(ICUSRCDATA_RELATIVE_PATH)\$(ICUTRNS)}.txt{$(ICUTRNS)}.res::
987 @echo Making Transliterator files
988 @"$(ICUTOOLS)\genrb\$(CFG)\genrb" -k -i "$(ICUBLD_PKG)" -d"$(ICUBLD_PKG)\$(ICUTRNS)" $<
991 # DLL version information
992 # If you modify this, modify winmode.c in pkgdata.
993 "$(ICUTMP)\icudata.res": "$(ICUMISC)\icudata.rc"
994 @echo Creating data DLL version information from $**
995 @rc.exe /i "..\..\..\..\common" /r /fo $@ $**
997 # Targets for converters
998 "$(ICUBLD_PKG)\cnvalias.icu" : {"$(ICUSRCDATA)\$(ICUUCM)"}\convrtrs.txt "$(ICUTOOLS)\gencnval\$(CFG)\gencnval.exe"
999 @echo Creating data file for Converter Aliases
1000 @"$(ICUTOOLS)\gencnval\$(CFG)\gencnval" -d "$(ICUBLD_PKG)" "$(ICUSRCDATA)\$(ICUUCM)\convrtrs.txt"
1002 # Targets for prebuilt Unicode data
1003 "$(ICUBLD_PKG)\pnames.icu": $(ICUSRCDATA_RELATIVE_PATH)\in\pnames.icu
1004 "$(ICUPBIN)\icupkg" -tl $? $@
1006 "$(ICUBLD_PKG)\ubidi.icu": $(ICUSRCDATA_RELATIVE_PATH)\in\ubidi.icu
1007 "$(ICUPBIN)\icupkg" -tl $? $@
1009 "$(ICUBLD_PKG)\ucase.icu": $(ICUSRCDATA_RELATIVE_PATH)\in\ucase.icu
1010 "$(ICUPBIN)\icupkg" -tl $? $@
1012 "$(ICUBLD_PKG)\uprops.icu": $(ICUSRCDATA_RELATIVE_PATH)\in\uprops.icu
1013 "$(ICUPBIN)\icupkg" -tl $? $@
1015 "$(ICUBLD_PKG)\unames.icu": $(ICUSRCDATA_RELATIVE_PATH)\in\unames.icu
1016 "$(ICUPBIN)\icupkg" -tl $? $@
1018 "$(ICUBLD_PKG)\nfc.nrm": $(ICUSRCDATA_RELATIVE_PATH)\in\nfc.nrm
1019 "$(ICUPBIN)\icupkg" -tl $? $@
1021 "$(ICUBLD_PKG)\nfkc.nrm": $(ICUSRCDATA_RELATIVE_PATH)\in\nfkc.nrm
1022 "$(ICUPBIN)\icupkg" -tl $? $@
1024 "$(ICUBLD_PKG)\nfkc_cf.nrm": $(ICUSRCDATA_RELATIVE_PATH)\in\nfkc_cf.nrm
1025 "$(ICUPBIN)\icupkg" -tl $? $@
1027 "$(ICUBLD_PKG)\uts46.nrm": $(ICUSRCDATA_RELATIVE_PATH)\in\uts46.nrm
1028 "$(ICUPBIN)\icupkg" -tl $? $@
1030 "$(ICUBLD_PKG)\coll\ucadata.icu": $(ICUSRCDATA_RELATIVE_PATH)\in\coll\ucadata-unihan.icu
1031 "$(ICUPBIN)\icupkg" -tl $? $@
1033 # Stringprep .spp file generation.
1034 {$(ICUSRCDATA_RELATIVE_PATH)\$(ICUSPREP)}.txt.spp:
1036 @"$(ICUTOOLS)\gensprep\$(CFG)\gensprep" -s $(<D) -d "$(ICUBLD_PKG)" -b $(@B) -m "$(ICUUNIDATA)" -u 3.2.0 $(<F)
1038 # Confusables .cfu file generation
1039 # Can't use an inference rule because two .txt source files combine to produce a single .cfu output file
1040 "$(ICUBLD_PKG)\confusables.cfu": "$(ICUUNIDATA)\confusables.txt" "$(ICUUNIDATA)\confusablesWholeScript.txt" "$(ICUTOOLS)\gencfu\$(CFG)\gencfu.exe"
1042 @"$(ICUTOOLS)\gencfu\$(CFG)\gencfu" -c -r "$(ICUUNIDATA)\confusables.txt" -w "$(ICUUNIDATA)\confusablesWholeScript.txt" -o $@ -i "$(ICUBLD_PKG)"
1044 !IFDEF ICUDATA_ARCHIVE
1045 "$(ICUDATA_SOURCE_ARCHIVE)": CREATE_DIRS $(ICUDATA_ARCHIVE) "$(ICUTOOLS)\icupkg\$(CFG)\icupkg.exe"
1046 "$(ICUTOOLS)\icupkg\$(CFG)\icupkg" -t$(U_ICUDATA_ENDIAN_SUFFIX) "$(ICUDATA_ARCHIVE)" "$(ICUDATA_SOURCE_ARCHIVE)"
1049 # Dependencies on the tools for the batch inference rules
1051 !IFNDEF ICUDATA_SOURCE_ARCHIVE
1052 $(UCM_SOURCE) : {"$(ICUTOOLS)\makeconv\$(CFG)"}makeconv.exe
1054 !IFDEF BUILD_SPECIAL_CNV_FILES
1055 $(UCM_SOURCE_SPECIAL): {"$(ICUTOOLS)\makeconv\$(CFG)"}makeconv.exe
1058 # This used to depend on "$(ICUBLD_PKG)\uprops.icu" "$(ICUBLD_PKG)\ucase.icu" "$(ICUBLD_PKG)\ubidi.icu"
1059 # This data is now hard coded as a part of the library.
1060 # See Jitterbug 4497 for details.
1061 $(MISC_SOURCE) $(RB_FILES) $(CURR_FILES) $(LANG_FILES) $(REGION_FILES) $(ZONE_FILES) $(UNIT_FILES) $(COL_COL_FILES) $(RBNF_RES_FILES) $(BRK_RES_FILES) $(TRANSLIT_RES_FILES): {"$(ICUTOOLS)\genrb\$(CFG)"}genrb.exe "$(ICUBLD_PKG)\$(ICUCOL)\ucadata.icu"
1063 # This used to depend on "$(ICUBLD_PKG)\pnames.icu" "$(ICUBLD_PKG)\uprops.icu" "$(ICUBLD_PKG)\ucase.icu" "$(ICUBLD_PKG)\ubidi.icu"
1064 # These are now hardcoded in ICU4C and only loaded in ICU4J.
1065 $(BRK_SOURCE) : "$(ICUBLD_PKG)\unames.icu"