[GRASS-dev] problem building grass trunk

Glynn Clements glynn at gclements.plus.com
Tue Oct 20 20:55:27 EDT 2009


Markus Neteler wrote:

> >> the system is SUSE 10 with gcc 4.1, I have removed each previous
> >> installation of grass.
> >
> > FWIW, it works for me with make 3.81 (and presumably for everyone else
> > who has compiled it in the last month). My first guess would be an
> > issue with your version of make; which version are you using?
> 
> I am on Fedora 4 (so old, but so far ok) with
> make -v
> GNU Make 3.80
> 
> I think that this should continue to work... GRASS will be used
> on many "ancient" machines.

3.81 was released on 1st April 2006, so it's not exactly
bleeding-edge.

Having to support 3.80 would mean that we would have to get rid of the
loop, and instead have 68 copies of:

	FOO_LIBNAME = grass_foo
	ifneq ($(NEED_DEPS),)
	FOOLIB = -l$(FOO_LIBNAME) $(FOODEPS)
	else
	FOOLIB = -l$(FOO_LIBNAME)
	endif
	FOODEP = $(BASE_LIBDIR)/$(LIB_PREFIX)$(FOO_LIBNAME)$(LIB_SUFFIX)

(one for each of the 68 libraries).

[We can't just conditionalise the definitions of the *DEPS variables,
as they're used when building shared libraries.]

It isn't an issue for 6.x, but for 7.0 I don't think that it's
unreasonable to require a version of make less than 3.5 years old.

It's not like the compiler, where the version used has some effect
upon the resulting binaries, and may be tied to the version of
binutils and/or libc. People building on ancient systems can always
install[*] make 3.81 specifically for building GRASS 7.

[*] "install" is an exaggeration; make consists of the "gmake"
executable, the (optional) "make" symlink, and the documentation. You
can just compile it then run the not-installed executable directly.

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


More information about the grass-dev mailing list