This commit updates the Buildroot manual regarding how gettext related issues are handled, now that we have cases where the gettext package should be selected even with glibc toolchains. Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
62 lines
2.2 KiB
Plaintext
62 lines
2.2 KiB
Plaintext
// -*- mode:doc; -*-
|
|
// vim: set syntax=asciidoc:
|
|
|
|
=== Gettext integration and interaction with packages
|
|
|
|
Many packages that support internationalization use the gettext
|
|
library. Dependencies for this library are fairly complicated and
|
|
therefore, deserve some explanation.
|
|
|
|
The 'uClibc' C library doesn't implement gettext functionality;
|
|
therefore with this C library, a separate gettext must be compiled,
|
|
which is provided by the additional +libintl+ library, part of the
|
|
+gettext+ package.
|
|
|
|
On the other hand, the 'glibc' C library does integrate its own
|
|
gettext library functions, so it is not necessary to build a separate
|
|
+libintl+ library.
|
|
|
|
However, certain packages need some gettext utilities on the target,
|
|
such as the +gettext+ program itself, which allows to retrieve
|
|
translated strings, from the command line.
|
|
|
|
Additionally, some packages (such as +libglib2+) do require gettext
|
|
functions unconditionally, while other packages (in general, those who
|
|
support +--disable-nls+) only require gettext functions when locale
|
|
support is enabled.
|
|
|
|
Therefore, Buildroot defines two configuration options:
|
|
|
|
* +BR2_NEEDS_GETTEXT+, which is true as soon as the toolchain doesn't
|
|
provide its own gettext implementation
|
|
|
|
* +BR2_NEEDS_GETTEXT_IF_LOCALE+, which is true if the toolchain
|
|
doesn't provide its own gettext implementation and if locale support
|
|
is enabled
|
|
|
|
Packages that need gettext only when locale support is enabled should:
|
|
|
|
* use +select BR2_PACKAGE_GETTEXT if BR2_NEEDS_GETTEXT_IF_LOCALE+ in the
|
|
+Config.in+ file;
|
|
|
|
* use +$(if $(BR2_NEEDS_GETTEXT_IF_LOCALE),gettext)+ in the package
|
|
+DEPENDENCIES+ variable in the +.mk+ file.
|
|
|
|
Packages that unconditionally need gettext (which should be very rare)
|
|
should:
|
|
|
|
* use +select BR2_PACKAGE_GETTEXT if BR2_NEEDS_GETTEXT+ in the +Config.in+
|
|
file;
|
|
|
|
* use +$(if $(BR2_NEEDS_GETTEXT),gettext)+ in the package
|
|
+DEPENDENCIES+ variable in the +.mk+ file.
|
|
|
|
Packages that need the +gettext+ utilities on the target (should be
|
|
rare) should:
|
|
|
|
* use +select BR2_PACKAGE_GETTEXT+ in their +Config.in+ file,
|
|
indicating in a comment above that it's a runtime dependency only.
|
|
|
|
* not add any +gettext+ dependency in the +DEPENDENCIES+ variable of
|
|
their +.mk+ file.
|