[GRASS5] Severe (simple to fix?) problem with current GRASS
Eric G . Miller
egm2 at jps.net
Wed Jan 10 23:47:29 EST 2001
On Wed, Jan 10, 2001 at 06:21:07PM +0000, Markus Neteler wrote:
> Hi all,
>
> after changing all Gmakefiles I have seen that
> GRASS doesn't start any more :-)
>
> ERROR: program 'g.gisenv' cannot be executed because:
>
> Neither a command line (cmd) or interactive (inter) version was found
> in any of the main, alpha, or contrib directories.
>
> This should be simple to fix as the
> src/front.end/main.c
>
> needs to be updated to reflect the removed main, alpha, or contrib
> directories (real_path variable). However, I can't manage this...
> Sorry, expert wanted. generally it should be simple to fix (I got
> lost with all the pointers and lists there).
Before fixing this problem. Should we consider maybe eliminating it?
The only programs it really serves a purpose for are shell scripts and
compiled programs that have not yet implemented a G_parser() interface.
I would suggest we consider just putting the executables in grass5/bin
directly and try to avoid some of these convoluted pathways (and weak
links) to the programs. Undoubtedly I haven't considered something.
But I wanted to make the suggestion anyway.
The README says:
----------------------------------------------------
This program is to decide if it should run
etc/interactive programs or etc/command programs.
It should live in etc/front.end and be linked to
names in bin that have programs/shell scripts in
etc/interactive and etc/command of the same name:
ln etc/front.end bin/window
for etc/command/window and etc/interactive/window
When user runs window, this executes etc/front.end
but argv[0] will have the name "window", which
front.end will use to build the two program names
etc/interactive/window and etc/command/window.
---------------------------------------------------
But, generally we have been eliminating this distinction between
interactive and command scripts. It's easy enough for an interactive
only program to do something like:
--------------------------------------
if (argc > 1)
{
G_fatal_error ("This program must be run interactively.");
}
--------------------------------------
or probably better (even though it's more code...)
--------------------------------------
struct GModule *mod;
G_gisinit(argv[0]);
mod = G_define_module();
mod->description = "pgm -- do xyz interactive thing." ;
/* No options */
if(!G_parser())
exit(-1);
if (!isatty())
G_fatal_error ("This program must be run interactively!");
--------------------------------------
--
Eric G. Miller <egm2 at jps.net>
----------------------------------------
If you want to unsubscribe from GRASS Development Team mailing list write to:
minordomo at geog.uni-hannover.de with
subject 'unsubscribe grass5'
More information about the grass-dev
mailing list