| Copyright (C) 2000-2003, International Business Machines |
| Corporation and others. All Rights Reserved. |
| ICU is packaged into a number of small, interdependent packages. This |
| file describes what these packages are, what their name should be |
| like, and what their contents are. It is useful as a reference and a |
| guide when packaging ICU on a new system. |
| |
| + List of ICU packages. |
| |
| ICU is distributed as the following packages: |
| |
| - ICU libraries. This package contains the runtime libraries needed by |
| applications that use ICU. All the other packages require this package |
| to be installed. |
| - ICU. This package contains the converters data, the timezones data, |
| and all the ICU tools. |
| - ICU locales. This package adds locales and break data. |
| - ICU development. This package contains the files necessary to build |
| applications that use ICU, i.e. header files, links to shared |
| libraries used by the linker, static libraries, etc... It also |
| contains sample applications and documentation. |
| - ICU docs. This package contains further documentation for ICU, |
| including a complete API reference. |
| - ICU data. This package contains the source for the compiled data |
| contained by the ICU package. |
| - ICU international data. This package contains the source for the |
| compiled data contained by the ICU locales package. |
| |
| In this file, we will refer to Autoconf variables as in $(bindir). In |
| addition to these, we will use the following variables to denote |
| ICU-specific directories or information: |
| |
| VERSION ICU's dotted version number, e.g. 1.6.0.1 as of this |
| writing. |
| |
| ICUDATADIR The directory where portable ICU data are. This is |
| defined as $(datadir)/icu/$(VERSION). |
| ICULIBDIR The directory where platform-specific ICU data |
| are. This is defined as $(libdir)/icu/$(VERSION). |
| ICUSYSCONFDIR The directory where ICU configuration files are. This |
| is defined as $(sysconfdir)/icu. |
| |
| When referring to libraries, .so will be used to denote the extension |
| of a shared library, and .a to denote the extension of a static |
| library. These extensions will actually be different on some platforms. |
| |
| + Configuration and compilation of ICU |
| |
| ICU should be configured with the following options: |
| |
| --with-data-packaging=files |
| --disable-rpath |
| --enable-shared |
| --enable-static |
| --without-samples |
| |
| in addition to platform-specific settings (like a specific mandir or |
| sysconfdir). Note that the use of --disable-rpath assumes that the |
| packaging is made for a standard location, or that the package |
| installation/deinstallation will correctly manage the configuration |
| of the system's dyanmic loader. This is the right way of doing things. |
| |
| The configure script invokation should also be done with |
| |
| CFLAGS="-O2" |
| |
| set, as in: |
| |
| $ CFLAGS="-O2" ./configure ... |
| |
| The files packaging mode is chosen because it offers the maximum |
| flexibility. Packages can be split easily, and system administrators |
| can add converters, aliases, and other resources with little |
| effort. Ideally, the ICU build will be modified to allow for distributing a |
| libicudata.so with all the converters and locales, but indexes and aliases |
| as separate files. But for now, this is the easiest way to get started. |
| |
| + The ICU libraries package |
| |
| The ICU libraries package is typically named `libicuXX' where XX is |
| the major number of ICU's libraries. This number is ICU's version |
| number multiplied by 10 and rounded down to the nearest integer (it is |
| also the value of the LIB_VERSION_MAJOR configure substitution |
| variable). For example, for ICU 1.6.0.1, it is 16, so the package name |
| is `libicu16'. The major version is part of the package name to allow |
| for the simultaneous installation of different ICU releases. |
| |
| This package contains: |
| |
| - All the shared libraries, and their major number symbolic link, but |
| not the .so symbolic link that is only used at link time (this one is |
| part of the development package). These are $(libdir)/libicu*.so.* and |
| $(libdir)/libustdio.so.* at the time of this writing. |
| |
| + The ICU package |
| |
| The ICU package is simply named `icu'. It provides data used by the ICU |
| libraries package and commands to create and manipulate that data. |
| |
| This package contains: |
| |
| - The Unicode data files (uprops.dat and unames.dat as of this writing). |
| - The time zones data files (tz.dat). |
| - All the binary data files for converters (.cnv files). |
| - All the ICU commands. |
| - The manual pages for ICU commands and file formats. |
| |
| + The ICU locales package |
| |
| The ICU locales package is named `icu-locales'. It provides data used by |
| internationalization support in ICU. |
| |
| This package contains: |
| |
| - All the data for locales in ICU (.dat files). |
| - All the break data for specific locales (.brk files). |
| |
| + The ICU development package |
| |
| The ICU developpment package is named `libicu-dev'. It provides all |
| the files necessary to write applications that use ICU, along with |
| examples and some documentation. |
| |
| This package contains: |
| |
| - The /usr/include/unicode directory which contains all the ICU |
| headers. |
| - The .so symbolic links used by the linker to link against the |
| latest version of the libraries. |
| - A sample Makefile fragment that can be included by applications |
| using ICU, to faciliate their building, along with a platform-specific |
| configuration file included by this fragment. |
| - The sample applications from the ICU source tree, in an appropriate |
| location for the system that the package is installed on (for example, |
| on Debian, in /usr/share/doc/libicu-dev/examples). |
| |
| This package depends on the ICU libraries package with the exact same |
| version, since it provides .so symbolic links to the latest libraries. |
| |
| + The ICU docs package |
| |
| The ICU docs package is named `libicu-doc'. It contains the files |
| generated by doxygen when the `make doc' command is executed, in a |
| location appropriate for the system that the package is installed on. |
| |
| + The ICU data package |
| |
| The ICU data package is named `icu-data'. It contains source files for |
| the data found in the ICU package. These files are installed in |
| $(ICUDATADIR). |
| |
| + The ICU international data package |
| |
| The ICU data package is named `icu-i18ndata'. It contains source files for |
| the dat founf in the ICU locales package. These files are installed in |
| $(ICUDATADIR). |
| |
| ---- |
| Yves Arrouye <yves@realnames.com> |