On Jul 26, 2008, at 8:26 PM, Michael Barton wrote:
AFAICT, the only things of TclTk that actually get into the Mac
binary for GRASS proper are the ancient BWidgets folder, which goes
into all GRASS distributions, a copy of tclsh8.4 that doesn't seem
to get used for anything, and copies of wish. Currently, my GRASS 7
binary, using TclTk aqua 8.5 has wish8.5 and wish8.4; GRASS_WISH is
set to one or the other of these by grass.sh in $GISBASE. If I put
in the x11 version of wish8.4 and change the settings for GRASS_WISH
in grass.sh, I can get an x11 version of the GUI.
There are tcl and tk directories in in %GISBASE/lib, along with
libtcl8.4.dylib and libtk8.4.dylib. There are also some tcltk *.h
files in $GISBASE/include. AFAICT, these are complete unused at
least on my Mac. I can throw them away with no effect, regardless of
whether I switch to wish 8.5 aqua or 8.4 x11. Are these used by any
other system? While my aqua version of TclTk 8.5 is visible to my
system, 8.4 for x11 is hidden away in /usr/local/tcltk and not in my
path--in GRASS or outside of it. So I don't see how GRASS can find
any files in that directory.
This is all from my OSX app default bundling, which I'm thinking about
how to simplify, considering Glynn's comments and the new
compatibility with Tcltk 8.5 and Tcltk Aqua.
In sum, the GRASS TclTk GUI seems to ONLY need wish of one flavor or
another to run. So all that is needed is to include all 3 wish
versions, default to one and have a Mac script that will let the
user change to another one if desired. This is easy for all of GRASS
except NVIZ.
As a compile & install on a single system, really no bundling of tcltk
is needed. I'll probably drop that from the OSX app makefile.
For packaging for distribution, I'll leave it up to the packager,
using the bundle.make fragment.
NVIZ seems to use its own version of wish that must be coded into a
C module somewhere. I certainly can't find it. But must be finding
wish somewhere. If that path could be redirected to whatever
GRASS_WISH is, then both GRASS and NVIZ could be in sync. The only
fly in this ointment would be if Togl must have the same version of
wish available (somewhere) that it was compiled against AND needs
other TclTk files in addition to wish.
That's probably some application API thing in tcltk. NVIZ just needs
the tcl and tk libraries that it was compiled with.
-----
William Kyngesburye <kyngchaos*at*kyngchaos*dot*com>
http://www.kyngchaos.com/
All generalizations are dangerous, even this one.
_______________________________________________
grass-dev mailing list
grass-dev@lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/grass-dev