[GRASSLIST:4939] gmake5 woes

Today I recompiled the GRASS sources with the new Tcl/Tk 8.4 and libpng2, but had to revert to Tcl/Tk 8.3 due a to NVIZ compile error, and now gmake5 doesn't make good post-compile modules. wish and related symlinks seem to be pointing back to tcl8.3 versions, and this was done before I compiled the main package.

Not trusting 'make distclean', I uninstalled and started afresh from the .tar.gz package, which goes fine, and I can reinstall and run grass without problems. If I throw my modified module in the source tree before starting, it makes it in and everything works fine.

However, if I later compile a modified module with gmake5, and then copy the new binary to /usr/local/grass5/bin/ (with grass running), strange things start happening.

Specifically, within grass, ANY binary grass module I run will execute my new module, but if I pass the 'help' option, the 'Usage:' line lists the name of the module I tried to run with the rest of the help screen from my module. The only thing that works properly is the new module (which is your only option anyway..).

If I copy back the old binary version of the module from the full compile, everything magically goes back to normal. All this happens even if I never invoke my module during the grass session, which strikes me as odd.

This method of using gmake5 worked fine before the recompile, and it all works fine if I recompile the whole thing with my new module. gmake5 just seems to be linking against the wrong library somehow? could there be a .rc file somewhere that has a bad entry?? Corrupted memory?

The only other thing I changed (that I can think of) was adding -march=pentiumpro to the compile flags.

any ideas?

I'm running Debian/Sarge GNU/Linux 2.4.19, i686, and GRASS 5.0.0.

H. Bowman wrote:

Today I recompiled the GRASS sources with the new Tcl/Tk 8.4 and libpng2,
but had to revert to Tcl/Tk 8.3 due a to NVIZ compile error, and now
gmake5 doesn't make good post-compile modules.
wish and related symlinks seem to be pointing back to tcl8.3 versions, and
this was done before I compiled the main package.

Not trusting 'make distclean', I uninstalled and started afresh from the
.tar.gz package, which goes fine, and I can reinstall and run grass
without problems. If I throw my modified module in the source tree before
starting, it makes it in and everything works fine.

Notes:

1. If you make any changes to the development environment (libraries,
header files, compilers etc), you need to re-run "configure".

2. There is also "make maintainer-clean", which does a bit more than
"make distclean".

However, if I later compile a modified module with gmake5, and then copy
the new binary to /usr/local/grass5/bin/ (with grass running), strange
things start happening.

I bet they do :wink:

The actual modules go into $GISBASE/etc/bin/cmd or
$GISBASE/etc/bin/inter. Nearly everything in $GISBASE/bin is actually
a hard link to $GISBASE/etc/front.end.

This program runs the appropriate module from either
$GISBASE/etc/bin/cmd or $GISBASE/etc/bin/inter; if no arguments were
given and an "inter" version exists, that is run, otherwise the "cmd"
version is run.

Specifically, within grass, ANY binary grass module I run will execute my
new module, but if I pass the 'help' option, the 'Usage:' line lists the
name of the module I tried to run with the rest of the help screen from my
module. The only thing that works properly is the new module (which is
your only option anyway..).

You have overwritten $GISBASE/etc/front.end with your program; you
should re-install GRASS with "make install".

--
Glynn Clements <glynn.clements@virgin.net>