From d05651964000ac429268b1979e32ddf54dd698f9 Mon Sep 17 00:00:00 2001
From: Andy Heninger Version: 2001-Aug-02
- Copyright © 1995-2001 International Business Machines Corporation
- and others. All Rights Reserved.
It is possible to support additional locales by adding more locale - data files, with no code changes. Please refer to POSIX programmer's - Guide for details on what the ISO locale ID means.
+Support additional locales by simply adding locale data + files, with no code changes required.
This document will go into more detail on how to build and install ICU - on your machine. Once you start using ICU, the Where To Find More Information section of this - document will be very helpful resource.
+ on your machine. Once you start using ICU, the + Where To Find More Information section of this document will be very + helpful resource. +Your comments are important to making this release successful. We are - committed to fixing any bugs, and will also use your feedback to help - plan future releases.
+ committed to fixing any bugs, and will also use your feedback to help plan + future releases. -IMPORTANT: Please make sure you understand the Copyright and License Information.
+IMPORTANT: Please make sure you understand the Copyright and License Information.
The ICU 2.0 data has been upgraded to support Unicode 3.1. This means - that the character property data and normalization has changed. Recent - versions of ICU already supported Unicode 3.0 data with UTF-16 surrogate - pairs.
+ICU 2.0 has been upgraded to support Unicode 3.1, which + includes the addition of 44,946 new encoded characters. + These characters cover several historic scripts, several sets of symbols, + and a very large collection of additional CJK ideographs. For more + information on Unicode 3.1, see + http://www.unicode.org.
The transliterator service has undergone an extensive overhaul, in - both the rule-based engine and the built-in system rules.
+The transliterator service has undergone an extensive overhaul, in both + the rule-based engine and the built-in system rules.
use variable range 0xE800 0xEFFF;
(Any
- two code points may be specified.) The code points are specified as
- decimal constants, octal constants with a leading '0', or hexadecimal
- constants with a leading "0x". The given range is used internally for
- stand-in characters during processing. The default range is
- 0xF000..0xF8FF. If a rule set explicitly uses characters in the
- default variable range, a new range, not containing any characters in
- use in the rule set, must be specified. Note: This is the
- first of several planned pragmas.use variable range 0xE800 0xEFFF;
(Any two code
+ points may be specified.) The code points are specified as decimal
+ constants, octal constants with a leading '0', or hexadecimal constants
+ with a leading "0x". The given range is used internally for stand-in
+ characters during processing. The default range is 0xF000..0xF8FF.
+ If a rule set explicitly uses characters in the default variable range, a
+ new range, not containing any characters in use in the rule set, must be
+ specified. Note: This is the first of several planned
+ pragmas.The ICU projects (ICU4C and ICU4J) have changed their licenses from - the IPL (IBM Public License) to the X license. The X license is a - non-viral and recommended free software license that is compatible with - the GNU GPL license. This is effective starting with release 1.8.1 of - ICU4C and release 1.3.1 of ICU4J. All previous ICU releases will continue - to utilize the IPL. New ICU releases will adopt the X license. The users - of previous releases of ICU will need to accept the terms and conditions - of the X license in order to adopt the new ICU releases.
+The ICU projects (ICU4C and ICU4J) have changed their licenses from the + IPL (IBM Public License) to the X license. The X license is a non-viral and + recommended free software license that is compatible with the GNU GPL + license. This is effective starting with release 1.8.1 of ICU4C and release + 1.3.1 of ICU4J. All previous ICU releases will continue to utilize the IPL. + New ICU releases will adopt the X license. The users of previous releases + of ICU will need to accept the terms and conditions of the X license in + order to adopt the new ICU releases.
The main effect of the change is to provide GPL compatibility. The X license is listed as GPL compatible, see the gnu page at http://www.gnu.org/philosophy/license-list.html#GPLCompatibleLicenses.
+ "http://www.gnu.org/philosophy/license-list.html#GPLCompatibleLicenses"> + http://www.gnu.org/philosophy/license-list.html#GPLCompatibleLicenses.The text of the X license is available at http://www.x.org/terms.htm. The IBM - version contains the essential text of the license, omitting the - X-specific trademarks and copyright notices.
+ version contains the essential text of the license, omitting the X-specific + trademarks and copyright notices.For more details please see the press announcement and - the Project + "http://oss.software.ibm.com/icu/press.html">press announcement and the + Project FAQ.
-There are two ways to download the ICU releases,
@@ -394,64 +396,62 @@For more details on how to download ICU directly from the web site, - please also see http:/oss.software.ibm.com/icu/download/
+ please also see + http:/oss.software.ibm.com/icu/download/ -Below, $Root is the placement of the icu directory in - your file system, like "drive:\...\icu" in your environment. "drive:\..." - stands for any drive and any directory on that drive that you chose to - install icu into.
+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.
readme.html | -Describes the International Components for Unicode (this - file) | +Describes the International Components for Unicode (this file) | |
$Root/source/common/ | +<ICU>/source/common/ | The core Unicode and support functionality, such as resource bundles, character properties, locales, codepage conversion, @@ -507,58 +506,55 @@ | |
$Root/source/i18n/ | +<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 + | 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. |
$Root/source/test/intltest/ | +<ICU>/source/test/intltest/ | -A test suite including all C++ APIs. For information about - running the test suite, see the users' guide. | +A test suite including all C++ APIs. For information about running + the test suite, see the users' guide. |
$Root/source/test/cintltst/ | +<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. | |
$Root/data/ | +<ICU>/data/ |
This directory contains the source data in text format, which is
compiled into binary form during the ICU build process. The output
- from these files is stored in $Root/source/data/build while
- awaiting further packaging.
+ from these files is stored in <ICU>/source/data/build while awaiting
+ further packaging.
|
|
$Root/source/data | +<ICU>/source/data | This directory is where the final, packaged version of the ICU - binary data ends up. If the ICU_DATA environment variable is used, - then it should be set to this directory. The intermediate individual - data files (.res, .cnv) are kept in the subdirectory - "$Root/source/data/build" prior to packaging. | + binary data ends up. The intermediate individual data + files (.res, .cnv) are kept in the subdirectory + "<ICU>/source/data/build" prior to packaging.|
$Root/source/tools | +<ICU>/source/tools | Tools for generating the data files. Data files are generated by - invoking $Root/source/data/build/makedata.bat on Win32 or - $Root/source/make on Unix. | + invoking <ICU>/source/data/build/makedata.bat on Win32 or + <ICU>/source/make on Unix.|
$Root/source/samples | +<ICU>/source/samples | Various sample programs that use ICU | |
$Root/source/extra | +<ICU>/source/extra | Non-supported API additions. Currently, it contains the 'ustdio' file i/o library | |
$Root/source/layout | +<ICU>/source/layout | Contains the ICU layout engine (not a rasterizer). | |
$Root/packaging - $Root/debian |
+ <ICU>/packaging + <ICU>/debian |
- These directories contain scripts and tools for packaging the - final ICU build for various release platforms. | +These directories contain scripts and tools for packaging the final + ICU build for various release platforms. |
$Root/source/config | +<ICU>/source/config | Contains helper makefiles for platform specific build commands. Used by 'configure'. | |
$Root/source/allinone | +<ICU>/source/allinone | -Contains top-level ICU project files, for instance to build all - of ICU under one MSVC project. | +Contains top-level ICU project files, for instance to build all of + ICU under one MSVC project. |
It is possible to build each library individually. They must be built
- in the following order:
+
It is possible to build each library individually. They must be built in
+ the following order:
Building International Components for Unicode requires:
The steps are:
Setting Active Configuration Note: To set the active configuration, two different @@ -1028,24 +1000,24 @@
Batch Configuration Note: If you want to build the Debug and Release configurations at the same time, choose "Build" menu and select "Batch - Build..." instead (and mark all configurations as checked), then click - the button named "Rebuild All". The "all" workspace will build all the - test programs as well as the tools for generating binary locale data - files. The "makedata" project will be run automatically to convert the - locale data files from text format into icudata.dll.
+ Build..." instead (and mark all configurations as checked), then click the + button named "Rebuild All". The "all" workspace will build all the test + programs as well as the tools for generating binary locale data files. The + "makedata" project will be run automatically to convert the locale data + files from text format into icudata.dll.A UNIX C++ compiler, (gcc, cc, xlc_r, etc...) installed on the target machine. A recent version of GNU make (3.7+). For a list of OS/390 tools - please view the OS/390 build section of - this document for further details.
+ please view the OS/390 build section of this + document for further details.The steps are:
Some platforms use package management tools to control the - installation and uninstallation of files on the system, as well as the - integrity of the system configuration. You may want to check if ICU can - be packaged for your package management tools by looking into the - "packaging" directory. (Please note that if you are using a snapshot of - ICU from CVS, it is probable that the packaging scripts or related files - are not up to date with the contents of ICU at this time, so use them - with caution.)
+Some platforms use package management tools to control the installation + and uninstallation of files on the system, as well as the integrity of the + system configuration. You may want to check if ICU can be packaged for your + package management tools by looking into the "packaging" directory. (Please + note that if you are using a snapshot of ICU from CVS, it is probable that + the packaging scripts or related files are not up to date with the contents + of ICU at this time, so use them with caution.)
Examples for configuring ICU:
Debug build: IEEE390=1 ./configure
@@ -1183,20 +1138,19 @@
By default, ICU builds its libraries into the HFS. However, there is a 390-specific switch to build some libraries into PDS files. The switch is - the environmental variable OS390BATCH, and if set, the following - libraries are built into PDS files: libicuucXX.dll, - libicudtXXe.dll, libicudtXXe_390.dll, and libtestdata.dll. - Turning on OS390BATCH does not turn off the normal HFS build, thus the - HFS dlls will always be created.
+ the environmental variable OS390BATCH, and if set, the following libraries + are built into PDS files: libicuucXX.dll, libicudtXXe.dll, + libicudtXXe_390.dll, and libtestdata.dll. Turning on OS390BATCH does + not turn off the normal HFS build, thus the HFS dlls will always be + created.The names of the PDS files are determined by the value of the environmental variables LOADMOD and LOADEXP. These variables must contain the target PDS names whenever the OS390BATCH variable is set. LOADMOD is - the library (.dll) target dataset and LOADEXP is the side deck (.x) - target dataset.
+ the library (.dll) target dataset and LOADEXP is the side deck (.x) target + dataset.The PDS member names are as follows:
@@ -1260,13 +1214,13 @@ Data set name type : PDSOS/400 (iSeries) Platform
ICU Reference Release 1.8.1 contains partial support for the 400 - platform, but additional work by the user is currently needed to get it - to build properly. A future release of ICU should work out-of-the-box - under OS/400.
+ platform, but additional work by the user is currently needed to get it to + build properly. A future release of ICU should work out-of-the-box under + OS/400.
CRTLIB LIB(libraryname)@@ -1302,7 +1256,7 @@ Data set name type : PDS
ADDENVVAR ENVVAR(ICU_DATA) VALUE('/icu/source/data') ADDENVVAR ENVVAR(CC) VALUE('/usr/bin/icc') @@ -1319,10 +1273,10 @@ ADDENVVAR ENVVAR(OUTPUTDIR) VALUE('libraryname') the resolution of CRTCPPMOD used by the icc compiler
DSPSYSVAL SYSVAL(QUTCOFFSET)@@ -1342,15 +1296,14 @@ ADDENVVAR ENVVAR(OUTPUTDIR) VALUE('libraryname')
As delivered, the International Components for Unicode build as - several DLLs. These DLLs are placed in the "icu\bin" directory. You must - add this directory to the PATH environment variable in your system, or - any executables you build will not be able to access International - Components for Unicode libraries. Alternatively, you can copy the DLL - files into a directory already in your PATH, but we do not recommend - this. You can wind up with multiple copies of the DLL and wind up using - the wrong one.
+As delivered, the International Components for Unicode build as several + DLLs which are placed in the "<ICU>\bin" directory. You must add this + directory to the PATH environment variable in your system, or any + executables you build will not be able to access International Components + for Unicode libraries. Alternatively, you can copy the DLL files into a + directory already in your PATH, but we do not recommend this. You can wind + up with multiple copies of the DLL and wind up using the wrong one.
Note: when packaging a Windows application for distribution and + installation on user systems, copies of the ICU dlls should + be included with the application, and installed for exclusive use + by the application. This is the only way to insure that your app + is running with the same version of ICU, built with exactly the same + options, that you developed and tested with. Refer to Microsoft's + guidelines on the usage of dlls, or search for the phrase "dll hell" + on msdn.microsoft.com.
+All the DLLs link with the C runtime library "Debug Multithreaded DLL"
or "Multithreaded DLL." (This is changed through the Project Settings
- dialog, on the C/C++ tab, under Code Generation.) It is important that
- any executable or other DLL you build which uses the International
- Components for Unicode DLLs links with these runtime libraries as well.
- If you do not do this, you will get random memory errors when you run the
- executable.
+ dialog, on the C/C++ tab, under Code Generation.) It is important that any
+ executable or other DLL you build which uses the International Components
+ for Unicode DLLs links with these runtime libraries as well. If you do not
+ do this, you will get random memory errors when you run the executable.
If you are building on a Unix platform, it is important that you add - the location of your ICU libraries (including the data library) to your +
If you are building on a Unix platform, it is important that you add the + location of your ICU libraries (including the data library) to your LD_LIBRARY_PATH environment variable. The ICU libraries may not link or load properly without doing this.
@@ -1472,15 +1431,13 @@ int main(){Deprecated C++ APIs cannot be enbaled without recompiling ICU - libraries. Every service has a specific symbol that should be defined to - enable the deprecated API of that service. For example: To enable - deprecated APIs in Transliteration service - U_USE_DEPRECATED_TRANSLITERATOR_API symbol should be defined before - compiling ICU.
+Deprecated C++ APIs cannot be enbaled without recompiling ICU libraries. + Every service has a specific symbol that should be defined to enable the + deprecated API of that service. For example: To enable deprecated APIs in + Transliteration service U_USE_DEPRECATED_TRANSLITERATOR_API symbol should + be defined before compiling ICU.
-