1Copyright (C) 2000-2003, International Business Machines 2Corporation and others. All Rights Reserved. 3ICU is packaged into a number of small, interdependent packages. This 4file describes what these packages are, what their name should be 5like, and what their contents are. It is useful as a reference and a 6guide when packaging ICU on a new system. 7 8+ List of ICU packages. 9 10ICU is distributed as the following packages: 11 12- ICU libraries. This package contains the runtime libraries needed by 13applications that use ICU. All the other packages require this package 14to be installed. 15- ICU. This package contains the converters data, the timezones data, 16and all the ICU tools. 17- ICU locales. This package adds locales and break data. 18- ICU development. This package contains the files necessary to build 19applications that use ICU, i.e. header files, links to shared 20libraries used by the linker, static libraries, etc... It also 21contains sample applications and documentation. 22- ICU docs. This package contains further documentation for ICU, 23including a complete API reference. 24- ICU data. This package contains the source for the compiled data 25contained by the ICU package. 26- ICU international data. This package contains the source for the 27compiled data contained by the ICU locales package. 28 29In this file, we will refer to Autoconf variables as in $(bindir). In 30addition to these, we will use the following variables to denote 31ICU-specific directories or information: 32 33 VERSION ICU's dotted version number, e.g. 1.6.0.1 as of this 34 writing. 35 36 ICUDATADIR The directory where portable ICU data are. This is 37 defined as $(datadir)/icu/$(VERSION). 38 ICULIBDIR The directory where platform-specific ICU data 39 are. This is defined as $(libdir)/icu/$(VERSION). 40 ICUSYSCONFDIR The directory where ICU configuration files are. This 41 is defined as $(sysconfdir)/icu. 42 43When referring to libraries, .so will be used to denote the extension 44of a shared library, and .a to denote the extension of a static 45library. These extensions will actually be different on some platforms. 46 47+ Configuration and compilation of ICU 48 49ICU should be configured with the following options: 50 51 --with-data-packaging=files 52 --disable-rpath 53 --enable-shared 54 --enable-static 55 --without-samples 56 57in addition to platform-specific settings (like a specific mandir or 58sysconfdir). Note that the use of --disable-rpath assumes that the 59packaging is made for a standard location, or that the package 60installation/deinstallation will correctly manage the configuration 61of the system's dyanmic loader. This is the right way of doing things. 62 63The configure script invokation should also be done with 64 65 CFLAGS="-O2" 66 67set, as in: 68 69 $ CFLAGS="-O2" ./configure ... 70 71The files packaging mode is chosen because it offers the maximum 72flexibility. Packages can be split easily, and system administrators 73can add converters, aliases, and other resources with little 74effort. Ideally, the ICU build will be modified to allow for distributing a 75libicudata.so with all the converters and locales, but indexes and aliases 76as separate files. But for now, this is the easiest way to get started. 77 78+ The ICU libraries package 79 80The ICU libraries package is typically named `libicuXX' where XX is 81the major number of ICU's libraries. This number is ICU's version 82number multiplied by 10 and rounded down to the nearest integer (it is 83also the value of the LIB_VERSION_MAJOR configure substitution 84variable). For example, for ICU 1.6.0.1, it is 16, so the package name 85is `libicu16'. The major version is part of the package name to allow 86for the simultaneous installation of different ICU releases. 87 88This package contains: 89 90- All the shared libraries, and their major number symbolic link, but 91not the .so symbolic link that is only used at link time (this one is 92part of the development package). These are $(libdir)/libicu*.so.* and 93$(libdir)/libustdio.so.* at the time of this writing. 94 95+ The ICU package 96 97The ICU package is simply named `icu'. It provides data used by the ICU 98libraries package and commands to create and manipulate that data. 99 100This package contains: 101 102- The Unicode data files (uprops.dat and unames.dat as of this writing). 103- The time zones data files (tz.dat). 104- All the binary data files for converters (.cnv files). 105- All the ICU commands. 106- The manual pages for ICU commands and file formats. 107 108+ The ICU locales package 109 110The ICU locales package is named `icu-locales'. It provides data used by 111internationalization support in ICU. 112 113This package contains: 114 115- All the data for locales in ICU (.dat files). 116- All the break data for specific locales (.brk files). 117 118+ The ICU development package 119 120The ICU developpment package is named `libicu-dev'. It provides all 121the files necessary to write applications that use ICU, along with 122examples and some documentation. 123 124This package contains: 125 126- The /usr/include/unicode directory which contains all the ICU 127headers. 128- The .so symbolic links used by the linker to link against the 129latest version of the libraries. 130- A sample Makefile fragment that can be included by applications 131using ICU, to faciliate their building, along with a platform-specific 132configuration file included by this fragment. 133- The sample applications from the ICU source tree, in an appropriate 134location for the system that the package is installed on (for example, 135on Debian, in /usr/share/doc/libicu-dev/examples). 136 137This package depends on the ICU libraries package with the exact same 138version, since it provides .so symbolic links to the latest libraries. 139 140+ The ICU docs package 141 142The ICU docs package is named `libicu-doc'. It contains the files 143generated by doxygen when the `make doc' command is executed, in a 144location appropriate for the system that the package is installed on. 145 146+ The ICU data package 147 148The ICU data package is named `icu-data'. It contains source files for 149the data found in the ICU package. These files are installed in 150$(ICUDATADIR). 151 152+ The ICU international data package 153 154The ICU data package is named `icu-i18ndata'. It contains source files for 155the dat founf in the ICU locales package. These files are installed in 156$(ICUDATADIR). 157 158---- 159Yves Arrouye <yves@realnames.com> 160