[GRASS-dev] some backports to 6.3.0-CVS branch

Glynn Clements glynn at gclements.plus.com
Mon Oct 29 19:38:35 EDT 2007


Benjamin Ducke wrote:

> I am compiling using MinGW 5.1.3 (GCC 3.4.2 and Make 3.79)
> on Windows 2000 in an MSYS 1.0.11 shell.
> I know that there are some problems with the GRASS
> Makefiles and Make < 3.81.
> 
> For example, it fails parsing lib/form/Makefile because
> it cannot interpret the "¦" correctly.

[It's actually a "|" (bar) rather than a "¦" (brokenbar).]

> Make 3.81 can handle the pipe correctly. However, it fails
> miserably with plenty of error messages about not being
> able to find some path, mostly like this:
> 
> process_begin: CreateProcess(NULL, /bin/install -c -m 644
> html_library_grass.tcl
> /src/grass6/dist.i686-pc-mingw32/etc/form/html_library.tcl, ...) failed.
> make (e=3): System cannot find the path specified.
> make: *** [/src/grass6/dist.i686-pc-mingw32/etc/form/html_library.tcl]
> Error 3

Does the etc/form directory actually exist? lib/form/Makefile relies
upon an order-only dependency (which uses the bar) to create that
directory:

$(FORMDIR):
	if [ ! -d $@ ]; then $(MKDIR) $@; fi

$(HTMLLIB): html_library_grass.tcl | $(FORMDIR)
	$(INSTALL_DATA) $< $@

Does the mkdir command ever get executed?

> There are other, equally idiotic error messages.

Is there any common factor?

The one related to lib/form appears to be yet another issue with
order-only dependencies. IOW, neither of MinGW's make ports support
them.

Unfortunately, it's starting to look as if the only solution which
will work with both parallel make and any MinGW make port is to
unconditionally create the output directory every time.

> The worst thing is that I can't kill it with CTRL+C.
> It spans multiple instances and keeps coming back up.
> What a nuisance.

I don't think there's a solution to that; Windows doesn't have process
groups.

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




More information about the grass-dev mailing list