configure.ac: not using gettext

What OS?

Likely your system does not have all or some of the gettext system, namely the development portions. In many distributions, e.g. Debian/Ubuntu, gettext is separated into multiple packages: gettext-base and gettext.

The gettext-base package is for running programs which are multi-lingual, while gettext has the necessary parts for building.


Looks like your autogen.sh is calling autoreconf.

The project may be using intltool instead but if so autoreconf should pick that up and call intltoolize. If it's definitely using GNU gettext then this from the autopoint info page is helpful:

The ‘autopoint’ program copies standard gettext infrastructure files into a source package. It extracts from a macro call of the form ‘AM_GNU_GETTEXT_VERSION(VERSION)’, found in the package’s ‘configure.in’ or ‘configure.ac’ file, the gettext version used by the package, and copies the infrastructure files belonging to this version into the package.

And if we write AM_GNU_GETTEXT_VERSION then autopoint is correctly invoked by autoreconf.

To extract the latest available infrastructure which satisfies a version requirement, then you can use the form ‘AM_GNU_GETTEXT_REQUIRE_VERSION(VERSION)’ instead. For example, if gettext 0.19.8 is installed on your system and ‘0.19.1’ is requested, then the infrastructure files of version 0.19.8 will be copied into a source package.

The problem only appears when switching to this version of the macro, and while it does what it says on the tin it isn't known to autoreconf and we see a patch for support.

Gentoo users can get the same behaviour in ebuilds by using our eautoreconf function.

Writing AM_GNU_GETTEXT_VERSION and AM_GNU_GETTEXT_REQUIRE_VERSION immediately afterwards in my own configure.ac generates a warning but otherwise appears to yield the desired result.