| // -*- mode:doc; -*- |
| |
| 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. On |
| the other hand, the 'glibc' C library does integrate its own gettext, |
| and in this case the separate gettext library should not be compiled, |
| because it creates various kinds of build failures. |
| |
| Additionally, some packages (such as +libglib2+) do require gettext |
| unconditionally, while other packages (those who support |
| +--disable-nls+ in general) only require gettext 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. |
| |