323
260
"http://oss.software.ibm.com/icu/userguide/icudata.html">User's Guide ICU
324
261
Data Chapter</a>.</p>
326
<h3>Collation improvements</h3>
328
<p>The performance of Japanese Katakana collation is improved, and the
329
Japanese collation is changed for conformance with the JIS X 4061 standard.
330
The improvement is in the handling of the length and iteration marks,
331
making the processing of regular letters faster.</p>
333
<p>The JIS X 4061 standard specifies a 5-level sorting algorithm. Sorting
334
with all five levels according to JIS is achieved in ICU 2.0 with the
335
"identical" strength. The fifth level distinguishes regular character codes
336
from compatibility variants.</p>
338
<p>There is special code to handle the fourth (quarternary) level of the
339
JIS standard, which distinguishes between Hiragana and Katakana letters. In
340
ICU 2.0 string comparisons (like ucol_strcoll), when using the "shifted"
341
option, this is slow because it generates complete sort keys for both
342
strings. This is not an issue if the "shifted" option is not used, or if
343
the string comparison is done with fewer levels.</p>
345
<p>Quarternary strength, without the "shifted" option, is the default for
346
Japanese collation in ICU 2.0.</p>
348
<p>Three-level sorting (tertiary strength) and lower — if sufficient
349
— is faster even with "shifted" on (for string comparisons:
350
<em>much</em> faster in this case).</p>
352
<h3>License Change (for ICU 1.8.1 and up)</h3>
354
<p>The ICU projects (ICU4C and ICU4J) have changed their licenses from the
355
IPL (IBM Public License) to the X license. The X license is a non-viral and
356
recommended free software license that is compatible with the GNU GPL
357
license. This is effective starting with release 1.8.1 of ICU4C and release
358
1.3.1 of ICU4J. All previous ICU releases will continue to utilize the IPL.
359
New ICU releases will adopt the X license. The users of previous releases
360
of ICU will need to accept the terms and conditions of the X license in
361
order to adopt the new ICU releases.</p>
363
<p>The main effect of the change is to provide GPL compatibility. The X
364
license is listed as GPL compatible, see the gnu page at <a href=
365
"http://www.gnu.org/philosophy/license-list.html#GPLCompatibleLicenses">http://www.gnu.org/philosophy/license-list.html#GPLCompatibleLicenses</a>.</p>
367
<p>The text of the X license is available at <a href=
368
"http://www.x.org/terms.htm">http://www.x.org/terms.htm</a>. The IBM
369
version contains the essential text of the license, omitting the X-specific
370
trademarks and copyright notices.</p>
372
<p>For more details please see the <a href=
373
"http://oss.software.ibm.com/icu/press.html">press announcement</a> and the
374
<a href="http://oss.software.ibm.com/icu/project_faq.html#license">Project
377
<h3>Transliterator improvements</h3>
379
<p>The transliterator service has undergone an extensive overhaul, in both
380
the rule-based engine and the built-in system rules. For a complete
381
description see the <a href=
382
"http://oss.software.ibm.com/icu/userguide/Transliteration.html">User's
383
Guide chapter on transliteration</a>.</p>
386
<li><b>New or rewritten rules:</b> <tt>Any-Accents</tt>,
387
<tt>Any-Publishing</tt>, <tt>Cyrillic-Latin</tt>*, <tt>Greek-Latin</tt>*,
388
<tt>Greek-Latin/UNGEGN</tt> (aka <tt>el-Latin</tt>),
389
<tt>Hiragana-Latin</tt>*, and <tt>Latin-Katakana</tt>*. New algorithmic
390
rules include <tt>Any-Name</tt>*, the normalization rules
391
<tt>Any-NFC</tt>, <tt>Any-NFKC</tt>, <tt>Any-NFD</tt>, and
392
<tt>Any-NFKD</tt>, casing rules <tt>Any-Upper</tt>, <tt>Any-Lower</tt>,
393
and <tt>Any-Title</tt>. <tt>Unicode-Hex</tt>* has been renamed
394
<tt>Any-Hex</tt>*. <tt>Any-Remove</tt> deletes its input. [*<em>applies
395
to reverse rule as well</em>]</li>
397
<li><b>Indic script rules:</b> Transliterators between Indic scripts and
398
from each script to and from Latin have been completely revised. Scripts
399
included are Bengali, Devanagari, Gujarati, Gurmukhi, Kannada, Malayalam,
400
Oriya, Tamil, and Telugu. Taking Bengali as an example, transliterators
401
<tt>Bengali-X</tt> and <tt>X-Bengali</tt> exist, where X is any of the
402
other listed Indic scripts, or Latin.</li>
404
<li><b>Deleted rules:</b> <tt>UnicodeName-UnicodeChar</tt> has been
405
replaced by <tt>Any-Name</tt>*. <tt>Latin-Arabic</tt>* and
406
<tt>Latin-Hebrew</tt>* have been removed until they can be rewritten.
407
<tt>KeyboardEscape-Latin1</tt> has been replaced by <tt>Any-Accents</tt>
408
and <tt>Any-Publishing</tt>. <tt>Latin-Kana</tt>* has been replaced by
409
<tt>Latin-Katakana</tt>* and <tt>Latin-Hiragana</tt>*. [*<em>applies to
410
reverse rule as well</em>]</li>
412
<li><b>ID syntax changes:</b> Transliterator IDs ignore case and
413
whitespace now. They now have the standard form
414
<em>[filter]source-target/variant</em>. The "<em>[filter]</em>" element
415
is optional; if present, it limits the characters that the transliterator
416
operates on. The "<em>source-</em>" element is optional; if omitted, it
417
is taken to be <tt>Any</tt>. The "<em>/variant</em>" element is also
418
optional; if present, it selects between different flavors of a related
419
set of transliterators, for example, <tt>Greek-Latin</tt> and
420
<tt>Greek-Latin/UNGEGN</tt>. The source, target, and variant specifiers
421
are case-insensitive strings of the form
422
<tt>/[_[:L:]][_[:L:][:N:]]*/</tt>.</li>
425
<b>Locale support:</b> The source, target, or both may be locales. In
426
this case the transliterator rules will be looked up in the system
427
locale resource bundles. Rules are sought under three tags, listed
428
below. The text after the underscore in each tag is always
429
canonicalized to uppercase before lookup. <em>Note: The underscore is
430
currently omitted from ICU4C tags, but will be restored when
434
<li><tt>TransliterateTo_<em>SCRIPT</em></tt>: Unidirectional rules
435
from the enclosing locale to another script or specifier.</li>
437
<li><tt>TransliterateFrom_<em>SCRIPT</em></tt>: Unidirectional rules
438
from another script or specifier to the enclosing locale.</li>
440
<li><tt>Transliterate_<em>SCRIPT</em></tt>: Bidirectional rules, with
441
the forward direction being To and the reverse direction being
444
Lookup proceeds in the following order:
447
<li>In the dynamic registry: <em>source-target</em></li>
449
<li>In the <em>source</em> locale:
450
<tt>TransliterateTo_<em>TARGET</em></tt> then
451
<tt>Transliterate_<em>TARGET</em></tt> (forward direction)</li>
453
<li>In the <em>target</em> locale:
454
<tt>TransliterateFrom_<em>SOURCE</em></tt> then
455
<tt>Transliterate_<em>SOURCE</em></tt> (reverse direction)</li>
457
If either the source or target specifier is not a locale then the
458
corresponding locale lookup is skipped. If either is a locale, then
459
locale fallback from <tt>aa_BB_CCC</tt> to <tt>aa_BB</tt> to
460
<tt>aa</tt> is performed (where <tt>aa</tt>, <tt>BB</tt>, and
461
<tt>CCC</tt> are the locale language, country, and variant). The final
462
fallback is from the specifier, whether it is a locale or not (e.g.,
463
script abbreviation), to the long script name associated with that
464
specifier. If a tag lookup succeeds, the attached element should be a
465
string array of <i>2n</i> items where <i>n</i> >= 1. Each pair of
466
strings is a variant name and rule string. The variants are matched
467
against the requested variant. If no variant is specified then the
468
first variant is considered to match.
471
<li><b>Filters on compounds IDs:</b> A filter on a compound
472
transliterator can now be specified by giving a leading entry that
473
contains a filter and no transliterator ID. For example, "<tt>[abc];
474
Latin-Katakana; Katakana-Hiragana</tt>" submits only the characters
475
contained in the UnicodeSet <tt>[abc]</tt> to the compound transliterator
476
<tt>Latin-Katakana; Katakana-Hiragana</tt>.</li>
478
<li><b>Explicit reverse IDs:</b> Typically if a transliterator
479
<tt>A-B</tt> is formed, and its inverse is requested, the system tries to
480
create <tt>B-A</tt>. That is, the source and target are exchanged. In
481
some cases, the user may wish a different transliterator to be considered
482
the reverse. In order to do this, the reverse ID is specified in
483
parentheses immediately following the ID. For example, "<tt>A-B
484
(B-C)</tt>" is a transliterator <tt>A-B</tt> whose inverse is
485
<tt>B-C</tt>. If the ID of the inverse is requested, "<tt>B-C (A-B)</tt>"
486
is returned. The forward or reverse component may be empty, so
487
"<tt>(B-C)</tt>" and "<tt>A-B()</tt>" are legal IDs with <tt>Null</tt>
488
transliterator for the forward and reverse direction, respectively. This
489
is most useful in compounds where one element has no inverse or where a
490
different inverse from the standard inverse is desired. For example,
491
"<tt>Any-Lower(); Latin-Cyrillic</tt>".</li>
493
<li><b>Quantifiers:</b> Transliterator rules may now contain quantifiers
494
'<tt>*</tt>', '<tt>+</tt>', and '<tt>?</tt>'. These indicate zero or
495
more, one or more, and zero or one matches, respectively. Quantifiers
496
apply to the last element, be it a single character, a UnicodeSet, a
497
segment definition, or a quote; the entire preceding element is repeated.
498
Quantifiers are implemented as greedy, non-backtracking matchers, unlike
499
their typical implementation in regular expressions. As a result,
500
expressions that match in a traditional regular expression engine (e.g.,
501
Perl) will not match in transliterator. E.g., "[a-z]+ q > x;" will
502
<em>not</em> match "abcq", since the '<tt>+</tt>' quantifier consumes all
503
four characters.</li>
505
<li><b>Dot character:</b> A new special character is recognized in rules,
506
'<tt>.</tt>' (U+0020). This character matches any characters in the set
507
<tt>[^[:Zp:][:Zl:]\r\n$]</tt>. Note the trailing '<tt>$</tt>' in the set
508
pattern, which indicates that the ETHER character is <em>not</em> matched
509
by '<tt>.</tt>'.</li>
511
<li><b>::ID blocks in rules:</b> Transliterator IDs may now be included
512
in rule sets. These may occur in two locations: as one contiguous block
513
before any other rules, and as one contiguous block after all rules. The
514
effect of placing <tt>::ID</tt>s into a rule set is to enclose the
515
rule-based transliterator within a compound transliterator containing the
516
indicated IDs. The <tt>::ID</tt> syntax is exactly the same as the
517
standard ID syntax, with the difference that each ID element is preceded
518
by the special token "<tt>::</tt>".</li>
520
<li><b>Segment definitions more flexible:</b> Segment definitions may be
521
nested and are now unlimited in number. Prior to 2.0, segments could not
522
be nested and were limited to nine ($1 to $9).</li>
524
<li><b>Variable range pragma:</b> A new pragma is supported. This follows
525
the syntax:<code>use variable range 0xE800 0xEFFF;</code> (Any two code
526
points may be specified.) The code points are specified as decimal
527
constants, octal constants with a leading '0', or hexadecimal constants
528
with a leading "0x". The given range is used internally for stand-in
529
characters during processing. The default range is <b>0xF000..0xF8FF</b>.
530
If a rule set explicitly uses characters in the default variable range, a
531
new range, not containing any characters in use in the rule set, must be
532
specified. <em>Note:</em> This is the first of several planned
535
<li><b>Factory method registration:</b> Factory methods (function
536
pointers in ICU4C; functor objects in ICU4J) may be registered against
537
transliterator IDs. This is generally more efficient than the
538
registration of singleton prototypes, since no actual transliterator
539
object need be created until the user requires one. See the
540
<tt>registerFactory()</tt> method in <tt>Transliterator</tt>.</li>
542
<li><b>Filtering semantics changed for subclasses:</b> Subclasses now
543
need not concern themselves with filters. Instead, they may assume that
544
all characters received by <tt>handleTransliterate()</tt> have already
545
passed through the filter. This simplifies subclass code greatly.</li>
548
<h3><a name="NewsUnicodeSet">UnicodeSet Improvements</a></h3>
551
<li><b><tt>[:Any:]</tt> set:</b> The set <tt>[:Any:]</tt> matches all
552
Unicode code points, that is, U+0000..U+10FFFF.</li>
554
<li><b><tt>\p{}</tt> syntax:</b> UnicodeSet now recognizes a Perlish
555
syntax for character properties. Any property designated as
556
<tt>[:Foo:]</tt> may equivalently be designated <tt>\p{Foo}</tt>.</li>
558
<li><b>Short, medium, and long property names:</b> In addition to the
559
short property names, such as <tt>[:Ll:]</tt>, equivalent medium (e.g.,
560
<tt>[:gc=Ll:]</tt>) and long (e.g.,
561
<tt>[:GeneralCategory=LowercaseLetter:]</tt>) forms are recognized. See
563
"http://oss.software.ibm.com/cvs/icu/~checkout~/icuhtml/design/unicodeset_properties.html">
564
UnicodeSet Properties design document</a> for details. As of this
565
release, general categories, numeric value, and script are
263
<h3>Library linking changed</h3>
267
<b>Linkage improvement for HP/UX</b>
270
<li>The current directory (.) is now searched for libraries.</li>
272
<li>Where available, $ORIGIN is set in the embedded path so that if
273
one ICU library is found, the system will be able to locate the
279
<b>Library Versioning for AIX (xlC and VisualAge)</b>
282
<li>AIX does not have facilities to enable library versioning. With
283
this patch, libraries will now be named for instance
284
<tt>libicuuc<b>20.1.so</b></tt> , however symlinks will allow
285
applications to still link using <tt>-licuuc</tt> (without the
286
benefit of versioning). To benefit from versioning, on AIX link
287
against the major and minor versions by using
288
<tt>-licuuc20</tt>.</li>
293
<b>Data Library Versioning for all platforms</b>
296
<li>The versioned name for the data library will be linked against by
297
the ICU libraries, that is, libicudt20b.so instead of
303
<h3>Multithreaded usage is safer</h3>
305
<p>It was discovered that some parts of ICU were not initialized in a
306
thread safe manner. This has been fixed.</p>
570
309
<h2><a name="Download" href="#Download">How to Download the Source
630
373
The following directories contain source code and data files.
635
<i><ICU></i>/source/<b>common</b>/
639
The core Unicode and support functionality, such as resource bundles,
640
character properties, locales, codepage conversion, normalization, Unicode
641
properties, Locale, and UnicodeString.
647
<i><ICU></i>/source/<b>i18n</b>/
651
Modules in i18n are generally the more data-driven, that is to say
652
resource bundle driven, components. These deal with higher level internationalization
653
issues such as formatting, collation, text break analysis, and transliteration.
659
<i><ICU></i>/source/<b>data</b>
662
<td>This directory contains the source data in text format which is compiled
663
into binary form during the ICU build process. It contains several subdirectories,
664
in which the data files are grouped by function. Note that the build process
665
must be run again after any changes are made to this directory.
668
<b>brkitr/</b> <b> </b>Data files for character, word, sentence,
669
title casing and line boundary analysis.
673
<b>locales/</b> These .txt files contain ICU language and culture-specific
674
localization data. Two special bundles are <b>root</b>, which is the fallback
675
data and parent of other bundles, and <b>index</b> which contains a list
676
of installed bundles. The makefile <b>resfiles.mk</b> contains the list
677
of resource bundle files.
681
<b>mappings/</b> Here are the <b>code page converter tables,</b>
682
.ucm files containing mappings to and from Unicode. These are compiled
683
into .cnv files. <b>convrtrs.txt</b> is the alias mapping table from various
684
converter name formats to ICU internal format and vice versa. It produces
685
cnvalias.dat. The makefiles which contain the list of converters to be
686
built are <b>ucmfiles.mk, ucmcore.mk, </b>and <b>ucmebcdic.mk.</b>
690
<b>translit/ </b> This directory contains Transliterator rules
691
as resource bundles, a makefile <b>trnsfiles.mk</b> containing the list
692
of installed system translitaration files, and as well the special bundle
693
<b>translit_index</b>
694
which lists the system transliterator aliases.
698
<b>unidata/</b> This directory contains the Unicode data files. Please
699
see <a href="http://www.unicode.org/">http://www.unicode.org/</a> for more
704
<b>misc/</b> The misc directory contains other data files which did
705
not fit into the above categories. Currently it only contains <b>timezone.txt,</b>
706
a generated file which is compiled into tz.dat, and containing time zone
711
<b>out/ </b>This directory contains the assembled memory mapped files.
715
<b>out/build </b>This directory contains intermediate (compiled) files,
716
such as .cnv, .res, etc.
724
<i><ICU></i>/source/test/<b>intltest</b>/
728
A test suite including all C++ APIs. For information about running
729
the test suite, see the users' guide.
735
<i><ICU></i>/source/test/<b>cintltst</b>/
739
A test suite written in C, including all C APIs. For information about
740
running the test suite, see the users' guide.
746
<i><ICU></i>/source/test/<b>testdata</b>
750
Source text files for data which is read by the tests. It contains
751
the subdirectories <b>out/build/</b> which is used for intermediate files,
752
and <b>out/ </b>which contains the files <b>test1.cnv</b> through <b>test4.cnv,</b>
753
and <b>testdata.dat.</b> Note that the tests call u_setDataDirectory("<ICU>/source/test/testdata/lib"),
754
so that ICU will load these files as if they were part of the ICU data
755
package, for testing purposes. This was formerly accomplished by setting
756
the ICU_DATA environment variable to point at these files. ICU_DATA should
757
not be set under normal circumstances.
763
<i><ICU></i>/source/<b>tools</b>
767
Tools for generating the data files. Data files are generated by invoking
768
<i><ICU></i>/source/data/build/makedata.bat
769
on Win32 or <i><ICU></i>/source/make on Unix.
775
<i><ICU></i>/source/<b>samples</b>
779
Various sample programs that use ICU
784
<i><ICU></i>/source/<b>extra</b>
788
Non-supported API additions. Currently, it contains the 'ustdio' file
795
<i><ICU></i>/source/<b>layout</b>
799
Contains the ICU layout engine (not a rasterizer).
805
<i><ICU></i>/<b>packaging</b>
806
<br><i><ICU></i>/<b>debian</b>
810
These directories contain scripts and tools for packaging the final
811
ICU build for various release platforms.
817
<i><ICU></i>/source/<b>config</b>
821
Contains helper makefiles for platform specific build commands. Used
828
<i><ICU></i>/source/<b>allinone</b>
832
Contains top-level ICU project files, for instance to build all of
833
ICU under one MSVC project.
377
<td><i><ICU></i>/source/<b>common</b>/</td>
379
<td>The core Unicode and support functionality, such as resource
380
bundles, character properties, locales, codepage conversion,
381
normalization, Unicode properties, Locale, and UnicodeString.</td>
385
<td><i><ICU></i>/source/<b>i18n</b>/</td>
387
<td>Modules in i18n are generally the more data-driven, that is to say
388
resource bundle driven, components. These deal with higher-level
389
internationalization issues such as formatting, collation, text break
390
analysis, and transliteration.</td>
394
<td><i><ICU></i>/source/<b>data</b> </td>
397
This directory contains the source data in text format, which is
398
compiled into binary form during the ICU build process. It contains
399
several subdirectories, in which the data files are grouped by
400
function. Note that the build process must be run again after any
401
changes are made to this directory.
404
<li><b>brkitr/</b> Data files for character, word, sentence, title
405
casing and line boundary analysis.</li>
407
<li><b>locales/</b> These .txt files contain ICU language and
408
culture-specific localization data. Two special bundles are
409
<b>root</b>, which is the fallback data and parent of other
410
bundles, and <b>index</b>, which contains a list of installed
411
bundles. The makefile <b>resfiles.mk</b> contains the list of
412
resource bundle files.</li>
414
<li><b>mappings/</b> Here are the <b>code page converter
415
tables,</b> .ucm files containing mappings to and from Unicode.
416
These are compiled into .cnv files. <b>convrtrs.txt</b> is the
417
alias mapping table from various converter name formats to ICU
418
internal format and vice versa. It produces cnvalias.dat. The
419
makefiles <b>ucmfiles.mk, ucmcore.mk,</b> and <b>ucmebcdic.mk</b>
420
contain the list of converters to be built.</li>
422
<li><b>translit/</b> This directory contains transliterator rules
423
as resource bundles, a makefile <b>trnsfiles.mk</b> containing the
424
list of installed system translitaration files, and as well the
425
special bundle <b>translit_index</b> which lists the system
426
transliterator aliases.</li>
428
<li><b>unidata/</b> This directory contains the Unicode data files.
430
"http://www.unicode.org/">http://www.unicode.org/</a> for more
433
<li><b>misc/</b> The misc directory contains other data files which
434
did not fit into the above categories. Currently it only contains
435
<b>timezone.txt,</b> a generated file, which is compiled into
436
tz.dat. The <b>tz.dat</b> file contains time zone information.</li>
438
<li><b>out/</b> This directory contains the assembled memory mapped
441
<li><b>out/build</b> This directory contains intermediate
442
(compiled) files, such as .cnv, .res, etc.</li>
448
<td><i><ICU></i>/source/test/<b>intltest</b>/</td>
450
<td>A test suite including all C++ APIs. For information about running
451
the test suite, see the users' guide.</td>
455
<td><i><ICU></i>/source/test/<b>cintltst</b>/</td>
457
<td>A test suite written in C, including all C APIs. For information
458
about running the test suite, see the users' guide.</td>
462
<td><i><ICU></i>/source/test/<b>testdata</b>/</td>
464
<td>Source text files for data, which are read by the tests. It
465
contains the subdirectories <b>out/build/</b> which is used for
466
intermediate files, and <b>out/</b> which contains the files
467
<b>test1.cnv</b> through <b>test4.cnv,</b> and <b>testdata.dat.</b>
468
Note that the tests call
469
u_setDataDirectory("<ICU>/source/test/testdata/lib"), so that ICU
470
will load these files as if they were part of the ICU data package, for
471
testing purposes. This was formerly accomplished by setting the
472
ICU_DATA environment variable to point at these files. ICU_DATA should
473
not be set under normal circumstances.</td>
477
<td><i><ICU></i>/source/<b>tools</b> </td>
479
<td>Tools for generating the data files. Data files are generated by
480
invoking <i><ICU></i>/source/data/build/makedata.bat on Win32 or
481
<i><ICU></i>/source/make on Unix.</td>
485
<td><i><ICU></i>/source/<b>samples</b> </td>
487
<td>Various sample programs that use ICU</td>
491
<td><i><ICU></i>/source/<b>extra</b> </td>
493
<td>Non-supported API additions. Currently, it contains the 'ustdio'
494
file i/o library</td>
498
<td><i><ICU></i>/source/<b>layout</b>/</td>
500
<td>Contains the ICU layout engine (not a rasterizer).</td>
504
<td><i><ICU></i>/<b>packaging</b>/<br>
505
<i><ICU></i>/<b>debian</b>/</td>
507
<td>These directories contain scripts and tools for packaging the final
508
ICU build for various release platforms.</td>
512
<td><i><ICU></i>/source/<b>config</b>/</td>
514
<td>Contains helper makefiles for platform specific build commands.
515
Used by 'configure'.</td>
519
<td><i><ICU></i>/source/<b>allinone</b>/</td>
521
<td>Contains top-level ICU workspace and project files, for instance to
522
build all of ICU under one MSVC project.</td>
526
<td><i><ICU></i>/<b>bin</b>/</td>
528
<td>Contains the libraries and executables for using ICU on
533
<td><i><ICU></i>/<b>include</b>/</td>
535
<td>Contains the headers needed for developing software that uses ICU
837
539
<!-- end of ICU structure ==================================== -->
1129
849
<li>Change directory to the "icu/source".</li>
1131
<li>chmod +x runConfigureICU install-sh</li>
851
<li>Run "chmod +x runConfigureICU configure install-sh" as these files
852
may have the wrong permissions.</li>
1133
854
<li>Run the <a href="source/runConfigureICU">runConfigureICU</a> script
1134
for your platform. If you are not using the runConfigureICU script or
1135
your platform is not supported by the script, you need to set your CC,
1136
CXX, CFLAGS and CXXFLAGS environment variables, and type "./configure".
1137
You can type "./configure --help" to print the available options.</li>
1139
<li>Type "gmake" to compile the libraries and all the data files.</li>
1142
Optionally, type "gmake check" to verify the test suite.
1146
<b>Note:</b> You may have to set certain variables if you with to
1147
run test programs individually, that is apart from "make check".
1148
The <strong>TZ</strong> environment variable needs to be set to
1149
<strong>PST8PDT</strong>. Also, the environment variable
1150
<strong>ICU_DATA</strong> must be set to the full pathname of the
1151
data directory, to indicate where the locale data files and
1152
conversion mapping tables are. The trailing "/" is required after
1153
the directory name (e.g. "$Root/source/data/" will work, but the
1154
value "$Root/source/data" is not acceptable).
1156
<p>When running samples or other applications, ICU_DATA only needs
1157
to be set if the data is not installed (such as via 'make install')
1158
into the default location.</p>
1163
<li>Type "gmake install" to install.</li>
855
for your platform. (See <a href="#HowToConfigureICU">note</a>
858
<li>Type "gmake" (or "make" if GNU make is the default make on your
859
platform) to compile the libraries and all the data files. The proper
860
name of the GNU make command is printed at the end of the configuration
861
run, as in "You must use gmake to compile ICU".</li>
863
<li>Optionally, type "gmake check" (or "make check") to run the test
864
suite, which checks for ICU's functionality integrity (See <a href=
865
"#HowToTestWithoutGmake">note</a> below).</li>
867
<li>Type "gmake install" (or "make install") to install. The install
868
targets support the use of the DESTDIR variable to create the
869
installation tree under a specific destination directory. (See <a href=
870
"#HowToInstallICU">note</a> below).</li>
873
<p><a name="#HowToConfigureICU"><strong>Configuring ICU NOTE:</strong></a>
874
Type "./runConfigureICU --help" for help on how to run it and a list of
875
supported platforms. You may also want to type "./configure --help" to
876
print the available configure options that you may want to give
877
runConfigureICU. If you are not using the runConfigureICU script, or your
878
platform is not supported by the script, you may need to set your CC,CXX,
879
CFLAGS and CXXFLAGS environment variables, and type "./configure". Some of
880
the more frequently used options to configure are --disable-64bit-libs to
881
create 32-bit libraries, and --srcdir to do out of source builds (build the
882
libraries in the current location).</p>
884
<p><a name="#HowToTestWithoutGmake"><strong>Running The Tests From The
885
Command Line NOTE:</strong></a> You may have to set certain variables if
886
you with to run test programs individually, that is apart from "make
887
check". The <strong>TZ</strong> environment variable needs to be set to
888
<strong>PST8PDT</strong>. Also, the environment variable
889
<strong>ICU_DATA</strong> can be set to the full pathname of the data
890
directory to indicate where the locale data files and conversion mapping
891
tables are. The trailing "/" is required after the directory name (e.g.
892
"$Root/source/data/" will work, but the value "$Root/source/data" is not
893
acceptable). You do not need to set <strong>ICU_DATA</strong> if the
894
complete data library is in your library path.</p>
896
<p><a name="#HowToInstallICU"><strong>Installing ICU NOTE:</strong></a> If
897
you are using the "gmake install" command, using the "--prefix" option on
898
configure or runConfigureICU will install ICU to the specified
1166
901
<p>Some platforms use package management tools to control the installation
1167
902
and uninstallation of files on the system, as well as the integrity of the
1168
903
system configuration. You may want to check if ICU can be packaged for your
1169
904
package management tools by looking into the "packaging" directory. (Please
1170
905
note that if you are using a snapshot of ICU from CVS, it is probable that
1171
906
the packaging scripts or related files are not up to date with the contents
1172
of ICU at this time, so use them with caution.)</p>
907
of ICU at this time, so use them with caution).</p>
1174
909
<h3><a name="HowToBuildOS390" href="#HowToBuildOS390">OS/390 (zSeries)
1175
910
Platform</a></h3>