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

next in thread | previous in thread | raw e-mail | index | archive | help
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> wrote:
>>
>>> I need to do the equivalent of  "cd /usr/src/cddl/usr.sbin/dtrace; make DESTDIR=/mumble all install”
>> cd /usr/src
>> make distributeworld DESTDIR=/mumble
>> cd cddl/usr.sbin/dtrace
>> make buildenv
>> make all install
>>
>>> but it pulls in libraries from the base system, which differ slightly 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 libraries", and "make includes" but
>>> I need to be able to do selective builds of just subdirectories after that..  I haven't spotted the right way of forcing the use of the "--system_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 far.
>> You’re asking for some serious split-brain action. chroot builds are likely your best option. There’s no easy way to force this, although you might get some milage out of WMAKEENV options, but I think we bake most of the where to look for things options into the binaries. One crazy option would be to set CC=“cc —sysroot /mumble” but I’m sure there be dragons there…
>>
>> Good luck with this crazy, never have we supported it very well, option :)
>>
>> 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=`${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 
/usr/obj/usr/src/tmp ?





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