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 <jul...@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 :)

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 ?

freebsd-current@freebsd.org mailing list
To unsubscribe, send any mail to "freebsd-current-unsubscr...@freebsd.org"

Reply via email to