Hamish wrote:

> It just sort of works so I don't rebuild grass on it very often (nor
> have had the motivation to upgrade to a newer CentOS or RHEL) but it
> would be nice if the grass 6.x line continued to support older
> configurations. Even if no one else is interested I'm happy to support
> that if pointed in the right direction.

The main issue is that versions before 3.81 don't support order-only
dependencies, e.g. (from lib/python/Makefile):

        $(GDIR): | $(PYDIR)
                $(MKDIR) $@

Any dependencies listed after the "|" won't cause the target to be
re-made if the dependency is newer. If the target is going to be
re-made anyhow, then the dependencies will be made before the rule's
commands are executed.

3.80 treats the "|" as the name of a dependency; it doesn't exist, so
it attempts to re-make it, fails to find a rule, and reports an error.

For 6.x, the above rule should have been written as:

        $(GDIR):
                $(MAKE) $(PYDIR)
                $(MKDIR) $@

This works with earlier versions of make, at the expense of adding
some "noise" to the output and executing additional commands.

Such rules invariably arise from back-porting Makefiles verbatim from
7.0, which requires make 3.81 (for more reasons than just order-only
dependencies).

-- 
Glynn Clements <[email protected]>
_______________________________________________
grass-dev mailing list
[email protected]
http://lists.osgeo.org/mailman/listinfo/grass-dev

Reply via email to