[GRASS-dev] Error compiling develbranch_6

Glynn Clements glynn at gclements.plus.com
Tue Sep 15 01:40:32 EDT 2009

Colin Nielsen wrote:

> As of r39206 the following error appears causing lib/gis to fail to compile:
> /src/dev_6/lib/gis
> $ make
> gcc -I/src/dev_6/dist.i686-pc-mingw32/include
> -I/OSGeo4W/apps/gdal-16/include -I/OSGeo4W/include -g -O2
> -I/OSGeo4W/apps/gdal-16/include -I/OSGeo4W/include
> -DPACKAGE=\""grasslibs"\" -D_FILE_OFFSET_BITS=64 -DGDAL_LINK=1
> -DGDAL_DYNAMIC=1   -DPACKAGE=\""grasslibs"\"  -I/c/OSGeo4W/include
> -I/c/OSGeo4W/include -I/src/dev_6/dist.i686-pc-mingw32/include -o
> OBJ.i686-pc-mingw32/parser.o -c parser.c
> parser.c:75:26: localcharset.h: No such file or directory
> parser.c: In function `G_usage_xml':
> parser.c:1287: warning: assignment makes pointer from integer without a cast
> make: *** [OBJ.i686-pc-mingw32/parser.o] Error 1

It should be part of gettext.

The other NLS code is all conditionalised upon:

	#if defined(HAVE_LIBINTL_H) && defined(USE_NLS)

So if you use --with-nls but don't have libintl.h in the standard
include path (i.e. built-in directories plus --with-includes=
directories), configure will accept the option but GRASS will be built
without NLS.

The configure checks for --with-nls only test for the existence of the
gettext() function. The check for libintl.h is unconditional, and
doesn't complain if it isn't found.

There are 3 main options here:

1. Modify lib/gis/parser.c to check for HAVE_LIBINTL_H.

2. Modify configure.in to check for localcharset.h, and modify
lib/gis/parser.c to check for HAVE_LOCALCHARSET_H.

3. Modify configure.in to fail if --with-nls is used but libintl.h
isn't found.

Option #3 is probably preferable, as it prevents the situation where
you use --with-nls but (silently) get a build which lacks NLS.

For the time being, you can just omit the --with-nls switch.

The one thing which I find confusing is that the configure check for
gettext() appears to have passed (if you use --with-nls, you get an
error if the check fails, and if you didn't use --with-nls, USE_NLS
wouldn't be defined).

Glynn Clements <glynn at gclements.plus.com>

More information about the grass-dev mailing list