]> git.saurik.com Git - apple/icu.git/blob - icuSources/data/makedata.mak
ICU-64252.0.1.tar.gz
[apple/icu.git] / icuSources / data / makedata.mak
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
8 # invoke with
9 # nmake /f makedata.mak icumake=$(ProjectDir)
10 #
11 # 12/10/1999 weiv Created
12
13 ##############################################################################
14 # Keep the following in sync with the version - see common/unicode/uvernum.h
15 U_ICUDATA_NAME=icudt64
16 ##############################################################################
17 !IF "$(UWP)" == "UWP"
18 # Optionally change the name of the data file for the UWP version.
19 U_ICUDATA_NAME=icudt64
20 !ENDIF
21 U_ICUDATA_ENDIAN_SUFFIX=l
22 UNICODE_VERSION=12.1
23 ICU_LIB_TARGET=$(DLL_OUTPUT)\$(U_ICUDATA_NAME).dll
24
25 # ICUMAKE
26 # Must be provided by whoever runs this makefile.
27 # Is the directory containing this file (makedata.mak)
28 # Is the directory into which most data is built (prior to packaging)
29 # Is icu\source\data\
30 #
31 !IF "$(ICUMAKE)"==""
32 !ERROR Can't find ICUMAKE (ICU Data Make dir, should point to icu\source\data\ )!
33 !ENDIF
34 !MESSAGE ICU data make path is $(ICUMAKE)
35
36 !IF [py -3 -c "exit(0)"]!=0
37 !MESSAGE Information: Unable to find Python 3. Data will fail to build from source.
38 !ENDIF
39
40 # Suffixes for data files
41 .SUFFIXES : .nrm .icu .ucm .cnv .dll .dat .res .txt .c
42
43 ICUOUT=$(ICUMAKE)\out
44
45 # the prefix "icudt62_" for use in filenames
46 ICUPKG=$(U_ICUDATA_NAME)$(U_ICUDATA_ENDIAN_SUFFIX)
47
48 # need to nuke \\ for .NET...
49 ICUOUT=$(ICUOUT:\\=\)
50
51 ICUBLD=$(ICUOUT)\build
52 ICUBLD_PKG=$(ICUBLD)\$(ICUPKG)
53 ICUTMP=$(ICUOUT)\tmp
54
55 # ICUP
56 # The root of the ICU source directory tree
57 #
58 ICUP=$(ICUMAKE)\..\..
59 ICUP=$(ICUP:\source\data\..\..=)
60 # In case the first one didn't do it, try this one. .NET would do the second one.
61 ICUP=$(ICUP:\source\data\\..\..=)
62 !MESSAGE ICU root path is $(ICUP)
63
64
65 # ICUSRCDATA
66 # The data directory in source
67 #
68 ICUSRCDATA=$(ICUP)\source\data
69 ICUSRCDATA_RELATIVE_PATH=..\..\..
70
71 # Timestamp files to keep track of current build state
72 TOOLS_TS=$(ICUTMP)\tools.timestamp
73 COREDATA_TS=$(ICUTMP)\coredata.timestamp
74
75 # ICUCOL
76 # The directory that contains colfiles.mk files along with *.txt collation data files
77 #
78 ICUCOL=coll
79
80 # ICURBNF
81 # The directory that contains rbnffiles.mk files along with *.txt RBNF data files
82 #
83 ICURBNF=rbnf
84
85 # ICUTRNS
86 # The directory that contains trfiles.mk files along with *.txt transliterator files
87 #
88 ICUTRNS=translit
89
90 # ICUBRK
91 # The directory that contains resfiles.mk files along with *.txt break iterator files
92 #
93 ICUBRK=brkitr
94
95 #
96 # ICUDATA
97 # The source directory. Contains the source files for the common data to be built.
98 # WARNING: NOT THE SAME AS ICU_DATA environment variable. Confusing.
99 ICUDATA=$(ICUP)\source\data
100
101 #
102 # DLL_OUTPUT
103 # Destination directory for the common data DLL file.
104 # This is the same place that all of the other ICU DLLs go (the code-containing DLLs)
105 # The lib file for the data DLL goes in $(DLL_OUTPUT)/../lib/
106 #
107 !IF "$(CFG)" == "ARM\Release" || "$(CFG)" == "ARM\Debug"
108 DLL_OUTPUT=$(ICUP)\binARM$(UWP)
109 !ELSE IF "$(CFG)" == "x64\Release" || "$(CFG)" == "x64\Debug"
110 DLL_OUTPUT=$(ICUP)\bin64$(UWP)
111 !ELSE IF "$(UWP)" == "UWP"
112 DLL_OUTPUT=$(ICUP)\bin32$(UWP)
113 !ELSE
114 DLL_OUTPUT=$(ICUP)\bin$(UWP)
115 !ENDIF
116
117 #
118 # TESTDATA
119 # The source directory for data needed for test programs.
120 TESTDATA=$(ICUP)\source\test\testdata
121
122 #
123 # TESTDATAOUT
124 # The destination directory for the built test data .dat file
125 TESTDATAOUT=$(ICUP)\source\test\testdata\out
126
127 #
128 # TESTDATABLD
129 # The build directory for test data intermidiate files
130 # (Tests are NOT run from this makefile,
131 # only the data is put in place.)
132 TESTDATABLD=$(ICUP)\source\test\testdata\out\build
133
134 #
135 # ICUTOOLS
136 # Directory under which all of the ICU data building tools live.
137 #
138 ICUTOOLS=$(ICUP)\source\tools
139 !MESSAGE ICU tools path is $(ICUTOOLS)
140
141 #
142 # TOOLS CFG PATH
143 # ARM needs to use one of the other tools, so make sure to get an usable cfg path
144 # Since tools, particularly pkggen, have architecture built-in, we made x64 on
145 # Windows be machine-independent and use those tools.
146 #
147 CFGTOOLS=$(CFG)
148 !IF "$(CFG)" == "ARM\Release" || "$(CFG)" == "ARM\Debug"
149 CFGTOOLS=x64\Release
150 !ENDIF
151 !MESSAGE ICU tools CFG subpath is $(CFGTOOLS)
152
153 # The current ICU tools need to be in the path first.
154 # x86 uses x86, x64 and arm use x64
155 !IF "$(CFG)" == "x86\Release" || "$(CFG)" == "x86\Debug"
156 PATH = $(ICUP)\bin;$(PATH)
157 ICUPBIN=$(ICUP)\bin
158 !ELSE
159 PATH = $(ICUP)\bin64;$(PATH)
160 ICUPBIN=$(ICUP)\bin64
161 !ENDIF
162
163
164 # This variable can be overridden to "-m static" by the project settings,
165 # if you want a static data library.
166 !IF "$(ICU_PACKAGE_MODE)"==""
167 ICU_PACKAGE_MODE=-m dll
168 !ENDIF
169
170 # If this archive exists, build from that
171 # instead of building everything from scratch.
172 ICUDATA_SOURCE_ARCHIVE=$(ICUSRCDATA)\in\$(ICUPKG).dat
173 !IF !EXISTS("$(ICUDATA_SOURCE_ARCHIVE)")
174 # Does a big endian version exist either?
175 ICUDATA_ARCHIVE=$(ICUSRCDATA)\in\$(U_ICUDATA_NAME)b.dat
176 !IF EXISTS("$(ICUDATA_ARCHIVE)")
177 ICUDATA_SOURCE_ARCHIVE=$(ICUTMP)\$(ICUPKG).dat
178 !ELSE
179 # Nothing was usable for input
180 !UNDEF ICUDATA_SOURCE_ARCHIVE
181 !ENDIF
182 !ENDIF
183
184 !IFDEF ICUDATA_SOURCE_ARCHIVE
185 !MESSAGE ICU data source archive is $(ICUDATA_SOURCE_ARCHIVE)
186 !ENDIF
187
188 # Common defines for both ways of building ICU's data library.
189 COMMON_ICUDATA_DEPENDENCIES="$(ICUPBIN)\pkgdata.exe" "$(ICUTMP)\icudata.res" "$(ICUP)\source\stubdata\stubdatabuilt.txt"
190 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 .
191 !IF "$(UWP)" == "UWP"
192 COMMON_ICUDATA_ARGUMENTS=$(COMMON_ICUDATA_ARGUMENTS) -u
193 !IF "$(CFG)" == "ARM\Release" || "$(CFG)" == "ARM\Debug"
194 COMMON_ICUDATA_ARGUMENTS=$(COMMON_ICUDATA_ARGUMENTS) -a
195 !ENDIF
196 !ENDIF
197
198 #############################################################################
199 #
200 # ALL
201 # This target builds all the data files. The world starts here.
202 # Note: we really want the common data dll to go to $(DLL_OUTPUT), not $(ICUBLD_PKG). But specifying
203 # that here seems to cause confusion with the building of the stub library of the same name.
204 # Building the common dll in $(ICUBLD_PKG) unconditionally copies it to $(DLL_OUTPUT) too.
205 #
206 #############################################################################
207 ALL : GODATA "$(ICU_LIB_TARGET)" "$(TESTDATAOUT)\testdata.dat"
208 @echo All targets are up to date
209
210 !IF "$(UWP)" == "UWP"
211 @if not exist "$(ICUMAKE)\..\..\commondata\" mkdir "$(ICUMAKE)\..\..\commondata\"
212 copy "$(ICUOUT)\$(U_ICUDATA_NAME)$(U_ICUDATA_ENDIAN_SUFFIX).dat" "$(ICUMAKE)\..\..\commondata\"
213 !ENDIF
214
215
216 # Three main targets: tools, core data, and test data.
217 # Keep track of whether they are built via timestamp files.
218
219 $(TOOLS_TS): "$(ICUTOOLS)\genrb\$(CFGTOOLS)\genrb.exe" "$(ICUTOOLS)\gencnval\$(CFGTOOLS)\gencnval.exe" "$(ICUTOOLS)\gencfu\$(CFGTOOLS)\gencfu.exe" "$(ICUTOOLS)\icupkg\$(CFGTOOLS)\icupkg.exe" "$(ICUTOOLS)\makeconv\$(CFGTOOLS)\makeconv.exe" "$(ICUPBIN)\pkgdata.exe"
220 @echo "timestamp" > $(TOOLS_TS)
221
222 # On Unix, Python generates at configure time a list of Makefile rules.
223 # On Windows, however, we run the Python data build script at build time instead.
224 # The alternative would be to use a preprocessor macro to generate rules for nmake.
225 # However, this approach was abandoned for reasons including:
226 #
227 # - nmake imposes more stringent restrictions on command line length.
228 # - The lack of gnumake features makes nmake file construction more complex.
229 # - Windows builds are single-threaded, giving less advantage to a Makefile approach.
230 #
231 # Currently, the entire script needs to run even for small changes to data. Maybe consider
232 # checking file-changed timestamps in Python to build only the required subset of data.
233
234 $(COREDATA_TS):
235 @cd "$(ICUSRCDATA)"
236 py -3 -B -m buildtool \
237 --mode windows-exec \
238 --src_dir "$(ICUSRCDATA)" \
239 --tool_dir "$(ICUTOOLS)" \
240 --tool_cfg "$(CFG)" \
241 --out_dir "$(ICUBLD_PKG)" \
242 --tmp_dir "$(ICUTMP)"
243 --filter_file "$(ICU_DATA_FILTER_FILE)" \
244 $(ICU_DATA_BUILDTOOL_OPTS) \
245 @echo "timestamp" > $(COREDATA_TS)
246
247
248 # The core Unicode properties files (uprops.icu, ucase.icu, ubidi.icu)
249 # are hardcoded in the common DLL and therefore not included in the data package any more.
250 # They are not built by default but need to be built for ICU4J data and for getting the .c source files
251 # when updating the Unicode data.
252 # Changed in makedata.mak revision 1.117. See Jitterbug 4497.
253 # 2010-dec Removed pnames.icu.
254 # Command line:
255 # 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
256 uni-core-data: GODATA "$(ICUBLD_PKG)\pnames.icu" "$(ICUBLD_PKG)\uprops.icu" "$(ICUBLD_PKG)\ucase.icu" "$(ICUBLD_PKG)\ubidi.icu" "$(ICUBLD_PKG)\nfc.nrm"
257 @echo Unicode .icu files built to "$(ICUBLD_PKG)"
258
259 # Build the ICU4J icudata.jar and testdata.jar.
260 # see icu4j-readme.txt
261
262 ICU4J_TZDATA="$(ICUOUT)\icu4j\icutzdata.jar"
263 ICU4J_DATA_DIRNAME=com\ibm\icu\impl\data\$(U_ICUDATA_NAME)b
264 ICU4J_TZDATA_PATHS=$(ICU4J_DATA_DIRNAME)\zoneinfo64.res $(ICU4J_DATA_DIRNAME)\metaZones.res $(ICU4J_DATA_DIRNAME)\timezoneTypes.res $(ICU4J_DATA_DIRNAME)\windowsZones.res
265
266 generate-data: GODATA "$(ICUOUT)\$(ICUPKG).dat" uni-core-data
267 if not exist "$(ICUOUT)\icu4j\$(ICU4J_DATA_DIRNAME)" mkdir "$(ICUOUT)\icu4j\$(ICU4J_DATA_DIRNAME)"
268 if not exist "$(ICUOUT)\icu4j\tzdata\$(ICU4J_DATA_DIRNAME)" mkdir "$(ICUOUT)\icu4j\tzdata\$(ICU4J_DATA_DIRNAME)"
269 echo pnames.icu ubidi.icu ucase.icu uprops.icu nfc.nrm > "$(ICUOUT)\icu4j\add.txt"
270 "$(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)"
271 @for %f in ($(ICU4J_TZDATA_PATHS)) do @move "$(ICUOUT)\icu4j\%f" "$(ICUOUT)\icu4j\tzdata\$(ICU4J_DATA_DIRNAME)"
272
273 "$(ICUOUT)\icu4j\icutzdata.jar": GODATA generate-data
274 "$(JAR)" cf "$(ICUOUT)\icu4j\icutzdata.jar" -C "$(ICUOUT)\icu4j\tzdata" "$(ICU4J_DATA_DIRNAME)"
275
276 # Build icudata.jar:
277 # - add the uni-core-data to the ICU package
278 # - swap the ICU data
279 # - extract all data items
280 # - package them into the .jar file
281 "$(ICUOUT)\icu4j\icudata.jar": GODATA generate-data
282 "$(JAR)" cf "$(ICUOUT)\icu4j\icudata.jar" -C "$(ICUOUT)\icu4j" "$(ICU4J_DATA_DIRNAME)"
283
284 # Build testdata.jar:
285 # - swap the test data
286 # - extract all data items
287 # - package them into the .jar file
288 "$(ICUOUT)\icu4j\testdata.jar": GODATA "$(TESTDATAOUT)\testdata.dat"
289 if not exist "$(ICUOUT)\icu4j\com\ibm\icu\dev\data\testdata" mkdir "$(ICUOUT)\icu4j\com\ibm\icu\dev\data\testdata"
290 "$(ICUPBIN)\icupkg" "$(TESTDATAOUT)\testdata.dat" -r test.icu -x * -tb -d "$(ICUOUT)\icu4j\com\ibm\icu\dev\data\testdata"
291 "$(JAR)" cf "$(ICUOUT)\icu4j\testdata.jar" -C "$(ICUOUT)\icu4j" com\ibm\icu\dev\data\testdata
292
293 ## Compare to: source\data\Makefile.in and source\test\testdata\Makefile.in
294
295 DEBUGUTILITIESDATA_DIR=main\tests\core\src\com\ibm\icu\dev\test\util
296 DEBUGUTILITIESDATA_SRC=DebugUtilitiesData.java
297
298 # Build DebugUtilitiesData.java
299 "$(ICUOUT)\icu4j\src\$(DEBUGUTILITIESDATA_DIR)\$(DEBUGUTILITIESDATA_SRC)" : {"$(ICUTOOLS)\gentest\$(CFGTOOLS)"}gentest.exe
300 if not exist "$(ICUOUT)\icu4j\src\$(DEBUGUTILITIESDATA_DIR)" mkdir "$(ICUOUT)\icu4j\src\$(DEBUGUTILITIESDATA_DIR)"
301 "$(ICUTOOLS)\gentest\$(CFGTOOLS)\gentest" -j -d"$(ICUOUT)\icu4j\src\$(DEBUGUTILITIESDATA_DIR)"
302
303 ICU4J_DATA="$(ICUOUT)\icu4j\icudata.jar" "$(ICUOUT)\icu4j\testdata.jar" "$(ICUOUT)\icu4j\src\$(DEBUGUTILITIESDATA_DIR)\$(DEBUGUTILITIESDATA_SRC)"
304
305 icu4j-data: GODATA $(ICU4J_DATA) $(ICU4J_TZDATA)
306
307 !IFDEF ICU4J_ROOT
308
309 "$(ICU4J_ROOT)\main\shared\data\icudata.jar": "$(ICUOUT)\icu4j\icudata.jar"
310 if not exist "$(ICU4J_ROOT)\main\shared\data" mkdir "$(ICU4J_ROOT)\main\shared\data"
311 copy "$(ICUOUT)\icu4j\icudata.jar" "$(ICU4J_ROOT)\main\shared\data"
312
313 "$(ICU4J_ROOT)\main\shared\data\icutzdata.jar": "$(ICUOUT)\icu4j\icutzdata.jar"
314 if not exist "$(ICU4J_ROOT)\main\shared\data" mkdir "$(ICU4J_ROOT)\main\shared\data"
315 copy "$(ICUOUT)\icu4j\icutzdata.jar" "$(ICU4J_ROOT)\main\shared\data"
316
317 "$(ICU4J_ROOT)\main\shared\data\testdata.jar": "$(ICUOUT)\icu4j\testdata.jar"
318 if not exist "$(ICU4J_ROOT)\main\shared\data" mkdir "$(ICU4J_ROOT)\main\shared\data"
319 copy "$(ICUOUT)\icu4j\testdata.jar" "$(ICU4J_ROOT)\main\shared\data"
320
321 # "$(DEBUGUTILTIESDATA_OUT)"
322
323 "$(ICU4J_ROOT)\$(DEBUGUTILITIESDATA_DIR)\$(DEBUGUTILITIESDATA_SRC)": "$(ICUOUT)\icu4j\src\$(DEBUGUTILITIESDATA_DIR)\$(DEBUGUTILITIESDATA_SRC)"
324 if not exist "$(ICU4J_ROOT)\$(DEBUGUTILITIESDATA_DIR)" mkdir "$(ICU4J_ROOT)\$(DEBUGUTILITIESDATA_DIR)"
325 copy "$(ICUOUT)\icu4j\src\$(DEBUGUTILITIESDATA_DIR)\$(DEBUGUTILITIESDATA_SRC)" "$(ICU4J_ROOT)\$(DEBUGUTILITIESDATA_DIR)\$(DEBUGUTILITIESDATA_SRC)"
326
327 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)"
328
329 icu4j-data-install : GODATA $(ICU4J_DATA) $(ICU4J_TZDATA) $(ICU4J_DATA_INSTALLED)
330 @echo ICU4J data output to "$(ICU4J_ROOT)"
331
332 !ELSE
333
334 icu4j-data-install :
335 @echo ERROR ICU4J_ROOT not set
336 @exit 1
337
338 !ENDIF
339
340
341
342 #
343 # testdata - nmake will invoke pkgdata, which will create testdata.dat
344 #
345 "$(TESTDATAOUT)\testdata.dat": "$(TESTDATA)\*" $(TOOLS_TS) $(COREDATA_TS)
346 @cd "$(TESTDATA)"
347 @echo building testdata...
348 nmake /nologo /f "$(TESTDATA)\testdata.mak" TESTDATA=. ICUTOOLS="$(ICUTOOLS)" ICUPBIN="$(ICUPBIN)" ICUP="$(ICUP)" CFG=$(CFGTOOLS) TESTDATAOUT="$(TESTDATAOUT)" TESTDATABLD="$(TESTDATABLD)" ICUSRCDATA="$(ICUSRCDATA)" DLL_OUTPUT="$(DLL_OUTPUT)"
349
350 #invoke pkgdata for ICU common data
351 # pkgdata will drop all output files (.dat, .dll, .lib) into the target (ICUBLD_PKG) directory.
352 # move the .dll and .lib files to their final destination afterwards.
353 # The $(U_ICUDATA_NAME).lib and $(U_ICUDATA_NAME).exp should already be in the right place due to stubdata.
354 #
355 # 2005-may-05 Removed Unicode properties files (unorm.icu, uprops.icu, ucase.icu, ubidi.icu)
356 # from data build. See Jitterbug 4497. (makedata.mak revision 1.117)
357 #
358 !IFDEF ICUDATA_SOURCE_ARCHIVE
359 "$(ICU_LIB_TARGET)" : $(COMMON_ICUDATA_DEPENDENCIES) "$(ICUDATA_SOURCE_ARCHIVE)"
360 @echo Building icu data from $(ICUDATA_SOURCE_ARCHIVE)
361 cd "$(ICUBLD_PKG)"
362 "$(ICUPBIN)\icupkg" -x * --list "$(ICUDATA_SOURCE_ARCHIVE)" > "$(ICUTMP)\icudata.lst"
363 "$(ICUPBIN)\pkgdata" $(COMMON_ICUDATA_ARGUMENTS) "$(ICUTMP)\icudata.lst"
364 copy "$(U_ICUDATA_NAME).dll" "$(DLL_OUTPUT)"
365 -@erase "$(U_ICUDATA_NAME).dll"
366 copy "$(ICUTMP)\$(ICUPKG).dat" "$(ICUOUT)\$(U_ICUDATA_NAME)$(U_ICUDATA_ENDIAN_SUFFIX).dat"
367 -@erase "$(ICUTMP)\$(ICUPKG).dat"
368 !ELSE
369 "$(ICU_LIB_TARGET)" : $(COMMON_ICUDATA_DEPENDENCIES) $(COREDATA_TS)
370 @echo Building ICU data from scratch
371 cd "$(ICUBLD_PKG)"
372 "$(ICUPBIN)\pkgdata" $(COMMON_ICUDATA_ARGUMENTS) $(ICUTMP)\icudata.lst
373 -@erase "$(ICU_LIB_TARGET)"
374 @if not exist "$(DLL_OUTPUT)" mkdir "$(DLL_OUTPUT)"
375 copy "$(U_ICUDATA_NAME).dll" "$(ICU_LIB_TARGET)"
376 -@erase "$(U_ICUDATA_NAME).dll"
377 copy "$(ICUTMP)\$(ICUPKG).dat" "$(ICUOUT)\$(U_ICUDATA_NAME)$(U_ICUDATA_ENDIAN_SUFFIX).dat"
378 -@erase "$(ICUTMP)\$(ICUPKG).dat"
379 !ENDIF
380
381 # utility target to create missing directories
382 # Most directories are made by Python, but still create ICUTMP
383 # so it works in the source archive
384 CREATE_DIRS :
385 @if not exist "$(ICUOUT)\$(NULL)" mkdir "$(ICUOUT)"
386 @if not exist "$(ICUTMP)\$(NULL)" mkdir "$(ICUTMP)"
387 @if not exist "$(ICUOUT)\build\$(NULL)" mkdir "$(ICUOUT)\build"
388 @if not exist "$(ICUBLD_PKG)\$(NULL)" mkdir "$(ICUBLD_PKG)"
389
390 # utility target to send us to the right dir
391 GODATA : CREATE_DIRS
392 @cd "$(ICUBLD_PKG)"
393
394 # This is to remove all the data files
395 CLEAN : GODATA
396 @echo Cleaning up the data files.
397 @cd "$(ICUBLD_PKG)"
398 -@erase "*.cnv"
399 -@erase "*.exp"
400 -@erase "*.icu"
401 -@erase "*.lib"
402 -@erase "*.nrm"
403 -@erase "*.res"
404 -@erase "*.spp"
405 -@erase "*.txt"
406 -@erase "*.cfu"
407 -@erase "curr\*.res"
408 -@erase "curr\*.txt"
409 -@erase "lang\*.res"
410 -@erase "lang\*.txt"
411 -@erase "region\*.res"
412 -@erase "region\*.txt"
413 -@erase "zone\*.res"
414 -@erase "zone\*.txt"
415 @cd "$(ICUBLD_PKG)\$(ICUBRK)"
416 -@erase "*.brk"
417 -@erase "*.res"
418 -@erase "*.txt"
419 -@erase "*.dict"
420 @cd "$(ICUBLD_PKG)\$(ICUCOL)"
421 -@erase "*.res"
422 -@erase "*.txt"
423 @cd "$(ICUBLD_PKG)\$(ICURBNF)"
424 -@erase "*.res"
425 -@erase "*.txt"
426 @cd "$(ICUBLD_PKG)\$(ICUTRNS)"
427 -@erase "*.res"
428 @cd "$(ICUOUT)"
429 -@erase "*.dat"
430 @cd "$(ICUTMP)"
431 -@erase "*.html"
432 -@erase "*.lst"
433 -@erase "*.mak"
434 -@erase "*.obj"
435 -@erase "*.res"
436 -@erase "*.timestamp"
437 @cd "$(TESTDATABLD)"
438 -@erase "*.cnv"
439 -@erase "*.icu"
440 -@erase "*.mak"
441 -@erase "*.nrm"
442 -@erase "*.res"
443 -@erase "*.spp"
444 -@erase "*.txt"
445 @cd "$(TESTDATAOUT)"
446 -@erase "*.dat"
447 @cd "$(TESTDATAOUT)\testdata"
448 -@erase "*.typ"
449 @cd "$(ICUBLD_PKG)"
450
451
452 # DLL version information
453 # If you modify this, modify winmode.c in pkgdata.
454 "$(ICUTMP)\icudata.res": "$(ICUSRCDATA)\misc\icudata.rc"
455 @echo Creating data DLL version information from $**
456 @rc.exe /i "..\..\..\..\common" /r /fo $@ $**
457
458 # Targets for prebuilt Unicode data
459 # Needed for ICU4J!
460 "$(ICUBLD_PKG)\pnames.icu": $(ICUSRCDATA_RELATIVE_PATH)\in\pnames.icu
461 "$(ICUPBIN)\icupkg" -tl $? $@
462
463 "$(ICUBLD_PKG)\ubidi.icu": $(ICUSRCDATA_RELATIVE_PATH)\in\ubidi.icu
464 "$(ICUPBIN)\icupkg" -tl $? $@
465
466 "$(ICUBLD_PKG)\ucase.icu": $(ICUSRCDATA_RELATIVE_PATH)\in\ucase.icu
467 "$(ICUPBIN)\icupkg" -tl $? $@
468
469 "$(ICUBLD_PKG)\uprops.icu": $(ICUSRCDATA_RELATIVE_PATH)\in\uprops.icu
470 "$(ICUPBIN)\icupkg" -tl $? $@
471
472 "$(ICUBLD_PKG)\unames.icu": $(ICUSRCDATA_RELATIVE_PATH)\in\unames.icu
473 "$(ICUPBIN)\icupkg" -tl $? $@
474
475 "$(ICUBLD_PKG)\nfc.nrm": $(ICUSRCDATA_RELATIVE_PATH)\in\nfc.nrm
476 "$(ICUPBIN)\icupkg" -tl $? $@
477
478 "$(ICUBLD_PKG)\nfkc.nrm": $(ICUSRCDATA_RELATIVE_PATH)\in\nfkc.nrm
479 "$(ICUPBIN)\icupkg" -tl $? $@
480
481 "$(ICUBLD_PKG)\nfkc_cf.nrm": $(ICUSRCDATA_RELATIVE_PATH)\in\nfkc_cf.nrm
482 "$(ICUPBIN)\icupkg" -tl $? $@
483
484 "$(ICUBLD_PKG)\uts46.nrm": $(ICUSRCDATA_RELATIVE_PATH)\in\uts46.nrm
485 "$(ICUPBIN)\icupkg" -tl $? $@
486
487 "$(ICUBLD_PKG)\coll\ucadata.icu": $(ICUSRCDATA_RELATIVE_PATH)\in\coll\ucadata-unihan.icu
488 "$(ICUPBIN)\icupkg" -tl $? $@
489
490
491 !IFDEF ICUDATA_ARCHIVE
492 "$(ICUDATA_SOURCE_ARCHIVE)": CREATE_DIRS $(ICUDATA_ARCHIVE) $(TOOLS_TS)
493 "$(ICUTOOLS)\icupkg\$(CFGTOOLS)\icupkg" -t$(U_ICUDATA_ENDIAN_SUFFIX) "$(ICUDATA_ARCHIVE)" "$(ICUDATA_SOURCE_ARCHIVE)"
494 !ENDIF