Date: Tue, 7 May 2013 13:27:34 -0600 From: Warner Losh <imp@bsdimp.com> To: Pawel Jakub Dawidek <pjd@FreeBSD.org> Cc: =?iso-8859-1?Q?Dag-Erling_Sm=F8rgrav?= <des@des.no>, freebsd-arch@FreeBSD.org Subject: Re: Building library that depends on another library. Message-ID: <D4E8DD1C-2F19-4D3D-B6E6-1302D6033D66@bsdimp.com> In-Reply-To: <20130507185005.GB1888@garage.freebsd.pl> References: <20130505201436.GJ1374@garage.freebsd.pl> <86r4hkgd04.fsf@nine.des.no> <20130507185005.GB1888@garage.freebsd.pl>
next in thread | previous in thread | raw e-mail | index | archive | help
On May 7, 2013, at 12:50 PM, Pawel Jakub Dawidek wrote:
> On Mon, May 06, 2013 at 08:49:15PM +0200, Dag-Erling Smørgrav wrote:
>> Pawel Jakub Dawidek <pjd@FreeBSD.org> writes:
>>> It looks like to make such dependency work one HAS TO add libnv to
>>> _prebuild_libs in src/Makefile.inc1, which seems wrong.
>>
>> It may seem wrong, but it is correct, cf the following comment in
>> Makefile.inc1:
>>
>> # The list of libraries with dependents (${_prebuild_libs}) and their
>> # interdependencies (__L) are built automatically by the
>> # ${.CURDIR}/tools/make_libdeps.sh script.
>
> Yes, this also means SUBDIR_ORDERED in lib/Makefile doesn't make sense.
>
> All in all I really don't like to add libraries to Makefile.inc1, it
> doesn't sound right. I'd like this to be self-contained. For bsd.prog.mk
> it is enough to specify DPADD/LDADD in program's Makefile instead of
> hacking some central Makefile.
>
> I came up with something like the following. Instead of:
>
> DPADD= ${LIBNV}
> LDADD= -lnv
> (plus modifying src/Makefile.inc1)
>
> I only add:
>
> LDADD= -L${.OBJDIR}/../libnv -lnv
>
> What do people think?
Still won't work. It won't ensure that libnv is built, leading to cross-threading on upgrade issues.
Better would be a 'plus modifying src/Makefile.inc1' would instead be 'have Makefile.inc1 figure it out fast.' We have to get the order right, there's no way around that.
Warner
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?D4E8DD1C-2F19-4D3D-B6E6-1302D6033D66>
