Skip site navigation (1)Skip section navigation (2)
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=F8rgrav 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.
>>=20
>> It may seem wrong, but it is correct, cf the following comment in
>> Makefile.inc1:
>>=20
>> # The list of libraries with dependents (${_prebuild_libs}) and their
>> # interdependencies (__L) are built automatically by the
>> # ${.CURDIR}/tools/make_libdeps.sh script.
>=20
> Yes, this also means SUBDIR_ORDERED in lib/Makefile doesn't make =
sense.
>=20
> 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.
>=20
> I came up with something like the following. Instead of:
>=20
> DPADD=3D	${LIBNV}
> LDADD=3D	-lnv
> (plus modifying src/Makefile.inc1)
>=20
> I only add:
>=20
> LDADD=3D	-L${.OBJDIR}/../libnv -lnv
>=20
> 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>