12e5b6d6dSopenharmony_ciCopyright (C) 2016 and later: Unicode, Inc. and others.
22e5b6d6dSopenharmony_ciLicense & terms of use: http://www.unicode.org/copyright.html
32e5b6d6dSopenharmony_ciCopyright (C) 2000-2003, International Business Machines
42e5b6d6dSopenharmony_ciCorporation and others.  All Rights Reserved.
52e5b6d6dSopenharmony_ciICU is packaged into a number of small, interdependent packages. This
62e5b6d6dSopenharmony_cifile describes what these packages are, what their name should be
72e5b6d6dSopenharmony_cilike, and what their contents are. It is useful as a reference and a
82e5b6d6dSopenharmony_ciguide when packaging ICU on a new system.
92e5b6d6dSopenharmony_ci
102e5b6d6dSopenharmony_ci+ List of ICU packages.
112e5b6d6dSopenharmony_ci
122e5b6d6dSopenharmony_ciICU is distributed as the following packages:
132e5b6d6dSopenharmony_ci
142e5b6d6dSopenharmony_ci- ICU libraries. This package contains the runtime libraries needed by
152e5b6d6dSopenharmony_ciapplications that use ICU. All the other packages require this package
162e5b6d6dSopenharmony_cito be installed.
172e5b6d6dSopenharmony_ci- ICU. This package contains the converters data, the timezones data,
182e5b6d6dSopenharmony_ciand all the ICU tools.
192e5b6d6dSopenharmony_ci- ICU locales. This package adds locales and break data.
202e5b6d6dSopenharmony_ci- ICU development. This package contains the files necessary to build
212e5b6d6dSopenharmony_ciapplications that use ICU, i.e. header files, links to shared
222e5b6d6dSopenharmony_cilibraries used by the linker, static libraries, etc... It also
232e5b6d6dSopenharmony_cicontains sample applications and documentation.
242e5b6d6dSopenharmony_ci- ICU docs. This package contains further documentation for ICU,
252e5b6d6dSopenharmony_ciincluding a complete API reference.
262e5b6d6dSopenharmony_ci- ICU data. This package contains the source for the compiled data
272e5b6d6dSopenharmony_cicontained by the ICU package.
282e5b6d6dSopenharmony_ci- ICU international data. This package contains the source for the
292e5b6d6dSopenharmony_cicompiled data contained by the ICU locales package.
302e5b6d6dSopenharmony_ci
312e5b6d6dSopenharmony_ciIn this file, we will refer to Autoconf variables as in $(bindir). In
322e5b6d6dSopenharmony_ciaddition to these, we will use the following variables to denote
332e5b6d6dSopenharmony_ciICU-specific directories or information:
342e5b6d6dSopenharmony_ci
352e5b6d6dSopenharmony_ci  VERSION       ICU's dotted version number, e.g. 1.6.0.1 as of this
362e5b6d6dSopenharmony_ci		writing.
372e5b6d6dSopenharmony_ci
382e5b6d6dSopenharmony_ci  ICUDATADIR	The directory where portable ICU data are. This is
392e5b6d6dSopenharmony_ci	        defined as $(datadir)/icu/$(VERSION).
402e5b6d6dSopenharmony_ci  ICULIBDIR	The directory where platform-specific ICU data
412e5b6d6dSopenharmony_ci		are. This is defined as $(libdir)/icu/$(VERSION).
422e5b6d6dSopenharmony_ci  ICUSYSCONFDIR	The directory where ICU configuration files are. This
432e5b6d6dSopenharmony_ci		is defined as $(sysconfdir)/icu.
442e5b6d6dSopenharmony_ci
452e5b6d6dSopenharmony_ciWhen referring to libraries, .so will be used to denote the extension
462e5b6d6dSopenharmony_ciof a shared library, and .a to denote the extension of a static
472e5b6d6dSopenharmony_cilibrary. These extensions will actually be different on some platforms.
482e5b6d6dSopenharmony_ci
492e5b6d6dSopenharmony_ci+ Configuration and compilation of ICU
502e5b6d6dSopenharmony_ci
512e5b6d6dSopenharmony_ciICU should be configured with the following options:
522e5b6d6dSopenharmony_ci
532e5b6d6dSopenharmony_ci  --with-data-packaging=files
542e5b6d6dSopenharmony_ci  --disable-rpath
552e5b6d6dSopenharmony_ci  --enable-shared
562e5b6d6dSopenharmony_ci  --enable-static
572e5b6d6dSopenharmony_ci  --without-samples
582e5b6d6dSopenharmony_ci
592e5b6d6dSopenharmony_ciin addition to platform-specific settings (like a specific mandir or
602e5b6d6dSopenharmony_cisysconfdir). Note that the use of --disable-rpath assumes that the
612e5b6d6dSopenharmony_cipackaging is made for a standard location, or that the package
622e5b6d6dSopenharmony_ciinstallation/deinstallation will correctly manage the configuration
632e5b6d6dSopenharmony_ciof the system's dynamic loader. This is the right way of doing things.
642e5b6d6dSopenharmony_ci
652e5b6d6dSopenharmony_ciThe configure script invocation should also be done with
662e5b6d6dSopenharmony_ci
672e5b6d6dSopenharmony_ci  CFLAGS="-O2"
682e5b6d6dSopenharmony_ci
692e5b6d6dSopenharmony_ciset, as in:
702e5b6d6dSopenharmony_ci
712e5b6d6dSopenharmony_ci  $ CFLAGS="-O2" ./configure ...
722e5b6d6dSopenharmony_ci
732e5b6d6dSopenharmony_ciThe files packaging mode is chosen because it offers the maximum
742e5b6d6dSopenharmony_ciflexibility. Packages can be split easily, and system administrators
752e5b6d6dSopenharmony_cican add converters, aliases, and other resources with little
762e5b6d6dSopenharmony_cieffort. Ideally, the ICU build will be modified to allow for distributing a
772e5b6d6dSopenharmony_cilibicudata.so with all the converters and locales, but indexes and aliases
782e5b6d6dSopenharmony_cias separate files. But for now, this is the easiest way to get started.
792e5b6d6dSopenharmony_ci
802e5b6d6dSopenharmony_ci+ The ICU libraries package
812e5b6d6dSopenharmony_ci
822e5b6d6dSopenharmony_ciThe ICU libraries package is typically named `libicuXX' where XX is
832e5b6d6dSopenharmony_cithe major number of ICU's libraries. This number is ICU's version
842e5b6d6dSopenharmony_cinumber multiplied by 10 and rounded down to the nearest integer (it is
852e5b6d6dSopenharmony_cialso the value of the LIB_VERSION_MAJOR configure substitution
862e5b6d6dSopenharmony_civariable). For example, for ICU 1.6.0.1, it is 16, so the package name
872e5b6d6dSopenharmony_ciis `libicu16'. The major version is part of the package name to allow
882e5b6d6dSopenharmony_cifor the simultaneous installation of different ICU releases.
892e5b6d6dSopenharmony_ci
902e5b6d6dSopenharmony_ciThis package contains:
912e5b6d6dSopenharmony_ci
922e5b6d6dSopenharmony_ci- All the shared libraries, and their major number symbolic link, but
932e5b6d6dSopenharmony_cinot the .so symbolic link that is only used at link time (this one is
942e5b6d6dSopenharmony_cipart of the development package). These are $(libdir)/libicu*.so.* and
952e5b6d6dSopenharmony_ci$(libdir)/libustdio.so.* at the time of this writing.
962e5b6d6dSopenharmony_ci
972e5b6d6dSopenharmony_ci+ The ICU package
982e5b6d6dSopenharmony_ci
992e5b6d6dSopenharmony_ciThe ICU package is simply named `icu'.  It provides data used by the ICU
1002e5b6d6dSopenharmony_cilibraries package and commands to create and manipulate that data.
1012e5b6d6dSopenharmony_ci
1022e5b6d6dSopenharmony_ciThis package contains:
1032e5b6d6dSopenharmony_ci
1042e5b6d6dSopenharmony_ci- The Unicode data files (uprops.dat and unames.dat as of this writing).
1052e5b6d6dSopenharmony_ci- The time zones data files (tz.dat).
1062e5b6d6dSopenharmony_ci- All the binary data files for converters (.cnv files).
1072e5b6d6dSopenharmony_ci- All the ICU commands.
1082e5b6d6dSopenharmony_ci- The manual pages for ICU commands and file formats.
1092e5b6d6dSopenharmony_ci
1102e5b6d6dSopenharmony_ci+ The ICU locales package
1112e5b6d6dSopenharmony_ci
1122e5b6d6dSopenharmony_ciThe ICU locales package is named `icu-locales'. It provides data used by
1132e5b6d6dSopenharmony_ciinternationalization support in ICU.
1142e5b6d6dSopenharmony_ci
1152e5b6d6dSopenharmony_ciThis package contains:
1162e5b6d6dSopenharmony_ci
1172e5b6d6dSopenharmony_ci- All the data for locales in ICU (.dat files).
1182e5b6d6dSopenharmony_ci- All the break data for specific locales (.brk files).
1192e5b6d6dSopenharmony_ci
1202e5b6d6dSopenharmony_ci+ The ICU development package
1212e5b6d6dSopenharmony_ci
1222e5b6d6dSopenharmony_ciThe ICU development package is named `libicu-dev'. It provides all
1232e5b6d6dSopenharmony_cithe files necessary to write applications that use ICU, along with
1242e5b6d6dSopenharmony_ciexamples and some documentation.
1252e5b6d6dSopenharmony_ci
1262e5b6d6dSopenharmony_ciThis package contains:
1272e5b6d6dSopenharmony_ci
1282e5b6d6dSopenharmony_ci- The /usr/include/unicode directory which contains all the ICU
1292e5b6d6dSopenharmony_ciheaders.
1302e5b6d6dSopenharmony_ci- The .so symbolic links used by the linker to link against the
1312e5b6d6dSopenharmony_cilatest version of the libraries.
1322e5b6d6dSopenharmony_ci- A sample Makefile fragment that can be included by applications
1332e5b6d6dSopenharmony_ciusing ICU, to facilitate their building, along with a platform-specific
1342e5b6d6dSopenharmony_ciconfiguration file included by this fragment.
1352e5b6d6dSopenharmony_ci- The sample applications from the ICU source tree, in an appropriate
1362e5b6d6dSopenharmony_cilocation for the system that the package is installed on (for example,
1372e5b6d6dSopenharmony_cion Debian, in /usr/share/doc/libicu-dev/examples).
1382e5b6d6dSopenharmony_ci
1392e5b6d6dSopenharmony_ciThis package depends on the ICU libraries package with the exact same
1402e5b6d6dSopenharmony_civersion, since it provides .so symbolic links to the latest libraries.
1412e5b6d6dSopenharmony_ci
1422e5b6d6dSopenharmony_ci+ The ICU docs package
1432e5b6d6dSopenharmony_ci
1442e5b6d6dSopenharmony_ciThe ICU docs package is named `libicu-doc'. It contains the files
1452e5b6d6dSopenharmony_cigenerated by doxygen when the `make doc' command is executed, in a
1462e5b6d6dSopenharmony_cilocation appropriate for the system that the package is installed on.
1472e5b6d6dSopenharmony_ci
1482e5b6d6dSopenharmony_ci+ The ICU data package
1492e5b6d6dSopenharmony_ci
1502e5b6d6dSopenharmony_ciThe ICU data package is named `icu-data'. It contains source files for
1512e5b6d6dSopenharmony_cithe data found in the ICU package. These files are installed in
1522e5b6d6dSopenharmony_ci$(ICUDATADIR).
1532e5b6d6dSopenharmony_ci
1542e5b6d6dSopenharmony_ci+ The ICU international data package
1552e5b6d6dSopenharmony_ci
1562e5b6d6dSopenharmony_ciThe ICU data package is named `icu-i18ndata'. It contains source files for
1572e5b6d6dSopenharmony_cithe dat founf in the ICU locales package. These files are installed in
1582e5b6d6dSopenharmony_ci$(ICUDATADIR).
1592e5b6d6dSopenharmony_ci
1602e5b6d6dSopenharmony_ci----
1612e5b6d6dSopenharmony_ciYves Arrouye <yves@realnames.com>
162