[GRASS5] 5.0.0pre1 on mac osx

Howdy all:

I decided to go ahead an try to compile yesterday's cvs snapshot on Mac OS X (10.0.1) and had my first successful GRASS compile ever! -- I'm now 1 for 25. (Well, a few modules noted below didn't compile).

I can't get tcltkgrass, d.mon via sockets, nor nviz to fly.

- GRASS 5.0.0pre1 > /usr/local/grass5/bin/tcltkgrass: command not found: wish [3]

- d.mon start=x0
  Error: could not execute '/usr/local/grass5/driver/XDRIVER'
  No socket to connect to for monitor <x0>

- nviz2.2: Command not found

From the compile error log:

Compilation error in module: src/display/devices/XDRIVER (ignored)
Compilation error in module: src/display/d.colors (ignored)
Compilation error in module: src/display/d.scale (ignored)
Compilation error in module: src/imagery/i.class (ignored)
Compilation error in module: src/imagery/i.ortho.photo (ignored)
Compilation error in module: src/imagery/i.points (ignored)
Compilation error in module: src/imagery/i.points3 (ignored)
Compilation error in module: src/imagery/i.vpoints (ignored)
Compilation error in module: src/raster/r.in.gdal (ignored)
Compilation error in module: src/raster/r.in.png (ignored)
Compilation error in module: src/raster/r.out.png (ignored)
Compilation error in module: src/raster/r.tiff (ignored)
Compilation error in module: src.contrib/GMSL/NVIZ2.2 (ignored)

since XDRIVER and NVIZ2.2 weren't compiled, obviously they won't work. How do I begin to troubleshoot this? Try gmake on them?

Thanks,
Andy Agena

---------------------------------------- If you want to unsubscribe from GRASS Development Team mailing list write to:
minordomo@geog.uni-hannover.de with
subject 'unsubscribe grass5'

Andy,

Congrats on your near success.

Probably the most serious problem is getting the graphics driver working. Do you
know if your system supports sockets? (I think most do, but maybe there are some
functions used that Max OS X doesn't support. Or possibly, some of the X
functions aren't supported. To check this, go to src/display/devices/lib and
src/display/devices/XDRIVER and do a gmake5. You should probably save the output
from this, so redirect it into a file, like so

gmake5 > gmake5.out 2>&1

This will save all of the messages from the make. If gmake5 isn't installed into
a directory in your path, you can either add it or use the full pathname
(/usr/local/bin/gmake5). Check out the error messages from the output file to
see what the trouble is. If you have trouble with the errors, you can copy part
of the output file into you next email, to let people see what's happening.

There are a few things to check. For tcltkgrass and NVIZ2.2 you need tcl8.0 and
tk8.0 (or higher). wish is from tk installation. NVIZ also needs Open GL of
some sort (either the SGI implementation or a clone like MESA).

For tcl/tk, look for tcl.h, tk.h in places like /usr/include or
/usr/local/include. Sometimes these are placed in different spots, so do a find
if there are not in the standard spots. Also look for libraries named tcl8.*.a
or tcl8.*.so and tk8.*.a or tk8.*.so. wish should be in /bin, /usr/bin or
/usr/local/bin, but it may be called wish8.*. Note that 8.0 and 8.3 are commonly
available now.

GL libraries and includes should be under the X11 path, in something like
/usr/X11R6/lib and /usr/X11R6/include/GL or /usr/X11/lib and
/usr/X11/include/GL. Check one of the Mac OS X sites, to see if others have this
available.

Quite possibly these aren't included in Mac OSX, but there should be versions
available by now. Try http://www.scriptics.com/products/tcltk for tcl/tk.
There may only be sources available for now.

It looks like a bunch of other libraries aren't available on your system, like
tiff, png, etc. These are available on the web as well.

I suspect other Mac OS X users can point you to sources for these.

Good luck,

Malcolm

andy agena wrote:

Howdy all:

I decided to go ahead an try to compile yesterday's cvs snapshot on Mac
OS X (10.0.1) and had my first successful GRASS compile ever! -- I'm now
1 for 25. (Well, a few modules noted below didn't compile).

I can't get tcltkgrass, d.mon via sockets, nor nviz to fly.

- GRASS 5.0.0pre1 > /usr/local/grass5/bin/tcltkgrass: command not
found: wish [3]

- d.mon start=x0
        Error: could not execute '/usr/local/grass5/driver/XDRIVER'
        No socket to connect to for monitor <x0>

- nviz2.2: Command not found

From the compile error log:

Compilation error in module: src/display/devices/XDRIVER (ignored)
Compilation error in module: src/display/d.colors (ignored)
Compilation error in module: src/display/d.scale (ignored)
Compilation error in module: src/imagery/i.class (ignored)
Compilation error in module: src/imagery/i.ortho.photo (ignored)
Compilation error in module: src/imagery/i.points (ignored)
Compilation error in module: src/imagery/i.points3 (ignored)
Compilation error in module: src/imagery/i.vpoints (ignored)
Compilation error in module: src/raster/r.in.gdal (ignored)
Compilation error in module: src/raster/r.in.png (ignored)
Compilation error in module: src/raster/r.out.png (ignored)
Compilation error in module: src/raster/r.tiff (ignored)
Compilation error in module: src.contrib/GMSL/NVIZ2.2 (ignored)

since XDRIVER and NVIZ2.2 weren't compiled, obviously they won't work.
How do I begin to troubleshoot this? Try gmake on them?

Thanks,
Andy Agena

----------------------------------------
If you want to unsubscribe from GRASS Development Team mailing list write to:
minordomo@geog.uni-hannover.de with
subject 'unsubscribe grass5'

----------------------------------------
If you want to unsubscribe from GRASS Development Team mailing list write to:
minordomo@geog.uni-hannover.de with
subject 'unsubscribe grass5'

Hi Malcom:

gmake5 > gmake5.out 2>&1

the lib gmake seems fine:

make: Nothing to be done for `all'

however, the XDRIVER had the following:

/usr/bin/ld: Undefined symbols:
__XErrorFunction
__XIOErrorFunction
__Xdebug

I did a strings on ld, and they weren't in the file (should i add 'of course'?).

For tcl/tk, look for tcl.h, tk.h in places like /usr/include or
/usr/local/include. Sometimes these are placed in different spots, so do a find
if there are not in the standard spots. Also look for libraries named tcl8.*.a
or tcl8.*.so and tk8.*.a or tk8.*.so. wish should be in /bin, /usr/bin or
/usr/local/bin, but it may be called wish8.*. Note that 8.0 and 8.3 are commonly
available now.

  i unwrapped the Jeshua's OS X tcl/tk tarballs again and there's no sign of tcl.h nor tk.h being installed. libtcl8.0.a. libtk8.0.a, tk8.0, and tcl8.0 (and libtiff.a) are in /usr/local/lib, which I've since added to my PATH.

my wish8.0 is in /usr/local/bin, which was already in my PATH.

GL libraries and includes should be under the X11 path, in something like
/usr/X11R6/lib and /usr/X11R6/include/GL or /usr/X11/lib and
/usr/X11/include/GL. Check one of the Mac OS X sites, to see if others have this
available.

I have libGL.a and libGLw.a in /usr/X11R6/lib, plus a bunch of GL* in /usr/X11R6/include/GL

Thanks,
Andy

---------------------------------------- If you want to unsubscribe from GRASS Development Team mailing list write to:
minordomo@geog.uni-hannover.de with
subject 'unsubscribe grass5'

Andy,

OK, looks like you're close.

andy agena wrote:

Hi Malcom:

> gmake5 > gmake5.out 2>&1

the lib gmake seems fine:

make: Nothing to be done for `all'

however, the XDRIVER had the following:

/usr/bin/ld: Undefined symbols:
__XErrorFunction
__XIOErrorFunction
__Xdebug

These should be in libX11.a. (I'm assuming static libraries here.) Check for
them elsewhere, in /usr/X11R6/lib do a 'grep XErrorFunction *.a'. It should
report some file matches, if these are defined. If so, do a strings on the file
that is reported and pipe to 'grep ErrorFunction' ( strings foo.a | grep
ErrorFunction). Look for close mismatches. Also, grep for these strings in
/usr/X11R6/include and /usr/X11R6/include/X11 header files. Maybe they are
redefined. If you find libraries that have these check in your gmake5 output
file to see if the libraries needed are on the line creating XDRIVER. If they
are redefined in an include file, you may need to add the #include statement in
the source file.

I did a strings on ld, and they weren't in the file (should i add 'of
course'?).

> For tcl/tk, look for tcl.h, tk.h in places like /usr/include or
> /usr/local/include. Sometimes these are placed in different spots, so
> do a find
> if there are not in the standard spots. Also look for libraries named
> tcl8.*.a
> or tcl8.*.so and tk8.*.a or tk8.*.so. wish should be in /bin, /usr/bin
> or
> /usr/local/bin, but it may be called wish8.*. Note that 8.0 and 8.3
> are commonly
> available now.

  i unwrapped the Jeshua's OS X tcl/tk tarballs again and there's no
sign of tcl.h nor tk.h being installed. libtcl8.0.a. libtk8.0.a, tk8.0,
and tcl8.0 (and libtiff.a) are in /usr/local/lib, which I've since added
to my PATH.

To recompile, you will need the headers. Look for other tcl*.h or tk*.h files.
These can be obtained from various sites, but they should match the version of
the libraries that you have (i.e. 8.0.3, 8.0.5, etc.). There are small
differences in some of the versions. Based on where you found the libraries,
look for something in /usr/local/include. If you still can't find them, these
can be provided. Until you get the XDRIVER working, the tcltkgrass won't be as
much fun, so fix this later.

For the lib files, you don't need these in your path, you need to tell gmake5 to
use them. To do that, look at the file in src/CMD/head/ that matches your system
architecture. For cygwin it looks like src/CMD/head/head.i686-pc-cygwin. It
should match the architecture that you are using, like the bin.** and dist.**
directories that were created by install. The tcl/tk lines should look like the
lines in my head file here:

#tcl/tk stuff
TCLINCDIR = -I/usr/local/include
TKINCDIR = -I/usr/local/include
TCLTKLIBPATH = -L/usr/local/lib
TCLTKLIBS = -ltk8.0 -ltcl8.0

my wish8.0 is in /usr/local/bin, which was already in my PATH.

Create a link to this file. (cd to /usr/local/bin and do 'ln -s wish8.0 wish')

> GL libraries and includes should be under the X11 path, in something
> like
> /usr/X11R6/lib and /usr/X11R6/include/GL or /usr/X11/lib and
> /usr/X11/include/GL. Check one of the Mac OS X sites, to see if others
> have this
> available.

I have libGL.a and libGLw.a in /usr/X11R6/lib, plus a bunch of GL* in
/usr/X11R6/include/GL

Check to see if these were found by configure. Look at the head file again and
you should have something like:
#openGL files for NVIZ/r3.showdspf
OPENGLINC = -I/usr/X11R6/include
OPENGLwINC = -I/usr/X11R6/include
OPENGLLIB = -L/usr/X11R6/lib -lGL
OPENGLULIB = -L/usr/X11R6/lib -lGLU

There may be differences, but as long as they match where you found the files on
your system, then leave them as is. If there are obvious differences, then you
might have to tweak them to match your system.

While you're checking out the head.* file, look to see if the lines for includes
and libs for tiff, jpeg, png and zlib were defined. If so, look to see if they
match similar include files and libraries (e.g. tiff.h and libtiff.a, etc.)

Thanks,
Andy

----------------------------------------
If you want to unsubscribe from GRASS Development Team mailing list write to:
minordomo@geog.uni-hannover.de with
subject 'unsubscribe grass5'

----------------------------------------
If you want to unsubscribe from GRASS Development Team mailing list write to:
minordomo@geog.uni-hannover.de with
subject 'unsubscribe grass5'

On Tuesday, April 24, 2001, at 05:17 PM, andy agena wrote:

For tcl/tk, look for tcl.h, tk.h in places like /usr/include or
/usr/local/include. Sometimes these are placed in different spots, so do a find
if there are not in the standard spots. Also look for libraries named tcl8.*.a
or tcl8.*.so and tk8.*.a or tk8.*.so. wish should be in /bin, /usr/bin or
/usr/local/bin, but it may be called wish8.*. Note that 8.0 and 8.3 are commonly
available now.

i unwrapped the Jeshua's OS X tcl/tk tarballs again and there's no sign of tcl.h nor tk.h being installed. libtcl8.0.a. libtk8.0.a, tk8.0, and tcl8.0 (and libtiff.a) are in /usr/local/lib, which I've since added to my PATH.

my wish8.0 is in /usr/local/bin, which was already in my PATH.

Hi Andy,

That's because the tarball is just the binaries need to run, not compile the GUI.

You must download Tcl/Tk and compile those libraries.

Cheers,

Jeshua Lacock
Cartographer/Owner
http://SierraMaps.com
http://3dTopoMaps.com
Telephone: (760) 935-4481

---------------------------------------- If you want to unsubscribe from GRASS Development Team mailing list write to:
minordomo@geog.uni-hannover.de with
subject 'unsubscribe grass5'

andy agena wrote:

> gmake5 > gmake5.out 2>&1

the lib gmake seems fine:

make: Nothing to be done for `all'

however, the XDRIVER had the following:

/usr/bin/ld: Undefined symbols:
__XErrorFunction
__XIOErrorFunction
__Xdebug

I did a strings on ld, and they weren't in the file (should i add 'of
course'?).

They wouldn't be in "ld"; that's just the linker.

These symbols (or something like them) should exist in libX11. My
libX11 (XFree86 4.0.2) has these symbols in the BSS segment (global
variables which are implicitly initialised to zero), but with only one
leading underscore (most symbols have none). "nm /usr/X11/lib/libX11.so"
says:

  000deec4 B _XErrorFunction
  ...
  000deecc B _XIOErrorFunction
  ...
  000deed4 B _Xdebug

However, XDRIVER doesn't include any explicit reference to these
symbols.

Have you been able to successfully compile any other X applications?

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

----------------------------------------
If you want to unsubscribe from GRASS Development Team mailing list write to:
minordomo@geog.uni-hannover.de with
subject 'unsubscribe grass5'

Perhaps best to call it a Darwin compile so people don't get the wrong impression.

----------------------------------------
If you want to unsubscribe from GRASS Development Team mailing list write to:
minordomo@geog.uni-hannover.de with
subject 'unsubscribe grass5'

hey strobe:

your point is understood; for the record:

[localhost:x11r6/lib/x11] root# uname -a
Darwin localhost 1.3 Darwin Kernel Version 1.3: Fri Mar 30 20:45:03 PST 2001; root:xnu/xnu-124.1.obj~1/RELEASE_PPC Power Macintosh powerpc

andy a.

Perhaps best to call it a Darwin compile so people don't get the wrong impression.

---------------------------------------- If you want to unsubscribe from GRASS Development Team mailing list write to:
minordomo@geog.uni-hannover.de with
subject 'unsubscribe grass5'

On Wed, Apr 25, 2001 at 10:32:35AM -0500, andy agena wrote:

hey strobe:

your point is understood; for the record:

[localhost:x11r6/lib/x11] root# uname -a
Darwin localhost 1.3 Darwin Kernel Version 1.3: Fri Mar 30 20:45:03 PST
2001; root:xnu/xnu-124.1.obj~1/RELEASE_PPC Power Macintosh powerpc

andy a.

> Perhaps best to call it a Darwin compile so people don't get the wrong
> impression.

Shall we add such a hint to the web pages (where)?

Markus

----------------------------------------
If you want to unsubscribe from GRASS Development Team mailing list write to:
minordomo@geog.uni-hannover.de with
subject 'unsubscribe grass5'

Hi Malcom:

i got a late start today, sorry for the delay in replying. i really appreciate the time you're taking to help me out.

/usr/bin/ld: Undefined symbols:
__XErrorFunction
__XIOErrorFunction
__Xdebug

These should be in libX11.a. (I'm assuming static libraries here.) Check for
them elsewhere, in /usr/X11R6/lib do a 'grep XErrorFunction *.a'. It should
report some file matches, if these are defined. If so, do a strings on the file
that is reported and pipe to 'grep ErrorFunction' ( strings foo.a | grep
ErrorFunction). Look for close mismatches. Also, grep for these strings in
/usr/X11R6/include and /usr/X11R6/include/X11 header files. Maybe they are
redefined. If you find libraries that have these check in your gmake5 output
file to see if the libraries needed are on the line creating XDRIVER. If they
are redefined in an include file, you may need to add the #include statement in
the source file.

This part doesn't make sense to me; the first grep turns up the three files using "ErrorFunction", yet strings on these files doesn't show it (so I tried grep'ing just Error):

[localhost:/usr/x11r6/include] root# grep ErrorFunction *.a
grep: No match.

[localhost:/usr/x11r6/lib] root# grep ErrorFunction *.a
Binary file libFS.a matches
Binary file libX11.a matches
Binary file libXext.a matches

[localhost:/usr/x11r6/lib] root# strings libX11.a | grep ErrorFunction
[localhost:/usr/x11r6/lib] root#

[localhost:/usr/x11r6/lib] root# strings libX11.a | grep Error
Error parsing argument "%s" (%s); %s
XProtoError
/usr/X11R6/lib/X11/XErrorDB
ErrorType.ErrorNumber
XError
X Error
ErrorSerial
Error Serial #%d

[localhost:/usr/x11r6/lib] root# strings libFS.a | grep Error
FSProtoError
FSError
FS Error
ErrorSerial
Error Serial #%d

[localhost:/usr/x11r6/lib] root# strings libXext.a | grep Error
XProtoError

To recompile, you will need the headers. Look for other tcl*.h or tk*.h files.
These can be obtained from various sites, but they should match the version of
the libraries that you have (i.e. 8.0.3, 8.0.5, etc.).

I did a search a google and found a bunch of dead links and www.opensource.apple.com keeps timing out.

Jeshua: do you mind popping your tcl/tk .h into a tarball and zapping them to me?

What puzzles me about these *.h files is that I had the grass 5beta11 running before with Jeshua's tcltk tarballs (bin and lib). Perhaps apple had included them with the public beta, but removed them in the 1.0 release.

There are small
differences in some of the versions. Based on where you found the libraries,
look for something in /usr/local/include. If you still can't find them, these
can be provided. Until you get the XDRIVER working, the tcltkgrass won't be as
much fun, so fix this later.

For the lib files, you don't need these in your path, you need to tell gmake5 to
use them. To do that, look at the file in src/CMD/head/ that matches your system
architecture. For cygwin it looks like src/CMD/head/head.i686-pc-cygwin. It
should match the architecture that you are using, like the bin.** and dist.**
directories that were created by install. The tcl/tk lines should look like the
lines in my head file here:

#tcl/tk stuff
TCLINCDIR = -I/usr/local/include
TKINCDIR = -I/usr/local/include
TCLTKLIBPATH = -L/usr/local/lib
TCLTKLIBS = -ltk8.0 -ltcl8.0

the culprits:

PNGLIB = -L/usr/local/lib -L/usr/X11R6/lib -L/usr/lib

#JPEGINCPATH = -I/usr/X11R6/include/ -I/usr/include/gr -I/usr/local/include -I/usr/include
#JPEGLIBPATH = -L/usr/local/lib -L/usr/X11R6/lib -L/usr/lib
JPEGINCPATH =
JPEGLIBPATH =
JPEGLIB =

TIFFINCPATH =
TIFFLIBPATH = -L/usr/local/lib

#tcl/tk stuff
TCLINCDIR =
TKINCDIR =
TCLTKLIBPATH =
TCLTKLIBS =

my setup:

[localhost:/usr/local/lib] root# ls
.DS_Store libtiff.a libz.a php.ini tk8.0
libpng.a libtk8.0.a mysql tcl8.0 tkConfig.sh
libtcl8.0.a libwrap.a php tclConfig.sh

Should I add "-I/usr/local/lib" for tcltk, png, and tiff (still haven't tracked down the jpeg file) and 'make' again?

my wish8.0 is in /usr/local/bin, which was already in my PATH.

Create a link to this file. (cd to /usr/local/bin and do 'ln -s wish8.0 wish')

creating the link got rid of the tcltk error, now its just:

GRASS 5.0.0pre1 > tcltkgrass &
[1] 486

GL libraries and includes should be under the X11 path, in something
like
/usr/X11R6/lib and /usr/X11R6/include/GL or /usr/X11/lib and
/usr/X11/include/GL. Check one of the Mac OS X sites, to see if others
have this
available...

I have libGL.a and libGLw.a in /usr/X11R6/lib, plus a bunch of GL* in
/usr/X11R6/include/GL

Check to see if these were found by configure. Look at the head file

from my head.* file:

#openGL files for NVIZ/r3.showdspf
OPENGLINC = -I/usr/X11R6/include -I/usr/X11r6/include
OPENGLwINC = -I/usr/X11R6/include -I/usr/X11r6/include
OPENGLLIB = -L/usr/lib -L/usr/local/lib -L/usr/X11R6/lib -L/usr/X11r6/lib -lGL
OPENGLULIB =
LGLWM =
OPENGL32 =

my setup:

[localhost:x11r6/include/gl] root# pwd
/usr/X11R6/include/GL
[localhost:x11r6/include/gl] root# ls
GLwDrawA.h GLwMDrawA.h gl.h glx.h glxtokens.h
GLwDrawAP.h GLwMDrawAP.h glext.h glxint.h osmesa.h

Should I add "/GL" at the end of the head.* for this one?

Thanks,
Andy

---------------------------------------- If you want to unsubscribe from GRASS Development Team mailing list write to:
minordomo@geog.uni-hannover.de with
subject 'unsubscribe grass5'

On Wednesday, April 25, 2001, at 09:59 AM, andy agena wrote:

To recompile, you will need the headers. Look for other tcl*.h or tk*.h files.
These can be obtained from various sites, but they should match the version of
the libraries that you have (i.e. 8.0.3, 8.0.5, etc.).

I did a search a google and found a bunch of dead links and www.opensource.apple.com keeps timing out.

Jeshua: do you mind popping your tcl/tk .h into a tarball and zapping them to me?

Andy,

I think you are best off installing the complete tcl/tk libraries then me tarring the .h files for you. Not to mention I will not be able to email them to you for a few days as my machine with all the libraries is tied up running OS 9.1....

I would give you the URL if I had it handy somewhere.

What puzzles me about these *.h files is that I had the grass 5beta11 running before with Jeshua's tcltk tarballs (bin and lib). Perhaps apple had included them with the public beta, but removed them in the 1.0 release.

You never had the .h files nor did you need them before. You did not compile beta 11 did you? Again, the .h files are needed to _compile_ they are not needed to _execute_ the binaries.

Regards,

---------------------------------------- If you want to unsubscribe from GRASS Development Team mailing list write to:
minordomo@geog.uni-hannover.de with
subject 'unsubscribe grass5'

Hello again,

andy agena wrote:

Hi Malcom:

i got a late start today, sorry for the delay in replying. i really
appreciate the time you're taking to help me out.

>> /usr/bin/ld: Undefined symbols:
>> __XErrorFunction
>> __XIOErrorFunction
>> __Xdebug
>>

This part doesn't make sense to me; the first grep turns up the three
files using "ErrorFunction", yet strings on these files doesn't show it
(so I tried grep'ing just Error):

[localhost:/usr/x11r6/include] root# grep ErrorFunction *.a
grep: No match.

Sorry. I wasn't clear here. In /usr/X11R6/include you should do 'grep
ErrorFunction *.h' This should find out if the ErrorFunction symbols are
redefined. Also, do 'grep Xdebug *.h'.

[localhost:/usr/x11r6/lib] root# grep ErrorFunction *.a

<snip>

[localhost:/usr/x11r6/lib] root# strings libXext.a | grep Error
XProtoError

These results seem strange. The symbols that ld can't find should be coming from
here. The XDRIVER code doesn't call these routines, or define the variables, so
they must be in the header files in /usr/X11R6/include and in libraries that are
being used. Hopefully the grep (above) will find out how they are declared.
These symbols should be in libX11.a, but perhaps they are defined differently
through the include files. I was expecting to see that they only had one leading
underscore, rather than 2. We can do the same thing a different way.

Check to see if your system has the nm utility. Do 'nm -s libX11.a'. This
should produce a lot of output on the symbols. To use this, I pipe to less like
'nm -s libX11.a | less'. Then you can find the string, using the find operator in
less (/). Once in less do '/ErrorFunction'. This should find the
__XIOErrorFunction and __XErrorFunction symbols. Or you can pipe to grep like
'nm -s libX11.a | grep ErrorFunction'.

You can do the same thing with libXext.a.

>

Jeshua: do you mind popping your tcl/tk .h into a tarball and zapping
them to me?

What puzzles me about these *.h files is that I had the grass 5beta11
running before with Jeshua's tcltk tarballs (bin and lib). Perhaps
apple had included them with the public beta, but removed them in the
1.0 release.

The tcl.h and tk.h are only needed to compile NVIZ. They aren't needed to run
tcltkgrass or NVIZ.

the culprits:

PNGLIB = -L/usr/local/lib -L/usr/X11R6/lib -L/usr/lib

#JPEGINCPATH = -I/usr/X11R6/include/ -I/usr/include/gr
-I/usr/local/include -I/usr/include
#JPEGLIBPATH = -L/usr/local/lib -L/usr/X11R6/lib -L/usr/lib
JPEGINCPATH =
JPEGLIBPATH =
JPEGLIB =

TIFFINCPATH =
TIFFLIBPATH = -L/usr/local/lib

#tcl/tk stuff
TCLINCDIR =
TKINCDIR =
TCLTKLIBPATH =
TCLTKLIBS =

my setup:

[localhost:/usr/local/lib] root# ls
.DS_Store libtiff.a libz.a php.ini tk8.0
libpng.a libtk8.0.a mysql tcl8.0 tkConfig.sh
libtcl8.0.a libwrap.a php tclConfig.sh

Should I add "-I/usr/local/lib" for tcltk, png, and tiff (still haven't
tracked down the jpeg file) and 'make' again?

Tiff and png are probably OK, but to be safe, you could add -I/usr/local/include
to the include files (INC or INCPATH) and -L/usr/local/lib to the library lines
(LIB and LIBPATH), like this:

#Image formats:
PNGINC = -I/usr/local/include -I/usr/include
PNGLIB = -L/usr/local/lib -L/usr/lib

TIFFINCPATH = -I/usr/local/include
TIFFLIBPATH = -L/usr/local/lib

Check to see that the header files are in /usr/local/include. You should find
tiff.h and png.h there, these are the include (or header) files. Once you get
the *.h files from Jeshua, you can do the same for the TCL/TK lines.

>>
>> my wish8.0 is in /usr/local/bin, which was already in my PATH.
>
> Create a link to this file. (cd to /usr/local/bin and do 'ln -s
> wish8.0 wish')

creating the link got rid of the tcltk error, now its just:

GRASS 5.0.0pre1 > tcltkgrass &
[1] 486

Did the tcltkgrass menu's start up here? This should start the GUI. You will
know when it starts.

>>
>>> GL libraries and includes should be under the X11 path, in something
>>> like
>>> /usr/X11R6/lib and /usr/X11R6/include/GL or /usr/X11/lib and
>>> /usr/X11/include/GL. Check one of the Mac OS X sites, to see if
>>> others
>>> have this
>>> available...
>>
>> I have libGL.a and libGLw.a in /usr/X11R6/lib, plus a bunch of GL* in
>> /usr/X11R6/include/GL
>
> Check to see if these were found by configure. Look at the head file

from my head.* file:

#openGL files for NVIZ/r3.showdspf
OPENGLINC = -I/usr/X11R6/include -I/usr/X11r6/include
OPENGLwINC = -I/usr/X11R6/include -I/usr/X11r6/include
OPENGLLIB = -L/usr/lib -L/usr/local/lib -L/usr/X11R6/lib
-L/usr/X11r6/lib -lGL
OPENGLULIB =
LGLWM =
OPENGL32 =

my setup:

[localhost:x11r6/include/gl] root# pwd
/usr/X11R6/include/GL
[localhost:x11r6/include/gl] root# ls
GLwDrawA.h GLwMDrawA.h gl.h glx.h glxtokens.h
GLwDrawAP.h GLwMDrawAP.h glext.h glxint.h osmesa.h

Should I add "/GL" at the end of the head.* for this one?

No, the "/GL" is already understood by the programs that need to include these
files. These lines look OK. The Gmakefile should be able to find all of these.
This will allow NVIZ to compile once the tcl/tk include files are on your system.

Malcolm

Thanks,
Andy

----------------------------------------
If you want to unsubscribe from GRASS Development Team mailing list write to:
minordomo@geog.uni-hannover.de with
subject 'unsubscribe grass5'

----------------------------------------
If you want to unsubscribe from GRASS Development Team mailing list write to:
minordomo@geog.uni-hannover.de with
subject 'unsubscribe grass5'

Hi Malcom:

Sorry. I wasn't clear here. In /usr/X11R6/include you should do 'grep
ErrorFunction *.h' This should find out if the ErrorFunction symbols are
redefined. Also, do 'grep Xdebug *.h'.

[localhost:X11r6/include/x11] root# grep ErrorFunction *.h
Xlibint.h:extern int (*_XIOErrorFunction)(
Xlibint.h:extern int (*_XErrorFunction)(
[localhost:X11r6/include/x11] root# grep Xdebug *.h
Xlib.h:#define _Xdebug (*_Xdebug_p)
Xlib.h:extern int _Xdebug;

These results seem strange. The symbols that ld can't find should be coming from
here. The XDRIVER code doesn't call these routines, or define the variables, so
they must be in the header files in /usr/X11R6/include and in libraries that are
being used. Hopefully the grep (above) will find out how they are declared.
These symbols should be in libX11.a, but perhaps they are defined differently
through the include files. I was expecting to see that they only had one leading
underscore, rather than 2. We can do the same thing a different way.

Check to see if your system has the nm utility. Do 'nm -s libX11.a'. This
should produce a lot of output on the symbols. To use this, I pipe to less like
'nm -s libX11.a | less'. Then you can find the string, using the find operator in
less (/). Once in less do '/ErrorFunction'. This should find the
__XIOErrorFunction and __XErrorFunction symbols. Or you can pipe to grep like
'nm -s libX11.a | grep ErrorFunction'.

You can do the same thing with libXext.a.

my nm wants:

Usage: nm [-agnoprumxjl[s segname sectname] [-] [[-arch <arch_flag>] ...] [file ...]

and I wasn't sure what i need to put in for "setname sectname" so I just used -a:

[localhost:/usr/x11r6/lib] root# nm -a libX11.a | grep ErrorFuntion
nm: no name list
[localhost:/usr/x11r6/lib] root# nm -a libXext.a | grep ErrorFunction
00000004 C __XExtensionErrorFunction
          U __XExtensionErrorFunction

Tiff and png are probably OK, but to be safe, you could add -I/usr/local/include
to the include files (INC or INCPATH) and -L/usr/local/lib to the library lines
(LIB and LIBPATH), like this:

#Image formats:
PNGINC = -I/usr/local/include -I/usr/include
PNGLIB = -L/usr/local/lib -L/usr/lib

TIFFINCPATH = -I/usr/local/include
TIFFLIBPATH = -L/usr/local/lib

Check to see that the header files are in /usr/local/include. You should find
tiff.h and png.h there, these are the include (or header) files. Once you get
the *.h files from Jeshua, you can do the same for the TCL/TK lines.

Jeshua can't get to his *.h for a few days, so I'm trying to find the tcl/tk source, and one of pages I found <http://dev.scriptics.com/software/tcltk/downloadnow83.html&gt; keeps timing out when I attempt to download.

Did the tcltkgrass menu's start up here? This should start the GUI. You will
know when it starts.

tcltkgrass did start here--and at times I can be an idiot: I didn't even see the menu until I maximized my vnc window.

Thanks,
Andy

---------------------------------------- If you want to unsubscribe from GRASS Development Team mailing list write to:
minordomo@geog.uni-hannover.de with
subject 'unsubscribe grass5'

Andy,

andy agena wrote:

Hi Malcom:
[localhost:X11r6/include/x11] root# grep ErrorFunction *.h
Xlibint.h:extern int (*_XIOErrorFunction)(
Xlibint.h:extern int (*_XErrorFunction)(
[localhost:X11r6/include/x11] root# grep Xdebug *.h
Xlib.h:#define _Xdebug (*_Xdebug_p)
Xlib.h:extern int _Xdebug;

Ok. These are all defined as extern, so they should be found in one of the
library files.

my nm wants:

Usage: nm [-agnoprumxjl[s segname sectname] [-] [[-arch
<arch_flag>] ...] [file ...]

and I wasn't sure what i need to put in for "setname sectname" so I just
used -a:

That's Ok. -a should list them all.

[localhost:/usr/x11r6/lib] root# nm -a libX11.a | grep ErrorFuntion
nm: no name list
nm: no name list
nm: no name list
[localhost:/usr/x11r6/lib] root# nm -a libXext.a | grep ErrorFunction
00000004 C __XExtensionErrorFunction
          U __XExtensionErrorFunction

I'm not sure what's happening here. These seem to be private to the library, but
are called from some other routine that is used for both the driver and the tk to
compile. If I were to make a wild guess, I would say they might be used for the
debug versions and your library isn't a debug version of the library. If that is
the case, you might be able to compile without the debug flag.

In the head file, remove '-g' from the COMPILE_FLAGS line, and try to rebuild the
driver.

This is the only thing I can think of to try, unless there are other versions of
the X libraries available for your system.

tcltkgrass did start here

Good. So your version of wish works.

Thanks,
Andy

----------------------------------------
If you want to unsubscribe from GRASS Development Team mailing list write to:
minordomo@geog.uni-hannover.de with
subject 'unsubscribe grass5'

----------------------------------------
If you want to unsubscribe from GRASS Development Team mailing list write to:
minordomo@geog.uni-hannover.de with
subject 'unsubscribe grass5'