up by pk (and fix comments to match):
* A .WAIT here means that only the *immediately preceding* target needs
to be added to the list of "install-foo" targets used to ensure that
dependencies are installed (otherwise much more than is necessary
gets installed during the build process, increasing build time here)
* If building only an individual target such as "dependall-yacc", the
prerequisites may need to be built before running their "install-foo"
targets -- so add a dependency in that case on "dependall-foo".
For now this is a maintainer-tool only; none of the NetBSD build needs to
run msgfmt as of yet. (However, its presence is needed to make the
mknative part of src/tools/toolchain produce the same output as a truly
"native" GNU configury of the toolchain.)
* Beef up that goo so that for each ".WAIT group" all of the install targets
in the previous group have completed before starting the `all', `depend'
or `dependall' targets.
round has been tested on Solaris/x86 and Linux hosts.
* Add host tools cap_mkdb, ctags, m4, uudecode.
* Protect __RCSID() and __COPYRIGHT() better.
* Reduce the number of places that need to include "config.h", to keep
sources closer to their "vanilla" versions.
* Add more compat #defines and autoconf-checked functions.
everything else. Now it's possible for the target mkdep to build and
install like "normal" host-tools do; should remove the function decl
warnings reported by greywolf@starwolf.com on current-users.
sets. Otherwise platforms not running the new toolchain will end up with
lossage as tools attempt to get built and installed into /bin (due to
bsd.own.mk properly checking USETOOLS before setting up a default TOOLDIR).
Don't print the warning unless MKTOOLS=no
* Rewrite src/tools Make logic to work like the rest of the tree wrt
"dependall" and "install". The old "make build" hack is gone.
* Remove the MKTOOLS logic. This was linked to the "make build" hack,
and was only needed because TOOLDIR originally had no writable default.
* Redo the GNU configure/make logic to make it fit reasonably in a
BSD make wrapper. Use new ${.ALLTARGETS} variable to scan for
targets in $(srcdir), and mark them with .MADE: to prevent rebuilding.
* Only build cross tools in src/tools; remove some messy logic in
src/usr.* and src/gnu/usr.* that would do target filename rewriting
(improves consistency and readability).
* Add the ability to build cross gdb at tool build time by setting
MKCROSSGDB (default no) to "yes" in mk.conf.
* Add src/tools/groff and set up paths to work with this cross groff.
* Set stuff mostly in the environment, not on make(1)'s command line.
This is needed for MACHINE and MACHINE_ARCH (noted by bjh21), and keeps
the mk.conf-overriding-env behavior (suggested by several people).
* Use MAKEFLAGS to make the wrapper script more readable.
* When prepping objdir in tools for the default TOOLDIR value, just make
that objdir; leave the recursive "make obj" for later.
using `uname -s`-`uname -r`-`uname -p || uname -m`. This can be overridden
in mk.conf or the environment, and is used by host tools to ensure that
build hosts do not clobber each other.
* Now that there's an objdir in src/tools, make a default TOOLDIR by creating
"tools.${HOST_OSTYPE}" in the objdir (if it exists) of src/tools. This
means that TOOLDIR is no longer required to be set in a build, though it
still may be set manually if desired.
* Set MKTOOLS to "yes" by default, since the default TOOLDIR is now located
in a known mutable location. This may still be set manually if desired.
just don't build the tools if USETOOLS!=yes. This permits objdirs to
be created even when USETOOLS=no.
* Clean up use of "-m" by specifying it to .MAKEFLAGS: if needed.