Subject: Re: WARNING: -current toplevel build process changing!
To: Greywolf <greywolf@starwolf.com>
From: Todd Vierling <tv@wasabisystems.com>
List: current-users
Date: 06/01/2001 20:43:21
On Fri, 1 Jun 2001, Greywolf wrote:

: 3.  What if you want to have immediate available support to compile across
:     more than two platforms, switchable via an envar and/or mk.conf?

Not a problem.  The harness allows for you to set MACHINE and MACHINE_ARCH
arbitrarily.  This is part of the slickness of it....

: 4.  Why not mk.conf?

See prior message to Bernd Ernesti.

: 5.  What is there about bmake that "make" doesn't cover?

"make" != "bmake" on all platforms.  And, when a build-dependent change is
made to bmake, "current bmake" != "src tree bmake", either.  Building a
bmake from the src tree is the only way to guarantee workability.

: 6.  Has there been a discussion and/or a guinea-pig marathon regarding this,
:     or is it just going to get shoehorned in?

This idea has been discussed for years, but no one's done the job, partly
because no one wants to "run it by current-users to see what everyone
thinks".  Quite simply, src/UPDATING is crap and prone to lots of error.

The basic concept here is that the build tools are completely separate from
the installed tools.  You can use the installed tools to create pkgs,
compile third party src, and even compile xsrc.  "src", however, is so much
in motion that using the host's tools is a recipe for disaster--that's a
well established fact.  (Think what will happen if I just flipped on the new
binutils and gcc in the old build structure and things like libgcc or
libstdc++ built out of a very specific order....)

: # To set where these tools are installed, set TOOLDIR in the environment (NOT
: # /etc/mk.conf).  TOOLDIR will default to "src/tools/local" if not explicitly
: # set.  The layout is similar to /usr/local (with "bin", "lib", etc.
: # subdirectories).
:
: Once these tools are built, what happens to the ones who live in the main
: tree?  Do we then have to REbuild the tools to be installed in ${DESTDIR:-/}
: even if they're for the same architecture?  This strikes me as a loss.

The tools installed into / are for use *at runtime*, after the system is
built.  The fact that we've used them before, in-place, to compile releases
is actually a *bad* thing.

The ones in the build tool tree are built with GNU configure and are, for
most purposes, cross-compile tools (even on the same architecture).  They
are not suitable for installing into /.

: What if src is read-only and you're making use of objdirs to generate
: your build?

Set TOOLDIR to where you want the tools to go.  It doesn't have to be in
"src".

-- 
-- Todd Vierling <tv@wasabisystems.com>  *  Wasabi NetBSD:  Run with it.
-- NetBSD 1.5 now available on CD-ROM  --  http://www.wasabisystems.com/