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

hi,

I've compiled grass65svn in the osgeo4w-stack with r46521

there are following errors:

_____________________

syringia@NADA /c/osgeo4w/usr/src/grass6_devel
$ ./mswindows/osgeo4w/package.sh
GRASS GIS compilation log
-------------------------
Started compilation: Thu Jun 2 19:52:03 GMT 2011
--
Errors in:
/c/osgeo4w/usr/src/grass6_devel/lib/python
/c/osgeo4w/usr/src/grass6_devel/gui/icons
/c/osgeo4w/usr/src/grass6_devel/gui/images
/c/osgeo4w/usr/src/grass6_devel/gui/wxpython/scripts
--
In case of errors please change into the directory with error and run 'make'.
If you get multiple errors, you need to deal with them in the order they
appear in the error log. If you get an error building a library, you will
also get errors from anything which uses the library.
--
Finished compilation: Thu Jun 2 20:48:10 GMT 2011

_____________________

syringia@NADA /c/osgeo4w/usr/src/grass6_devel/lib/python
$ make
make: *** No rule to make target `|', needed by `/c/osgeo4w/usr/src/grass6_devel/dist.i686-pc-mingw32/etc/python/grass/script/core.py'. Stop.

_____________________

syringia@NADA /c/osgeo4w/usr/src/grass6_devel/gui/icons
$ make
make: *** No rule to make target `/c/osgeo4w/usr/src/grass6_devel/dist.i686-pc-mingw32/etc/gui/icons/grass/channel-blue.gif', needed by `default'. Stop.

_____________________

syringia@NADA /c/osgeo4w/usr/src/grass6_devel/gui/images
$ make
make: *** No rule to make target `/c/osgeo4w/usr/src/grass6_devel/dist.i686-pc-mingw32/etc/gui/images/grass_form.png', needed by `default'. Stop.

_____________________

syringia@NADA /c/osgeo4w/usr/src/grass6_devel/gui/wxpython/scripts
$ make
make /c/osgeo4w/usr/src/grass6_devel/dist.i686-pc-mingw32/etc/wxpython/scripts/d.rast3d.py /c/osgeo4w/usr/src/grass6_devel/dist.i686-pc-mingw32/etc/wxpython/scripts/p.cmd.py
/c/osgeo4w/usr/src/grass6_devel/dist.i686-pc-mingw32/etc/wxpython/scripts/p.db.py /c/osgeo4w/usr/src/grass6_devel/dist.i686-pc-mingw32/etc/wxpython/scripts/p.mon.py
/c/osgeo4w/usr/src/grass6_devel/dist.i686-pc-mingw32/etc/wxpython/scripts/p.rast.py /c/osgeo4w/usr/src/grass6_devel/dist.i686-pc-mingw32/etc/wxpython/scripts/p.vect.py
c/osgeo4w/usr/src/grass6_devel/dist.i686-pc-mingw32/etc/wxpython/scripts/vkrige.py
make[1]: Entering directory `/c/osgeo4w/usr/src/grass6_devel/gui/wxpython/scripts'
make[1]: *** No rule to make target `/c/osgeo4w/usr/src/grass6_devel/dist.i686-pc-mingw32/etc/wxpython/scripts/d.rast3d.py'. Stop.
make[1]: Leaving directory `/c/osgeo4w/usr/src/grass6_devel/gui/wxpython/scripts'
make: *** [install_scripts] Error 2

_____________________

best regards
Helmut
___________________________________________________________
Schon gehört? WEB.DE hat einen genialen Phishing-Filter in die
Toolbar eingebaut! http://produkte.web.de/go/toolbar

Helmut Kudrnovsky wrote:

I've compiled grass65svn in the osgeo4w-stack with r46521

there are following errors:

syringia@NADA /c/osgeo4w/usr/src/grass6_devel/lib/python
$ make
make: *** No rule to make target `|', needed by `/c/osgeo4w/usr/src/grass6_devel/dist.i686-pc-mingw32/etc/python/grass/script/core.py'. Stop.

What does "make --version" say?

A rule of the form:

  target: ... | ...

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.

make[1]: Entering directory `/c/osgeo4w/usr/src/grass6_devel/gui/wxpython/scripts'
make[1]: *** No rule to make target `/c/osgeo4w/usr/src/grass6_devel/dist.i686-pc-mingw32/etc/wxpython/scripts/d.rast3d.py'. Stop.

That should be handled by this rule in gui/wxpython/scripts/Makefile:

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

But that rule might be rejected due to the "|" issue.

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

Hi,

2011/6/2 Glynn Clements <glynn@gclements.plus.com>:

[...]

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.

wouldn't be better to sync makefile systems in GRASS6 with GRASS7 and
require 3.81 also for GRASS6?

Martin

--
Martin Landa <landa.martin gmail.com> * http://geo.fsv.cvut.cz/~landa

Martin wrote:

wouldn't be better to sync makefile systems in GRASS6 with
GRASS7 and require 3.81 also for GRASS6?

please follow the path of least change to fix bugs in the stable
branch.

every time we change something major in the stable branch, the
QA-stability clock gets reset to zero.

Helmut wrote:

$ make --version
GNU Make version 3.79.1, by Richard Stallman and Roland McGrath.

speaks for itself.

some times for external reasons users may not be able or want
to upgrade some working machine. If compatibility is broken for
older versions, please let it be for a very very good reason.

thanks,
Hamish

2011/6/3 Hamish <hamish_b@yahoo.com>:

Martin wrote:

wouldn't be better to sync makefile systems in GRASS6 with
GRASS7 and require 3.81 also for GRASS6?

please follow the path of least change to fix bugs in the stable
branch.

speaking about develbr6, are you considering also this branch as feature-frozen?

Martin

--
Martin Landa <landa.martin gmail.com> * http://geo.fsv.cvut.cz/~landa

2011/6/3 Hamish <hamish_b@yahoo.com>:

Helmut wrote:

$ make --version
GNU Make version 3.79.1, by Richard Stallman and Roland McGrath.

speaks for itself.

release date (11-Apr-2000) also speaks for itself;-) So we need to
maintain two different system in G6 and G7, G6 needs to be fixed at
this point.

Martin

--
Martin Landa <landa.martin gmail.com> * http://geo.fsv.cvut.cz/~landa

Hi,

2011/6/2 Glynn Clements <glynn@gclements.plus.com>:

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?

Thanks, Martin

[1] http://trac.osgeo.org/grass/changeset/42916/grass/branches/develbranch_6/lib/python/Makefile

--
Martin Landa <landa.martin gmail.com> * http://geo.fsv.cvut.cz/~landa

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@gclements.plus.com>