[GRASS-dev] compiling errors - grass65svn compiled in the osgeo4w-stack

Glynn Clements glynn at gclements.plus.com
Fri Jun 3 06:22:02 EDT 2011


Martin Landa wrote:

> > is an order-only dependency, which requires GNU make 3.81. In 6.x,
> > this syntax is normally conditional upon "ifneq ($(BROKEN_MAKE),)". It
> > appears that someone back-ported from 7.0 (where GNU make 3.81 is a
> > requirement) without changing this.
> 
> lib/python/Makefile has been changed my me 10months ago [1]. I just
> wonder why it didn't fail on Helmut's machine earlier.
> 
> Glynn: is it right just to remove "|" or it needs some special care?

The rule:

	$(SCRIPTDIR)/%.py: %.py | $(SCRIPTDIR)
		$(INSTALL) $< $@

should be changed to:

	$(SCRIPTDIR)/%.py: %.py
		$(MAKE) $(SCRIPTDIR)
		$(INSTALL) $< $@

Simply removing the "|" will cause the directory to be treated as a
normal dependency, so the script will be re-installed whenever the
directory's timestamp is newer than the source file (i.e. always, as
executing the commands will update the directory's timestamp).

Order-only dependencies (those after the "|") don't affect whether the
target is considered out-of-date, but if it is out-of-date for other
reasons, any order-only dependencies will be re-made before executing
the commands.

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


More information about the grass-dev mailing list