Hello Bob
I don't have time to look in detail at a better way of doing this for now but just to point out that it won't work on Native Windows GRASS for 3 reasons (indeed I can confirm that the "start NVIZ with these display settings" button in gis.m now reports that it can't find nviz....):
1. It needs a shell script interpreter (e.g. Msys) - I'm trying to get WinGRASS so that as much of it as possible runs without shell scripting availability. Nviz was included in that up to now.
2. The Msys exec command uses Msys paths (i.e. starting like
/c/grass/grass6) while $GISBASE will be a Windows-style path with forward slashes (i.e. like c:/grass/grass6) and Msys will try and interpret this as relevant to its installation directory, and fail.
3. To run scripts at all from gis.m they need to have a .bat, .com or .exe ending (this is a bug/feature in Tcl). If you use the proper "script" Makefile rule to install the script in the scripts directory then it will also create a .bat wrapper script in the bin directory to call the original script using the user's preferred interpreter (most likely Msys bash), but this isn't happening here.
Yes the gis.m startup script doesn't work either but it only needs to be called once at the start and I have instead been starting gm.tcl directly from a Windows batch file.
An idea I did have though, was to allow each script directory to, if contributed, have both bourne shell and Windows batch versions. If the batch version was there it would then get installed on Windows in preference to creating a batch wrapper script that invoked the bourne shell interpreter on the original script (as at present).
But there's a lot of issues there and as I said am a wee bit too busy to get stuck into any of them right now.
Paul
On Mon, 11 Dec 2006, Bob Covill wrote:
Hello,
I have updated NVIZ so that it is now started via a script (still called
nviz). This update should improve the TCL error catching of NVIZ. TCL
errors should now be printed to stderr. The previous version would hang
or dump the user out without any indication of the TCL error causing the
problem.
The un-installed script can be found in nviz/scripts. Please check it
out and see if any improvements can be made.
This update also includes modifications to the nviz Makefile. The script
is currently being installed in $GISBASE/bin, but it should probably be
installed in $GISBASE/scripts. Unfortunately I do not know how to remove
the old nviz in $GISBASE/bin before installing the script in
$GISBASE/scripts. There is also a couple lines in Makefile to handle
moving the binary nvwish to $GISBASE/etc/nviz2.2/. Please check this
section to ensure that is is correct (particularly Windows developers).
You can put $(EXE) at the end of an executable file name in a GRASS Makefile. It will be empty on Unix and contain ".exe" on Windows. You are better using $(INSTALL) here as well instead of mv I think.
--
Bob
_______________________________________________
grass-dev mailing list
grass-dev@grass.itc.it
http://grass.itc.it/mailman/listinfo/grass-dev