// -*- 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.