[openbeos] Re: cannot build R5KernelStaticLibrary (please reply to this mail, not the previous one)

  • From: Ingo Weinhold <bonefish@xxxxxxxxxxxxxxx>
  • To: openbeos@xxxxxxxxxxxxx
  • Date: Thu, 04 Sep 2003 21:31:37 +0200

On 2003-09-04 at 12:24:00 [+0200], Waldemar Kornewald wrote:
> > That is interesting:
> >
> > jam libkernelppp.a
> >
> > works fine, but:
> >
> > jam
> >
> > does not link the library. Does jam think that libkernelppp.a is already
> > up-to-date?
> Maybe jam does not link the library because nothing depends on it.
> I do not know how jam handles such cases, but it could be a solution.

Usually everything built with a standard rule is made a dependency of one 
of the pseudo targets `files', `lib', `obj', `exe', which in turn are 
dependencies of `all', the target made when none is supplied on the command 
line. For some reason probably only the writer of the Library rule knows 
the `lib' dependency is not established for static libs when the KEEPOBJS 
feature is enabled.

> Then I have another question:
> Why is that library put into the objects folder instead of the
> distro/......./system/lib folder?

The R5KernelStaticLibrary rule isn't intended to build libraries to be 
shipped with our system (hence the `R5' :-), so the distro tree isn't the 
right target location for those libs.

Currently the rules aren't used consistently, though (e.g. StaticLibrary, 
which generates `distro' libs is also used for temporary ones) -- quite a 
bunch of cleanup is required. This and other things have a good chance to 
be done, after jam 2.5 is final.

> How do I link against libkernelppp.a in jam? I want to create the
> ppp_manager module.

Just add `libkernelppp.a' to the LinkSharedOSLibs for the ppp_manager. Jam 
will find the library whereever it is located (even if you move the sources 
to some better location (hint, hint ;-)).

CU, Ingo

Other related posts: