Andy Piper <andy(a)xemacs.org> writes:
But how do people who have just overwritten their Xaw headers get
things to
work? I must admit to still being confused about what works and what doesn't.
a) Xaw3d headers, libXaw ?
b) Xaw headers, libXaw - works
c) Xaw headers, libXaw3d ?works
No, this is the case that breaks.
d) Xaw3d headers, libXaw3d - ?breaks
I am not exactly sure what you mean here. This works. The problem is
that xlwgauge.c (and others) use c) in this case.
e) Xaw3d overwritten headers, libXaw3d works
Yes.
f) Xaw3d overwritten headers, libXaw - ?
Breaks
Note that people who have overwritten the headers typically also have
overwritten lixXaw.so.
So what are we fixing and won't we break (e)? Are these all the
possibilites. How do we cope with each?
We are trying to never get into c). We want d)
Note that e) is what people used to do, but modern installations all
use d).
we need to do something like this
Check for libXaw3d.so
If found
FOUND_XAW3D = yes
LIBXAW3D = libXaw3d.so
else
FOUND_XAW3D = no
Check for libXaw.so
If found
Check for existance of threeDClassRec
if found
# Xaw.so is actually Xaw3D
FOUND_XAW3D = yes
FOUND_XAW = no
if not set LIBXAW3D = libXaw3d.so
else
FOUND_XAW = yes
LIBXAWNORMAL = libXaw.so
Check for ThreeD_P
in Xaw3D/<something>.h
if found
if FOUND_XAW3D == yes
HAVE_XAW3D = yes
INCLXAW3D = Xaw3D
else check in X11/Xaw/<something.h>
if found
if FOUND_XAW3D == yes
HAVE_XAW3D = yes
INCLXAW3D = X11/Xaw
else
#error
else
HAVE_XAW3D = no
HAVE_XAW = yes
INCLXAWBORMAL = X11/Xaw/
....process user options
if HAVE_XAW3D = yes
INCLXAW = INCLXAW3D
LIBXAW = LIMLXAW3D
else if HAVE_XAW = yes
INCLXAW = INCLXAWNORMAL
LIBXAW = LIMLXAWNORMAL
and then make sure we include from INCLXAW and link with LIBXAW
Jan