compiling xgrass libraries

Justin Hickey jhickey
Wed Feb 5 04:39:53 EST 1997


Michael

On Feb 4,  2:38pm, Michael Hanratty wrote:
> I'm having troubles compiling the xgrass libraries.  I'm using
>
> gcc -ansi -O (plus include paths)
>
> for my compiler options.  In the file $GISBASE/src/include/MatrixP.h it has
> trouble parsing the structure on lines 253-257 and 416-418.

I ran into the same problem and this error is due to your version of Motif. The
structures that you reference are from Motif 1.1 and are no longer supported.
However, OSF did include a section in the XmP.h file that provides for backward
compatibility. The following is the fix I used for this compile error from my
GRASS compilation history file:

	Fix: These errors were caused by the fact that the current
	version of Motif is 1.2. This code was written before the
	release of Motif 1.2 and some of the symbols of Motif 1.1 are
	no longer used. The code in "$GIS/src/xgrass/libes/Xgi/Matrix.c"
	requires some of these old symbols to be defined, therefore, the
	following lines of code were added to both "$GIS/src/include/MatrixP.h"
	and "$GIS/src/xgrass/libes/Xgi/Matrix.c" to define the required
	pre-processor variable.
	    #ifndef XM_1_1_BC
	    #define XM_1_1_BC
	    #endif
	Note that these lines were added at the top of the files so
	that they would be the first commands executed (before the includes).

As you can see, the version of Motif that our SGI uses is still Motif 1.2. If
you have a different version, you should check your version of the XmP.h file
(found in usr/include/Xm on my machine) to see if there is a section which is
dependent on the definition of XM_1_1_BC (i.e. there is a line like "#ifdef
XM_1_1_BC" in the file). If this section exists then the above fix should work.
The same problem will exist for $GIS/src/xgrass/libes/Xgi/Caption.c and the
same fix should work using the "Caption.c" file and the
"$GIS/src/include/CaptionP.h" file.

You should also be aware that xgrass will not compile with Motif 2.0 and above.
We found that xgrass uses functions that no longer exist in Motif 2.0. The only
fix that was found for this was taking declarations of the functions from a
previous version of Motif and copying them into a header file used by the
source files that referenced the old Motif functions. OSF informed me that the
definitions of the functions still exist in the library but they removed the
declarations from the header files. Unfortunately, we didn't get a chance to
test this fix (priorities got changed and we had GRASS running on our SGI
already) so I'm not sure if it will work. The greater concern is what to do
with xgrass when OSF removes the functions from the Motif library.

I hope this helps.

-- 
Sincerely,

Jazzman (a.k.a. Justin Hickey)  e-mail: jhickey at hpcc.nectec.or.th
High Performance Computing Center
National Electronics and Computer Technology Center (NECTEC)
Bangkok, Thailand
==================================================================
People who think they know everything are very irritating to those
of us who do.  ---Anonymous

Jazz and Trek Rule!!!
==================================================================



More information about the grass-user mailing list