binaries we just installed. This allows a future upgrade target to
install a new system without intermediate reboots and also
prevents conflicts for parallel make runs where we might exec a
binary that's being installed at the same time.
and costs us an extra 2% to build it for no reason. It may break
building cross compilation environments for fortran, but that isn't
officially supported at this time anyway (also, the % of our user base
that would use that is < .001% imho). This does't break fortran (it
is built again later anyway).
Reviewed by: obrien
Tested by: make buildworld and make buildworld -DNOCLEAN
users can more easily upgrade.
buildworld now makes usr.sbin/config in bootstrap-tools so that
when you first make buildworld, buildkernel will use config(8)
from the temp. world tree (and of course also the compiler).
Which kernel to built is determined by the KERNEL variable. You
can have as many kernels listed as you like. When a config file
exists for the given MACHINE it will be built. When KERNEL has
not been defined it will be set to "GENERIC GENERIC98".
The first valid kernel named in the list will be used by the
installkernel target.
When NOCLEAN is defined the kernel object directory is *not*
removed by config first. This is in line with normal buildworld
behaviour.
The buildkernel target makes aicasm in sys/dev/aic7xxx first and
unconditionally. This hack allows us to cross-build kernels and
can go away when the problem is solved in a structural way.
If one wishes to anchor the compiler toolchain tree somewhere other than /,
all one needs to do is set "TOOLS_PREFIX" to a different rooting.
Submitted by: marcel (in a different format and reworked by me)
reading all my mail.
I still don't understand why this was was committed on freefall before
the libcrypto and libssl subdirectories were imported on freefall though.
o Add genassym to the list of cross-tools
o Remove sh hashing work-around, we don't need it anymore
o Clean more directories in WORLDTMP when NOCLEAN is specified
The sh hashing work-around is not needed anymore, because we don't
trigger the bug anymore.
When NOCLEAN is not defined, we wipe out the complete WORLDTMP,
including the object directories of the tools we have built. When
NOCLEAN is defined, we remove anything that we install anyway, which
is usr/bin, usr/games, usr/include, usr/lib and usr/sbin.
property. This fixes the includes target when DESTDIR is empty.
o Do not make build-tools for f771 when NO_FORTRAN is defined.
o Add new build stage. See below.
o Change banners so that staging information is displayed.
The addition of the build-tools target broke the upgrade path because
we couldn't make use of previously built tools that were made for
compatibility reasons. Doing so would also result in the cross-compiler
being used and that is exactly what had to be avoided.
This is solved by designating the bootstrap-tools stage for building
anything that is needed for compatibility only and to create a new
stage (started after the build-tools stage) that handles cross-tools
building. We now have the following stages:
1. bootstrap-tools (for compatibility issues only)
2. build-tools
3. cross-tools (what it says)
4. world
5. install
Stages 1-4 (inclusive) are handled by buildworld.
Stage 5 is handled by installworld.
Any more stages and I'll join Nik in his quest for the
holy grail^W^Wworld :-)