Subject: Re: Too many bogus dependencies in "buildlink.mk" files
To: Frederick Bruckman <fredb@immanent.net>
From: Johnny Lam <jlam@jgrind.org>
List: tech-pkg
Date: 01/05/2002 04:17:17
On Wed, Jan 02, 2002 at 02:56:24PM -0600, Frederick Bruckman wrote:
> On Wed, 2 Jan 2002, Johnny Lam wrote:
> 
> > > Now consider "ee", which depends on lots of packages which it has no use
> > > for -- libxml, Mesa, ORBit, bonobo, glibwww, libwww, and oaf, including
> > > multiple wildcards for libxml and bonobo.
> 
> > The BUILDLINK_DEPENDS.<package> line in buildlink.mk files shouldn't change
> > whenever <package> is updated.  It only needs to be updated when the shared
> > libraries from the newer version break the ABI, which is usually signaled by
> > a bump in the major number on the shared library.
> 
> What about packages that have more than one shared library, all of which
> are not used by any particular package? Or how would you remove a
> dependency entirely? How do you signify that "ee" doesn't depend on any
> version of "bonobo" at all? You can't, and that's why buildlink.mk files
> should *never* include other buildlink.mk files.
> 
> You already have the versioning in the included file, if it needs to
> included at all, so there's nothing lost by moving the include out of
> the buildlink.mk file and into the Makefile.

I've been thinking this over some more, and I think that instead of removing
the recursive inclusions from buildlink.mk files, we should remove the
DEPENDS lines from the buildlink.mk files.  The DEPENDS lines can be moved
to the package Makefiles where they were before.  I believe this solves 
the problem you described and still allows the recursively-included
buildlink.mk files to pull in all of the libraries they need into the
buildlink directory.

	Cheers,

	-- Johnny Lam <jlam@jgrind.org>