Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(527)

Side by Side Diff: readme.html

Issue 845603002: Update ICU to 54.1 step 1 (Closed) Base URL: https://chromium.googlesource.com/chromium/deps/icu.git@master
Patch Set: remove unusued directories Created 5 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « license.html ('k') | source/Doxyfile.in » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" 1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
2 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 2 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
3 3
4 <html lang="en-US" xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US"> 4 <html lang="en-US" xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US">
5 <head> 5 <head>
6 <title>ReadMe for ICU 52</title> 6 <title>ReadMe for ICU 54.1</title>
7 <meta name="COPYRIGHT" content= 7 <meta name="COPYRIGHT" content=
8 "Copyright (c) 1997-2013 IBM Corporation and others. All Rights Reserved." / > 8 "Copyright (c) 1997-2014 IBM Corporation and others. All Rights Reserved." / >
9 <meta name="KEYWORDS" content= 9 <meta name="KEYWORDS" content=
10 "ICU; International Components for Unicode; ICU4C; what's new; readme; read me; introduction; downloads; downloading; building; installation;" /> 10 "ICU; International Components for Unicode; ICU4C; what's new; readme; read me; introduction; downloads; downloading; building; installation;" />
11 <meta name="DESCRIPTION" content= 11 <meta name="DESCRIPTION" content=
12 "The introduction to the International Components for Unicode with instructi ons on building, installation, usage and other information about ICU." /> 12 "The introduction to the International Components for Unicode with instructi ons on building, installation, usage and other information about ICU." />
13 <meta http-equiv="Content-Type" content="text/html; charset=us-ascii" /> 13 <meta http-equiv="Content-Type" content="text/html; charset=us-ascii" />
14 <link type="text/css" href="./icu4c.css" rel="stylesheet"/> 14 <link type="text/css" href="./icu4c.css" rel="stylesheet"/>
15 </head> 15 </head>
16
17 <!--
18 classes to use with the "body" -
19 draft - if the release note is itself a draft (May be combined with the other two)
20
21
22 rc - if the release note is a release candidate
23 milestone - if the release note is a milestone release
24 -->
16 25
26 <!--<body class="rc">-->
17 <body> 27 <body>
18 <h1>International Components for Unicode<br /> 28 <p class="only-draft"><b>Note:</b> This is a draft readme.</p>
19 <abbr title="International Components for Unicode">ICU</abbr> 52 ReadMe</h1 >
20 29
21 <!--<p><b>Note:</b> This is a development milestone release of ICU4C 52. 30 <h1>
22 This milestone is intended for those wishing to get an early look at ICU 52 new features and API changes. 31 <span class="only-draft">DRAFT</span>
23 It is not recommended for production use.</p>--> 32 International Components for Unicode<br/>
24 <!--<p><b>Note:</b> This is a release candidate version of ICU4C 52.
25 It is not recommended for production use.</p>-->
26 33
27 <p>Last updated: 2013-Sep-30<br /> 34 <span class="only-rc">Release Candidate</span>
28 Copyright &copy; 1997-2013 International Business Machines Corporation and 35 <span class="only-milestone">(Milestone Release)</span>
36 <abbr title="International Components for Unicode">ICU</abbr> 54.1 Read Me
37 </h1>
38
39
40 <!-- Shouldn't need to comment/uncomment this paragraph, just change the bod y class -->
41 <p class="note only-milestone">This is a development milestone release of IC U
42 This milestone is intended for those wishing to get an early look at new fea tures and API changes.
43 It is not recommended for production use.</p>
44
45 <!-- Shouldn't need to comment/uncomment this paragraph, just change the bod y class -->
46 <p class="note only-rc">This is a release candidate version of ICU4C.
47 It is not recommended for production use.</p>
48
49 <p>Last updated: 2014-September-24<br />
50 Copyright &copy; 1997-2014 International Business Machines Corporation and
29 others. All Rights Reserved.</p> 51 others. All Rights Reserved.</p>
30 <!-- Remember that there is a copyright at the end too --> 52 <!-- Remember that there is a copyright at the end too -->
31 <hr /> 53 <hr/>
32 54
33 <h2 class="TOC">Table of Contents</h2> 55 <h2 class="TOC">Table of Contents</h2>
34 56
35 <ul class="TOC"> 57 <ul class="TOC">
36 <li><a href="#Introduction">Introduction</a></li> 58 <li><a href="#Introduction">Introduction</a></li>
37 59
38 <li><a href="#GettingStarted">Getting Started</a></li> 60 <li><a href="#GettingStarted">Getting Started</a></li>
39 61
40 <li><a href="#News">What Is New In This release?</a></li> 62 <li><a href="#News">What Is New In This release?</a></li>
41 63
42 <li><a href="#Download">How To Download the Source Code</a></li> 64 <li><a href="#Download">How To Download the Source Code</a></li>
43 65
44 <li><a href="#SourceCode">ICU Source Code Organization</a></li> 66 <li><a href="#SourceCode">ICU Source Code Organization</a></li>
45 67
46 <li> 68 <li>
47 <a href="#HowToBuild">How To Build And Install ICU</a> 69 <a href="#HowToBuild">How To Build And Install ICU</a>
48 70
49 <ul > 71 <ul >
50 <li><a href="#RecBuild">Recommended Build Options</a></li> 72 <li><a href="#RecBuild">Recommended Build Options</a></li>
51 73
52 <li><a href="#UserConfig">User-Configurable Settings</a></li> 74 <li><a href="#UserConfig">User-Configurable Settings</a></li>
53 75
54 <li><a href="#HowToBuildWindows">Windows</a></li> 76 <li><a href="#HowToBuildWindows">Windows</a></li>
55 77
56 <li><a href="#HowToBuildCygwin">Cygwin</a></li> 78 <li><a href="#HowToBuildCygwin">Cygwin</a></li>
57 79
58 <li><a href="#HowToBuildUNIX">UNIX</a></li> 80 <li><a href="#HowToBuildUNIX">UNIX</a></li>
59 81
60 <li><a href="#HowToBuildZOS">z/OS (os/390)</a></li> 82 <li><a href="#HowToBuildZOS">z/OS (os/390)</a></li>
61 83
62 <li><a href="#HowToBuildOS400">IBM i family (IBM i, i5/OS, OS/400)</a> </li> 84 <li><a href="#HowToBuildOS400">IBM i family (IBM i, i5/OS, OS/400)</a> </li>
63 85
64 <li><a href="#HowToCrossCompileICU">How to Cross Compile ICU</ a></li> 86 <li><a href="#HowToCrossCompileICU">How to Cross Compile ICU</ a></li>
65 </ul> 87 </ul>
66 </li> 88 </li>
67 89
68 90
69 <li><a href="#HowToPackage">How To Package ICU</a></li> 91 <li><a href="#HowToPackage">How To Package ICU</a></li>
70 92
71 <li> 93 <li>
72 <a href="#ImportantNotes">Important Notes About Using ICU</a> 94 <a href="#ImportantNotes">Important Notes About Using ICU</a>
73 95
74 <ul > 96 <ul >
75 <li><a href="#ImportantNotesMultithreaded">Using ICU in a Multithreade d 97 <li><a href="#ImportantNotesMultithreaded">Using ICU in a Multithreade d
76 Environment</a></li> 98 Environment</a></li>
77 99
78 <li><a href="#ImportantNotesWindows">Windows Platform</a></li> 100 <li><a href="#ImportantNotesWindows">Windows Platform</a></li>
79 101
80 <li><a href="#ImportantNotesUNIX">UNIX Type Platforms</a></li> 102 <li><a href="#ImportantNotesUNIX">UNIX Type Platforms</a></li>
81 </ul> 103 </ul>
82 </li> 104 </li>
83 105
84 <li> 106 <li>
85 <a href="#PlatformDependencies">Platform Dependencies</a> 107 <a href="#PlatformDependencies">Platform Dependencies</a>
86 108
87 <ul > 109 <ul >
88 <li><a href="#PlatformDependenciesNew">Porting To A New 110 <li><a href="#PlatformDependenciesNew">Porting To A New
89 Platform</a></li> 111 Platform</a></li>
90 112
91 <li><a href="#PlatformDependenciesImpl">Platform Dependent 113 <li><a href="#PlatformDependenciesImpl">Platform Dependent
92 Implementations</a></li> 114 Implementations</a></li>
93 </ul> 115 </ul>
94 </li> 116 </li>
95 </ul> 117 </ul>
(...skipping 110 matching lines...) Expand 10 before | Expand all | Expand 10 after
206 "http://site.icu-project.org/contacts">http://site.icu-project.org/conta cts</a></td> 228 "http://site.icu-project.org/contacts">http://site.icu-project.org/conta cts</a></td>
207 </tr> 229 </tr>
208 </table> 230 </table>
209 231
210 <p><strong>Important:</strong> Please make sure you understand the <a href= 232 <p><strong>Important:</strong> Please make sure you understand the <a href=
211 "license.html">Copyright and License Information</a>.</p> 233 "license.html">Copyright and License Information</a>.</p>
212 234
213 <h2><a name="News" href="#News" id="News">What is new in this 235 <h2><a name="News" href="#News" id="News">What is new in this
214 release?</a></h2> 236 release?</a></h2>
215 237
216 <p>To see which APIs are new or changed in this release, view the <a href="A PIChangeReport.html">ICU4C API Change Report</a>. </p> 238 <h3>API Changes</h3>
239 <p>See the <a href="APIChangeReport.html">API Change Report</a> for a comple te
240 list of APIs added, removed, or changed in this release.</p>
217 241
218 <!-- ICU 52 items --> 242 <!-- ICU 54 items -->
219 <h3>DecimalFormat - two functions marked as const</h3> 243 <h3>Deprecation: Layout Engine</h3>
244 <p>The LayoutEngine is now deprecated. Please
245 see <a href='http://userguide.icu-project.org/layoutengine'>the
246 User's Guide</a> for more details and migration recommendations.
247 In the future, passing "<tt>--enable-layout</tt>" to configure
248 will be required to
249 enable the layout engine.</p>
220 <p> 250 <p>
221 <tt>DecimalFormat::isScientificNotation</tt> and <tt>DecimalFormat::isExpo nentSignAlwaysShown</tt> 251 Note that the ParagraphLayout (layoutex) library is not deprecated.
222 are now const member functions. DecimalFormat is not recommended for subcl assing. 252 There is a new option, <tt>--enable-layoutex</tt> which will build
253 the ParagraphLayout library using <a href="http://harfbuzz.org">HarfBuzz</ a>
254 instead of ICU as the layout engine. See <a href="http://userguide.icu-pro ject.org/layoutengine">
255 the users' guide</a> for more information about how to build.
223 </p> 256 </p>
257 <h3>Deprecation: Collation Short Strings</h3>
258 <p>The collation short naming scheme and its API functions are deprecated.
259 Use ucol_open() with language tag collation keywords instead (see <a href="h ttp://userguide.icu-project.org/collation/api">Collation API Details</a>). For e xample, <code>ucol_open("de-u-co-phonebk-ka-shifted", &amp;errorCode)</code>
260 for German Phonebook order with "ignore punctuation" mode.</p>
224 261
225 <h3>CollationElementIterator protected methods became private</h3> 262 <h3>Deprecation: UCOL_TAILORINGS_VERSION</h3>
226 <p>The C++ CollationElementIterator (CEI) had two protected constructors 263 <p>This was originally intended to be the version of collation tailorings,
227 (called only by RuleBasedCollator CEI factory methods) 264 but that information is actually in the tailorings data and this
228 and a protected assignment operator. 265 constant has always been (and now will continue to be) 1.</p>
229 The class documentation says "CollationElementIterator should not be subclas sed",
230 and it cannot be subclassed effectively.
231 The protected methods were made private and might be removed altogether.
232 For details see <a href="http://bugs.icu-project.org/trac/ticket/10251">tick et #10251</a>.</p>
233 <!-- end ICU 52 items -->
234 266
235 <p>The following list concentrates on <em>changes that affect existing 267 <h3>Deprecation (in ICU 53): TimeUnitFormat</h3>
268 <p>The TimeUnitFormat and its methods were actually deprecated in ICU 53 and the
269 class as a whole was tagged as deprecated in that release, but the status ta gs for
270 the individual methods did not correctly indicate the deprecated status; now they do.
271 Use the MeasureFormat class and its methods instead.</p>
272
273 <!-- standing item -->
274 <h3>Full release notes and the latest updates</h3>
275 <p>The previous list concentrates on <em>changes that affect existing
236 applications migrating from previous ICU releases</em>. 276 applications migrating from previous ICU releases</em>.
237 For more news about this release, see the 277 For more news about this release, as well as late-breaking news, see the
238 278 <a href="http://site.icu-project.org/download/54">ICU download page</a>.</p>
239 <a href="http://site.icu-project.org/download/52">ICU download page</a>.
240
241 <!-- <a href="http://site.icu-project.org/download/milestone">ICU milestone d ownload page</a>.
242 </p>-->
243
244 <h3>C++ BasicTimeZone subclassing-API breaking changes</h3>
245 <p>We have made make some changes to the C++ BasicTimeZone(basictz.h) for IC U 51
246 that will make it easier to use some time zone support features found in Bas icTimeZone
247 (basictz.h), but the changes are incompatible for subclasses. If there are s ubclasses,
248 they will have to be modified as well.</p>
249 279
250 <p>BasicTimeZone is a subclass of TimeZone and providing some enhanced featu res, such as 280 <!-- end ICU 54 items -->
251 getNextTransition and getPreviousTransition. The class is used as the base c lass of all
252 of ICU's time zone implementation classes. User Classes directly extending T imeZone and
253 consumers of ICU TimeZone implementation classes are not affected by the cha nges.</p>
254
255 <p>For details see the email "ICU4C C++ BasicTimeZone subclassing-API breaki ng changes"
256 sent on 2013-Feb-5 to the icu-support
257 <a href="http://site.icu-project.org/contacts">mailing lists</a>,
258 and <a href="http://bugs.icu-project.org/trac/ticket/9648">ICU ticket #9648< /a>.</p>
259
260 <h3>Date format pattern "V"</h3>
261 <p>The date format pattern "V" was introduced in ICU 3.8 (inherited from CLD R 1.5) as
262 a variation of pattern "z" to support time zone abbreviation format such as "PST".
263 The pattern "z" prints out a time zone abbreviation only when it is commonly used for a locale.
264 The pattern "V" was slightly different from pattern "z" and the pattern desi gnates
265 a time zone abbreviation even it is not commonly used for a locale. For exam ple, time
266 zone abbreviation "AEST" for Australian Eastern Standard Time might not be w ell recognized
267 by people in the United States. For the zone, pattern "z" does not use "AEST " (instead, use
268 UTC offset format "GMT+10:00", as the fallback) , while pattern "V" used to print out "AEST".
269 In CLDR 21, the data used for checking commonly used or not was completely r emoved (CLDR
270 ticket <a href="http://unicode.org/cldr/trac/ticket/4052">#4052</a>), so the difference
271 between pattern "z" and "V" is no longer available since ICU 49 (based on CL DR 21 specification).</p>
272
273 <p>In CLDR 23, the CLDR technical committee decided to reuse the semanticall y deprecated
274 pattern "V" for a different purpose. With the new specification, the date fo rmat pattern
275 "V" is used for short time zone IDs, such as "uslax" for zone America/Los_An geles. ICU 51
276 implements the new specification. So existing ICU users currently using cust om date format
277 patterns with pattern "V" are suggested to change them to pattern "z".</p>
278
279 <p>Note that the existing pattern "VVVV" for a time zone's generic location n ame is not
280 affected by the new specification and the pattern "VVVV" continues to work as same as
281 previous ICU releases.</p>
282 281
283 <h2><a name="Download" href="#Download" id="Download">How To Download the 282 <h2><a name="Download" href="#Download" id="Download">How To Download the
284 Source Code</a></h2> 283 Source Code</a></h2>
285 284
286 <p>There are two ways to download ICU releases:</p> 285 <p>There are two ways to download ICU releases:</p>
287 286
288 <ul> 287 <ul>
289 <li><strong>Official Release Snapshot:</strong><br /> 288 <li><strong>Official Release Snapshot:</strong><br />
290 If you want to use ICU (as opposed to developing it), you should download 289 If you want to use ICU (as opposed to developing it), you should download
291 an official packaged version of the ICU source code. These versions are 290 an official packaged version of the ICU source code. These versions are
(...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after
371 370
372 <td>Modules in i18n are generally the more data-driven, that is to say 371 <td>Modules in i18n are generally the more data-driven, that is to say
373 resource bundle driven, components. These deal with higher-level 372 resource bundle driven, components. These deal with higher-level
374 internationalization issues such as formatting, collation, text break 373 internationalization issues such as formatting, collation, text break
375 analysis, and transliteration.</td> 374 analysis, and transliteration.</td>
376 </tr> 375 </tr>
377 376
378 <tr> 377 <tr>
379 <td><i>&lt;ICU&gt;</i>/source/<b>layout</b>/</td> 378 <td><i>&lt;ICU&gt;</i>/source/<b>layout</b>/</td>
380 379
381 <td>Contains the ICU layout engine (not a rasterizer).</td> 380 <td>Contains the ICU complex text layout engine. (Deprecated)</td>
381 </tr>
382 <tr>
383 <td><i>&lt;ICU&gt;</i>/source/<b>layoutex</b>/</td>
384
385 <td>Contains the ICU paragraph layout engine.</td>
382 </tr> 386 </tr>
383 387
384 <tr> 388 <tr>
385 <td><i>&lt;ICU&gt;</i>/source/<b>io</b>/</td> 389 <td><i>&lt;ICU&gt;</i>/source/<b>io</b>/</td>
386 390
387 <td>Contains the ICU I/O library.</td> 391 <td>Contains the ICU I/O library.</td>
388 </tr> 392 </tr>
389 393
390 <tr> 394 <tr>
391 <td><i>&lt;ICU&gt;</i>/source/<b>data</b>/</td> 395 <td><i>&lt;ICU&gt;</i>/source/<b>data</b>/</td>
(...skipping 163 matching lines...) Expand 10 before | Expand all | Expand 10 after
555 </table> 559 </table>
556 <!-- end of ICU structure ==================================== --> 560 <!-- end of ICU structure ==================================== -->
557 561
558 <h2><a name="HowToBuild" href="#HowToBuild" id="HowToBuild">How To Build And 562 <h2><a name="HowToBuild" href="#HowToBuild" id="HowToBuild">How To Build And
559 Install ICU</a></h2> 563 Install ICU</a></h2>
560 564
561 <h3><a name="RecBuild" href="#RecBuild" id= 565 <h3><a name="RecBuild" href="#RecBuild" id=
562 "RecBuild">Recommended Build Options</a></h3> 566 "RecBuild">Recommended Build Options</a></h3>
563 567
564 <p>Depending on the platform and the type of installation, 568 <p>Depending on the platform and the type of installation,
565 we recommend a small number of modifications and build options.</p> 569 we recommend a small number of modifications and build options.
570 Note that C99 compatibility is now required.</p>
566 <ul> 571 <ul>
567 <li><b>Namespace:</b> By default, unicode/uversion.h has 572 <li><b>Namespace:</b> By default, unicode/uversion.h has
568 "using namespace icu;" which defeats much of the purpose of the namespac e. 573 "using namespace icu;" which defeats much of the purpose of the namespac e.
569 (This is for historical reasons: Originally, ICU4C did not use namespace s, 574 (This is for historical reasons: Originally, ICU4C did not use namespace s,
570 and some compilers did not support them. The default "using" statement 575 and some compilers did not support them. The default "using" statement
571 preserves source code compatibility.)<br /> 576 preserves source code compatibility.)<br />
572 We recommend you turn this off via <code>-DU_USING_ICU_NAMESPACE=0</code > 577 If this compatibility is not an issue, we recommend you turn this off
578 via <code>-DU_USING_ICU_NAMESPACE=0</code>
573 or by modifying unicode/uversion.h: 579 or by modifying unicode/uversion.h:
574 <pre>Index: source/common/unicode/uversion.h 580 <pre>Index: source/common/unicode/uversion.h
575 =================================================================== 581 ===================================================================
576 --- source/common/unicode/uversion.h (revision 26606) 582 --- source/common/unicode/uversion.h (revision 26606)
577 +++ source/common/unicode/uversion.h (working copy) 583 +++ source/common/unicode/uversion.h (working copy)
578 @@ -180,7 +180,8 @@ 584 @@ -180,7 +180,8 @@
579 # define U_NAMESPACE_QUALIFIER U_ICU_NAMESPACE:: 585 # define U_NAMESPACE_QUALIFIER U_ICU_NAMESPACE::
580 586
581 # ifndef U_USING_ICU_NAMESPACE 587 # ifndef U_USING_ICU_NAMESPACE
582 -# define U_USING_ICU_NAMESPACE 1 588 -# define U_USING_ICU_NAMESPACE 1
(...skipping 98 matching lines...) Expand 10 before | Expand all | Expand 10 after
681 Example configure command line:<br /> 687 Example configure command line:<br />
682 <code>runConfigureICU Linux --enable-static --disable-shared</code></li> 688 <code>runConfigureICU Linux --enable-static --disable-shared</code></li>
683 <li><b>Out-of-source build:</b> It is usually desirable to keep the ICU 689 <li><b>Out-of-source build:</b> It is usually desirable to keep the ICU
684 source file tree clean and have build output files written to 690 source file tree clean and have build output files written to
685 a different location. This is called an "out-of-source build". 691 a different location. This is called an "out-of-source build".
686 Simply invoke the configure script from the target location: 692 Simply invoke the configure script from the target location:
687 <pre>~/icu$ svn export http://source.icu-project.org/repos/icu/icu/trunk 693 <pre>~/icu$ svn export http://source.icu-project.org/repos/icu/icu/trunk
688 ~/icu$ mkdir trunk-dev 694 ~/icu$ mkdir trunk-dev
689 ~/icu$ cd trunk-dev 695 ~/icu$ cd trunk-dev
690 ~/icu/trunk-dev$ ../trunk/source/runConfigureICU Linux 696 ~/icu/trunk-dev$ ../trunk/source/runConfigureICU Linux
691 ~/icu/trunk-dev$ make check</pre></li> 697 ~/icu/trunk-dev$ make check</pre><br/>
698 (Note: this example shows a relative path to
699 <code>runConfigureICU</code>. If you experience difficulty,
700 try using an absolute path to <code>runConfigureICU</code>
701 instead.)
702 </li>
692 </ul> 703 </ul>
693 <h4>ICU as a System-Level Library</h4> 704 <h4>ICU as a System-Level Library</h4>
694 <p>If ICU is installed as a system-level library, there are further 705 <p>If ICU is installed as a system-level library, there are further
695 opportunities and restrictions to consider. 706 opportunities and restrictions to consider.
696 For details, see the <em>Using ICU as an Operating System Level Library</e m> 707 For details, see the <em>Using ICU as an Operating System Level Library</e m>
697 section of the <a href="http://userguide.icu-project.org/design">User Guid e ICU Architectural Design</a> chapter.</p> 708 section of the <a href="http://userguide.icu-project.org/design">User Guid e ICU Architectural Design</a> chapter.</p>
698 <ul> 709 <ul>
699 <li><b>Data path:</b> For a system-level library, it is best to load 710 <li><b>Data path:</b> For a system-level library, it is best to load
700 ICU data from the .dat package file because the file system path 711 ICU data from the .dat package file because the file system path
701 to the .dat package file can be hardcoded. ICU will automatically set 712 to the .dat package file can be hardcoded. ICU will automatically set
702 the path to the final install location using U_ICU_DATA_DEFAULT_DIR. 713 the path to the final install location using U_ICU_DATA_DEFAULT_DIR.
703 Alternatively, you can set <code>-DICU_DATA_DIR=/path/to/icu/data</code> 714 Alternatively, you can set <code>-DICU_DATA_DIR=/path/to/icu/data</code>
704 when building the ICU code. (Used by source/common/putil.c.)<br /> 715 when building the ICU code. (Used by source/common/putil.c.)<br/>
705 Consider also setting <code>-DICU_NO_USER_DATA_OVERRIDE</code> 716 Consider also setting <code>-DICU_NO_USER_DATA_OVERRIDE</code>
706 if you do not want the "ICU_DATA" environment variable to be used. 717 if you do not want the "ICU_DATA" environment variable to be used.
707 (An application can still override the data path via 718 (An application can still override the data path via
708 <code>u_setDataDirectory()</code> or 719 <code>u_setDataDirectory()</code> or
709 <code>udata_setCommonData()</code>.</li> 720 <code>udata_setCommonData()</code>.</li>
710 <li><b>Hide draft API:</b> API marked with <code>@draft</code> 721 <li><b>Hide draft API:</b> API marked with <code>@draft</code>
711 is new and not yet stable. Applications must not rely on unstable 722 is new and not yet stable. Applications must not rely on unstable
712 APIs from a system-level library. 723 APIs from a system-level library.
713 Define <code>U_HIDE_DRAFT_API</code>, <code>U_HIDE_INTERNAL_API</code> 724 Define <code>U_HIDE_DRAFT_API</code>, <code>U_HIDE_INTERNAL_API</code>
714 and <code>U_HIDE_SYSTEM_API</code> 725 and <code>U_HIDE_SYSTEM_API</code>
(...skipping 29 matching lines...) Expand all
744 an equivalent <code>-D</code> macro definition.</p> 755 an equivalent <code>-D</code> macro definition.</p>
745 756
746 <h3><a name="HowToBuildWindows" href="#HowToBuildWindows" id= 757 <h3><a name="HowToBuildWindows" href="#HowToBuildWindows" id=
747 "HowToBuildWindows">How To Build And Install On Windows</a></h3> 758 "HowToBuildWindows">How To Build And Install On Windows</a></h3>
748 759
749 <p>Building International Components for Unicode requires:</p> 760 <p>Building International Components for Unicode requires:</p>
750 761
751 <ul> 762 <ul>
752 <li>Microsoft Windows</li> 763 <li>Microsoft Windows</li>
753 764
754 <li>Microsoft Visual C++</li> 765 <li>Microsoft Visual C++ (see the ICU download page for the currently comp atible version)</li>
755
756 <li><a href="#HowToBuildCygwin">Cygwin</a> is required when other versions
757 of Microsoft Visual C++ and other compilers are used to build ICU.</li>
758 </ul> 766 </ul>
767 <p class="note"><a href="#HowToBuildCygwin">Cygwin</a> is required if us ing a version of MSVC other than the one
768 compatible with the supplied project files or if other compilers are use d to build ICU. (e.g. GCC)</p>
759 769
760 <p>The steps are:</p> 770 <p>The steps are:</p>
761 771
762 <ol> 772 <ol>
763 <li>Unzip the icu-XXXX.zip file into any convenient location. Using comman d 773 <li>Unzip the icu-XXXX.zip file into any convenient location. Using comman d
764 line zip, type "unzip -a icu-XXXX.zip -d drive:\directory", or just use 774 line zip, type "unzip -a icu-XXXX.zip -d drive:\directory", or just use
765 WinZip.</li> 775 WinZip.</li>
766 776
767 <li>Be sure that the ICU binary directory, <i>&lt;ICU&gt;</i>\bin\, is 777 <li>Be sure that the ICU binary directory, <i>&lt;ICU&gt;</i>\bin\, is
768 included in the <strong>PATH</strong> environment variable. The tests will 778 included in the <strong>PATH</strong> environment variable. The tests will
769 not work without the location of the ICU DLL files in the path.</li> 779 not work without the location of the ICU DLL files in the path.</li>
770 780
771 <li>Open the "<i>&lt;ICU&gt;</i>\source\allinone\allinone.sln" workspace 781 <li>Open the "<i>&lt;ICU&gt;</i>\source\allinone\allinone.sln" workspace
772 file in Microsoft Visual Studio. (This solution includes all the 782 file in Microsoft Visual Studio. (This solution includes all the
773 International Components for Unicode libraries, necessary ICU building 783 International Components for Unicode libraries, necessary ICU building
774 tools, and the test suite projects). Please see the <a href= 784 tools, and the test suite projects). Please see the <a href=
775 "#HowToBuildWindowsCommandLine">command line note below</a> if you want to 785 "#HowToBuildWindowsCommandLine">command line note below</a> if you want to
776 build from the command line instead.</li> 786 build from the command line instead.</li>
777 787
778 <li>Set the active platform to "Win32" or "x64" (See <a href="#HowToBuildW indowsPlatform">Windows platform note</a> below) 788 <li>Set the active platform to "Win32" or "x64" (See <a href="#HowToBuildW indowsPlatform">Windows platform note</a> below)
779 and configuration to "Debug" or "Release" (See <a href="#HowToBuildWindows Config">Windows configuration note</a> below).</li> 789 and configuration to "Debug" or "Release" (See <a href="#HowToBuildWindows Config">Windows configuration note</a> below).</li>
780 790
781 <li>Choose the "Build" menu and select "Rebuild Solution". If you want to 791 <li>Choose the "Build" menu and select "Rebuild Solution". If you want to
782 build the Debug and Release at the same time, see the <a href= 792 build the Debug and Release at the same time, see the <a href=
783 "#HowToBuildWindowsBatch">batch configuration note</a> below.</li> 793 "#HowToBuildWindowsBatch">batch configuration note</a> below.</li>
784 794
785 795
786 <li>Run the tests. They can be run from the command line or from within Vi sual Studio. 796 <li>Run the tests. They can be run from the command line or from within Vi sual Studio.
787 797
788 <h4>Running the Tests from the Windows Command Line (cmd)</h4> 798 <h4>Running the Tests from the Windows Command Line (cmd)</h4>
789 <ul> 799 <ul>
790 <li>For x86 (32 bit) and Debug, use: <br /> 800 <li>For x86 (32 bit) and Debug, use: <br />
791 801
792 <tt><i>&lt;ICU&gt;</i>\source\allinone\icucheck.bat <i>Platform</i> <i> Configuration</i> 802 <tt><i>&lt;ICU&gt;</i>\source\allinone\icucheck.bat <i>Platform</i> <i> Configuration</i>
793 </tt> <br /> 803 </tt> <br />
794 </li> 804 </li>
795 <li>So, for example: 805 <li>So, for example:
796 <br /> 806 <br />
797 » » <tt><i>&lt;ICU&gt;</i>\source\allinone\icucheck.bat <b>x86</b> <b>Debug</b> 807 » » <samp><i>&lt;ICU&gt;</i>\source\allinone\icucheck.bat <b>x86</b > <b>Debug</b></samp>
798 » » </tt> 808 » » » » or
799 » » » » <br/> or <br /> 809 » » <samp><i>&lt;ICU&gt;</i>\source\allinone\icucheck.bat <b>x86</b > <b>Release</b></samp>
800 » » <tt><i>&lt;ICU&gt;</i>\source\allinone\icucheck.bat <b>x86</b> <b>Release</b> 810 » » » » or
801 » » </tt> 811 » » <samp><i>&lt;ICU&gt;</i>\source\allinone\icucheck.bat <b>x64</b > <b>Release</b></samp></li>
802 » » » » <br/> or <br /> 812 » </ul>»
803 » » <tt><i>&lt;ICU&gt;</i>\source\allinone\icucheck.bat <b>x64</b> <b>Release</b>
804 » » </tt></li>
805 » </ul>
806 813
807 <h4>Running the Tests from within Visual Studio</h4> 814 <h4>Running the Tests from within Visual Studio</h4>
808 815
809 <ol> 816 <ol>
810 <li>Run the C++ test suite, "intltest". To do this: set the active startup 817 <li>Run the C++ test suite, "intltest". To do this: set the active startup
811 project to "intltest", and press Ctrl+F5 to run it. Make sure that it 818 project to "intltest", and press Ctrl+F5 to run it. Make sure that it
812 passes without any errors.</li> 819 passes without any errors.</li>
813 820
814 <li>Run the C test suite, "cintltst". To do this: set the active startup 821 <li>Run the C test suite, "cintltst". To do this: set the active startup
815 project to "cintltst", and press Ctrl+F5 to run it. Make sure that it 822 project to "cintltst", and press Ctrl+F5 to run it. Make sure that it
(...skipping 18 matching lines...) Expand all
834 841
835 <p><a name="HowToBuildWindowsCommandLine" id= 842 <p><a name="HowToBuildWindowsCommandLine" id=
836 "HowToBuildWindowsCommandLine"><strong>Using MSDEV At The Command Line 843 "HowToBuildWindowsCommandLine"><strong>Using MSDEV At The Command Line
837 Note:</strong></a> You can build ICU from the command line. Assuming that yo u 844 Note:</strong></a> You can build ICU from the command line. Assuming that yo u
838 have properly installed Microsoft Visual C++ to support command line 845 have properly installed Microsoft Visual C++ to support command line
839 execution, you can run the following command, 'devenv.com 846 execution, you can run the following command, 'devenv.com
840 <i>&lt;ICU&gt;</i>\source\allinone\allinone.sln /build "Win32|Release"'. You can also 847 <i>&lt;ICU&gt;</i>\source\allinone\allinone.sln /build "Win32|Release"'. You can also
841 use Cygwin with this compiler to build ICU, and you can refer to the <a href = 848 use Cygwin with this compiler to build ICU, and you can refer to the <a href =
842 "#HowToBuildCygwin">How To Build And Install On Windows with Cygwin</a> 849 "#HowToBuildCygwin">How To Build And Install On Windows with Cygwin</a>
843 section for more details.</p> 850 section for more details.</p>
844 851
845 <p><a name="HowToBuildWindowsPlatform" id= 852 <p><a name="HowToBuildWindowsPlatform" id=
846 "HowToBuildWindowsPlatform"><strong>Setting Active Platform 853 "HowToBuildWindowsPlatform"><strong>Setting Active Platform
847 Note:</strong></a> Even though you are able to select "x64" as the active pl atform, if your operating system is 854 Note:</strong></a> Even though you are able to select "x64" as the active pl atform, if your operating system is
848 not a 64 bit version of Windows, the build will fail. To set the active plat form, two different possibilities are:</p> 855 not a 64 bit version of Windows, the build will fail. To set the active plat form, two different possibilities are:</p>
849 856
850 <ul> 857 <ul>
851 <li>Choose "Build" menu, select "Configuration Manager...", and select 858 <li>Choose "Build" menu, select "Configuration Manager...", and select
852 "Win32" or "x64" for the Active Platform Solution.</li> 859 "Win32" or "x64" for the Active Platform Solution.</li>
853 860
854 <li>Another way is to select the desired build configuration from "Solutio n 861 <li>Another way is to select the desired build configuration from "Solutio n
855 Platforms" dropdown menu from the standard toolbar. It will say 862 Platforms" dropdown menu from the standard toolbar. It will say
856 "Win32" or "x64" in the dropdown list.</li> 863 "Win32" or "x64" in the dropdown list.</li>
857 </ul> 864 </ul>
858 865
859 <p><a name="HowToBuildWindowsConfig" id= 866 <p><a name="HowToBuildWindowsConfig" id=
860 "HowToBuildWindowsConfig"><strong>Setting Active Configuration 867 "HowToBuildWindowsConfig"><strong>Setting Active Configuration
861 Note:</strong></a> To set the active configuration, two different 868 Note:</strong></a> To set the active configuration, two different
862 possibilities are:</p> 869 possibilities are:</p>
863 870
864 <ul> 871 <ul>
865 <li>Choose "Build" menu, select "Configuration Manager...", and select 872 <li>Choose "Build" menu, select "Configuration Manager...", and select
866 "Release" or "Debug" for the Active Configuration Solution.</li> 873 "Release" or "Debug" for the Active Configuration Solution.</li>
867 874
868 <li>Another way is to select the desired build configuration from "Solutio n 875 <li>Another way is to select the desired build configuration from "Solutio n
869 Configurations" dropdown menu from the standard toolbar. It will say 876 Configurations" dropdown menu from the standard toolbar. It will say
870 "Release" or "Debug" in the dropdown list.</li> 877 "Release" or "Debug" in the dropdown list.</li>
871 </ul> 878 </ul>
872 879
873 <p><a name="HowToBuildWindowsBatch" id="HowToBuildWindowsBatch"><strong>Batc h 880 <p><a name="HowToBuildWindowsBatch" id="HowToBuildWindowsBatch"><strong>Batc h
874 Configuration Note:</strong></a> If you want to build the Win32 and x64 plat forms and 881 Configuration Note:</strong></a> If you want to build the Win32 and x64 plat forms and
875 Debug and Release configurations at the same time, choose "Build" menu, and select "Batch 882 Debug and Release configurations at the same time, choose "Build" menu, and select "Batch
876 Build...". Click the "Select All" button, and then click the "Rebuild" 883 Build...". Click the "Select All" button, and then click the "Rebuild"
877 button.</p> 884 button.</p>
878 885
879 <h3><a name="HowToBuildCygwin" href="#HowToBuildCygwin" id= 886 <h3><a name="HowToBuildCygwin" href="#HowToBuildCygwin" id=
880 "HowToBuildCygwin">How To Build And Install On Windows with Cygwin</a></h3> 887 "HowToBuildCygwin">How To Build And Install On Windows with Cygwin</a></h3>
881 888
882 <p>Building International Components for Unicode with this configuration 889 <p>Building International Components for Unicode with this configuration
883 requires:</p> 890 requires:</p>
884 891
885 <ul> 892 <ul>
886 <li>Microsoft Windows</li> 893 <li>Microsoft Windows</li>
887 894
888 <li>Microsoft Visual C++ (when gcc isn't used).</li> 895 <li>Microsoft Visual C++ (when gcc isn't used).</li>
889 896
890 <li> 897 <li>
891 Cygwin with the following installed: 898 Cygwin with the following installed:
892 899
893 <ul> 900 <ul>
894 <li>bash</li> 901 <li>bash</li>
895 902
896 <li>GNU make</li> 903 <li>GNU make</li>
897 904
898 <li>ar</li> 905 <li>ar</li>
899 906
900 <li>ranlib</li> 907 <li>ranlib</li>
901 908
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
946 <li>Type <tt>"make install"</tt> to install ICU. If you used the --prefix= 953 <li>Type <tt>"make install"</tt> to install ICU. If you used the --prefix=
947 option on configure or runConfigureICU, ICU will be installed to the 954 option on configure or runConfigureICU, ICU will be installed to the
948 directory you specified. (See <a href="#HowToInstallICU">installation 955 directory you specified. (See <a href="#HowToInstallICU">installation
949 note</a> below).</li> 956 note</a> below).</li>
950 </ol> 957 </ol>
951 958
952 <p><a name="HowToWindowsConfigureICU" id= 959 <p><a name="HowToWindowsConfigureICU" id=
953 "HowToWindowsConfigureICU"><strong>Configuring ICU on Windows 960 "HowToWindowsConfigureICU"><strong>Configuring ICU on Windows
954 NOTE:</strong></a> </p> 961 NOTE:</strong></a> </p>
955 <p> 962 <p>
956 Ensure that the order of the PATH is MSVC, Cygwin, and then other PATHs. The configure 963 Ensure that the order of the PATH is MSVC, Cygwin, and then other PATHs. The configure
957 script needs certain tools in Cygwin (e.g. grep). 964 script needs certain tools in Cygwin (e.g. grep).
958 </p> 965 </p>
959 <p> 966 <p>
960 Also, you may need to run <tt>"dos2unix.exe"</tt> on all of the scripts (e.g . configure) 967 Also, you may need to run <tt>"dos2unix.exe"</tt> on all of the scripts (e.g . configure)
961 in the top source directory of ICU. To avoid this issue, you can download 968 in the top source directory of ICU. To avoid this issue, you can download
962 the ICU source for Unix platforms (icu-xxx.tgz). 969 the ICU source for Unix platforms (icu-xxx.tgz).
963 </p> 970 </p>
964 <p>In addition to the Unix <a href= 971 <p>In addition to the Unix <a href=
965 "#HowToConfigureICU">configuration note</a> the following configure options 972 "#HowToConfigureICU">configuration note</a> the following configure options
966 currently do not work on Windows with Microsoft's compiler. Some options can 973 currently do not work on Windows with Microsoft's compiler. Some options can
(...skipping 29 matching lines...) Expand all
996 <li>A recent version of GNU make (3.80+).</li> 1003 <li>A recent version of GNU make (3.80+).</li>
997 1004
998 <li>For a list of z/OS tools please view the <a href="#HowToBuildZOS">z/OS 1005 <li>For a list of z/OS tools please view the <a href="#HowToBuildZOS">z/OS
999 build section</a> of this document for further details.</li> 1006 build section</a> of this document for further details.</li>
1000 </ul> 1007 </ul>
1001 1008
1002 <p>Here are the steps to build ICU:</p> 1009 <p>Here are the steps to build ICU:</p>
1003 1010
1004 <ol> 1011 <ol>
1005 <li>Decompress the icu-<i>X</i>.<i>Y</i>.tgz (or 1012 <li>Decompress the icu-<i>X</i>.<i>Y</i>.tgz (or
1006 icu-<i>X</i>.<i>Y</i>.tar.gz) file. For example, <tt>"gunzip -d &lt; 1013 icu-<i>X</i>.<i>Y</i>.tar.gz) file. For example, <samp>gunzip -d &lt; icu- <i>X</i>.<i>Y</i>.tgz | tar xvf -</samp></li>
1007 icu-<i>X</i>.<i>Y</i>.tgz | tar xvf -"</tt></li>
1008 1014
1009 <li>Change directory to the "icu/source".</li> 1015 <li>Change directory to <code>icu/source</code>.
1016 <samp>cd icu/source</samp>
1017 </li>
1010 1018
1011 <li>Run <span style='font-family: monospace;'>"chmod +x runConfigureICU co nfigure install-sh"</span> because 1019 <li>Some files may have the wrong permissions.<samp>chmod +x runConfigureI CU configure install-sh</samp></li>
1012 these files may have the wrong permissions.</li>
1013 1020
1014 <li>Run the <span style='font-family: monospace;'><a href="source/runConfi gureICU">runConfigureICU</a></span> 1021 <li>Run the <span style='font-family: monospace;'><a href="source/runConfi gureICU">runConfigureICU</a></span>
1015 script for your platform. (See <a href="#HowToConfigureICU">configuration 1022 script for your platform. (See <a href="#HowToConfigureICU">configuration
1016 note</a> below).</li> 1023 note</a> below).</li>
1017 1024
1018 <li>Type <span style='font-family: monospace;'>"gmake"</span> (or "make" i f GNU make is the default make on 1025 <li>Now build: <samp>gmake</samp> (or just <code>make</code> if GNU make i s the default make on
1019 your platform) to compile the libraries and all the data files. The proper 1026 your platform) to compile the libraries and all the data files. The proper
1020 name of the GNU make command is printed at the end of the configuration 1027 name of the GNU make command is printed at the end of the configuration
1021 run, as in "You must use gmake to compile ICU". 1028 run, as in <tt>"You must use gmake to compile ICU"</tt>.
1022 <br/> 1029 <br/>
1023 Note that the compilation command output may be simplified on your platfor m. If this is the case, you will see just: 1030 Note that the compilation command output may be simplified on your platfor m. If this is the case, you will see just:
1024 <blockquote><p style='background-color: #ddd; font-family: monospace; font -size: small'>gcc ... stubdata.c</p></blockquote> 1031 <tt>gcc ... stubdata.c</tt>
1025 rather than 1032 rather than
1026 <blockquote><p style='background-color: #ddd; font-family: monospace; font -size: small'>gcc -DU_NO_DEFAULT_INCLUDE_UTF_HEADERS=1 -D_REENTRANT -I../common -DU_ATTRIBUTE_DEPRECATED= -O2 -Wall -std=c99 -pedantic -Wshadow -Wpointer-arith -Wmissing-prototypes -Wwrite-strings -c -DPIC -fPIC -o stubdata.o stubdata.c</p ></blockquote> 1033 <tt>gcc -DU_NO_DEFAULT_INCLUDE_UTF_HEADERS=1 -D_REENTRANT -I../common -DU _ATTRIBUTE_DEPRECATED= -O2 -Wall -std=c99 -pedantic -Wshadow -Wpointer-arith -Wm issing-prototypes -Wwrite-strings -c -DPIC -fPIC -o stubdata.o stubdata.c</tt>
1027 .<br/> 1034 <br/>
1028 If you need to see the whole compilation line, use <span style='font-fami ly: monospace;'>"gmake VERBOSE=1"</span>. The full compilation line will print i f an error occurs. 1035 If you need to see the whole compilation line, use <span style='font-fami ly: monospace;'>"gmake VERBOSE=1"</span>. The full compilation line will print i f an error occurs.
1029 </li> 1036 </li>
1030 1037
1031 <li>Optionally, type <span style='font-family: monospace;'>"gmake check"</ span> to run the test suite, which 1038 <li>Optionally,<samp>gmake check</samp> will run the test suite, which
1032 checks for ICU's functionality integrity (See <a href= 1039 checks for ICU's functionality integrity (See <a href=
1033 "#HowToTestWithoutGmake">testing note</a> below).</li> 1040 "#HowToTestWithoutGmake">testing note</a> below).</li>
1034 1041
1035 <li>Type <span style='font-family: monospace;'>"gmake install"</span> to i nstall ICU. If you used the --prefix= 1042 <li>To install, <samp>gmake install</samp> to install ICU. If you used the --prefix=
1036 option on configure or runConfigureICU, ICU will be installed to the 1043 option on configure or runConfigureICU, ICU will be installed to the
1037 directory you specified. (See <a href="#HowToInstallICU">installation 1044 directory you specified. (See <a href="#HowToInstallICU">installation
1038 note</a> below).</li> 1045 note</a> below).</li>
1039 </ol> 1046 </ol>
1040 1047
1041 <p><a name="HowToConfigureICU" id="HowToConfigureICU"><strong>Configuring IC U 1048 <p><a name="HowToConfigureICU" id="HowToConfigureICU"><strong>Configuring IC U
1042 NOTE:</strong></a> Type <tt>"./runConfigureICU --help"</tt> for help on how 1049 NOTE:</strong></a> Type <tt>"./runConfigureICU --help"</tt> for help on how
1043 to run it and a list of supported platforms. You may also want to type 1050 to run it and a list of supported platforms. You may also want to type
1044 <tt>"./configure --help"</tt> to print the available configure options that 1051 <tt>"./configure --help"</tt> to print the available configure options that
1045 you may want to give runConfigureICU. If you are not using the 1052 you may want to give runConfigureICU. If you are not using the
1046 runConfigureICU script, or your platform is not supported by the script, you 1053 runConfigureICU script, or your platform is not supported by the script, you
1047 may need to set your CC, CXX, CFLAGS and CXXFLAGS environment variables, and 1054 may need to set your CC, CXX, CFLAGS and CXXFLAGS environment variables, and
1048 type <tt>"./configure"</tt>. 1055 type <tt>"./configure"</tt>.
1049 HP-UX users, please see this <a href="#ImportantNotesHPUX">note regarding 1056 HP-UX users, please see this <a href="#ImportantNotesHPUX">note regarding
1050 HP-UX multithreaded build issues</a> with newer compilers. Solaris users, 1057 HP-UX multithreaded build issues</a> with newer compilers. Solaris users,
1051 please see this <a href="#ImportantNotesSolaris">note regarding Solaris 1058 please see this <a href="#ImportantNotesSolaris">note regarding Solaris
1052 multithreaded build issues</a>.</p> 1059 multithreaded build issues</a>.</p>
1053 1060
1054 <p>ICU is built with strict compiler warnings enabled by default. If this 1061 <p>ICU is built with strict compiler warnings enabled by default. If this
1055 causes excessive numbers of warnings on your platform, use the --disable-str ict 1062 causes excessive numbers of warnings on your platform, use the --disable-str ict
1056 option to configure to reduce the warning level.</p> 1063 option to configure to reduce the warning level.</p>
1057 1064
1058 <p><a name="HowToTestWithoutGmake" id="HowToTestWithoutGmake"><strong>Runnin g 1065 <p><a name="HowToTestWithoutGmake" id="HowToTestWithoutGmake"><strong>Runnin g
(...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after
1134 1141
1135 <li>The latest versions of z/OS use <a 1142 <li>The latest versions of z/OS use <a
1136 href="http://www.ibm.com/support/docview.wss?uid=swg2120240">XPLINK 1143 href="http://www.ibm.com/support/docview.wss?uid=swg2120240">XPLINK
1137 version (C128) of the C++ standard library</a> by default. You may see <a 1144 version (C128) of the C++ standard library</a> by default. You may see <a
1138 href="http://www.ibm.com/support/docview.wss?uid=swg21376279">an 1145 href="http://www.ibm.com/support/docview.wss?uid=swg21376279">an
1139 error</a> when running with XPLINK disabled. To avoid this error, 1146 error</a> when running with XPLINK disabled. To avoid this error,
1140 set the following environment variable or similar: 1147 set the following environment variable or similar:
1141 1148
1142 <pre><samp>export _CXX_PSYSIX="CEE.SCEELIB(C128N)":"CBC.SCLBSID(IOSTREAM,COMPLEX )"</samp></pre> 1149 <pre><samp>export _CXX_PSYSIX="CEE.SCEELIB(C128N)":"CBC.SCLBSID(IOSTREAM,COMPLEX )"</samp></pre>
1143 </li> 1150 </li>
1151
1152 <li>When building ICU data, the heap size may need to be increased with th e following
1153 environment variable:
1144 1154
1155 <pre><samp>export _CEE_RUNOPTS="HEAPPOOLS(ON),HEAP(4M,1M,ANY,FREE,0K,4080)"</sam p></pre>
1156 </li>
1157
1145 1158
1146 <li>The rest of the instructions for building and testing ICU on z/OS with 1159 <li>The rest of the instructions for building and testing ICU on z/OS with
1147 UNIX System Services are the same as the <a href="#HowToBuildUNIX">How To 1160 UNIX System Services are the same as the <a href="#HowToBuildUNIX">How To
1148 Build And Install On UNIX</a> section.</li> 1161 Build And Install On UNIX</a> section.</li>
1149 </ul> 1162 </ul>
1150 1163
1151 <h4>z/OS (Batch/PDS) support outside the UNIX system services 1164 <h4>z/OS (Batch/PDS) support outside the UNIX system services
1152 environment</h4> 1165 environment</h4>
1153 1166
1154 <p>By default, ICU builds its libraries into the UNIX file system (HFS). In 1167 <p>By default, ICU builds its libraries into the UNIX file system (HFS). In
(...skipping 109 matching lines...) Expand 10 before | Expand all | Expand 10 after
1264 <samp>CRTLIB LIB(<i>libraryname</i>) 1277 <samp>CRTLIB LIB(<i>libraryname</i>)
1265 ADDENVVAR ENVVAR(OUTPUTDIR) VALUE('<i>libraryname</i>') REPLACE(*YES) </samp>< /pre> 1278 ADDENVVAR ENVVAR(OUTPUTDIR) VALUE('<i>libraryname</i>') REPLACE(*YES) </samp>< /pre>
1266 </li> 1279 </li>
1267 1280
1268 <li> 1281 <li>
1269 Set up the following environment variables and job characteristics in your build process 1282 Set up the following environment variables and job characteristics in your build process
1270 <pre> 1283 <pre>
1271 <samp>ADDENVVAR ENVVAR(MAKE) VALUE('gmake') REPLACE(*YES) 1284 <samp>ADDENVVAR ENVVAR(MAKE) VALUE('gmake') REPLACE(*YES)
1272 CHGJOB CCSID(37)</samp></pre></li> 1285 CHGJOB CCSID(37)</samp></pre></li>
1273 1286
1274 <li>Fire up the QSH (all subsequent commands are run inside the qsh sessio n.)</i> 1287 <li>Fire up the QSH <i>(all subsequent commands are run inside the qsh ses sion.)</i>
1275 <pre><samp>qsh</samp></pre> 1288 <pre><samp>qsh</samp></pre>
1276 </li> 1289 </li>
1277 1290
1278 <li>Set up the PATH: <pre><samp>export PATH=/QIBM/ProdData/DeveloperTools/ qsh/bin:$PATH:/QOpenSys/usr/bin</samp></pre> 1291 <li>Set up the PATH: <pre><samp>export PATH=/QIBM/ProdData/DeveloperTools/ qsh/bin:$PATH:/QOpenSys/usr/bin</samp></pre>
1279 </li> 1292 </li>
1280 1293
1281 <li>Unpack the ICU source code archive: 1294 <li>Unpack the ICU source code archive:
1282 <pre><samp>gzip -d icu-<i>X</i>.<i>Y</i>.tgz</samp></pre> 1295 <pre><samp>gzip -d icu-<i>X</i>.<i>Y</i>.tgz</samp></pre>
1283 </li> 1296 </li>
1284 1297
1285 <li>Run unpax-icu.sh on the tar file generated from the previous step. 1298 <li>Run unpax-icu.sh on the tar file generated from the previous step.
1286 <pre><samp>unpax-icu.sh icu.tar</samp></pre></li> 1299 <pre><samp>unpax-icu.sh icu.tar</samp></pre></li>
1287 1300
1288 <li>Build the program ICULD which ICU will use for linkage. 1301 <li>Build the program ICULD which ICU will use for linkage.
1289 <pre><samp>cd icu/as_is/os400 1302 <pre><samp>cd icu/as_is/os400
1290 qsh bldiculd.sh 1303 qsh bldiculd.sh
1291 cd ../../..</pre></samp> 1304 cd ../../..</samp></pre>
1292 </li> 1305 </li>
1293 1306
1294 <li>Change into the 'source' directory, and configure ICU. (See <a href=" #HowToConfigureICU">configuration 1307 <li>Change into the 'source' directory, and configure ICU. (See <a href=" #HowToConfigureICU">configuration
1295 note</a> for details). Note that --with-data-packaging=archive and setting the --prefix are recommended, building in default (dll) mode is currently not s upported. 1308 note</a> for details). Note that --with-data-packaging=archive and setting the --prefix are recommended, building in default (dll) mode is currently not s upported.
1296 <pre><samp>cd icu/source 1309 <pre><samp>cd icu/source
1297 ./runConfigureICU IBMi --prefix=<i>/path/to/somewhere</i> --with-data-packaging= archive</samp></pre> 1310 ./runConfigureICU IBMi --prefix=<i>/path/to/somewhere</i> --with-data-packaging= archive</samp></pre>
1298 </li> 1311 </li>
1299 1312
1300 <li>Build ICU. <i>(Note: Do not use the -j option)</i> <pre><samp>gmake</s amp></pre></li> 1313 <li>Build ICU. <i>(Note: Do not use the -j option)</i> <pre><samp>gmake</s amp></pre></li>
1301 1314
1302 <li>Test ICU. <pre><samp>gmake check</samp></pre> 1315 <li>Test ICU. <pre><samp>gmake check</samp></pre>
1303 <smaller>(The <tt> QIBM_MULTI_THREADED=Y</tt> flag will be automatically applied to intltest - 1316 (The <tt> QIBM_MULTI_THREADED=Y</tt> flag will be automatically applied to intltest -
1304 you can look at the <a href= 1317 you can look at the <a href=
1305 "http://publib.boulder.ibm.com/infocenter/iseries/v5r3/index.jsp?topic=/ap is/concept4.htm"> 1318 "http://publib.boulder.ibm.com/infocenter/iseries/v5r3/index.jsp?topic=/ap is/concept4.htm">
1306 iSeries Information Center</a> for more details regarding the running of m ultiple threads 1319 iSeries Information Center</a> for more details regarding the running of m ultiple threads
1307 on IBM i.)</smaller></li> 1320 on IBM i.)</li>
1308 </ol> 1321 </ol>
1309 1322
1310 <!-- cross --> 1323 <!-- cross -->
1311 <h3><a name="HowToCrossCompileICU" href="#HowToCrossCompileICU" id="HowToCro ssCompileICU">How To Cross Compile ICU</a></h3> 1324 <h3><a name="HowToCrossCompileICU" href="#HowToCrossCompileICU" id="HowToCro ssCompileICU">How To Cross Compile ICU</a></h3>
1312 <p>This section will explain how to build ICU on one platform, b ut to produce binaries intended to run on another. This is commonly known as a c ross compile.</p> 1325 <p>This section will explain how to build ICU on one platform, b ut to produce binaries intended to run on another. This is commonly known as a c ross compile.</p>
1313 <p>Normally, in the course of a build, ICU needs to run the tool s that it builds in order to generate and package data and test-data.In a cross compilation setting, ICU is built on a different system from that which it event ually runs on. An example might be, if you are building for a small/headless sys tem (such as an embedded device), or a system where you can't easily run the ICU command line tools (any non-UNIX-like system).</p> 1326 <p>Normally, in the course of a build, ICU needs to run the tool s that it builds in order to generate and package data and test-data.In a cross compilation setting, ICU is built on a different system from that which it event ually runs on. An example might be, if you are building for a small/headless sys tem (such as an embedded device), or a system where you can't easily run the ICU command line tools (any non-UNIX-like system).</p>
1314 <p>To reduce confusion, we will here refer to the "A" and the "B " system.System "A" is the actual system we will be running on- the only require ments on it is are it is able to build ICU from the command line targetting itse lf (with configure or runConfigureICU), and secondly, that it also contain the c orrect toolchain for compiling and linking for the resultant platform, referred to as the "B" system.</p> 1327 <p>To reduce confusion, we will here refer to the "A" and the "B " system.System "A" is the actual system we will be running on- the only require ments on it is are it is able to build ICU from the command line targetting itse lf (with configure or runConfigureICU), and secondly, that it also contain the c orrect toolchain for compiling and linking for the resultant platform, referred to as the "B" system.</p>
1315 <p>The autoconf docs use the term "build" for A, and "host" for B. More details at: <a href="http://www.gnu.org/software/autoconf/manual/html_no de/Specifying-Names.html#Specifying-Names">http://www.gnu.org/software/autoconf/ manual/html_node/Specifying-Names.html</a></p> 1328 <p>The autoconf docs use the term "build" for A, and "host" for B. More details at: <a href="http://www.gnu.org/software/autoconf/manual/html_no de/Specifying-Names.html#Specifying-Names">http://www.gnu.org/software/autoconf/ manual/html_node/Specifying-Names.html</a></p>
1316 <p>Three initially-empty directories will be used in this exampl e:</p> 1329 <p>Three initially-empty directories will be used in this exampl e:</p>
1317 <table summary="Three directories used in this example" class="d ocTable"> 1330 <table summary="Three directories used in this example" class="d ocTable">
1318 <tr> 1331 <tr>
1319 <th align="left">/icu</th><td>a copy of the ICU source</td> 1332 <th align="left">/icu</th><td>a copy of the ICU source</td>
1320 </tr> 1333 </tr>
1321 <tr> 1334 <tr>
1322 <th align="left">/buildA</th><td>an empty direct ory, it will contain ICU built for A<br />(MacOSX in this case)</td> 1335 <th align="left">/buildA</th><td>an empty direct ory, it will contain ICU built for A<br />(MacOSX in this case)</td>
1323 </tr> 1336 </tr>
1324 <tr> 1337 <tr>
1325 <th align="left">/buildB</th><td>an empty direct ory, it will contain ICU built for B<br />(HaikuOS in this case)</td> 1338 <th align="left">/buildB</th><td>an empty direct ory, it will contain ICU built for B<br />(HaikuOS in this case)</td>
1326 </tr> 1339 </tr>
1327 </table> 1340 </table>
1328 1341 » »
1329 <ol> 1342 <ol>
1330 <li>Check out or unpack the ICU source code into the /icu direct ory.You will have the directories /icu/source, etc.</li> 1343 <li>Check out or unpack the ICU source code into the /icu direct ory.You will have the directories /icu/source, etc.</li>
1331 <li>Build ICU in /buildA normally (using runConfigureICU or conf igure): 1344 <li>Build ICU in /buildA normally (using runConfigureICU or conf igure):
1332 <pre class="samp">cd /buildA 1345 <pre class="samp">cd /buildA
1333 sh /icu/source/runConfigureICU <strong>MacOSX</strong> 1346 sh /icu/source/runConfigureICU <strong>MacOSX</strong>
1334 gnumake 1347 gnumake
1335 </pre> 1348 </pre>
1336 </li> 1349 </li>
1337 <li>Set PATH or other variables as needed, such as CPPFLAGS.</li > 1350 <li>Set PATH or other variables as needed, such as CPPFLAGS.</li >
1338 <li>Build ICU in /buildB<br /> 1351 <li>Build ICU in /buildB<br />
1339 » » » <div class="note"><b>Note:</b> "<code>--with-cross-build </code>" takes an absolute path.</div> 1352 » » » <p class="note">"<code>--with-cross-build</code>" takes an absolute path.</p>
1340 <pre class="samp">cd /buildB 1353 <pre class="samp">cd /buildB
1341 sh /icu/source/configure --host=<strong>i586-pc-haiku</strong> --with-cross-buil d=<strong>/buildA</strong> 1354 sh /icu/source/configure --host=<strong>i586-pc-haiku</strong> --with-cross-buil d=<strong>/buildA</strong>
1342 gnumake</pre> 1355 gnumake</pre>
1343 </li> 1356 </li>
1344 <li>Tests and testdata can be built with "gnumake tests".</li> 1357 <li>Tests and testdata can be built with "gnumake tests".</li>
1345 </ol> 1358 </ol>
1346 <!-- end cross --> 1359 <!-- end cross -->
1347 1360
1348 <!-- end build environment --> 1361 <!-- end build environment -->
1349 1362
(...skipping 363 matching lines...) Expand 10 before | Expand all | Expand 10 after
1713 <p>The platform dependencies have been mostly isolated into the following 1726 <p>The platform dependencies have been mostly isolated into the following
1714 files in the common library. This information can be useful if you are 1727 files in the common library. This information can be useful if you are
1715 porting ICU to a new platform.</p> 1728 porting ICU to a new platform.</p>
1716 1729
1717 <ul> 1730 <ul>
1718 <li> 1731 <li>
1719 <strong>unicode/platform.h.in</strong> (autoconf'ed platforms)<br /> 1732 <strong>unicode/platform.h.in</strong> (autoconf'ed platforms)<br />
1720 <strong>unicode/p<i>XXXX</i>.h</strong> (others: pwin32.h, ppalmos.h, 1733 <strong>unicode/p<i>XXXX</i>.h</strong> (others: pwin32.h, ppalmos.h,
1721 ..): Platform-dependent typedefs and defines:<br /> 1734 ..): Platform-dependent typedefs and defines:<br />
1722 <br /> 1735 <br />
1723 1736
1724 1737
1725 <ul> 1738 <ul>
1726 <li>Generic types like UBool, int8_t, int16_t, int32_t, int64_t, 1739 <li>Generic types like UBool, int8_t, int16_t, int32_t, int64_t,
1727 uint64_t etc.</li> 1740 uint64_t etc.</li>
1728 1741
1729 <li>U_EXPORT and U_IMPORT for specifying dynamic library import and 1742 <li>U_EXPORT and U_IMPORT for specifying dynamic library import and
1730 export</li> 1743 export</li>
1731 1744
1732 <li>String handling support for the char16_t and wchar_t types.</li> 1745 <li>String handling support for the char16_t and wchar_t types.</li>
1733 </ul> 1746 </ul>
1734 <br /> 1747 <br />
1735 </li> 1748 </li>
1736 1749
1737 <li> 1750 <li>
1738 <strong>unicode/putil.h, putil.c</strong>: platform-dependent 1751 <strong>unicode/putil.h, putil.c</strong>: platform-dependent
1739 implementations of various functions that are platform dependent:<br /> 1752 implementations of various functions that are platform dependent:<br />
1740 <br /> 1753 <br />
1741 1754
1742 1755
1743 <ul> 1756 <ul>
1744 <li>uprv_isNaN, uprv_isInfinite, uprv_getNaN and uprv_getInfinity for 1757 <li>uprv_isNaN, uprv_isInfinite, uprv_getNaN and uprv_getInfinity for
1745 handling special floating point values.</li> 1758 handling special floating point values.</li>
1746 1759
1747 <li>uprv_tzset, uprv_timezone, uprv_tzname and time for getting 1760 <li>uprv_tzset, uprv_timezone, uprv_tzname and time for getting
1748 platform specific time and time zone information.</li> 1761 platform specific time and time zone information.</li>
1749 1762
1750 <li>u_getDataDirectory for getting the default data directory.</li> 1763 <li>u_getDataDirectory for getting the default data directory.</li>
1751 1764
(...skipping 21 matching lines...) Expand all
1773 from files makes use of these functions.<br /> 1786 from files makes use of these functions.<br />
1774 <br /> 1787 <br />
1775 </li> 1788 </li>
1776 1789
1777 <li>Using platform specific #ifdef macros are highly discouraged outside o f 1790 <li>Using platform specific #ifdef macros are highly discouraged outside o f
1778 the scope of these files. When the source code gets updated in the future, 1791 the scope of these files. When the source code gets updated in the future,
1779 these #ifdef's can cause testing problems for your platform.</li> 1792 these #ifdef's can cause testing problems for your platform.</li>
1780 </ul> 1793 </ul>
1781 <hr /> 1794 <hr />
1782 1795
1783 <p>Copyright &copy; 1997-2013 International Business Machines Corporation an d 1796 <p>Copyright &copy; 1997-2014 International Business Machines Corporation an d
1784 others. All Rights Reserved.<br /> 1797 others. All Rights Reserved.<br />
1785 IBM Globalization Center of Competency - San Jos&eacute;<br /> 1798 IBM Globalization Center of Competency - San Jos&eacute;<br />
1786 4400 North First Street<br /> 1799 4400 North First Street<br />
1787 San Jos&eacute;, CA 95134<br /> 1800 San Jos&eacute;, CA 95134<br />
1788 USA</p> 1801 USA</p>
1789 </body> 1802 </body>
1790 </html> 1803 </html>
OLDNEW
« no previous file with comments | « license.html ('k') | source/Doxyfile.in » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698