Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 29 Apr 2014 07:04:11 -0600
From:      Ian Lepore <ian@FreeBSD.org>
To:        Julian Elischer <julian@FreeBSD.org>
Cc:        FreeBSD Current <current@FreeBSD.org>, Warner Losh <imp@bsdimp.com>
Subject:   Re: Make variables to force non default libraries and includes?
Message-ID:  <1398776651.22079.4.camel@revolution.hippie.lan>
In-Reply-To: <535F3938.9060809@freebsd.org>
References:  <535E07C9.5060309@freebsd.org> <80F941B9-3A54-4059-BF99-A5F59A9731DA@gmail.com> <1398733072.61646.251.camel@revolution.hippie.lan> <535F3938.9060809@freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On Tue, 2014-04-29 at 13:31 +0800, Julian Elischer wrote:
> On 4/29/14, 8:57 AM, Ian Lepore wrote:
> > On Mon, 2014-04-28 at 18:36 -0600, Warner Losh wrote:
> >> On Apr 28, 2014, at 1:48 AM, Julian Elischer <julian@FreeBSD.org> wr=
ote:
> >>
> >>> I need to do the equivalent of  "cd /usr/src/cddl/usr.sbin/dtrace; =
make DESTDIR=3D/mumble all install=94
> >> cd /usr/src
> >> make distributeworld DESTDIR=3D/mumble
> >> cd cddl/usr.sbin/dtrace
> >> make buildenv
> >> make all install
> >>
> >>> but it pulls in libraries from the base system, which differ slight=
ly from those in the source tree.
> >> The above will create the right /mumble hierarchy, and will pull the=
 libraries from the build rather than the local system.
> >>
> >>> How can I force it to use /mumble2/include and /mumble2/lib instead=
 of / ?
> >>>
> >>> I can pre-populate /mumble2 using "make buildworld", "make librarie=
s", and "make includes" but
> >>> I need to be able to do selective builds of just subdirectories aft=
er that..  I haven't spotted the right way of forcing the use of the "--s=
ystem_root /mumble2" option in the compiles.
> >>>
> >>> I know we do it in 'buildworld' is there a more generic way?
> >>>
> >>> I have been looking in the .mk files but I haven't spotted it so fa=
r.
> >> You=92re asking for some serious split-brain action. chroot builds a=
re likely your best option. There=92s no easy way to force this, although=
 you might get some milage out of WMAKEENV options, but I think we bake m=
ost of the where to look for things options into the binaries. One crazy =
option would be to set CC=3D=93cc =97sysroot /mumble=94 but I=92m sure th=
ere be dragons there=85
> >>
> >> Good luck with this crazy, never have we supported it very well, opt=
ion :)
> >>
> >> Warner
> > Actually the hooks are in place to do this stuff.  Instead of make
> > buildenv to get an interactive shell you can do something like
> >
> >    BLDENV=3D`${MAKE} buildenvvars`
> >    chroot buildchroot/ "env -i $${BLDENV} cd /usr/src/somewhere && \
> >         make all install"
> >
> > -- Ian
> >
> >
> >
> >
> Is there a way to specify a different toolchain destination? i.e. not=20
> /usr/obj/usr/src/tmp ?
>=20

Not right now -- all that stuff is in Makefile.inc1 (WORLDTMP var and
related stuff) and there are no provisions for overriding it.

-- Ian





Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?1398776651.22079.4.camel>