From e0be81621d5f47da28083883ac31bfb9ddf8358f Mon Sep 17 00:00:00 2001 From: George Rhoten Date: Tue, 17 Jan 2006 20:55:20 +0000 Subject: [PATCH] ICU-3085 Change ICU to use the /Zc:wchar_t option. X-SVN-Rev: 18991 --- icu4c/readme.html | 3062 ++++++++++++++++++++++----------------------- 1 file changed, 1513 insertions(+), 1549 deletions(-) diff --git a/icu4c/readme.html b/icu4c/readme.html index 633d119f5a4..ab6bab1a49c 100644 --- a/icu4c/readme.html +++ b/icu4c/readme.html @@ -1,16 +1,16 @@ - - ReadMe for ICU - - - - - - + - -

International Components for Unicode
- ICU 3.4 - ReadMe

+ +

International Components for Unicode
+ ICU 3.4 ReadMe

-

Version: 2005-September-15
- Copyright © 1997-2005 International Business Machines Corporation and - others. All Rights Reserved.

- -
+

Version: 2006-January-17
+ Copyright © 1997-2006 International Business Machines Corporation and + others. All Rights Reserved.

+ +
-

Table of Contents

+

Table of Contents

- +
-

Introduction

+

Introduction

-

Today's software market is a global one in which it is desirable to - develop and maintain one application (single source/single binary) that - supports a wide variety of languages. The International Components for - Unicode (ICU) libraries provide robust and full-featured Unicode services - on a wide variety of platforms to help this design goal. The ICU libraries - provide support for:

+

Today's software market is a global one in which it is desirable to + develop and maintain one application (single source/single binary) that + supports a wide variety of languages. The International Components for + Unicode (ICU) libraries provide robust and full-featured Unicode services on + a wide variety of platforms to help this design goal. The ICU libraries + provide support for:

- -

ICU has a sister project ICU4J that extends the internationalization - capabilities of Java to a level similar to ICU. The ICU C/C++ project is - also called ICU4C when a distinction is necessary.

+

ICU has a sister project ICU4J that extends the internationalization + capabilities of Java to a level similar to ICU. The ICU C/C++ project is also + called ICU4C when a distinction is necessary.

-

Getting started

+

Getting started

-

This document describes how to build and install ICU on your machine. - For other information about ICU please see the following table of - links.
- The ICU homepage also links to related information about writing - internationalized software.

+

This document describes how to build and install ICU on your machine. For + other information about ICU please see the following table of links.
+ The ICU homepage also links to related information about writing + internationalized software.

- - +
- Here are some useful links regarding ICU and internationalization in - general. -
+ - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + + + + + + + - - + + - - + + - - + + - - + + +
+ Here are some useful links regarding ICU and internationalization in + general. +
ICU, ICU4C, ICU4J & ICU4JNI Official Homepage
ICU, ICU4C, ICU4J & ICU4JNI Official Homepagehttp://www.ibm.com/software/globalization/icu/index.jsp
http://www.ibm.com/software/globalization/icu/index.jsp
ICU, ICU4C, ICU4J & ICU4JNI Unofficial Homepage
ICU, ICU4C, ICU4J & ICU4JNI Unofficial Homepagehttp://icu.sourceforge.net/
http://icu.sourceforge.net/
FAQ - Frequently Asked Questions about ICU
FAQ - Frequently Asked Questions about ICUhttp://icu.sourceforge.net/userguide/icufaq.html
http://icu.sourceforge.net/userguide/icufaq.html
ICU User's Guide
ICU User's Guidehttp://icu.sourceforge.net/userguide/
http://icu.sourceforge.net/userguide/
Download ICU Releases
Download ICU Releaseshttp://www.ibm.com/software/globalization/icu/downloads.jsp
http://www.ibm.com/software/globalization/icu/downloads.jsp
API Documentation Onlinehttp://icu.sourceforge.net/apiref/index.html
API Documentation Online
Online ICU Demoshttp://icu.sourceforge.net/apiref/index.html
http://www.ibm.com/software/globalization/icu/chartsdemostools.jsp
Online ICU Demos
Contacts and Bug Reports/Feature Requestshttp://www.ibm.com/software/globalization/icu/chartsdemostools.jsp
http://icu.sourceforge.net/contacts.html
- - Contacts and Bug Reports/Feature Requests +

Important: Please make sure you understand the Copyright and License Information.

- http://icu.sourceforge.net/contacts.html - - +

What is new in this + release?

-

Important: Please make sure you understand the Copyright and License Information.

+

The following list concentrates on changes that affect existing + applications migrating from previous ICU releases. For more news about + this release, see the ICU 3.4 + download page.

-

What is new in this - release?

+

Changes to wchar_t type for the + Microsoft Visual Studio builds

-

The following list concentrates on changes that affect existing - applications migrating from previous ICU releases. For more news about - this release, see the ICU 3.4 - download page.

- -

Changes to thread safety - initialization and data loading

- -

Previously, in order to ensure that ICU was thread safe, applications - had to use u_init() before using ICU in multiple threads. This requirement - is no longer needed. Please refer to the readme section called Using ICU in a Multithreaded - Environment for details.

- -

Source download contains .dat package for - ICU data

- -

The ICU4C 3.4 source downloads contain a pre-built .dat package with - ICU's data rather than the data source files. This is to simplify the build - process for the majority of users and to reduce platform porting issues. If - you need the data source files for customization, then please download the - ICU source code from CVS.

- -

How To Download the - Source Code

- -

There are two ways to download ICU releases:

- - - -

ICU Source Code - Organization

- -

In the descriptions below, <ICU> is the - full path name of the ICU directory (the top level directory from the - distribution archives) in your file system. You can also view the ICU Architectural - Design section of the User's Guide to see which libraries you need for - your software product. You need at least the data ([lib]icudt) - and the common ([lib]icuuc) libraries in order to use ICU.

- - - - - - - - - - - - - - - - - - - - - -
- The following files describe the code drop. -
FileDescription
readme.htmlDescribes the International Components for Unicode (this file)
license.htmlContains the text of the ICU license
- -


-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- The following directories contain source code and data files. -
DirectoryDescription
<ICU>/source/common/The core Unicode and support functionality, such as resource - bundles, character properties, locales, codepage conversion, - normalization, Unicode properties, Locale, and UnicodeString.
<ICU>/source/i18n/Modules in i18n are generally the more data-driven, that is to say - resource bundle driven, components. These deal with higher-level - internationalization issues such as formatting, collation, text break - analysis, and transliteration.
<ICU>/source/data/ -

This directory contains the source data in text format, which is - compiled into binary form during the ICU build process. It contains - several subdirectories, in which the data files are grouped by - function. Note that the build process must be run again after any - changes are made to this directory.

- -
    -
  • brkitr/ Data files for character, word, sentence, title - casing and line boundary analysis.
  • - -
  • locales/ These .txt files contain ICU language and - culture-specific localization data. Two special bundles are - root, which is the fallback data and parent of other - bundles, and index, which contains a list of installed - bundles. The makefile resfiles.mk contains the list of - resource bundle files.
  • - -
  • mappings/ Here are the code page converter tables. These - .ucm files contain mappings to and from Unicode. These are compiled - into .cnv files. convrtrs.txt is the alias mapping table - from various converter name formats to ICU internal format and vice - versa. It produces cnvalias.icu. The makefiles ucmfiles.mk, - ucmcore.mk, and ucmebcdic.mk contain the list of - converters to be built.
  • - -
  • translit/ This directory contains transliterator rules - as resource bundles, a makefile trnsfiles.mk containing the - list of installed system translitaration files, and as well the - special bundle translit_index which lists the system - transliterator aliases.
  • - -
  • unidata/ This directory contains the Unicode data files. - Please see http://www.unicode.org/ for more - information.
  • - -
  • misc/ The misc directory contains other data files which - did not fit into the above categories. Currently it only contains - time zone information, and a name preperation file for IDNA.
  • - -
  • out/ This directory contains the assembled memory mapped - files.
  • - -
  • out/build/ This directory contains intermediate - (compiled) files, such as .cnv, .res, etc.
  • -
- -

If you are creating a special ICU build, you can set the ICU_DATA - environment variable to the out/ or the out/build/ directories, but - this is generally discouraged because most people set it incorrectly. - You can view the ICU Data - Management section of the ICU User's Guide for details.

-
<ICU>/source/test/intltest/A test suite including all C++ APIs. For information about running - the test suite, see the users' guide.
<ICU>/source/test/cintltst/A test suite written in C, including all C APIs. For information - about running the test suite, see the users' guide.
<ICU>/source/test/testdata/Source text files for data, which are read by the tests. It - contains the subdirectories out/build/ which is used for - intermediate files, and out/ which contains - testdata.dat.
<ICU>/source/tools/Tools for generating the data files. Data files are generated by - invoking <ICU>/source/data/build/makedata.bat on Win32 or - <ICU>/source/make on UNIX.
<ICU>/source/samples/Various sample programs that use ICU
<ICU>/source/extra/Non-supported API additions. Currently, it contains the 'ustdio' - file i/o library
<ICU>/source/layout/Contains the ICU layout engine (not a rasterizer).
<ICU>/packaging/
- <ICU>/debian/
These directories contain scripts and tools for packaging the final - ICU build for various release platforms.
<ICU>/source/config/Contains helper makefiles for platform specific build commands. - Used by 'configure'.
<ICU>/source/allinone/Contains top-level ICU workspace and project files, for instance to - build all of ICU under one MSVC project.
<ICU>/include/Contains the headers needed for developing software that uses ICU - on Windows.
<ICU>/lib/Contains the import libraries for linking ICU into your Windows - application.
<ICU>/bin/Contains the libraries and executables for using ICU on - Windows.
- - -

How To Build - And Install ICU

- -

Supported Platforms

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- Here is a status of functionality of ICU on several different - platforms. -
Operating systemCompilerTesting frequency
Windows XPMicrosoft Visual C++ .NET 2003 (7.1)Reference platform
Red Hat Enterprise Linux 3 Update 4gcc 3.2.3Reference platform
AIX 5.2Visual Age C++ 6.0Reference platform
Solaris 9 (SunOS 5.9)Sun Studio 8 (Sun C++ 5.5)Reference platform
HP-UX 11.11aCC A.03.50
- cc B.11.11.08
Reference platform
Red Hat Linux 7.2gcc 2.96Regularly tested
Red Hat Linux 9.0gcc 3.2.2Regularly tested
Windows 2000/XP with CygwinMicrosoft Visual C++ 6.0Regularly tested
Windows XP with CygwinMicrosoft Visual C++ .NET 2002 (7.0)Regularly tested
Mac OS X (10.4)gcc 4.0.1Regularly tested
Solaris 7 (SunOS 5.7)Workshop Pro (Forte) CC 6.0Regularly tested
Solaris 2.6 (SunOS 5.6)gcc 2.95.2Regularly tested
AIX 5.1.0 LVisual Age C++ 5.0Regularly tested
i5/OS (OS/400 iSeries) V5R3iCCRegularly tested
z/OS 1.4cxx 1.4Rarely tested
SUSE Linux Enterprise Server 9 SP1Intel C++ Compiler 8.1Rarely tested
SUSE Linux Enterprise Server 9 (PowerPC)Visual Age 7.0Rarely tested
Windows 98Microsoft Visual C++ 6.0Rarely tested
Cygwingcc 2.95.3Rarely tested
MinGWgccRarely tested
NetBSD, OpenBSD, FreeBSDgccRarely tested
QNXgccRarely tested
BeOSgccRarely tested
SGI/IRIXMIPSpro CCRarely tested
Tru64 (OSF)Compaq's cxx compilerRarely tested
MP-RASNCR MP-RAS C/C++ CompilerRarely tested
- -


-

- -

Key to testing frequency

- -
-
Reference platform
- -
ICU will work on these platforms with these compilers
- -
Regularly tested
- -
ICU should work on these platforms with these compilers
- -
Rarely tested
- -
ICU has been ported to these platforms but may not have been tested - there recently
-
- -

How To Build And Install On Windows

- -

Building International Components for Unicode requires:

- - - -

The steps are:

- -
    -
  1. Unzip the icu-XXXX.zip file into any convenient location. Using - command line zip, type "unzip -a icu-XXXX.zip -d drive:\directory", or - just use WinZip.
  2. - -
  3. Be sure that the ICU binary directory, <ICU>\bin\, is - included in the PATH environment variable. The tests - will not work without the location of the ICU DLL files in the path.
  4. - -
  5. Open the "<ICU>\source\allinone\allinone.sln" workspace - file in Microsoft Visual Studio .NET 2003. (This solution includes all - the International Components for Unicode libraries, necessary ICU - building tools, and the test suite projects). Please see the command line note below if you want - to build from the command line instead.
  6. - -
  7. Set the active configuration to "Debug" or "Release" (See Windows configuration note below).
  8. - -
  9. Choose the "Build" menu and select "Rebuild Solution". If you want to - build the Debug and Release at the same time, see the batch configuration note below.
  10. - -
  11. Run the C++ test suite, "intltest". To do this: set the active - startup project to "intltest", and press Ctrl+F5 to run it. Make sure - that it passes without any errors.
  12. - -
  13. Run the C test suite, "cintltst". To do this: set the active startup - project to "cintltst", and press Ctrl+F5 to run it. Make sure that it - passes without any errors.
  14. - -
  15. Run the I/O test suite, "iotest". To do this: set the active startup - project to "iotest", and press Ctrl+F5 to run it. Make sure that it - passes without any errors.
  16. - -
  17. You are now able to develop applications with ICU by using the - libraries and tools in <ICU>\bin\. The headers are in - <ICU>\include\ and the link libraries are in - <ICU>\lib\. To install the ICU runtime on a machine, or ship - it with your application, copy the needed components from - <ICU>\bin\ to a location on the system PATH or to your - application directory.
  18. -
- -

Using MSDEV At The Command Line - Note: You can build ICU from the command line. Assuming that - you have properly installed Microsoft Visual C++ to support command line - execution, you can run the following command, 'devenv.com - <ICU>\source\allinone\allinone.sln /build Release'. You can - also use Cygwin with this compiler to build ICU, and you can refer to the - How To Build And Install On Windows with - Cygwin section for more details.

- -

Setting Active Configuration - Note: To set the active configuration, two different - possibilities are:

- - - -

Batch Configuration Note: If - you want to build the Debug and Release configurations at the same time, - choose "Build" menu, and select "Batch Build...". Click the "Select All" - button, and then click the "Rebuild" button.

- -

How To Build And Install On Windows with Cygwin

- -

Building International Components for Unicode with this configuration - requires:

- -