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