[GRASS-dev] [GRASS-windows] RE: Compiling WINGrass
Glynn Clements
glynn at gclements.plus.com
Mon Nov 14 15:14:48 EST 2011
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 <glynn at gclements.plus.com>
More information about the grass-dev
mailing list