[GRASS-dev] Re: [GDAL] #1587: Error compiling gdal-grass against gdal 1.4.1

Glynn Clements glynn at gclements.plus.com
Wed Apr 25 20:21:26 EDT 2007


Markus Neteler wrote:

> it is currently no more possible to compile the official
> GRASS-GDAL-OGR plugin against GRASS 6.3-CVS. There is
> a bug report open at GDAL:
> 
> http://trac.osgeo.org/gdal/ticket/1587
> 
> In summary, there a certain function definition needs
> to be conditionalized upon the GRASS version but there
> is the problem that it is defined as char in
> include/version[.in].
> 
> Following question is open:
> 
> On Wed, Apr 25, 2007 at 03:58:03PM -0000, GDAL wrote:
> > #1587: Error compiling gdal-grass against gdal 1.4.1
> > -------------------------+--------------------------------------------------
> >  Reporter:  perrygeo     |        Owner:  mloskot 
> >      Type:  defect       |       Status:  reopened
> >  Priority:  normal       |    Milestone:          
> > Component:  ConfigBuild  |      Version:  1.4.1   
> >  Severity:  normal       |   Resolution:          
> >  Keywords:  grass        |  
> > -------------------------+--------------------------------------------------
> > Comment (by mloskot):
> > 
> >  Markus,
> > 
> >  Would it be possible to have version definition as a preprocessor macro
> >  instead of character object?
> > 
> >  Ideally, I think it would be best if there is a version macro defined as a
> >  number calculated as:
> > 
> >  {{{
> >  MAJOR * 100000 + MINOR * 100 + MICRO
> >  }}}
> > 
> >  what for '''6.3.0''' results as '''600300'''.
> > 
> >  This way we have a value that can be easily calculated from version string
> >  and makes it very easy to compare if one version is lower/higher from
> >  another one.
> > 
> >  What do you think?
> > 
> > -- 
> > Ticket URL: <http://trac.osgeo.org/gdal/ticket/1587#comment:7>
> > GDAL <http://trac.osgeo.org/gdal/>
> > Geospatial Data Abstraction Library is a translator library for raster and vector geospatial data formats.
> 
> Please suggest - the result should then be posted into the
> GDAL bugtracker (you need to register for this, see trac).

I've changed version.h.in so that GRASS_VERSION_* are preprocessor
definitions.

[BTW, we need to decide if GRASS_VERSION_RELEASE is an integer or a
string. AFAICT, it's the actual release number for releases and "cvs"
for the CVS version.]

However, this won't help with previous versions. You could use e.g.

	#include <grass/version.h>

	#ifdef GRASS_VERSION_MAJOR

which will succeed in current versions and fail in older versions.

Alternatively, you can use the following in the Makefile;

	include include/Make/Grass.make

	-DGRASS_VERSION_MAJOR=$(GRASS_VERSION_MAJOR)

But that may not work with non-GNU make utilities, and including the
*.make files is a relatively recent change.

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




More information about the grass-dev mailing list