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