ICU Build Recommendations

Markus Scherer, 2005jul22

To go into the ICU4C readme or into the User Guide.

Recommended Build Configuration

Most users of ICU should share a common, upgradable set of libraries, which is possible, and recommended if all of the following apply:

Build ICU with the following command:

CFLAGS='-DICU_DATA_DIR=\"/usr/share/icu/\" -DICU_NO_USER_DATA_OVERRIDE=1' CXXFLAGS='-DICU_DATA_DIR=\"/usr/share/icu/\" -DICU_NO_USER_DATA_OVERRIDE=1' ./runConfigureICU Your_OS_Configuration --disable-renaming --disable-draft --with-data-packaging=archive --prefix=/usr

Comments:

Additional Recommendations

Platform-Specific Considerations

TODO: Change defaults to build the recommended configuration? Provide binaries for more platforms, built with the recommended configuration?

Recommended Install Location

ICU libraries, built with the recommended configuration, should be installed into a shared location.

ICU Shared Install Locations
Platform Location
Unix-like /usr/share/icu/
Windows %ProgramFiles%\IBM\ICU\
i5/OS TBD
z/OS TBD
   

TODO: We may need to recommend two locations per platform, for example using subfolders. A platform may require that its own set of ICU libraries not be updated, while sharing them and also providing a second location for the latest shared ICU version. For example: /usr/share/icu/system/ vs. /usr/share/icu/latest/ Additional version-specific locations (/usr/share/icu/3.2/) may or may not also make sense; version-specific installations may be best in an applications' own location.

Installation Binaries

The following binaries should be part of a complete installation:

Libraries: icuuc, icuin, icuio, iculx, icule

Tools executables: genrb, makeconv, genbrk, gencmn, genccode, pkgdata, icuswap

TODO: What about Java tools like the XLIFF2ICUConverter?!

Application-Specific Build Configuration

You cannot use the recommended build configuration if any of the following applies:

In this case, you should build ICU with renaming enabled and install it into your application install location. You can add a library prefix or suffix for further distinction.