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 <gl...@gclements.plus.com> _______________________________________________ grass-user mailing list grass-user@lists.osgeo.org http://lists.osgeo.org/mailman/listinfo/grass-user