[comp.windows.x] dependancy errors

larsen@mist.cs.orst.edu (Scott Larsen) (06/29/90)

I have just installed R4 on our Sequent balance and it works great, EXCEPT
i have trouble when i try to "make" anything.

I do a xmkmf, a make depend, and then a make, an I get back:

Make:  Don't know how to make -lXaw.  Stop.

Now, libXaw.a exists, and is compiled properly, so why is it doing this?

Also this happens sometimes with -lXext and -lXt.


Confused in Computerland, 

Scott Larsen
larsen@mist.cs.orst.edu

drl@VUSE.VANDERBILT.EDU (David R. Linn) (06/29/90)

	I do a xmkmf, a make depend, and then a make, an I get back:
	
	Make:  Don't know how to make -lXaw.  Stop.
	
	Now, libXaw.a exists, and is compiled properly, so why is it doing this?
	
	Also this happens sometimes with -lXext and -lXt.
	
	
	Confused in Computerland, 
	
	Scott Larsen
	larsen@mist.cs.orst.edu


Mistaken jump in logic.  It doesn't say you don't have libXaw.o;
it says you don't have a file named "-lXaw".  Someone has
overloaded the $(LIBS) macro for use in both compilation/linking
and in dependencies.

dce@smsc.sony.com (David Elliott) (06/30/90)

In article <9006291531.AA28791@vuse.vanderbilt.edu> drl@VUSE.VANDERBILT.EDU (David R. Linn) writes:
>Mistaken jump in logic.  It doesn't say you don't have libXaw.o;
>it says you don't have a file named "-lXaw".  Someone has
>overloaded the $(LIBS) macro for use in both compilation/linking
>and in dependencies.

While that's possible, it's as likely (and maybe more so) that the
Imakefile in question is written using LOCAL_LIBRARIES and worked under
R3.  In R4, there is a new macro called DEPLIBS, which is set to
$(LOCAL_LIBRARIES) by default, unless you are running shared libraries
on a Sun.  As Guy Harris once pointed out, it probably shouldn't
be set to anything by default, and there may be an official MIT
patch changing this, but I couldn't find it (Guy?  Bob?).  I know
I changed it in mine and it works fine.

The easiest fix is to define DEPLIBS as being empty, but it might be
more correct to define it like LOCAL_LIBRARIES, with "DEP" prepended
to each library name, as in

	DEPLIBS = $(DEPXAWLIB) $(DEPXMULIB) $(DEPXTOOLLIB) $(DEPXLIB)

or, better still,

	DEPLIBS = XawClientDepLibs

(Note:  I did try to mail this answer to the original poster, but it
bounced somewhere down the line.  Rassin' frassin' network frassin'...)
-- 
David Elliott
dce@smsc.sony.com | ...!{uunet,mips}!sonyusa!dce
(408)944-4073
"If I had a hat the size of Oklahoma, I'd be a happy person."

drl@VUSE.VANDERBILT.EDU (David R. Linn) (07/01/90)

>>In article <9006291531.AA28791@vuse.vanderbilt.edu> drl@VUSE.VANDERBILT.EDU (David R. Linn) writes:
>>>Mistaken jump in logic.  It doesn't say you don't have libXaw.o;
>>>it says you don't have a file named "-lXaw".  Someone has
>>>overloaded the $(LIBS) macro for use in both compilation/linking
>>>and in dependencies.
>>
>>While that's possible, it's as likely (and maybe more so) that the
>>Imakefile in question is written using LOCAL_LIBRARIES and worked under
>>R3.  In R4, there is a new macro called DEPLIBS, which is set to
>>$(LOCAL_LIBRARIES) by default, unless you are running shared libraries
>>on a Sun.  As Guy Harris once pointed out, it probably shouldn't
>>be set to anything by default, and there may be an official MIT
>>patch changing this, but I couldn't find it (Guy?  Bob?).  I know
>>I changed it in mine and it works fine.
>>
>>The easiest fix is to define DEPLIBS as being empty, but it might be
>>more correct to define it like LOCAL_LIBRARIES, with "DEP" prepended
>>to each library name, as in
>>
>>	DEPLIBS = $(DEPXAWLIB) $(DEPXMULIB) $(DEPXTOOLLIB) $(DEPXLIB)
>>
>>or, better still,
>>
>>	DEPLIBS = XawClientDepLibs
>>
>>(Note:  I did try to mail this answer to the original poster, but it
>>bounced somewhere down the line.  Rassin' frassin' network frassin'...)
>>-- 
>>David Elliott
>>dce@smsc.sony.com | ...!{uunet,mips}!sonyusa!dce
>>(408)944-4073
>>"If I had a hat the size of Oklahoma, I'd be a happy person."
>>

Good answer, and more detailed than mine.  I was just pointing out that
the library definition used for compilation/linking, e.g.

	LinkLibs = -lXaw -lXt

and the library definition used for dependencies, e.g.

	DependencyLibs = libXaw.a libXt.a

have different (though parallel) formats and should not
interchanged.

	 David