| 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> |