Building library that depends on another library.
Warner Losh
imp at bsdimp.com
Tue May 7 19:27:39 UTC 2013
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 at 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
More information about the freebsd-arch
mailing list