[GRASS5] Fixing up projection related code...
paul-grass at stjohnspoint.co.uk
Fri Apr 11 21:33:29 EDT 2003
On Fri, 11 Apr 2003, Glynn Clements wrote:
> BTW, what are $(GRASSINT) and $(PROJINT) for? And where do they get
> their values?
These are defined in the Gmakefile for the GRASS proj library
src/libes/proj/Gmakefile. $(PROJINT) includes all the object files from
PROJ.4 and $(GRASSINT) contains get_proj.o and do_proj.o, the two files
that contain the GRASS wrapper functions for PROJ.4. So by default
$(GRASSINT) and $(PROJINT) are both compiled, i.e. the grass libgproj.a
contains all the PROJ.4 functions and the GRASS wrapper functions. If
--with-proj=yes is specified then only $(GRASSINT) is compiled, i.e.
libgproj.a contains only the wrapper functions and is only about 40-50kB
I had never used autoconf before but after a bit of thinking it seemed
an elegant enough way of doing it. In GRASS 5.1 I have made an external
PROJ.4 an absolute dependency so this bit isn't needed there. It seems
there is quite a consensus to remove the local copy of PROJ.4 for GRASS
5.0 as well, but I will still wait a while and hope for further discussion
before doing this. The required PROJ.4.4.6 was only released recently so a
lot of people may have an older version installed, which will have had
a small bug resulting in errors at the 10s of centimetres level when doing
7-parameter datum transformations (this is now fixed in the local GRASS
copy but I suppose it is possible there are other bugs there nobody has
An aside: the Gmakefile / Makefile for GRASS libgproj also converts the
ASCII nadcon datum shift files into binary using the nad2bin program from
the PROJ.4 distribution. So this program must be installed in the path,
e.g. /usr/local/bin or somewhere for it to work. I couldn't see any
obvious convention for specifying the path to the nad2bin binary in the
configure script, but it should be fine as long as PROJ.4 is properly
installed on the system.
More information about the grass-dev