[GRASS-user] installing addon problem for regular users (ubuntu newbies)

Glynn Clements glynn at gclements.plus.com
Thu Nov 12 10:32:45 EST 2009


M S wrote:

> I'm on Kubuntu 9.10, using both 32 and 64 bit systems.  This output is
> from 32bit.  It is GRASS 6.4 RC5.  Seems to be the same logged issue
> of defaulting to /build rather than /var/lib/grass64
> 
> -------------------------
> I ran "sudo make MODULE_TOPDIR=/usr/lib/grass64"
> 
> This is the first line of output"  gcc
> -I/build/buildd/grass-6.4.0~rc5/dist.i486-pc-linux-gnu/include  -Wall
> -g -O    -I/usr/include/gdal    -DPACKAGE=\""grassmods"\"
> -I/build/buildd/grass-6.4.0~rc5/dist.i486-pc-linux-gnu/include -o
> OBJ.i486-pc-linux-gnu/close.o -c close.c  "
> ---------------------------
> 
> If I apply the GRASS_HOME=/usr/lib/grass64:
> 
> --------------------------
> $ sudo make MODULE_TOPDIR=/usr/lib/grass64 GRASS_HOME=/usr/lib/grass64
> 
> gcc -I/usr/lib/grass64/dist.i486-pc-linux-gnu/include  -Wall -g -O
> -I/usr/include/gdal    -DPACKAGE=\""grassmods"\"
> -I/usr/lib/grass64/dist.i486-pc-linux-gnu/include -o
> OBJ.i486-pc-linux-gnu/close.o -c close.c
> close.c:1:23: error: grass/gis.h: No such file or  directory
> close.c:2:27: error: grass/glocale.h: No such file or directory
> close.c:3:24: error: grass/dbmi.h: No such file or directory
> close.c:4:24: error: grass/Vect.h: No such file or directory
> -------------------------
> 
> Should it be looking in /usr/lib/grass64/include, instead of
> /usr/lib/grass64/dist.i486-pc-linux-gnu/include ?   The latter
> directory is empty.
> 
> If so, how do I remove the "dist.i486-pc-linux--gnu" portion from the
> gcc statement?

You could try ARCH_DISTDIR=/usr/lib/grass64, but this may not be
sufficient for complex cases. If you need to search both the installed
version and the build directory for headers and/or libraries, you will
need to set ARCH_INC and/or ARCH_LIBPATH explicitly.

If you still have problems, look at the first two sections of
Grass.make; this defines the most important variables.

6.x is still a bit of a mess in this regard.

In 7.0, ARCH_DISTDIR controls where output files go, while GISBASE
controls where existing libraries and headers are found. Both
$(ARCH_DISTDIR)/include and $(GISBASE)/include are searched for
headers, and both $(ARCH_DISTDIR)/lib and $(GISBASE)/lib are searched
for libraries. This allows a package to use both existing headers and
libraries and those which are part of the package.

RUN_GISBASE is the value of GISBASE used when running GRASS modules as
part of the build process (on Windows, this will be in Windows format
rather than MSys format).

MODULE_TOPDIR is only used to locate the *.make files; everything else
uses the variables from those files.

-- 
Glynn Clements <glynn at gclements.plus.com>


More information about the grass-user mailing list