History log of /netbsd-current/tools/Makefile
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
# 1.219 01-Apr-2024 christos

hook gzip to the build so that we can test it in other OS's. Not used yet.


# 1.218 30-Mar-2024 riastradh

tools/elftoolchain: Handle dependencies properly.

This should properly resolve the problem christos was trying to
address by a bogus make includes hack and #ifdefs in elftoolchain.


# 1.217 27-Mar-2024 rillig

tools/Makefile: clean up TOOLDIR validation

At the point where tools/Makefile is loaded, TOOLDIR doesn't have to
exist yet, it will be created later. Remove the redundant quotes from
the .error messages.


# 1.216 23-Feb-2024 mrg

build isl tool for GCC 12.


# 1.215 30-Nov-2023 rin

tools/Makefile: Correct inverted comment. NFC


Revision tags: netbsd-10-0-RELEASE netbsd-10-0-RC6 netbsd-10-0-RC5 netbsd-10-0-RC4 netbsd-10-0-RC3 netbsd-10-0-RC2 netbsd-10-0-RC1 netbsd-10-base
# 1.214 18-Apr-2022 jkoshy

Disconnect 'tools/lib{elf,dwarf}' from the build.

These libraries are now built by 'tools/elftoolchain/lib{elf,dwarf}'
respectively.


# 1.213 13-Apr-2022 jkoshy

When building tools use a dedicated subdirectory for compiling
Elftoolchain code.

Build and install <sys/elfdefinitions.h> in ${TOOLDIR}/include.

This change prepares the ground for upgrading libelf and libdwarf to
their current Elftoolchain versions.


# 1.212 14-Nov-2021 skrll

Make dtc on riscv


Revision tags: cjep_sun2x-base1 cjep_sun2x-base cjep_staticlib_x-base1
# 1.211 27-May-2021 cjep

If we are building date earlier, we need to use an uninstalled copy
of host-mkdep and libnbcompat otherwise the build process looks for
tools that might not be there yet (e.g. fresh build).
Reviewed by martin.


# 1.210 26-May-2021 christos

Add a date tool


Revision tags: cjep_staticlib_x-base
# 1.209 06-May-2021 rin

branches: 1.209.2;
PR port-mvme68k/56146

Build wrtvid as tools.


# 1.208 25-Apr-2021 christos

Make mips-elf2ecoff available for all mips


# 1.207 06-Feb-2021 dbj

tools: allow MKCROSSGDB to work when not building gcc


# 1.206 28-Jul-2020 uwe

Build mkubootimage for evbsh3 too.


Revision tags: phil-wifi-20200421 phil-wifi-20200411 is-mlppp-base phil-wifi-20200406 phil-wifi-20191119
# 1.205 11-Nov-2019 joerg

Update LLVM to 10.0.0git (01f3a59fb3e2542fce74c768718f594d0debd0da)


# 1.204 26-Sep-2019 bad

Exclude more subdirs if TOOLS_BUILDRUMP=yes.

Exclude subdirs added in the last 3 years but not need for rumpkernel builds.


Revision tags: netbsd-9-3-RELEASE netbsd-9-2-RELEASE netbsd-9-1-RELEASE netbsd-9-0-RELEASE netbsd-9-0-RC2 netbsd-9-0-RC1 netbsd-9-base phil-wifi-20190609
# 1.203 07-May-2019 hannken

Fix build, "pax" must be built before "libprop".

Ok: Matthew Green mrg@


# 1.202 07-May-2019 thorpej

Add support for libprop as a host tool library.


# 1.201 03-Apr-2019 joerg

Add MKLLVMRT to build a subset of the LLVM stack for JIT purposes.
Hook up AMDGPU backend for clang.


# 1.200 03-Apr-2019 joerg

Revert MKLLVMCMDS changes.


# 1.199 20-Mar-2019 mrg

split MKLLVM into MKLLVM and MKLLVMCMDS, like MKGCC and MKGCCCMDS:

- only build clang or clang-tblgen if MKLLVMCMDS != "no"
- move HAVE_MESA_VER earlier so we can detect mesa 18 and enable
MKLLVM on platforms that need it
- move the clang commands and headers into llvmcmds group
- only build the clang specific LLVM libraries if MKLLVMCMDS != "no"

much of this work came from maya@'s github commit
f90685c11d4460d3098fa35f48b58d1893e974e0, reworked for HAVE_MESA_VER
and llvmcmds vs MKCLANG.


build tested on several platforms and on amd64 and i386 with several
different build options (clang build, gcc build, gcc build with llvm
libs).


Revision tags: pgoyette-compat-20190127 pgoyette-compat-20190118
# 1.198 02-Jan-2019 christos

use MACHINE_CPU for elf2aout


# 1.197 31-Dec-2018 christos

Add an arm-specific elf2aout tool since objdump does not support a.out anymore


Revision tags: pgoyette-compat-1226 pgoyette-compat-1126 pgoyette-compat-1020 pgoyette-compat-0930
# 1.196 25-Sep-2018 joerg

Update build glue for xz-5.2.4. Hook up tools version.


Revision tags: pgoyette-compat-0906
# 1.195 11-Aug-2018 christos

hook in the tools version of grep


Revision tags: pgoyette-compat-0728 phil-wifi-base pgoyette-compat-0625 pgoyette-compat-0521
# 1.194 09-May-2018 joerg

branches: 1.194.2;
For EXTERNAL_TOOLCHAIN, MKLLVM=yes needs to build only tablegen.


Revision tags: pgoyette-compat-0502 pgoyette-compat-0422 pgoyette-compat-0415 pgoyette-compat-0407 pgoyette-compat-0330 pgoyette-compat-0322 pgoyette-compat-0315 pgoyette-compat-base
# 1.193 18-Feb-2018 uwe

branches: 1.193.2;
Fix .endif comment for TOOLS_BUILDRUMP


# 1.192 27-Dec-2017 christos

Better EXTERNAL_TOOLCHAIN support from Zachary McGrew
- Allow mdsetimage and dbsym to be built with EXTERNAL_TOOLCHAIN
- Allow BFDDIR and IBERTYDIR to be overwritten for mdsetimage and dbsym


Revision tags: perseant-stdc-iso10646-base
# 1.191 07-Jun-2017 skrll

branches: 1.191.2;
Hook in dtc/libfdt now that it builds for me


# 1.190 06-Jun-2017 skrll

Disable dtc/libfdt for now


# 1.189 05-Jun-2017 christos

No need to set dtc twice.


# 1.188 05-Jun-2017 christos

Add dtc


Revision tags: netbsd-8-base prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1 pgoyette-localcount-20170320 bouyer-socketcan-base
# 1.187 11-Jan-2017 joerg

branches: 1.187.6;
Sync tools build glue with LLVM pre-4.0.0.


Revision tags: pgoyette-localcount-20170107 pgoyette-localcount-20161104 localcount-20160914 pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base
# 1.186 24-Jan-2016 christos

branches: 1.186.2;
move cvslatest last


# 1.185 24-Jan-2016 christos

Tool version


# 1.184 19-Dec-2015 christos

move sortinfo after pax


# 1.183 18-Dec-2015 christos

Add sortinfo


# 1.182 23-Jul-2015 mrg

remove the xfree86 reachover makefiles and the vast majority of
the support in the rest of the source tree.

X11 sets could use some cleaning up perhaps (just deletion, as
we've never really marked the old X11R6 as obsolete for native
xorg using platforms so far either.)


# 1.181 24-Jun-2015 matt

Support building the xorg X11 libraries under MKCOMPAT.
Add XORG_MACHINE_ARCH to compat's bsd.*.mk
Turn xorg makekeys and makestrs into real host tools which are installed into
${TOOLSDIR}


# 1.180 07-Jan-2015 joerg

Reorganise the way xorg is build. Move build of makestrs into src/tools
as it is needed for the "includes" phase. Make it symlink all necessary
headers in obj to decouple it from "includes" itself, breaking the
dependency cycle. Move the do-x11 target between do-lib and do-build, so
that libraries can get the benefit of build_install (correct .WAIT
behavior) and everything else like "includes" uses the plain SUBDIR
entry in external/mit.


# 1.179 05-Dec-2014 pooka

build genassym for TOOLS_BUILDRUMP


# 1.178 30-Sep-2014 christos

add gpt


Revision tags: netbsd-7-2-RELEASE netbsd-7-1-2-RELEASE netbsd-7-1-1-RELEASE netbsd-7-1-RELEASE netbsd-7-1-RC2 netbsd-7-nhusb-base-20170116 netbsd-7-1-RC1 netbsd-7-0-2-RELEASE netbsd-7-nhusb-base netbsd-7-0-1-RELEASE netbsd-7-0-RELEASE netbsd-7-0-RC3 netbsd-7-0-RC2 netbsd-7-0-RC1 netbsd-7-base tls-maxphys-base
# 1.177 10-Aug-2014 matt

Changes to existing files to enable building AARCH64 userland.
evbarm64-el
This is clang only. While gcc4.8 supports aarch64, no netbsd support has
been written for aarch64 with gcc4.8.


Revision tags: tls-earlyentropy-base
# 1.176 15-Jul-2014 christos

descend to vgrind


# 1.175 15-Jun-2014 pooka

Add cat, rpcgen and stat to TOOLS_BUILDRUMP. They're useful for
installing headers for the app stack cases that need it done, and small
enough to not matter for the kernel-only cases that don't.


# 1.174 14-Jun-2014 mrg

remove remaining makefile support for GCC < 45 that i found.


Revision tags: yamt-pagecache-base9
# 1.173 03-Apr-2014 riastradh

branches: 1.173.2;
ctfconvert/ctfmerge need libdwarf &c., so build them if MKCTF=yes.


Revision tags: riastradh-xf86-video-intel-2-7-1-pre-2-21-15
# 1.172 25-Mar-2014 ozaki-r

Add MKCTF

This variable separates CTF stuffs from MKDTRACE; we can build DTrace
solely without building and using them. This allows us to use DTrace
even if CTF stuffs have problems (actually they have now).

This variable would be merged into MKDTRACE eventually, once CTF stuffs
work correctly again.


Revision tags: riastradh-drm2-base3
# 1.171 24-Feb-2014 skrll

Rename NetBSD/hp700 to NetBSD/hppa.

Unfortunately our VCS isn't very helpful here.


# 1.170 02-Sep-2013 joerg

Update LLVM/Clang snapshot to r189662. This includes many improvements
to the new SLP vectorizer, fast codegen support for PPC and using
terminfo for the color sequences. In addition, add (optional) build
infrastructure for lld to allow easier testing. This is controlled by
MKLLD.


Revision tags: riastradh-drm2-base2 riastradh-drm2-base1
# 1.169 19-Jul-2013 matt

Even if we aren't making a crossgdb still make the object dir for it.


Revision tags: riastradh-drm2-base agc-symver-base
# 1.168 27-Feb-2013 joerg

branches: 1.168.4;
Add infrastructure for building MCLinker.


# 1.167 05-Feb-2013 matt

There are other little endian arm machine_arches other than "arm"
Use MACHINE_CPU and TARGET_ENDIANNESS instead of MACHINE_ARCH


# 1.166 31-Jan-2013 pooka

Use TOOLS_BUILDRUMP=yes to restrict building of tools to those required
for building rump kernels. This cuts down the NetBSD source tree required
by buildrump.sh to a fraction and addresses a size/download time concern
from a person packaging rump kernels for Linux.

No change to the normal case (tested with several -j32/-j64 builds).

reviewed by apb


Revision tags: yamt-pagecache-base8 yamt-pagecache-base7
# 1.165 02-Dec-2012 apb

Make tools/Makefile build host-mkdep, compat, and binstall in that order,
before installing any of them. It installs them in any order relative
to each other. The .WAIT points that used to be between these three
tools are replaced by .ORDER and dependencies.

This is needed in preparation for making tools/compat install
some files into TOOLDIR.


# 1.164 02-Dec-2012 apb

TOOLDIR must be valid, unless MKTOOLS=no.
Add tests and .error directives to enforce this.


# 1.163 02-Dec-2012 apb

If tools are not wanted, then set SUBDIR= empty instead of
defining all the subdir-related targets to do nothing. This way,
the targets are not invoked at all, instead of being invoked but
doing nothing.


# 1.162 02-Dec-2012 apb

remove trailing white space


# 1.161 27-Nov-2012 jkunz

According to the i.MX23 Reference Manual section 3.1, Page 3-3:
"The i.MX23 always operates in litle-endian mode."
So build elftosb and bootloader for this processor only for evbarm(-el).


# 1.160 26-Nov-2012 pooka

Build gmake iff we're going to need it.


# 1.159 15-Nov-2012 joerg

Move the build_install logic from lib/Makefile into share/mk and re-use
it for tools. The existing logic broke for the LLVM build with the
recent .ORDER changes in make.


# 1.158 15-Nov-2012 jkunz

Add elftosb tools to evbarm userland and toolchain.
Elftosb is used to create a digitaly signed "secure boot" file.
This sb file can be booted by the first stage boot loader found in
Freescale i.MX23 and i.MX28 application processors.

Copyright (c) 2004-2010 Freescale Semiconductor, Inc.


Revision tags: yamt-pagecache-base6
# 1.157 20-Sep-2012 pooka

fix EXTERNAL_TOOLCHAIN build


# 1.156 10-Aug-2012 joerg

branches: 1.156.2;
Decouple binutils build from HAVE_GCC. Merge common fragments of
HAVE_GCC and HAVE_PCC.


Revision tags: netbsd-6-0-6-RELEASE netbsd-6-1-5-RELEASE netbsd-6-1-4-RELEASE netbsd-6-0-5-RELEASE netbsd-6-1-3-RELEASE netbsd-6-0-4-RELEASE netbsd-6-1-2-RELEASE netbsd-6-0-3-RELEASE netbsd-6-1-1-RELEASE netbsd-6-0-2-RELEASE netbsd-6-1-RELEASE netbsd-6-1-RC4 netbsd-6-1-RC3 netbsd-6-1-RC2 netbsd-6-1-RC1 netbsd-6-0-1-RELEASE matt-nb6-plus-nbase netbsd-6-0-RELEASE netbsd-6-0-RC2 matt-nb6-plus-base netbsd-6-0-RC1 yamt-pagecache-base5 yamt-pagecache-base4 netbsd-6-base yamt-pagecache-base3 yamt-pagecache-base2
# 1.155 03-Nov-2011 joerg

Revert .WAIT removal and add comment why it is needed between *tblgen.


# 1.154 02-Nov-2011 njoly

Do not build tic more than once


# 1.153 02-Nov-2011 christos

move tic later, after all the tools it needs are built.


# 1.152 02-Nov-2011 yamt

tweak dependencies for tic, which needs nbperf, awk, and sed.


Revision tags: yamt-pagecache-base
# 1.151 01-Nov-2011 joerg

branches: 1.151.2;
Remove an unnecessary .WAIT between llvm-tblgen and clang-tblgen.


# 1.150 01-Nov-2011 joerg

Hook up nbperf into the normal tool build.


# 1.149 11-Oct-2011 joerg

Update LLVM/Clang snapshot to r141658. This primarily fixes a regression
preventing Qt4 from building.


# 1.148 16-Jul-2011 tsutsui

Build nbm68k-elf2aout as a host tool on m68k targets
for an ancient PROM bootloader.
Mostly taken from nbmips-elf2ecoff.


# 1.147 10-Jul-2011 mrg

install elf2ecoff for all mips64 systems. it's needed for stand.


# 1.146 21-Jun-2011 mrg

always build gmake if HAVE_GCC.
build gmp, mpfr and then mpc if HAVE_GCC >= 45.


Revision tags: cherry-xenmp-base
# 1.145 15-Apr-2011 elric

branches: 1.145.2;
Upgrade Heimdal to 1.5pre1 by switching the build from crypto/dist/heimdal
to crypto/external/bsd/heimdal. The latter was just imported as the head
of the Heimdal tree as of a few days ago.


# 1.144 17-Mar-2011 riz

.WAIT for makefs, because in most builds, it's the first target
which includes Makefile.nbincludes, whose beforedepend: has
some race condition I don't fully understand, and which has been
causing many (but not all!) -j16 builds on the autobuild cluster
to fail in tools since sometime between 201103061600 and 201103070900.

With the proper voodoo, I was able to get 8 builds in a row to fail
without this change, and 16 in a row to succeed with it.

XXX a proper fix likely involves reworking the beforedepend: target
of Makefile.nbincludes, but this should get the build cluster back up
to full functionality in the meanwhile.


Revision tags: bouyer-quota2-nbase
# 1.143 25-Feb-2011 phx

mkubootimage is certainly useful for sandpoint


Revision tags: bouyer-quota2-base
# 1.142 06-Feb-2011 joerg

Add LLVM and clang build system. It is enabled by MKLLVM=yes.
Upstream sources can be fetched by running "make checkout" in
src/external/bsd/llvm, they will be properly imported once the
integration and missing features are sorted out.


# 1.141 31-Jan-2011 matt

Make mkubootimage for evbmips and evbppc too.


Revision tags: matt-mips64-premerge-20101231
# 1.140 15-Aug-2010 mrg

branches: 1.140.2;
add new option to build/use tools/pigz for compressing sets. for now
USE_PIGZGZIP defaults to "no". (it depends upon local <pthread.h> and -lz.)

you can set it to "yes" on most modern platforms just fine.


# 1.139 18-Jun-2010 jmcneill

hook mkubootimage into the build


# 1.138 04-Jun-2010 jmmv

Bye bye atf-compile, you won't be missed.


# 1.137 02-Mar-2010 darran

DTrace: add libelf, libdwarf, libctf, and CTF tools to the toolchain,
built when MKDTRACE=yes.


# 1.136 20-Feb-2010 joerg

Build mandoc unconditional if man pages are desirable. All
compatibility issues are supposed to be sorted out.
Build groff conditionally on MKGROFF. It is currently the only component
that requires C++.


# 1.135 03-Feb-2010 roy

Store our generated files in CVS and remove nbperf from the toolchain.
This allows us to build consistent libs without an ever changing hash.


# 1.134 03-Feb-2010 roy

Userland now builds and uses terminfo instead of termcap.

OK: core@, jdc@


# 1.133 29-Dec-2009 he

To unbreak the build, temporarily remove the build of libelf here,
since no other part of the build depends on this yet.

Suggested as a temporary workaround by thorpej@


# 1.132 23-Dec-2009 mrg

rework the main SUBDIR list here as suggested by enami. put .WAIT on
the same line as the target that needs to wait, but before the target,
rather than on the previous line, which led to confusion and an error
being introduced in the previous change.


# 1.131 21-Dec-2009 mrg

move the build of pax before libelf. fixes my build of tools/libelf,
though i didn't look to see why libelf needs pax.


# 1.130 21-Dec-2009 thorpej

Add support for building libelf in a host-tool environment.

XXX Makefile.disklabel is really mis-named, but I'm not going to tackle
that problem right now.


Revision tags: matt-premerge-20091211
# 1.129 29-Oct-2009 christos

Give m4 its own .WAIT. Fixes build issue on NetBSD-5.


# 1.128 23-Oct-2009 joerg

Add MKMANDOC option to trigger building cat pages and HTML pages with
mdocml. Add a lintmanpages target for developers to check man pages
with the strictest settings of mandoc.


Revision tags: jym-xensuspend-nbase jym-xensuspend-base
# 1.127 25-Feb-2009 sketch

Disable grep host tool and unbreak NetBSD build until I can come up with a
clean fix.


# 1.126 25-Feb-2009 sketch

Make grep a host tool.


# 1.125 14-Feb-2009 abs

Convert more MACHINE tests to MACHINE_ARCH


Revision tags: netbsd-5-2-3-RELEASE netbsd-5-1-5-RELEASE netbsd-5-2-2-RELEASE netbsd-5-1-4-RELEASE netbsd-5-2-1-RELEASE netbsd-5-1-3-RELEASE netbsd-5-2-RELEASE netbsd-5-2-RC1 netbsd-5-1-2-RELEASE netbsd-5-1-1-RELEASE matt-nb5-mips64-premerge-20101231 matt-nb5-pq3-base netbsd-5-1-RELEASE netbsd-5-1-RC4 matt-nb5-mips64-k15 netbsd-5-1-RC3 netbsd-5-1-RC2 netbsd-5-1-RC1 netbsd-5-0-2-RELEASE matt-nb5-mips64-premerge-20091211 matt-nb5-mips64-u2-k2-k4-k7-k8-k9 matt-nb4-mips64-k7-u2a-k9b matt-nb5-mips64-u1-k1-k5 netbsd-5-0-1-RELEASE netbsd-5-0-RELEASE netbsd-5-0-RC4 netbsd-5-0-RC3 netbsd-5-0-RC2 netbsd-5-0-RC1 netbsd-5-base
# 1.124 25-Oct-2008 apb

branches: 1.124.4; 1.124.8; 1.124.12;
Build sed earlier, just after mktemp. Note that sed and mktemp do not
depend on each other, but the .WAIT is needed to get them both installed
before the remainder of the tools build.


# 1.123 25-Oct-2008 apb

Remove the local handling of the NOSUBDIR variable. We can rely
on bsd.subdir.mk's handling of the NOSUBDIR variable.

Also add some comment to .if/.else/.endif and .for/.endfor lines.


Revision tags: matt-mips64-base2
# 1.122 19-Oct-2008 apb

Add awk as a host tool.


# 1.121 13-Oct-2008 dyoung

Per uwe@'s suggestion, build nbgroff under wider circumstances.
I choose to build it if MKDOC != no or if MKHTML != no. It used
to be built only when MKMAN != no.


# 1.120 05-Oct-2008 apb

Add a .WAIT to ensure that sed is installed early, so that TOOL_SED can
be used during the build of other tools.


# 1.119 26-Sep-2008 apb

Build strfile both as a host tool and as an installed program:
* in games/fortune/strfile/Makefile, build strfile as a
regular program instead of as a host tool;
* add tools/strfile directory to build strfile as a host tool;
* in tools/Makefile, add strfile to SUBDIR list;
* in BSD.*.mk, define TOOL_STRFILE variable;
* in games/fortune/datfiles/Makefile, use TOOL_STRFILE when creating
databases at build time;
* in distrib/sets/lists/games/mi, mention usr/games/strfile.


Revision tags: wrstuden-revivesa-base-3 wrstuden-revivesa-base-2
# 1.118 24-Aug-2008 gmcgarry

Build pcc as host tool if requested.


Revision tags: wrstuden-revivesa-base-1 yamt-pf42-base4 yamt-pf42-base3 wrstuden-revivesa-base
# 1.117 26-May-2008 he

Remove references to bebox-elf2pef and bebox-mkbootimage, now that they
have been integrated in common powerpc tools and subsequently removed.


Revision tags: hpcarm-cleanup-nbase yamt-pf42-base2
# 1.116 30-Apr-2008 garbled

branches: 1.116.2;
Build powerpc-mkbootimage for rs6000 and bebox too.


# 1.115 30-Apr-2008 garbled

Convert prep to use the new unified mkbootimage rather than it's own. This
mkbootimage can be shared by prep, rs6000, and bebox.

TODO: Convert bebox to use this. Needs someone to test.


Revision tags: yamt-pf42-baseX yamt-pf42-base keiichi-mipv6-nbase keiichi-mipv6-base matt-armv6-nbase cube-autoconf-base matt-armv6-base hpcarm-cleanup-base
# 1.114 12-Nov-2007 jmmv

branches: 1.114.6;
Add the atf host tools

This adds reachover Makefiles to build the atf tools required during a
cross-build.


Revision tags: matt-armv6-prevmlocking matt-mips64-base
# 1.113 14-Jan-2007 apb

branches: 1.113.4;
Build join(1) as a host tool.


# 1.112 20-Dec-2006 agc

A commit too far - don't try to build veriexecgen for just now


# 1.111 19-Dec-2006 agc

Build veriexecgen as a host tool


Revision tags: netbsd-4-0-1-RELEASE wrstuden-fixsa-newbase wrstuden-fixsa-base-1 netbsd-4-0-RELEASE netbsd-4-0-RC5 netbsd-4-0-RC4 netbsd-4-0-RC3 netbsd-4-0-RC2 netbsd-4-0-RC1 wrstuden-fixsa-base netbsd-4-base
# 1.110 22-Nov-2006 riz

Make sys/exec_elf.h and machine/elf_machdep.h available to host
tools, and allow paxctl to use them when compiled as a host
tool. This fixes the build on MacOS X (and perhaps other platforms)


# 1.109 17-Nov-2006 dsl

Add some notes about the bogosity of some of the .WAIT stuff.
Remove a 'never had a sane effect' .WAIT from a .ORDER line.
Don't add a (probably incorrect) dependency for 'make install' since
it contradicts a .ORDER line elsewhere when .ORDER applies recursively
to child nodes.
I also think that the stuff that tries to add dependencies between
the stuff that bsd.subdir.mk generates does not DTRT at all.
I suspect that build.sh builds things in an order that avoids issues here.


# 1.108 10-Nov-2006 christos

Add paxctl as a tool.


# 1.107 08-Oct-2006 apb

If PREVIOUSTOOLDIR was empty, then don't complain that it has moved.

Patch from Jukka Salmi in PR 33095.


Revision tags: abandoned-netbsd-4-base
# 1.106 03-Aug-2006 freza

* Fix parallel build race condition between real{all,depend} and
<bsd.subdir.mk> targets.
* No need to pass TOOLDIR to recursive cleandir in real{all,depend}.

With help from he@.
OK by tron@.


# 1.105 03-Aug-2006 tron

Another attempt to fix the race in parallel builds.


# 1.104 19-Jul-2006 tron

Invoking "make cleandir" with "PREVIOUSTOOLDIR" set to the previous
location will not stop recursive "make cleandir" calls. Pass the new
location instead.


# 1.103 18-Jul-2006 lukem

gettext should .WAIT for autoconf.
(The former still doesn't seem to work on read-only source; separate issue)


# 1.102 17-Jul-2006 tron

Avoid getting into a loop of "make cleandir" instances if the location
tool directory has been changed or wasn't recorded before.


# 1.101 17-Jul-2006 tron

Remove ".WAIT" again because it doesn't fix the problem.


# 1.100 12-Jul-2006 tron

Add an extra ".WAIT" to the "realall realdepend" target to make sure
it finished cleaning the tools directory in case of tool directory
mismatch before we try to rebuild the tools.


# 1.99 22-Jun-2006 mrg

only build lint and lint2 if MKLINT != "no".


# 1.98 18-Jun-2006 gdamore

Make TOOL_SED, to allow using our own sed in cases where the host's version
is busted in some way.

The TOOL_SED doesn't use TIOCGWINSIZE, and has some changes to include
nbtool_config.h in a cross build environment.

Combined with some other changes (not yet committed), this allows cross
compiling m68k code on Solaris 10/amd64.


# 1.97 02-Jun-2006 mrg

remove support for building (with) GCC 2.95. also:
- always install <stdbool.h>
- don't generate a fake one for vax / gettext.


# 1.96 11-May-2006 mrg

check HAVE_GCC == 4 not USE_GCC4.


# 1.95 01-Apr-2006 christos

Don't barf if USE_GCC4 is not defined.


# 1.94 29-Mar-2006 jmc

Turn on gmake builds if GCC4 is enabled (and force it's install before continuing


# 1.93 03-Feb-2006 dsl

The realall and realdepend bit that regenerates tools needs to be marked
.MAKE otherwise the 'make' it runs has its own list of jobs instead of
using the jobserver of the enclosing make.


# 1.92 04-Oct-2005 jmc

Make the tools using Makefile.disklabel wait so they don't stomp each other.
Also for now add a dependency to Makefile.disklabel so this doesn't run
3 times. (XXX this really should just be done differently)


# 1.91 12-Jun-2005 dyoung

.include Makefile.disklabel in installboot, so that the
nbinclude/ header files will be installed. Build installboot after
pax, since Makefile.disklabel uses pax to install the headers.


# 1.90 12-Jun-2005 dyoung

Make disklabel(8) and fdisk(8) into "host tools " last step: build
and install ${TOOLDIR}/bin/${MACHINE_GNU_PLATFORM}-disklabel,
${TOOLDIR}/bin/${MACHINE_GNU_PLATFORM}-fdisk by "reaching over" to
the sources in ${NETBSDSRCDIR}/sbin/{disklabel fdisk}/.

To avoid clashes with a build-host's header files, especially on
*BSD, the host-tools versions of fdisk and disklabel search for
#includes such as disklabel.h, disklabel_acorn.h, disklabel_gpt.h,
and bootinfo.h in a new #includes namespace, nbinclude/. That is,
they #include <nbinclude/sys/disklabel.h>, <nbinclude/machine/disklabel.h>,
<nbinclude/sparc64/disklabel.h>, instead of <sys/disklabel.h> and
such. I have also updated the system headers to #include from
nbinclude/-space when HAVE_NBTOOL_CONFIG_H is #defined.


# 1.89 30-May-2005 thorpej

Build genassym as a host tool. Part of PR toolchain/30350


Revision tags: netbsd-3-1-1-RELEASE netbsd-3-0-3-RELEASE netbsd-3-1-RELEASE netbsd-3-0-2-RELEASE netbsd-3-1-RC4 netbsd-3-1-RC3 netbsd-3-1-RC2 netbsd-3-1-RC1 netbsd-3-0-1-RELEASE netbsd-3-0-RELEASE netbsd-3-0-RC6 netbsd-3-0-RC5 netbsd-3-0-RC4 netbsd-3-0-RC3 netbsd-3-0-RC2 netbsd-3-0-RC1 netbsd-3-base
# 1.88 27-Jan-2005 is

We don't need aout2bb any longer.


# 1.87 09-Jan-2005 mycroft

Add some quotes to prevent a syntax error.


# 1.86 28-Nov-2004 jmc

Convert mkboot into a full cross tool. Last hurdle for hp300 to building on
non NetBSD/bsd hosts.


# 1.85 28-Nov-2004 jmc

Convert remaining host tools for amiga to correct cross tools. Now allows
complete amiga builds on non netbsd/bsd hosts


# 1.84 25-Nov-2004 jmc

Convert bebox's remaining host tools over to cross tools scheme. Builds to sets
w/o error now.


# 1.83 28-Jul-2004 skrll

Build hp700's mkboot as a host tool called nbhp700-mkboot. mkboot also
gets built and installed in a hp700 distribution.

TODO

- merge with hp300

- pick a preferred method for dealing with the elf headers.
hp700-mkboot and prep-mkbootimage (bintuils) vs mips-elf2ecoff and
tools/installboot


# 1.82 08-Jun-2004 abs

Add sparkcrc (used to generate checksums for acorn32 bootloader sparkive)
as a host tool.


Revision tags: netbsd-2-0-base
# 1.81 03-Jan-2004 lukem

branches: 1.81.2;
Consistently check ${TOOLCHAIN_MISSING} against "no".


# 1.80 11-Dec-2003 matt

Fix typo.


# 1.79 11-Dec-2003 matt

Add macppc-fixcoff tool.


# 1.78 10-Dec-2003 lukem

Use (cd ${.CURDIR} && ${MAKE} cleandir) instead of ${MAKE} cleandir
Suggested by Ross Harvey.


# 1.77 04-Dec-2003 mrg

always build tools/binutils now.


# 1.76 08-Nov-2003 sekiya

Build sgivol as a host tool when compiling for sgimips.


# 1.75 27-Oct-2003 lukem

add mknod as a host tool


# 1.74 26-Oct-2003 cl

add gdb53 as a host tool for use as a crossgdb
replaces gdb50 from toolchain on archs which use gcc3


# 1.73 21-Oct-2003 lukem

Rework how MAKEVERBOSE operates:

* Don't bother prefixing commands with a line of ${_MKCMD}\
and instead rely upon "make -s". This is less intrusive on
all the Makefiles than the former. Idea from David Laight.

* Rename the variables use to print messages. The scheme now is:
_MKMSG_FOO Run _MKMSG 'foo'
_MKTARGET_FOO Run _MKMSG_FOO ${.TARGET}
From discussion with Alistair Crooks.


# 1.72 19-Oct-2003 matt

Add host tool version of ncdcs


# 1.71 18-Oct-2003 lukem

MAKEVERBOSE support


# 1.70 25-Jul-2003 mrg

- build "binutils" and "gcc" separately if USE_TOOLS_TOOLCHAIN is not set
to "yes".
- adjust dbsym/mdsetimage to look in the correct place for libbfd.
- new mknative-gcc based in toolchain/mknative


# 1.69 24-Jul-2003 tron

Add missing "cleandir" rule.


# 1.68 20-Jul-2003 lukem

add stat(1) as a host tool


# 1.67 16-Jul-2003 lukem

also do the MKTOOLS and PREVIOUSTOOLDIR checks for "realdepend"


# 1.66 16-Jul-2003 lukem

* If a `PREVIOUSTOOLDIR' file doesn't exist, or its contents are not
the same as "$TOOLDIR", run "make cleandir" here first.
This should prevent various problems where $TOOLDIR is encoded into the
build process for various tools (lint, groff, texinfo, toolchain),
$TOOLDIR changes, and various programs don't get rebuilt correctly.
Should fix PR [toolchain/21988].

* Clean up how the `${MKTOOLS} == no' check is performed.

* Remove "cleantools"; it made a big assumption about the location of
TOOLDIR that won't be correct in many cases.


# 1.65 26-Jun-2003 tshiozak

Citrus iconv support(3)
add host tools : mkcsmapper and mkesdb
mkcsmapper - coded character set mapping table compiler
mkesdb - encoding scheme database compiler


# 1.64 18-May-2003 lukem

Add db(1) as a host tool


# 1.63 25-Mar-2003 pooka

build file(1) as a host tool (for compiling magic files)


# 1.62 07-Mar-2003 thorpej

Make hexdump a host tool.


Revision tags: fvdl_fs64_base
# 1.61 21-Dec-2002 lukem

enable sunlabel...


# 1.60 19-Sep-2002 thorpej

Change the TOOLCHAIN_MISSING from == "no" to != "yes", to be consistent
with the other tests of this variable.


# 1.59 19-Sep-2002 matt

Since TOOLCHAIN_MISSING is defined in bsd.own.mk, it can never be undefined.
Instead, make sure the value of it is "no"


# 1.58 17-Sep-2002 thorpej

* Eliminate the USE_NEW_TOOLCHAIN variable. Instead, split it into
two variables:

TOOLCHAIN_MISSING -- set to "yes" on platforms for which there is
no working in-tree toolchain (hppa, ns32k, sh5, x86_64).

EXTERNAL_TOOLCHAIN -- if defined by the user, points to the root of
an external toolchain (e.g. /usr/local/gnu). This enables the cross-build
framework even for TOOLCHAIN_MISSING platforms.

If TOOLCHAIN_MISSING is set to "yes", MKGDB, MKBFD, and MKGCC are all
unconditionally set to "no", since the bits are not there to build.

If EXTERNAL_TOOLCHAIN is set, MKGCC is unconditionally set to "no",
since the external toolchain's compiler is not in-sync with the
in-tree compiler support components (e.g. libgcc).

* Set MACHINE_CPU much earlier in bsd.own.mk, so that more tests in
that file can use it.


# 1.57 14-Sep-2002 chris

We need binstall to be installed, before attempting to use it to install mktemp.


# 1.56 14-Sep-2002 thorpej

Descend into mktemp.


# 1.55 12-Jun-2002 veego

The last commit wasn't tested. Add a missing \


# 1.54 12-Jun-2002 thorpej

Don't build toolchain bits for hppa, for now.


# 1.53 10-Jun-2002 mason

Add cat(1) as a host tool.


# 1.52 05-Jun-2002 thorpej

Don't try to build toolchain bits for ns32k.


# 1.51 28-May-2002 bjh21

Add fgen as a host tool, used for sys/arch/sparc/bootblk.


Revision tags: netbsd-1-6-base
# 1.50 18-May-2002 lukem

branches: 1.50.2;
gratuitious comment addition


# 1.49 07-May-2002 lukem

remove now-unnecessary sparc-installboot


# 1.48 03-May-2002 kleink

On prep, descend into prep-mkbootimage.


# 1.47 06-Apr-2002 bjh21

vax-installboot has been deleted, so don't recurse into it.


# 1.46 03-Apr-2002 lukem

enable installboot


# 1.45 01-Apr-2002 thorpej

Nuke NO_DBSYM; dbsym now uses BFD for everything.


# 1.44 01-Apr-2002 bjh21

On second thoughts, don't make mktemp a host tool. It's only used once, for
creating a temporary directory for maketars, and mkdir can do that safely
enough.


# 1.43 31-Mar-2002 bjh21

Add mktemp as a host tool.


# 1.42 31-Mar-2002 bjh21

Add cksum as a host tool.


# 1.41 29-Mar-2002 matt

Drop into vax-installboot on VAX machines.


# 1.40 07-Mar-2002 tv

Rework recursion to use the original logic again, in the structure cleaned
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".


# 1.39 07-Mar-2002 tv

Don't build groff if MKMAN=no. (groff does not build properly on some
platforms because of its completely insane Make structure; this allows it
to be disabled in a sane way.)


# 1.38 26-Feb-2002 tv

Add gettext to tools.

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.)


# 1.37 23-Feb-2002 gmcgarry

Add elf2ecoff as a build tool for mips ports.


# 1.36 18-Feb-2002 pk

* Add comments on all the directory build/install ordering goo.
* 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.


# 1.35 11-Feb-2002 pk

Revert part of previous; we need the install targets.


# 1.34 10-Feb-2002 pk

Use .ORDER targets to express the dependencies on subdir runs. This makes
the resulting tree complexity O(N) (N=# of subdirs), and it also makes it
easier to comprehend the Makefile logic.


# 1.33 08-Feb-2002 pk

Make sure to not go off installing in a directory before it's fully made.


# 1.32 31-Jan-2002 tv

Roll in fixes to permit cross-compiling from non-NetBSD hosts. This
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.


# 1.31 29-Jan-2002 tv

Make almost all tools compile and run properly on non-NetBSD hosts. (In
particular, most tools now run correctly on Solaris 7.)


# 1.30 25-Jan-2002 lukem

build pax as a host tool, for -N and to work around borken vendor paxes


# 1.29 10-Jan-2002 tv

Move host-mkdep to its own directory. Create and install it before
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.


# 1.28 10-Jan-2002 lukem

revert previous, and reenable tools/makefs now that it works on
netbsd-current and netbsd-1-5


# 1.27 09-Jan-2002 tv

Disable makefs in src/tools for the moment; it's very dependent on -current
NetBSD headers and sources right now. (Temporary workaround for PR 15175.)


# 1.26 05-Jan-2002 mrg

build zic as a host tool.


# 1.25 05-Jan-2002 mrg

build makefs, and, sparc-installboot if sparc||sparc64


# 1.24 31-Dec-2001 thorpej

We can't currently build a toolchain for x86-64 here, so don't
attempt to do so.


# 1.23 29-Dec-2001 wiz

Typo fix in error message.


# 1.22 11-Dec-2001 tv

Add the framework for autoconf-based src/tools/compat structure. This will
(after it is more fleshed out) allow the host tools to work more cleanly
on non-NetBSD hosts.


# 1.21 07-Dec-2001 jmc

Add pwd_mkdb as a toolchain bit for builds


# 1.20 29-Nov-2001 thorpej

Build makewhatis as a host tool, since it is used at the end of
the build.

XXX Needs a -lz hostlib.


# 1.19 22-Nov-2001 jmc

Oops. typo which can break things for non-new toolchain builds if MKTOOLS isn't
set


# 1.18 22-Nov-2001 jmc

Check for USETOOLS!=yes in addition to MKTOOLS==no to generate the empty rule
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


# 1.17 13-Nov-2001 tv

Re-add MKTOOLS as a "yes"/"no" only variable, which prevents recursion on "no"
into the src/tools subdirs on all/depend/dependall/install. Other recursive
targets are not affected.


# 1.16 12-Nov-2001 tv

Major overhaul of src/tools and host toolchain. Summary of changes:

* 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.


# 1.15 09-Nov-2001 thorpej

Build the cross-dbsym.


# 1.14 02-Nov-2001 tv

* Always use the makewrapper when starting a build phase.

* 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.


# 1.13 31-Oct-2001 tv

Don't actually delete the default tooldir on "cleandir"; else we'll nuke
the nbmake that is probably currently running.

Just leave the "cleantools" manual target as a shortcut for the user.


# 1.12 31-Oct-2001 tv

* Create a variable HOST_OSTYPE that represents the host build environment,
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.


# 1.11 31-Oct-2001 tv

* Always descend into "tools" regardless of USETOOLS setting. Instead,
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.


# 1.10 25-Oct-2001 thorpej

Add asn1_compile as a host tool.


# 1.9 21-Oct-2001 jmc

Pull in mdsetimage to the tools builds. (XXX - using libbfd here would
probably be preferrable long term).


# 1.8 20-Oct-2001 jmc

Add mklocale to cross-tools and turn it back on for the builds.


# 1.7 13-Oct-2001 jmc

Add crunchgen, msgc and menuc


# 1.6 09-Oct-2001 enami

Make mtree a host tool and use it when appropriate.


# 1.5 04-Oct-2001 tv

Recurse properly; just add "build" to TARGETS (fixes reported problem where
"make clean" doesn't work at the src/tools level).


# 1.4 22-Sep-2001 tv

Work around "make obj" lossage in tools/. Dunno why this is happening
just yet; will investigate this evening.


# 1.3 22-Sep-2001 tv

Add lorder to TOOLDIR host tools.

Only descend into directories if USE_NEW_TOOLCHAIN is set (allows top level
Makefile to use "-m ${.CURDIR}/share/mk" to get the "correct" <bsd.own.mk>
when descending into src/tools/Makefile).


# 1.2 21-Sep-2001 tv

- Create a real cpp binary.
- Set CC properly in environment for mkdep and lint.
- Add compile_et to TOOLDIR host tools.


# 1.1 14-Aug-2001 tv

Bootstrap toolchain framework, first pass.


# 1.219 01-Apr-2024 christos

hook gzip to the build so that we can test it in other OS's. Not used yet.


# 1.218 30-Mar-2024 riastradh

tools/elftoolchain: Handle dependencies properly.

This should properly resolve the problem christos was trying to
address by a bogus make includes hack and #ifdefs in elftoolchain.


# 1.217 27-Mar-2024 rillig

tools/Makefile: clean up TOOLDIR validation

At the point where tools/Makefile is loaded, TOOLDIR doesn't have to
exist yet, it will be created later. Remove the redundant quotes from
the .error messages.


# 1.216 23-Feb-2024 mrg

build isl tool for GCC 12.


# 1.215 30-Nov-2023 rin

tools/Makefile: Correct inverted comment. NFC


Revision tags: netbsd-10-0-RELEASE netbsd-10-0-RC6 netbsd-10-0-RC5 netbsd-10-0-RC4 netbsd-10-0-RC3 netbsd-10-0-RC2 netbsd-10-0-RC1 netbsd-10-base
# 1.214 18-Apr-2022 jkoshy

Disconnect 'tools/lib{elf,dwarf}' from the build.

These libraries are now built by 'tools/elftoolchain/lib{elf,dwarf}'
respectively.


# 1.213 13-Apr-2022 jkoshy

When building tools use a dedicated subdirectory for compiling
Elftoolchain code.

Build and install <sys/elfdefinitions.h> in ${TOOLDIR}/include.

This change prepares the ground for upgrading libelf and libdwarf to
their current Elftoolchain versions.


# 1.212 14-Nov-2021 skrll

Make dtc on riscv


Revision tags: cjep_sun2x-base1 cjep_sun2x-base cjep_staticlib_x-base1
# 1.211 27-May-2021 cjep

If we are building date earlier, we need to use an uninstalled copy
of host-mkdep and libnbcompat otherwise the build process looks for
tools that might not be there yet (e.g. fresh build).
Reviewed by martin.


# 1.210 26-May-2021 christos

Add a date tool


Revision tags: cjep_staticlib_x-base
# 1.209 06-May-2021 rin

branches: 1.209.2;
PR port-mvme68k/56146

Build wrtvid as tools.


# 1.208 25-Apr-2021 christos

Make mips-elf2ecoff available for all mips


# 1.207 06-Feb-2021 dbj

tools: allow MKCROSSGDB to work when not building gcc


# 1.206 28-Jul-2020 uwe

Build mkubootimage for evbsh3 too.


Revision tags: phil-wifi-20200421 phil-wifi-20200411 is-mlppp-base phil-wifi-20200406 phil-wifi-20191119
# 1.205 11-Nov-2019 joerg

Update LLVM to 10.0.0git (01f3a59fb3e2542fce74c768718f594d0debd0da)


# 1.204 26-Sep-2019 bad

Exclude more subdirs if TOOLS_BUILDRUMP=yes.

Exclude subdirs added in the last 3 years but not need for rumpkernel builds.


Revision tags: netbsd-9-3-RELEASE netbsd-9-2-RELEASE netbsd-9-1-RELEASE netbsd-9-0-RELEASE netbsd-9-0-RC2 netbsd-9-0-RC1 netbsd-9-base phil-wifi-20190609
# 1.203 07-May-2019 hannken

Fix build, "pax" must be built before "libprop".

Ok: Matthew Green mrg@


# 1.202 07-May-2019 thorpej

Add support for libprop as a host tool library.


# 1.201 03-Apr-2019 joerg

Add MKLLVMRT to build a subset of the LLVM stack for JIT purposes.
Hook up AMDGPU backend for clang.


# 1.200 03-Apr-2019 joerg

Revert MKLLVMCMDS changes.


# 1.199 20-Mar-2019 mrg

split MKLLVM into MKLLVM and MKLLVMCMDS, like MKGCC and MKGCCCMDS:

- only build clang or clang-tblgen if MKLLVMCMDS != "no"
- move HAVE_MESA_VER earlier so we can detect mesa 18 and enable
MKLLVM on platforms that need it
- move the clang commands and headers into llvmcmds group
- only build the clang specific LLVM libraries if MKLLVMCMDS != "no"

much of this work came from maya@'s github commit
f90685c11d4460d3098fa35f48b58d1893e974e0, reworked for HAVE_MESA_VER
and llvmcmds vs MKCLANG.


build tested on several platforms and on amd64 and i386 with several
different build options (clang build, gcc build, gcc build with llvm
libs).


Revision tags: pgoyette-compat-20190127 pgoyette-compat-20190118
# 1.198 02-Jan-2019 christos

use MACHINE_CPU for elf2aout


# 1.197 31-Dec-2018 christos

Add an arm-specific elf2aout tool since objdump does not support a.out anymore


Revision tags: pgoyette-compat-1226 pgoyette-compat-1126 pgoyette-compat-1020 pgoyette-compat-0930
# 1.196 25-Sep-2018 joerg

Update build glue for xz-5.2.4. Hook up tools version.


Revision tags: pgoyette-compat-0906
# 1.195 11-Aug-2018 christos

hook in the tools version of grep


Revision tags: pgoyette-compat-0728 phil-wifi-base pgoyette-compat-0625 pgoyette-compat-0521
# 1.194 09-May-2018 joerg

branches: 1.194.2;
For EXTERNAL_TOOLCHAIN, MKLLVM=yes needs to build only tablegen.


Revision tags: pgoyette-compat-0502 pgoyette-compat-0422 pgoyette-compat-0415 pgoyette-compat-0407 pgoyette-compat-0330 pgoyette-compat-0322 pgoyette-compat-0315 pgoyette-compat-base
# 1.193 18-Feb-2018 uwe

branches: 1.193.2;
Fix .endif comment for TOOLS_BUILDRUMP


# 1.192 27-Dec-2017 christos

Better EXTERNAL_TOOLCHAIN support from Zachary McGrew
- Allow mdsetimage and dbsym to be built with EXTERNAL_TOOLCHAIN
- Allow BFDDIR and IBERTYDIR to be overwritten for mdsetimage and dbsym


Revision tags: perseant-stdc-iso10646-base
# 1.191 07-Jun-2017 skrll

branches: 1.191.2;
Hook in dtc/libfdt now that it builds for me


# 1.190 06-Jun-2017 skrll

Disable dtc/libfdt for now


# 1.189 05-Jun-2017 christos

No need to set dtc twice.


# 1.188 05-Jun-2017 christos

Add dtc


Revision tags: netbsd-8-base prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1 pgoyette-localcount-20170320 bouyer-socketcan-base
# 1.187 11-Jan-2017 joerg

branches: 1.187.6;
Sync tools build glue with LLVM pre-4.0.0.


Revision tags: pgoyette-localcount-20170107 pgoyette-localcount-20161104 localcount-20160914 pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base
# 1.186 24-Jan-2016 christos

branches: 1.186.2;
move cvslatest last


# 1.185 24-Jan-2016 christos

Tool version


# 1.184 19-Dec-2015 christos

move sortinfo after pax


# 1.183 18-Dec-2015 christos

Add sortinfo


# 1.182 23-Jul-2015 mrg

remove the xfree86 reachover makefiles and the vast majority of
the support in the rest of the source tree.

X11 sets could use some cleaning up perhaps (just deletion, as
we've never really marked the old X11R6 as obsolete for native
xorg using platforms so far either.)


# 1.181 24-Jun-2015 matt

Support building the xorg X11 libraries under MKCOMPAT.
Add XORG_MACHINE_ARCH to compat's bsd.*.mk
Turn xorg makekeys and makestrs into real host tools which are installed into
${TOOLSDIR}


# 1.180 07-Jan-2015 joerg

Reorganise the way xorg is build. Move build of makestrs into src/tools
as it is needed for the "includes" phase. Make it symlink all necessary
headers in obj to decouple it from "includes" itself, breaking the
dependency cycle. Move the do-x11 target between do-lib and do-build, so
that libraries can get the benefit of build_install (correct .WAIT
behavior) and everything else like "includes" uses the plain SUBDIR
entry in external/mit.


# 1.179 05-Dec-2014 pooka

build genassym for TOOLS_BUILDRUMP


# 1.178 30-Sep-2014 christos

add gpt


Revision tags: netbsd-7-2-RELEASE netbsd-7-1-2-RELEASE netbsd-7-1-1-RELEASE netbsd-7-1-RELEASE netbsd-7-1-RC2 netbsd-7-nhusb-base-20170116 netbsd-7-1-RC1 netbsd-7-0-2-RELEASE netbsd-7-nhusb-base netbsd-7-0-1-RELEASE netbsd-7-0-RELEASE netbsd-7-0-RC3 netbsd-7-0-RC2 netbsd-7-0-RC1 netbsd-7-base tls-maxphys-base
# 1.177 10-Aug-2014 matt

Changes to existing files to enable building AARCH64 userland.
evbarm64-el
This is clang only. While gcc4.8 supports aarch64, no netbsd support has
been written for aarch64 with gcc4.8.


Revision tags: tls-earlyentropy-base
# 1.176 15-Jul-2014 christos

descend to vgrind


# 1.175 15-Jun-2014 pooka

Add cat, rpcgen and stat to TOOLS_BUILDRUMP. They're useful for
installing headers for the app stack cases that need it done, and small
enough to not matter for the kernel-only cases that don't.


# 1.174 14-Jun-2014 mrg

remove remaining makefile support for GCC < 45 that i found.


Revision tags: yamt-pagecache-base9
# 1.173 03-Apr-2014 riastradh

branches: 1.173.2;
ctfconvert/ctfmerge need libdwarf &c., so build them if MKCTF=yes.


Revision tags: riastradh-xf86-video-intel-2-7-1-pre-2-21-15
# 1.172 25-Mar-2014 ozaki-r

Add MKCTF

This variable separates CTF stuffs from MKDTRACE; we can build DTrace
solely without building and using them. This allows us to use DTrace
even if CTF stuffs have problems (actually they have now).

This variable would be merged into MKDTRACE eventually, once CTF stuffs
work correctly again.


Revision tags: riastradh-drm2-base3
# 1.171 24-Feb-2014 skrll

Rename NetBSD/hp700 to NetBSD/hppa.

Unfortunately our VCS isn't very helpful here.


# 1.170 02-Sep-2013 joerg

Update LLVM/Clang snapshot to r189662. This includes many improvements
to the new SLP vectorizer, fast codegen support for PPC and using
terminfo for the color sequences. In addition, add (optional) build
infrastructure for lld to allow easier testing. This is controlled by
MKLLD.


Revision tags: riastradh-drm2-base2 riastradh-drm2-base1
# 1.169 19-Jul-2013 matt

Even if we aren't making a crossgdb still make the object dir for it.


Revision tags: riastradh-drm2-base agc-symver-base
# 1.168 27-Feb-2013 joerg

branches: 1.168.4;
Add infrastructure for building MCLinker.


# 1.167 05-Feb-2013 matt

There are other little endian arm machine_arches other than "arm"
Use MACHINE_CPU and TARGET_ENDIANNESS instead of MACHINE_ARCH


# 1.166 31-Jan-2013 pooka

Use TOOLS_BUILDRUMP=yes to restrict building of tools to those required
for building rump kernels. This cuts down the NetBSD source tree required
by buildrump.sh to a fraction and addresses a size/download time concern
from a person packaging rump kernels for Linux.

No change to the normal case (tested with several -j32/-j64 builds).

reviewed by apb


Revision tags: yamt-pagecache-base8 yamt-pagecache-base7
# 1.165 02-Dec-2012 apb

Make tools/Makefile build host-mkdep, compat, and binstall in that order,
before installing any of them. It installs them in any order relative
to each other. The .WAIT points that used to be between these three
tools are replaced by .ORDER and dependencies.

This is needed in preparation for making tools/compat install
some files into TOOLDIR.


# 1.164 02-Dec-2012 apb

TOOLDIR must be valid, unless MKTOOLS=no.
Add tests and .error directives to enforce this.


# 1.163 02-Dec-2012 apb

If tools are not wanted, then set SUBDIR= empty instead of
defining all the subdir-related targets to do nothing. This way,
the targets are not invoked at all, instead of being invoked but
doing nothing.


# 1.162 02-Dec-2012 apb

remove trailing white space


# 1.161 27-Nov-2012 jkunz

According to the i.MX23 Reference Manual section 3.1, Page 3-3:
"The i.MX23 always operates in litle-endian mode."
So build elftosb and bootloader for this processor only for evbarm(-el).


# 1.160 26-Nov-2012 pooka

Build gmake iff we're going to need it.


# 1.159 15-Nov-2012 joerg

Move the build_install logic from lib/Makefile into share/mk and re-use
it for tools. The existing logic broke for the LLVM build with the
recent .ORDER changes in make.


# 1.158 15-Nov-2012 jkunz

Add elftosb tools to evbarm userland and toolchain.
Elftosb is used to create a digitaly signed "secure boot" file.
This sb file can be booted by the first stage boot loader found in
Freescale i.MX23 and i.MX28 application processors.

Copyright (c) 2004-2010 Freescale Semiconductor, Inc.


Revision tags: yamt-pagecache-base6
# 1.157 20-Sep-2012 pooka

fix EXTERNAL_TOOLCHAIN build


# 1.156 10-Aug-2012 joerg

branches: 1.156.2;
Decouple binutils build from HAVE_GCC. Merge common fragments of
HAVE_GCC and HAVE_PCC.


Revision tags: netbsd-6-0-6-RELEASE netbsd-6-1-5-RELEASE netbsd-6-1-4-RELEASE netbsd-6-0-5-RELEASE netbsd-6-1-3-RELEASE netbsd-6-0-4-RELEASE netbsd-6-1-2-RELEASE netbsd-6-0-3-RELEASE netbsd-6-1-1-RELEASE netbsd-6-0-2-RELEASE netbsd-6-1-RELEASE netbsd-6-1-RC4 netbsd-6-1-RC3 netbsd-6-1-RC2 netbsd-6-1-RC1 netbsd-6-0-1-RELEASE matt-nb6-plus-nbase netbsd-6-0-RELEASE netbsd-6-0-RC2 matt-nb6-plus-base netbsd-6-0-RC1 yamt-pagecache-base5 yamt-pagecache-base4 netbsd-6-base yamt-pagecache-base3 yamt-pagecache-base2
# 1.155 03-Nov-2011 joerg

Revert .WAIT removal and add comment why it is needed between *tblgen.


# 1.154 02-Nov-2011 njoly

Do not build tic more than once


# 1.153 02-Nov-2011 christos

move tic later, after all the tools it needs are built.


# 1.152 02-Nov-2011 yamt

tweak dependencies for tic, which needs nbperf, awk, and sed.


Revision tags: yamt-pagecache-base
# 1.151 01-Nov-2011 joerg

branches: 1.151.2;
Remove an unnecessary .WAIT between llvm-tblgen and clang-tblgen.


# 1.150 01-Nov-2011 joerg

Hook up nbperf into the normal tool build.


# 1.149 11-Oct-2011 joerg

Update LLVM/Clang snapshot to r141658. This primarily fixes a regression
preventing Qt4 from building.


# 1.148 16-Jul-2011 tsutsui

Build nbm68k-elf2aout as a host tool on m68k targets
for an ancient PROM bootloader.
Mostly taken from nbmips-elf2ecoff.


# 1.147 10-Jul-2011 mrg

install elf2ecoff for all mips64 systems. it's needed for stand.


# 1.146 21-Jun-2011 mrg

always build gmake if HAVE_GCC.
build gmp, mpfr and then mpc if HAVE_GCC >= 45.


Revision tags: cherry-xenmp-base
# 1.145 15-Apr-2011 elric

branches: 1.145.2;
Upgrade Heimdal to 1.5pre1 by switching the build from crypto/dist/heimdal
to crypto/external/bsd/heimdal. The latter was just imported as the head
of the Heimdal tree as of a few days ago.


# 1.144 17-Mar-2011 riz

.WAIT for makefs, because in most builds, it's the first target
which includes Makefile.nbincludes, whose beforedepend: has
some race condition I don't fully understand, and which has been
causing many (but not all!) -j16 builds on the autobuild cluster
to fail in tools since sometime between 201103061600 and 201103070900.

With the proper voodoo, I was able to get 8 builds in a row to fail
without this change, and 16 in a row to succeed with it.

XXX a proper fix likely involves reworking the beforedepend: target
of Makefile.nbincludes, but this should get the build cluster back up
to full functionality in the meanwhile.


Revision tags: bouyer-quota2-nbase
# 1.143 25-Feb-2011 phx

mkubootimage is certainly useful for sandpoint


Revision tags: bouyer-quota2-base
# 1.142 06-Feb-2011 joerg

Add LLVM and clang build system. It is enabled by MKLLVM=yes.
Upstream sources can be fetched by running "make checkout" in
src/external/bsd/llvm, they will be properly imported once the
integration and missing features are sorted out.


# 1.141 31-Jan-2011 matt

Make mkubootimage for evbmips and evbppc too.


Revision tags: matt-mips64-premerge-20101231
# 1.140 15-Aug-2010 mrg

branches: 1.140.2;
add new option to build/use tools/pigz for compressing sets. for now
USE_PIGZGZIP defaults to "no". (it depends upon local <pthread.h> and -lz.)

you can set it to "yes" on most modern platforms just fine.


# 1.139 18-Jun-2010 jmcneill

hook mkubootimage into the build


# 1.138 04-Jun-2010 jmmv

Bye bye atf-compile, you won't be missed.


# 1.137 02-Mar-2010 darran

DTrace: add libelf, libdwarf, libctf, and CTF tools to the toolchain,
built when MKDTRACE=yes.


# 1.136 20-Feb-2010 joerg

Build mandoc unconditional if man pages are desirable. All
compatibility issues are supposed to be sorted out.
Build groff conditionally on MKGROFF. It is currently the only component
that requires C++.


# 1.135 03-Feb-2010 roy

Store our generated files in CVS and remove nbperf from the toolchain.
This allows us to build consistent libs without an ever changing hash.


# 1.134 03-Feb-2010 roy

Userland now builds and uses terminfo instead of termcap.

OK: core@, jdc@


# 1.133 29-Dec-2009 he

To unbreak the build, temporarily remove the build of libelf here,
since no other part of the build depends on this yet.

Suggested as a temporary workaround by thorpej@


# 1.132 23-Dec-2009 mrg

rework the main SUBDIR list here as suggested by enami. put .WAIT on
the same line as the target that needs to wait, but before the target,
rather than on the previous line, which led to confusion and an error
being introduced in the previous change.


# 1.131 21-Dec-2009 mrg

move the build of pax before libelf. fixes my build of tools/libelf,
though i didn't look to see why libelf needs pax.


# 1.130 21-Dec-2009 thorpej

Add support for building libelf in a host-tool environment.

XXX Makefile.disklabel is really mis-named, but I'm not going to tackle
that problem right now.


Revision tags: matt-premerge-20091211
# 1.129 29-Oct-2009 christos

Give m4 its own .WAIT. Fixes build issue on NetBSD-5.


# 1.128 23-Oct-2009 joerg

Add MKMANDOC option to trigger building cat pages and HTML pages with
mdocml. Add a lintmanpages target for developers to check man pages
with the strictest settings of mandoc.


Revision tags: jym-xensuspend-nbase jym-xensuspend-base
# 1.127 25-Feb-2009 sketch

Disable grep host tool and unbreak NetBSD build until I can come up with a
clean fix.


# 1.126 25-Feb-2009 sketch

Make grep a host tool.


# 1.125 14-Feb-2009 abs

Convert more MACHINE tests to MACHINE_ARCH


Revision tags: netbsd-5-2-3-RELEASE netbsd-5-1-5-RELEASE netbsd-5-2-2-RELEASE netbsd-5-1-4-RELEASE netbsd-5-2-1-RELEASE netbsd-5-1-3-RELEASE netbsd-5-2-RELEASE netbsd-5-2-RC1 netbsd-5-1-2-RELEASE netbsd-5-1-1-RELEASE matt-nb5-mips64-premerge-20101231 matt-nb5-pq3-base netbsd-5-1-RELEASE netbsd-5-1-RC4 matt-nb5-mips64-k15 netbsd-5-1-RC3 netbsd-5-1-RC2 netbsd-5-1-RC1 netbsd-5-0-2-RELEASE matt-nb5-mips64-premerge-20091211 matt-nb5-mips64-u2-k2-k4-k7-k8-k9 matt-nb4-mips64-k7-u2a-k9b matt-nb5-mips64-u1-k1-k5 netbsd-5-0-1-RELEASE netbsd-5-0-RELEASE netbsd-5-0-RC4 netbsd-5-0-RC3 netbsd-5-0-RC2 netbsd-5-0-RC1 netbsd-5-base
# 1.124 25-Oct-2008 apb

branches: 1.124.4; 1.124.8; 1.124.12;
Build sed earlier, just after mktemp. Note that sed and mktemp do not
depend on each other, but the .WAIT is needed to get them both installed
before the remainder of the tools build.


# 1.123 25-Oct-2008 apb

Remove the local handling of the NOSUBDIR variable. We can rely
on bsd.subdir.mk's handling of the NOSUBDIR variable.

Also add some comment to .if/.else/.endif and .for/.endfor lines.


Revision tags: matt-mips64-base2
# 1.122 19-Oct-2008 apb

Add awk as a host tool.


# 1.121 13-Oct-2008 dyoung

Per uwe@'s suggestion, build nbgroff under wider circumstances.
I choose to build it if MKDOC != no or if MKHTML != no. It used
to be built only when MKMAN != no.


# 1.120 05-Oct-2008 apb

Add a .WAIT to ensure that sed is installed early, so that TOOL_SED can
be used during the build of other tools.


# 1.119 26-Sep-2008 apb

Build strfile both as a host tool and as an installed program:
* in games/fortune/strfile/Makefile, build strfile as a
regular program instead of as a host tool;
* add tools/strfile directory to build strfile as a host tool;
* in tools/Makefile, add strfile to SUBDIR list;
* in BSD.*.mk, define TOOL_STRFILE variable;
* in games/fortune/datfiles/Makefile, use TOOL_STRFILE when creating
databases at build time;
* in distrib/sets/lists/games/mi, mention usr/games/strfile.


Revision tags: wrstuden-revivesa-base-3 wrstuden-revivesa-base-2
# 1.118 24-Aug-2008 gmcgarry

Build pcc as host tool if requested.


Revision tags: wrstuden-revivesa-base-1 yamt-pf42-base4 yamt-pf42-base3 wrstuden-revivesa-base
# 1.117 26-May-2008 he

Remove references to bebox-elf2pef and bebox-mkbootimage, now that they
have been integrated in common powerpc tools and subsequently removed.


Revision tags: hpcarm-cleanup-nbase yamt-pf42-base2
# 1.116 30-Apr-2008 garbled

branches: 1.116.2;
Build powerpc-mkbootimage for rs6000 and bebox too.


# 1.115 30-Apr-2008 garbled

Convert prep to use the new unified mkbootimage rather than it's own. This
mkbootimage can be shared by prep, rs6000, and bebox.

TODO: Convert bebox to use this. Needs someone to test.


Revision tags: yamt-pf42-baseX yamt-pf42-base keiichi-mipv6-nbase keiichi-mipv6-base matt-armv6-nbase cube-autoconf-base matt-armv6-base hpcarm-cleanup-base
# 1.114 12-Nov-2007 jmmv

branches: 1.114.6;
Add the atf host tools

This adds reachover Makefiles to build the atf tools required during a
cross-build.


Revision tags: matt-armv6-prevmlocking matt-mips64-base
# 1.113 14-Jan-2007 apb

branches: 1.113.4;
Build join(1) as a host tool.


# 1.112 20-Dec-2006 agc

A commit too far - don't try to build veriexecgen for just now


# 1.111 19-Dec-2006 agc

Build veriexecgen as a host tool


Revision tags: netbsd-4-0-1-RELEASE wrstuden-fixsa-newbase wrstuden-fixsa-base-1 netbsd-4-0-RELEASE netbsd-4-0-RC5 netbsd-4-0-RC4 netbsd-4-0-RC3 netbsd-4-0-RC2 netbsd-4-0-RC1 wrstuden-fixsa-base netbsd-4-base
# 1.110 22-Nov-2006 riz

Make sys/exec_elf.h and machine/elf_machdep.h available to host
tools, and allow paxctl to use them when compiled as a host
tool. This fixes the build on MacOS X (and perhaps other platforms)


# 1.109 17-Nov-2006 dsl

Add some notes about the bogosity of some of the .WAIT stuff.
Remove a 'never had a sane effect' .WAIT from a .ORDER line.
Don't add a (probably incorrect) dependency for 'make install' since
it contradicts a .ORDER line elsewhere when .ORDER applies recursively
to child nodes.
I also think that the stuff that tries to add dependencies between
the stuff that bsd.subdir.mk generates does not DTRT at all.
I suspect that build.sh builds things in an order that avoids issues here.


# 1.108 10-Nov-2006 christos

Add paxctl as a tool.


# 1.107 08-Oct-2006 apb

If PREVIOUSTOOLDIR was empty, then don't complain that it has moved.

Patch from Jukka Salmi in PR 33095.


Revision tags: abandoned-netbsd-4-base
# 1.106 03-Aug-2006 freza

* Fix parallel build race condition between real{all,depend} and
<bsd.subdir.mk> targets.
* No need to pass TOOLDIR to recursive cleandir in real{all,depend}.

With help from he@.
OK by tron@.


# 1.105 03-Aug-2006 tron

Another attempt to fix the race in parallel builds.


# 1.104 19-Jul-2006 tron

Invoking "make cleandir" with "PREVIOUSTOOLDIR" set to the previous
location will not stop recursive "make cleandir" calls. Pass the new
location instead.


# 1.103 18-Jul-2006 lukem

gettext should .WAIT for autoconf.
(The former still doesn't seem to work on read-only source; separate issue)


# 1.102 17-Jul-2006 tron

Avoid getting into a loop of "make cleandir" instances if the location
tool directory has been changed or wasn't recorded before.


# 1.101 17-Jul-2006 tron

Remove ".WAIT" again because it doesn't fix the problem.


# 1.100 12-Jul-2006 tron

Add an extra ".WAIT" to the "realall realdepend" target to make sure
it finished cleaning the tools directory in case of tool directory
mismatch before we try to rebuild the tools.


# 1.99 22-Jun-2006 mrg

only build lint and lint2 if MKLINT != "no".


# 1.98 18-Jun-2006 gdamore

Make TOOL_SED, to allow using our own sed in cases where the host's version
is busted in some way.

The TOOL_SED doesn't use TIOCGWINSIZE, and has some changes to include
nbtool_config.h in a cross build environment.

Combined with some other changes (not yet committed), this allows cross
compiling m68k code on Solaris 10/amd64.


# 1.97 02-Jun-2006 mrg

remove support for building (with) GCC 2.95. also:
- always install <stdbool.h>
- don't generate a fake one for vax / gettext.


# 1.96 11-May-2006 mrg

check HAVE_GCC == 4 not USE_GCC4.


# 1.95 01-Apr-2006 christos

Don't barf if USE_GCC4 is not defined.


# 1.94 29-Mar-2006 jmc

Turn on gmake builds if GCC4 is enabled (and force it's install before continuing


# 1.93 03-Feb-2006 dsl

The realall and realdepend bit that regenerates tools needs to be marked
.MAKE otherwise the 'make' it runs has its own list of jobs instead of
using the jobserver of the enclosing make.


# 1.92 04-Oct-2005 jmc

Make the tools using Makefile.disklabel wait so they don't stomp each other.
Also for now add a dependency to Makefile.disklabel so this doesn't run
3 times. (XXX this really should just be done differently)


# 1.91 12-Jun-2005 dyoung

.include Makefile.disklabel in installboot, so that the
nbinclude/ header files will be installed. Build installboot after
pax, since Makefile.disklabel uses pax to install the headers.


# 1.90 12-Jun-2005 dyoung

Make disklabel(8) and fdisk(8) into "host tools " last step: build
and install ${TOOLDIR}/bin/${MACHINE_GNU_PLATFORM}-disklabel,
${TOOLDIR}/bin/${MACHINE_GNU_PLATFORM}-fdisk by "reaching over" to
the sources in ${NETBSDSRCDIR}/sbin/{disklabel fdisk}/.

To avoid clashes with a build-host's header files, especially on
*BSD, the host-tools versions of fdisk and disklabel search for
#includes such as disklabel.h, disklabel_acorn.h, disklabel_gpt.h,
and bootinfo.h in a new #includes namespace, nbinclude/. That is,
they #include <nbinclude/sys/disklabel.h>, <nbinclude/machine/disklabel.h>,
<nbinclude/sparc64/disklabel.h>, instead of <sys/disklabel.h> and
such. I have also updated the system headers to #include from
nbinclude/-space when HAVE_NBTOOL_CONFIG_H is #defined.


# 1.89 30-May-2005 thorpej

Build genassym as a host tool. Part of PR toolchain/30350


Revision tags: netbsd-3-1-1-RELEASE netbsd-3-0-3-RELEASE netbsd-3-1-RELEASE netbsd-3-0-2-RELEASE netbsd-3-1-RC4 netbsd-3-1-RC3 netbsd-3-1-RC2 netbsd-3-1-RC1 netbsd-3-0-1-RELEASE netbsd-3-0-RELEASE netbsd-3-0-RC6 netbsd-3-0-RC5 netbsd-3-0-RC4 netbsd-3-0-RC3 netbsd-3-0-RC2 netbsd-3-0-RC1 netbsd-3-base
# 1.88 27-Jan-2005 is

We don't need aout2bb any longer.


# 1.87 09-Jan-2005 mycroft

Add some quotes to prevent a syntax error.


# 1.86 28-Nov-2004 jmc

Convert mkboot into a full cross tool. Last hurdle for hp300 to building on
non NetBSD/bsd hosts.


# 1.85 28-Nov-2004 jmc

Convert remaining host tools for amiga to correct cross tools. Now allows
complete amiga builds on non netbsd/bsd hosts


# 1.84 25-Nov-2004 jmc

Convert bebox's remaining host tools over to cross tools scheme. Builds to sets
w/o error now.


# 1.83 28-Jul-2004 skrll

Build hp700's mkboot as a host tool called nbhp700-mkboot. mkboot also
gets built and installed in a hp700 distribution.

TODO

- merge with hp300

- pick a preferred method for dealing with the elf headers.
hp700-mkboot and prep-mkbootimage (bintuils) vs mips-elf2ecoff and
tools/installboot


# 1.82 08-Jun-2004 abs

Add sparkcrc (used to generate checksums for acorn32 bootloader sparkive)
as a host tool.


Revision tags: netbsd-2-0-base
# 1.81 03-Jan-2004 lukem

branches: 1.81.2;
Consistently check ${TOOLCHAIN_MISSING} against "no".


# 1.80 11-Dec-2003 matt

Fix typo.


# 1.79 11-Dec-2003 matt

Add macppc-fixcoff tool.


# 1.78 10-Dec-2003 lukem

Use (cd ${.CURDIR} && ${MAKE} cleandir) instead of ${MAKE} cleandir
Suggested by Ross Harvey.


# 1.77 04-Dec-2003 mrg

always build tools/binutils now.


# 1.76 08-Nov-2003 sekiya

Build sgivol as a host tool when compiling for sgimips.


# 1.75 27-Oct-2003 lukem

add mknod as a host tool


# 1.74 26-Oct-2003 cl

add gdb53 as a host tool for use as a crossgdb
replaces gdb50 from toolchain on archs which use gcc3


# 1.73 21-Oct-2003 lukem

Rework how MAKEVERBOSE operates:

* Don't bother prefixing commands with a line of ${_MKCMD}\
and instead rely upon "make -s". This is less intrusive on
all the Makefiles than the former. Idea from David Laight.

* Rename the variables use to print messages. The scheme now is:
_MKMSG_FOO Run _MKMSG 'foo'
_MKTARGET_FOO Run _MKMSG_FOO ${.TARGET}
From discussion with Alistair Crooks.


# 1.72 19-Oct-2003 matt

Add host tool version of ncdcs


# 1.71 18-Oct-2003 lukem

MAKEVERBOSE support


# 1.70 25-Jul-2003 mrg

- build "binutils" and "gcc" separately if USE_TOOLS_TOOLCHAIN is not set
to "yes".
- adjust dbsym/mdsetimage to look in the correct place for libbfd.
- new mknative-gcc based in toolchain/mknative


# 1.69 24-Jul-2003 tron

Add missing "cleandir" rule.


# 1.68 20-Jul-2003 lukem

add stat(1) as a host tool


# 1.67 16-Jul-2003 lukem

also do the MKTOOLS and PREVIOUSTOOLDIR checks for "realdepend"


# 1.66 16-Jul-2003 lukem

* If a `PREVIOUSTOOLDIR' file doesn't exist, or its contents are not
the same as "$TOOLDIR", run "make cleandir" here first.
This should prevent various problems where $TOOLDIR is encoded into the
build process for various tools (lint, groff, texinfo, toolchain),
$TOOLDIR changes, and various programs don't get rebuilt correctly.
Should fix PR [toolchain/21988].

* Clean up how the `${MKTOOLS} == no' check is performed.

* Remove "cleantools"; it made a big assumption about the location of
TOOLDIR that won't be correct in many cases.


# 1.65 26-Jun-2003 tshiozak

Citrus iconv support(3)
add host tools : mkcsmapper and mkesdb
mkcsmapper - coded character set mapping table compiler
mkesdb - encoding scheme database compiler


# 1.64 18-May-2003 lukem

Add db(1) as a host tool


# 1.63 25-Mar-2003 pooka

build file(1) as a host tool (for compiling magic files)


# 1.62 07-Mar-2003 thorpej

Make hexdump a host tool.


Revision tags: fvdl_fs64_base
# 1.61 21-Dec-2002 lukem

enable sunlabel...


# 1.60 19-Sep-2002 thorpej

Change the TOOLCHAIN_MISSING from == "no" to != "yes", to be consistent
with the other tests of this variable.


# 1.59 19-Sep-2002 matt

Since TOOLCHAIN_MISSING is defined in bsd.own.mk, it can never be undefined.
Instead, make sure the value of it is "no"


# 1.58 17-Sep-2002 thorpej

* Eliminate the USE_NEW_TOOLCHAIN variable. Instead, split it into
two variables:

TOOLCHAIN_MISSING -- set to "yes" on platforms for which there is
no working in-tree toolchain (hppa, ns32k, sh5, x86_64).

EXTERNAL_TOOLCHAIN -- if defined by the user, points to the root of
an external toolchain (e.g. /usr/local/gnu). This enables the cross-build
framework even for TOOLCHAIN_MISSING platforms.

If TOOLCHAIN_MISSING is set to "yes", MKGDB, MKBFD, and MKGCC are all
unconditionally set to "no", since the bits are not there to build.

If EXTERNAL_TOOLCHAIN is set, MKGCC is unconditionally set to "no",
since the external toolchain's compiler is not in-sync with the
in-tree compiler support components (e.g. libgcc).

* Set MACHINE_CPU much earlier in bsd.own.mk, so that more tests in
that file can use it.


# 1.57 14-Sep-2002 chris

We need binstall to be installed, before attempting to use it to install mktemp.


# 1.56 14-Sep-2002 thorpej

Descend into mktemp.


# 1.55 12-Jun-2002 veego

The last commit wasn't tested. Add a missing \


# 1.54 12-Jun-2002 thorpej

Don't build toolchain bits for hppa, for now.


# 1.53 10-Jun-2002 mason

Add cat(1) as a host tool.


# 1.52 05-Jun-2002 thorpej

Don't try to build toolchain bits for ns32k.


# 1.51 28-May-2002 bjh21

Add fgen as a host tool, used for sys/arch/sparc/bootblk.


Revision tags: netbsd-1-6-base
# 1.50 18-May-2002 lukem

branches: 1.50.2;
gratuitious comment addition


# 1.49 07-May-2002 lukem

remove now-unnecessary sparc-installboot


# 1.48 03-May-2002 kleink

On prep, descend into prep-mkbootimage.


# 1.47 06-Apr-2002 bjh21

vax-installboot has been deleted, so don't recurse into it.


# 1.46 03-Apr-2002 lukem

enable installboot


# 1.45 01-Apr-2002 thorpej

Nuke NO_DBSYM; dbsym now uses BFD for everything.


# 1.44 01-Apr-2002 bjh21

On second thoughts, don't make mktemp a host tool. It's only used once, for
creating a temporary directory for maketars, and mkdir can do that safely
enough.


# 1.43 31-Mar-2002 bjh21

Add mktemp as a host tool.


# 1.42 31-Mar-2002 bjh21

Add cksum as a host tool.


# 1.41 29-Mar-2002 matt

Drop into vax-installboot on VAX machines.


# 1.40 07-Mar-2002 tv

Rework recursion to use the original logic again, in the structure cleaned
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".


# 1.39 07-Mar-2002 tv

Don't build groff if MKMAN=no. (groff does not build properly on some
platforms because of its completely insane Make structure; this allows it
to be disabled in a sane way.)


# 1.38 26-Feb-2002 tv

Add gettext to tools.

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.)


# 1.37 23-Feb-2002 gmcgarry

Add elf2ecoff as a build tool for mips ports.


# 1.36 18-Feb-2002 pk

* Add comments on all the directory build/install ordering goo.
* 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.


# 1.35 11-Feb-2002 pk

Revert part of previous; we need the install targets.


# 1.34 10-Feb-2002 pk

Use .ORDER targets to express the dependencies on subdir runs. This makes
the resulting tree complexity O(N) (N=# of subdirs), and it also makes it
easier to comprehend the Makefile logic.


# 1.33 08-Feb-2002 pk

Make sure to not go off installing in a directory before it's fully made.


# 1.32 31-Jan-2002 tv

Roll in fixes to permit cross-compiling from non-NetBSD hosts. This
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.


# 1.31 29-Jan-2002 tv

Make almost all tools compile and run properly on non-NetBSD hosts. (In
particular, most tools now run correctly on Solaris 7.)


# 1.30 25-Jan-2002 lukem

build pax as a host tool, for -N and to work around borken vendor paxes


# 1.29 10-Jan-2002 tv

Move host-mkdep to its own directory. Create and install it before
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.


# 1.28 10-Jan-2002 lukem

revert previous, and reenable tools/makefs now that it works on
netbsd-current and netbsd-1-5


# 1.27 09-Jan-2002 tv

Disable makefs in src/tools for the moment; it's very dependent on -current
NetBSD headers and sources right now. (Temporary workaround for PR 15175.)


# 1.26 05-Jan-2002 mrg

build zic as a host tool.


# 1.25 05-Jan-2002 mrg

build makefs, and, sparc-installboot if sparc||sparc64


# 1.24 31-Dec-2001 thorpej

We can't currently build a toolchain for x86-64 here, so don't
attempt to do so.


# 1.23 29-Dec-2001 wiz

Typo fix in error message.


# 1.22 11-Dec-2001 tv

Add the framework for autoconf-based src/tools/compat structure. This will
(after it is more fleshed out) allow the host tools to work more cleanly
on non-NetBSD hosts.


# 1.21 07-Dec-2001 jmc

Add pwd_mkdb as a toolchain bit for builds


# 1.20 29-Nov-2001 thorpej

Build makewhatis as a host tool, since it is used at the end of
the build.

XXX Needs a -lz hostlib.


# 1.19 22-Nov-2001 jmc

Oops. typo which can break things for non-new toolchain builds if MKTOOLS isn't
set


# 1.18 22-Nov-2001 jmc

Check for USETOOLS!=yes in addition to MKTOOLS==no to generate the empty rule
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


# 1.17 13-Nov-2001 tv

Re-add MKTOOLS as a "yes"/"no" only variable, which prevents recursion on "no"
into the src/tools subdirs on all/depend/dependall/install. Other recursive
targets are not affected.


# 1.16 12-Nov-2001 tv

Major overhaul of src/tools and host toolchain. Summary of changes:

* 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.


# 1.15 09-Nov-2001 thorpej

Build the cross-dbsym.


# 1.14 02-Nov-2001 tv

* Always use the makewrapper when starting a build phase.

* 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.


# 1.13 31-Oct-2001 tv

Don't actually delete the default tooldir on "cleandir"; else we'll nuke
the nbmake that is probably currently running.

Just leave the "cleantools" manual target as a shortcut for the user.


# 1.12 31-Oct-2001 tv

* Create a variable HOST_OSTYPE that represents the host build environment,
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.


# 1.11 31-Oct-2001 tv

* Always descend into "tools" regardless of USETOOLS setting. Instead,
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.


# 1.10 25-Oct-2001 thorpej

Add asn1_compile as a host tool.


# 1.9 21-Oct-2001 jmc

Pull in mdsetimage to the tools builds. (XXX - using libbfd here would
probably be preferrable long term).


# 1.8 20-Oct-2001 jmc

Add mklocale to cross-tools and turn it back on for the builds.


# 1.7 13-Oct-2001 jmc

Add crunchgen, msgc and menuc


# 1.6 09-Oct-2001 enami

Make mtree a host tool and use it when appropriate.


# 1.5 04-Oct-2001 tv

Recurse properly; just add "build" to TARGETS (fixes reported problem where
"make clean" doesn't work at the src/tools level).


# 1.4 22-Sep-2001 tv

Work around "make obj" lossage in tools/. Dunno why this is happening
just yet; will investigate this evening.


# 1.3 22-Sep-2001 tv

Add lorder to TOOLDIR host tools.

Only descend into directories if USE_NEW_TOOLCHAIN is set (allows top level
Makefile to use "-m ${.CURDIR}/share/mk" to get the "correct" <bsd.own.mk>
when descending into src/tools/Makefile).


# 1.2 21-Sep-2001 tv

- Create a real cpp binary.
- Set CC properly in environment for mkdep and lint.
- Add compile_et to TOOLDIR host tools.


# 1.1 14-Aug-2001 tv

Bootstrap toolchain framework, first pass.


# 1.217 27-Mar-2024 rillig

tools/Makefile: clean up TOOLDIR validation

At the point where tools/Makefile is loaded, TOOLDIR doesn't have to
exist yet, it will be created later. Remove the redundant quotes from
the .error messages.


# 1.216 23-Feb-2024 mrg

build isl tool for GCC 12.


# 1.215 30-Nov-2023 rin

tools/Makefile: Correct inverted comment. NFC


Revision tags: netbsd-10-0-RC6 netbsd-10-0-RC5 netbsd-10-0-RC4 netbsd-10-0-RC3 netbsd-10-0-RC2 netbsd-10-0-RC1 netbsd-10-base
# 1.214 18-Apr-2022 jkoshy

Disconnect 'tools/lib{elf,dwarf}' from the build.

These libraries are now built by 'tools/elftoolchain/lib{elf,dwarf}'
respectively.


# 1.213 13-Apr-2022 jkoshy

When building tools use a dedicated subdirectory for compiling
Elftoolchain code.

Build and install <sys/elfdefinitions.h> in ${TOOLDIR}/include.

This change prepares the ground for upgrading libelf and libdwarf to
their current Elftoolchain versions.


# 1.212 14-Nov-2021 skrll

Make dtc on riscv


Revision tags: cjep_sun2x-base1 cjep_sun2x-base cjep_staticlib_x-base1
# 1.211 27-May-2021 cjep

If we are building date earlier, we need to use an uninstalled copy
of host-mkdep and libnbcompat otherwise the build process looks for
tools that might not be there yet (e.g. fresh build).
Reviewed by martin.


# 1.210 26-May-2021 christos

Add a date tool


Revision tags: cjep_staticlib_x-base
# 1.209 06-May-2021 rin

branches: 1.209.2;
PR port-mvme68k/56146

Build wrtvid as tools.


# 1.208 25-Apr-2021 christos

Make mips-elf2ecoff available for all mips


# 1.207 06-Feb-2021 dbj

tools: allow MKCROSSGDB to work when not building gcc


# 1.206 28-Jul-2020 uwe

Build mkubootimage for evbsh3 too.


Revision tags: phil-wifi-20200421 phil-wifi-20200411 is-mlppp-base phil-wifi-20200406 phil-wifi-20191119
# 1.205 11-Nov-2019 joerg

Update LLVM to 10.0.0git (01f3a59fb3e2542fce74c768718f594d0debd0da)


# 1.204 26-Sep-2019 bad

Exclude more subdirs if TOOLS_BUILDRUMP=yes.

Exclude subdirs added in the last 3 years but not need for rumpkernel builds.


Revision tags: netbsd-9-3-RELEASE netbsd-9-2-RELEASE netbsd-9-1-RELEASE netbsd-9-0-RELEASE netbsd-9-0-RC2 netbsd-9-0-RC1 netbsd-9-base phil-wifi-20190609
# 1.203 07-May-2019 hannken

Fix build, "pax" must be built before "libprop".

Ok: Matthew Green mrg@


# 1.202 07-May-2019 thorpej

Add support for libprop as a host tool library.


# 1.201 03-Apr-2019 joerg

Add MKLLVMRT to build a subset of the LLVM stack for JIT purposes.
Hook up AMDGPU backend for clang.


# 1.200 03-Apr-2019 joerg

Revert MKLLVMCMDS changes.


# 1.199 20-Mar-2019 mrg

split MKLLVM into MKLLVM and MKLLVMCMDS, like MKGCC and MKGCCCMDS:

- only build clang or clang-tblgen if MKLLVMCMDS != "no"
- move HAVE_MESA_VER earlier so we can detect mesa 18 and enable
MKLLVM on platforms that need it
- move the clang commands and headers into llvmcmds group
- only build the clang specific LLVM libraries if MKLLVMCMDS != "no"

much of this work came from maya@'s github commit
f90685c11d4460d3098fa35f48b58d1893e974e0, reworked for HAVE_MESA_VER
and llvmcmds vs MKCLANG.


build tested on several platforms and on amd64 and i386 with several
different build options (clang build, gcc build, gcc build with llvm
libs).


Revision tags: pgoyette-compat-20190127 pgoyette-compat-20190118
# 1.198 02-Jan-2019 christos

use MACHINE_CPU for elf2aout


# 1.197 31-Dec-2018 christos

Add an arm-specific elf2aout tool since objdump does not support a.out anymore


Revision tags: pgoyette-compat-1226 pgoyette-compat-1126 pgoyette-compat-1020 pgoyette-compat-0930
# 1.196 25-Sep-2018 joerg

Update build glue for xz-5.2.4. Hook up tools version.


Revision tags: pgoyette-compat-0906
# 1.195 11-Aug-2018 christos

hook in the tools version of grep


Revision tags: pgoyette-compat-0728 phil-wifi-base pgoyette-compat-0625 pgoyette-compat-0521
# 1.194 09-May-2018 joerg

branches: 1.194.2;
For EXTERNAL_TOOLCHAIN, MKLLVM=yes needs to build only tablegen.


Revision tags: pgoyette-compat-0502 pgoyette-compat-0422 pgoyette-compat-0415 pgoyette-compat-0407 pgoyette-compat-0330 pgoyette-compat-0322 pgoyette-compat-0315 pgoyette-compat-base
# 1.193 18-Feb-2018 uwe

branches: 1.193.2;
Fix .endif comment for TOOLS_BUILDRUMP


# 1.192 27-Dec-2017 christos

Better EXTERNAL_TOOLCHAIN support from Zachary McGrew
- Allow mdsetimage and dbsym to be built with EXTERNAL_TOOLCHAIN
- Allow BFDDIR and IBERTYDIR to be overwritten for mdsetimage and dbsym


Revision tags: perseant-stdc-iso10646-base
# 1.191 07-Jun-2017 skrll

branches: 1.191.2;
Hook in dtc/libfdt now that it builds for me


# 1.190 06-Jun-2017 skrll

Disable dtc/libfdt for now


# 1.189 05-Jun-2017 christos

No need to set dtc twice.


# 1.188 05-Jun-2017 christos

Add dtc


Revision tags: netbsd-8-base prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1 pgoyette-localcount-20170320 bouyer-socketcan-base
# 1.187 11-Jan-2017 joerg

branches: 1.187.6;
Sync tools build glue with LLVM pre-4.0.0.


Revision tags: pgoyette-localcount-20170107 pgoyette-localcount-20161104 localcount-20160914 pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base
# 1.186 24-Jan-2016 christos

branches: 1.186.2;
move cvslatest last


# 1.185 24-Jan-2016 christos

Tool version


# 1.184 19-Dec-2015 christos

move sortinfo after pax


# 1.183 18-Dec-2015 christos

Add sortinfo


# 1.182 23-Jul-2015 mrg

remove the xfree86 reachover makefiles and the vast majority of
the support in the rest of the source tree.

X11 sets could use some cleaning up perhaps (just deletion, as
we've never really marked the old X11R6 as obsolete for native
xorg using platforms so far either.)


# 1.181 24-Jun-2015 matt

Support building the xorg X11 libraries under MKCOMPAT.
Add XORG_MACHINE_ARCH to compat's bsd.*.mk
Turn xorg makekeys and makestrs into real host tools which are installed into
${TOOLSDIR}


# 1.180 07-Jan-2015 joerg

Reorganise the way xorg is build. Move build of makestrs into src/tools
as it is needed for the "includes" phase. Make it symlink all necessary
headers in obj to decouple it from "includes" itself, breaking the
dependency cycle. Move the do-x11 target between do-lib and do-build, so
that libraries can get the benefit of build_install (correct .WAIT
behavior) and everything else like "includes" uses the plain SUBDIR
entry in external/mit.


# 1.179 05-Dec-2014 pooka

build genassym for TOOLS_BUILDRUMP


# 1.178 30-Sep-2014 christos

add gpt


Revision tags: netbsd-7-2-RELEASE netbsd-7-1-2-RELEASE netbsd-7-1-1-RELEASE netbsd-7-1-RELEASE netbsd-7-1-RC2 netbsd-7-nhusb-base-20170116 netbsd-7-1-RC1 netbsd-7-0-2-RELEASE netbsd-7-nhusb-base netbsd-7-0-1-RELEASE netbsd-7-0-RELEASE netbsd-7-0-RC3 netbsd-7-0-RC2 netbsd-7-0-RC1 netbsd-7-base tls-maxphys-base
# 1.177 10-Aug-2014 matt

Changes to existing files to enable building AARCH64 userland.
evbarm64-el
This is clang only. While gcc4.8 supports aarch64, no netbsd support has
been written for aarch64 with gcc4.8.


Revision tags: tls-earlyentropy-base
# 1.176 15-Jul-2014 christos

descend to vgrind


# 1.175 15-Jun-2014 pooka

Add cat, rpcgen and stat to TOOLS_BUILDRUMP. They're useful for
installing headers for the app stack cases that need it done, and small
enough to not matter for the kernel-only cases that don't.


# 1.174 14-Jun-2014 mrg

remove remaining makefile support for GCC < 45 that i found.


Revision tags: yamt-pagecache-base9
# 1.173 03-Apr-2014 riastradh

branches: 1.173.2;
ctfconvert/ctfmerge need libdwarf &c., so build them if MKCTF=yes.


Revision tags: riastradh-xf86-video-intel-2-7-1-pre-2-21-15
# 1.172 25-Mar-2014 ozaki-r

Add MKCTF

This variable separates CTF stuffs from MKDTRACE; we can build DTrace
solely without building and using them. This allows us to use DTrace
even if CTF stuffs have problems (actually they have now).

This variable would be merged into MKDTRACE eventually, once CTF stuffs
work correctly again.


Revision tags: riastradh-drm2-base3
# 1.171 24-Feb-2014 skrll

Rename NetBSD/hp700 to NetBSD/hppa.

Unfortunately our VCS isn't very helpful here.


# 1.170 02-Sep-2013 joerg

Update LLVM/Clang snapshot to r189662. This includes many improvements
to the new SLP vectorizer, fast codegen support for PPC and using
terminfo for the color sequences. In addition, add (optional) build
infrastructure for lld to allow easier testing. This is controlled by
MKLLD.


Revision tags: riastradh-drm2-base2 riastradh-drm2-base1
# 1.169 19-Jul-2013 matt

Even if we aren't making a crossgdb still make the object dir for it.


Revision tags: riastradh-drm2-base agc-symver-base
# 1.168 27-Feb-2013 joerg

branches: 1.168.4;
Add infrastructure for building MCLinker.


# 1.167 05-Feb-2013 matt

There are other little endian arm machine_arches other than "arm"
Use MACHINE_CPU and TARGET_ENDIANNESS instead of MACHINE_ARCH


# 1.166 31-Jan-2013 pooka

Use TOOLS_BUILDRUMP=yes to restrict building of tools to those required
for building rump kernels. This cuts down the NetBSD source tree required
by buildrump.sh to a fraction and addresses a size/download time concern
from a person packaging rump kernels for Linux.

No change to the normal case (tested with several -j32/-j64 builds).

reviewed by apb


Revision tags: yamt-pagecache-base8 yamt-pagecache-base7
# 1.165 02-Dec-2012 apb

Make tools/Makefile build host-mkdep, compat, and binstall in that order,
before installing any of them. It installs them in any order relative
to each other. The .WAIT points that used to be between these three
tools are replaced by .ORDER and dependencies.

This is needed in preparation for making tools/compat install
some files into TOOLDIR.


# 1.164 02-Dec-2012 apb

TOOLDIR must be valid, unless MKTOOLS=no.
Add tests and .error directives to enforce this.


# 1.163 02-Dec-2012 apb

If tools are not wanted, then set SUBDIR= empty instead of
defining all the subdir-related targets to do nothing. This way,
the targets are not invoked at all, instead of being invoked but
doing nothing.


# 1.162 02-Dec-2012 apb

remove trailing white space


# 1.161 27-Nov-2012 jkunz

According to the i.MX23 Reference Manual section 3.1, Page 3-3:
"The i.MX23 always operates in litle-endian mode."
So build elftosb and bootloader for this processor only for evbarm(-el).


# 1.160 26-Nov-2012 pooka

Build gmake iff we're going to need it.


# 1.159 15-Nov-2012 joerg

Move the build_install logic from lib/Makefile into share/mk and re-use
it for tools. The existing logic broke for the LLVM build with the
recent .ORDER changes in make.


# 1.158 15-Nov-2012 jkunz

Add elftosb tools to evbarm userland and toolchain.
Elftosb is used to create a digitaly signed "secure boot" file.
This sb file can be booted by the first stage boot loader found in
Freescale i.MX23 and i.MX28 application processors.

Copyright (c) 2004-2010 Freescale Semiconductor, Inc.


Revision tags: yamt-pagecache-base6
# 1.157 20-Sep-2012 pooka

fix EXTERNAL_TOOLCHAIN build


# 1.156 10-Aug-2012 joerg

branches: 1.156.2;
Decouple binutils build from HAVE_GCC. Merge common fragments of
HAVE_GCC and HAVE_PCC.


Revision tags: netbsd-6-0-6-RELEASE netbsd-6-1-5-RELEASE netbsd-6-1-4-RELEASE netbsd-6-0-5-RELEASE netbsd-6-1-3-RELEASE netbsd-6-0-4-RELEASE netbsd-6-1-2-RELEASE netbsd-6-0-3-RELEASE netbsd-6-1-1-RELEASE netbsd-6-0-2-RELEASE netbsd-6-1-RELEASE netbsd-6-1-RC4 netbsd-6-1-RC3 netbsd-6-1-RC2 netbsd-6-1-RC1 netbsd-6-0-1-RELEASE matt-nb6-plus-nbase netbsd-6-0-RELEASE netbsd-6-0-RC2 matt-nb6-plus-base netbsd-6-0-RC1 yamt-pagecache-base5 yamt-pagecache-base4 netbsd-6-base yamt-pagecache-base3 yamt-pagecache-base2
# 1.155 03-Nov-2011 joerg

Revert .WAIT removal and add comment why it is needed between *tblgen.


# 1.154 02-Nov-2011 njoly

Do not build tic more than once


# 1.153 02-Nov-2011 christos

move tic later, after all the tools it needs are built.


# 1.152 02-Nov-2011 yamt

tweak dependencies for tic, which needs nbperf, awk, and sed.


Revision tags: yamt-pagecache-base
# 1.151 01-Nov-2011 joerg

branches: 1.151.2;
Remove an unnecessary .WAIT between llvm-tblgen and clang-tblgen.


# 1.150 01-Nov-2011 joerg

Hook up nbperf into the normal tool build.


# 1.149 11-Oct-2011 joerg

Update LLVM/Clang snapshot to r141658. This primarily fixes a regression
preventing Qt4 from building.


# 1.148 16-Jul-2011 tsutsui

Build nbm68k-elf2aout as a host tool on m68k targets
for an ancient PROM bootloader.
Mostly taken from nbmips-elf2ecoff.


# 1.147 10-Jul-2011 mrg

install elf2ecoff for all mips64 systems. it's needed for stand.


# 1.146 21-Jun-2011 mrg

always build gmake if HAVE_GCC.
build gmp, mpfr and then mpc if HAVE_GCC >= 45.


Revision tags: cherry-xenmp-base
# 1.145 15-Apr-2011 elric

branches: 1.145.2;
Upgrade Heimdal to 1.5pre1 by switching the build from crypto/dist/heimdal
to crypto/external/bsd/heimdal. The latter was just imported as the head
of the Heimdal tree as of a few days ago.


# 1.144 17-Mar-2011 riz

.WAIT for makefs, because in most builds, it's the first target
which includes Makefile.nbincludes, whose beforedepend: has
some race condition I don't fully understand, and which has been
causing many (but not all!) -j16 builds on the autobuild cluster
to fail in tools since sometime between 201103061600 and 201103070900.

With the proper voodoo, I was able to get 8 builds in a row to fail
without this change, and 16 in a row to succeed with it.

XXX a proper fix likely involves reworking the beforedepend: target
of Makefile.nbincludes, but this should get the build cluster back up
to full functionality in the meanwhile.


Revision tags: bouyer-quota2-nbase
# 1.143 25-Feb-2011 phx

mkubootimage is certainly useful for sandpoint


Revision tags: bouyer-quota2-base
# 1.142 06-Feb-2011 joerg

Add LLVM and clang build system. It is enabled by MKLLVM=yes.
Upstream sources can be fetched by running "make checkout" in
src/external/bsd/llvm, they will be properly imported once the
integration and missing features are sorted out.


# 1.141 31-Jan-2011 matt

Make mkubootimage for evbmips and evbppc too.


Revision tags: matt-mips64-premerge-20101231
# 1.140 15-Aug-2010 mrg

branches: 1.140.2;
add new option to build/use tools/pigz for compressing sets. for now
USE_PIGZGZIP defaults to "no". (it depends upon local <pthread.h> and -lz.)

you can set it to "yes" on most modern platforms just fine.


# 1.139 18-Jun-2010 jmcneill

hook mkubootimage into the build


# 1.138 04-Jun-2010 jmmv

Bye bye atf-compile, you won't be missed.


# 1.137 02-Mar-2010 darran

DTrace: add libelf, libdwarf, libctf, and CTF tools to the toolchain,
built when MKDTRACE=yes.


# 1.136 20-Feb-2010 joerg

Build mandoc unconditional if man pages are desirable. All
compatibility issues are supposed to be sorted out.
Build groff conditionally on MKGROFF. It is currently the only component
that requires C++.


# 1.135 03-Feb-2010 roy

Store our generated files in CVS and remove nbperf from the toolchain.
This allows us to build consistent libs without an ever changing hash.


# 1.134 03-Feb-2010 roy

Userland now builds and uses terminfo instead of termcap.

OK: core@, jdc@


# 1.133 29-Dec-2009 he

To unbreak the build, temporarily remove the build of libelf here,
since no other part of the build depends on this yet.

Suggested as a temporary workaround by thorpej@


# 1.132 23-Dec-2009 mrg

rework the main SUBDIR list here as suggested by enami. put .WAIT on
the same line as the target that needs to wait, but before the target,
rather than on the previous line, which led to confusion and an error
being introduced in the previous change.


# 1.131 21-Dec-2009 mrg

move the build of pax before libelf. fixes my build of tools/libelf,
though i didn't look to see why libelf needs pax.


# 1.130 21-Dec-2009 thorpej

Add support for building libelf in a host-tool environment.

XXX Makefile.disklabel is really mis-named, but I'm not going to tackle
that problem right now.


Revision tags: matt-premerge-20091211
# 1.129 29-Oct-2009 christos

Give m4 its own .WAIT. Fixes build issue on NetBSD-5.


# 1.128 23-Oct-2009 joerg

Add MKMANDOC option to trigger building cat pages and HTML pages with
mdocml. Add a lintmanpages target for developers to check man pages
with the strictest settings of mandoc.


Revision tags: jym-xensuspend-nbase jym-xensuspend-base
# 1.127 25-Feb-2009 sketch

Disable grep host tool and unbreak NetBSD build until I can come up with a
clean fix.


# 1.126 25-Feb-2009 sketch

Make grep a host tool.


# 1.125 14-Feb-2009 abs

Convert more MACHINE tests to MACHINE_ARCH


Revision tags: netbsd-5-2-3-RELEASE netbsd-5-1-5-RELEASE netbsd-5-2-2-RELEASE netbsd-5-1-4-RELEASE netbsd-5-2-1-RELEASE netbsd-5-1-3-RELEASE netbsd-5-2-RELEASE netbsd-5-2-RC1 netbsd-5-1-2-RELEASE netbsd-5-1-1-RELEASE matt-nb5-mips64-premerge-20101231 matt-nb5-pq3-base netbsd-5-1-RELEASE netbsd-5-1-RC4 matt-nb5-mips64-k15 netbsd-5-1-RC3 netbsd-5-1-RC2 netbsd-5-1-RC1 netbsd-5-0-2-RELEASE matt-nb5-mips64-premerge-20091211 matt-nb5-mips64-u2-k2-k4-k7-k8-k9 matt-nb4-mips64-k7-u2a-k9b matt-nb5-mips64-u1-k1-k5 netbsd-5-0-1-RELEASE netbsd-5-0-RELEASE netbsd-5-0-RC4 netbsd-5-0-RC3 netbsd-5-0-RC2 netbsd-5-0-RC1 netbsd-5-base
# 1.124 25-Oct-2008 apb

branches: 1.124.4; 1.124.8; 1.124.12;
Build sed earlier, just after mktemp. Note that sed and mktemp do not
depend on each other, but the .WAIT is needed to get them both installed
before the remainder of the tools build.


# 1.123 25-Oct-2008 apb

Remove the local handling of the NOSUBDIR variable. We can rely
on bsd.subdir.mk's handling of the NOSUBDIR variable.

Also add some comment to .if/.else/.endif and .for/.endfor lines.


Revision tags: matt-mips64-base2
# 1.122 19-Oct-2008 apb

Add awk as a host tool.


# 1.121 13-Oct-2008 dyoung

Per uwe@'s suggestion, build nbgroff under wider circumstances.
I choose to build it if MKDOC != no or if MKHTML != no. It used
to be built only when MKMAN != no.


# 1.120 05-Oct-2008 apb

Add a .WAIT to ensure that sed is installed early, so that TOOL_SED can
be used during the build of other tools.


# 1.119 26-Sep-2008 apb

Build strfile both as a host tool and as an installed program:
* in games/fortune/strfile/Makefile, build strfile as a
regular program instead of as a host tool;
* add tools/strfile directory to build strfile as a host tool;
* in tools/Makefile, add strfile to SUBDIR list;
* in BSD.*.mk, define TOOL_STRFILE variable;
* in games/fortune/datfiles/Makefile, use TOOL_STRFILE when creating
databases at build time;
* in distrib/sets/lists/games/mi, mention usr/games/strfile.


Revision tags: wrstuden-revivesa-base-3 wrstuden-revivesa-base-2
# 1.118 24-Aug-2008 gmcgarry

Build pcc as host tool if requested.


Revision tags: wrstuden-revivesa-base-1 yamt-pf42-base4 yamt-pf42-base3 wrstuden-revivesa-base
# 1.117 26-May-2008 he

Remove references to bebox-elf2pef and bebox-mkbootimage, now that they
have been integrated in common powerpc tools and subsequently removed.


Revision tags: hpcarm-cleanup-nbase yamt-pf42-base2
# 1.116 30-Apr-2008 garbled

branches: 1.116.2;
Build powerpc-mkbootimage for rs6000 and bebox too.


# 1.115 30-Apr-2008 garbled

Convert prep to use the new unified mkbootimage rather than it's own. This
mkbootimage can be shared by prep, rs6000, and bebox.

TODO: Convert bebox to use this. Needs someone to test.


Revision tags: yamt-pf42-baseX yamt-pf42-base keiichi-mipv6-nbase keiichi-mipv6-base matt-armv6-nbase cube-autoconf-base matt-armv6-base hpcarm-cleanup-base
# 1.114 12-Nov-2007 jmmv

branches: 1.114.6;
Add the atf host tools

This adds reachover Makefiles to build the atf tools required during a
cross-build.


Revision tags: matt-armv6-prevmlocking matt-mips64-base
# 1.113 14-Jan-2007 apb

branches: 1.113.4;
Build join(1) as a host tool.


# 1.112 20-Dec-2006 agc

A commit too far - don't try to build veriexecgen for just now


# 1.111 19-Dec-2006 agc

Build veriexecgen as a host tool


Revision tags: netbsd-4-0-1-RELEASE wrstuden-fixsa-newbase wrstuden-fixsa-base-1 netbsd-4-0-RELEASE netbsd-4-0-RC5 netbsd-4-0-RC4 netbsd-4-0-RC3 netbsd-4-0-RC2 netbsd-4-0-RC1 wrstuden-fixsa-base netbsd-4-base
# 1.110 22-Nov-2006 riz

Make sys/exec_elf.h and machine/elf_machdep.h available to host
tools, and allow paxctl to use them when compiled as a host
tool. This fixes the build on MacOS X (and perhaps other platforms)


# 1.109 17-Nov-2006 dsl

Add some notes about the bogosity of some of the .WAIT stuff.
Remove a 'never had a sane effect' .WAIT from a .ORDER line.
Don't add a (probably incorrect) dependency for 'make install' since
it contradicts a .ORDER line elsewhere when .ORDER applies recursively
to child nodes.
I also think that the stuff that tries to add dependencies between
the stuff that bsd.subdir.mk generates does not DTRT at all.
I suspect that build.sh builds things in an order that avoids issues here.


# 1.108 10-Nov-2006 christos

Add paxctl as a tool.


# 1.107 08-Oct-2006 apb

If PREVIOUSTOOLDIR was empty, then don't complain that it has moved.

Patch from Jukka Salmi in PR 33095.


Revision tags: abandoned-netbsd-4-base
# 1.106 03-Aug-2006 freza

* Fix parallel build race condition between real{all,depend} and
<bsd.subdir.mk> targets.
* No need to pass TOOLDIR to recursive cleandir in real{all,depend}.

With help from he@.
OK by tron@.


# 1.105 03-Aug-2006 tron

Another attempt to fix the race in parallel builds.


# 1.104 19-Jul-2006 tron

Invoking "make cleandir" with "PREVIOUSTOOLDIR" set to the previous
location will not stop recursive "make cleandir" calls. Pass the new
location instead.


# 1.103 18-Jul-2006 lukem

gettext should .WAIT for autoconf.
(The former still doesn't seem to work on read-only source; separate issue)


# 1.102 17-Jul-2006 tron

Avoid getting into a loop of "make cleandir" instances if the location
tool directory has been changed or wasn't recorded before.


# 1.101 17-Jul-2006 tron

Remove ".WAIT" again because it doesn't fix the problem.


# 1.100 12-Jul-2006 tron

Add an extra ".WAIT" to the "realall realdepend" target to make sure
it finished cleaning the tools directory in case of tool directory
mismatch before we try to rebuild the tools.


# 1.99 22-Jun-2006 mrg

only build lint and lint2 if MKLINT != "no".


# 1.98 18-Jun-2006 gdamore

Make TOOL_SED, to allow using our own sed in cases where the host's version
is busted in some way.

The TOOL_SED doesn't use TIOCGWINSIZE, and has some changes to include
nbtool_config.h in a cross build environment.

Combined with some other changes (not yet committed), this allows cross
compiling m68k code on Solaris 10/amd64.


# 1.97 02-Jun-2006 mrg

remove support for building (with) GCC 2.95. also:
- always install <stdbool.h>
- don't generate a fake one for vax / gettext.


# 1.96 11-May-2006 mrg

check HAVE_GCC == 4 not USE_GCC4.


# 1.95 01-Apr-2006 christos

Don't barf if USE_GCC4 is not defined.


# 1.94 29-Mar-2006 jmc

Turn on gmake builds if GCC4 is enabled (and force it's install before continuing


# 1.93 03-Feb-2006 dsl

The realall and realdepend bit that regenerates tools needs to be marked
.MAKE otherwise the 'make' it runs has its own list of jobs instead of
using the jobserver of the enclosing make.


# 1.92 04-Oct-2005 jmc

Make the tools using Makefile.disklabel wait so they don't stomp each other.
Also for now add a dependency to Makefile.disklabel so this doesn't run
3 times. (XXX this really should just be done differently)


# 1.91 12-Jun-2005 dyoung

.include Makefile.disklabel in installboot, so that the
nbinclude/ header files will be installed. Build installboot after
pax, since Makefile.disklabel uses pax to install the headers.


# 1.90 12-Jun-2005 dyoung

Make disklabel(8) and fdisk(8) into "host tools " last step: build
and install ${TOOLDIR}/bin/${MACHINE_GNU_PLATFORM}-disklabel,
${TOOLDIR}/bin/${MACHINE_GNU_PLATFORM}-fdisk by "reaching over" to
the sources in ${NETBSDSRCDIR}/sbin/{disklabel fdisk}/.

To avoid clashes with a build-host's header files, especially on
*BSD, the host-tools versions of fdisk and disklabel search for
#includes such as disklabel.h, disklabel_acorn.h, disklabel_gpt.h,
and bootinfo.h in a new #includes namespace, nbinclude/. That is,
they #include <nbinclude/sys/disklabel.h>, <nbinclude/machine/disklabel.h>,
<nbinclude/sparc64/disklabel.h>, instead of <sys/disklabel.h> and
such. I have also updated the system headers to #include from
nbinclude/-space when HAVE_NBTOOL_CONFIG_H is #defined.


# 1.89 30-May-2005 thorpej

Build genassym as a host tool. Part of PR toolchain/30350


Revision tags: netbsd-3-1-1-RELEASE netbsd-3-0-3-RELEASE netbsd-3-1-RELEASE netbsd-3-0-2-RELEASE netbsd-3-1-RC4 netbsd-3-1-RC3 netbsd-3-1-RC2 netbsd-3-1-RC1 netbsd-3-0-1-RELEASE netbsd-3-0-RELEASE netbsd-3-0-RC6 netbsd-3-0-RC5 netbsd-3-0-RC4 netbsd-3-0-RC3 netbsd-3-0-RC2 netbsd-3-0-RC1 netbsd-3-base
# 1.88 27-Jan-2005 is

We don't need aout2bb any longer.


# 1.87 09-Jan-2005 mycroft

Add some quotes to prevent a syntax error.


# 1.86 28-Nov-2004 jmc

Convert mkboot into a full cross tool. Last hurdle for hp300 to building on
non NetBSD/bsd hosts.


# 1.85 28-Nov-2004 jmc

Convert remaining host tools for amiga to correct cross tools. Now allows
complete amiga builds on non netbsd/bsd hosts


# 1.84 25-Nov-2004 jmc

Convert bebox's remaining host tools over to cross tools scheme. Builds to sets
w/o error now.


# 1.83 28-Jul-2004 skrll

Build hp700's mkboot as a host tool called nbhp700-mkboot. mkboot also
gets built and installed in a hp700 distribution.

TODO

- merge with hp300

- pick a preferred method for dealing with the elf headers.
hp700-mkboot and prep-mkbootimage (bintuils) vs mips-elf2ecoff and
tools/installboot


# 1.82 08-Jun-2004 abs

Add sparkcrc (used to generate checksums for acorn32 bootloader sparkive)
as a host tool.


Revision tags: netbsd-2-0-base
# 1.81 03-Jan-2004 lukem

branches: 1.81.2;
Consistently check ${TOOLCHAIN_MISSING} against "no".


# 1.80 11-Dec-2003 matt

Fix typo.


# 1.79 11-Dec-2003 matt

Add macppc-fixcoff tool.


# 1.78 10-Dec-2003 lukem

Use (cd ${.CURDIR} && ${MAKE} cleandir) instead of ${MAKE} cleandir
Suggested by Ross Harvey.


# 1.77 04-Dec-2003 mrg

always build tools/binutils now.


# 1.76 08-Nov-2003 sekiya

Build sgivol as a host tool when compiling for sgimips.


# 1.75 27-Oct-2003 lukem

add mknod as a host tool


# 1.74 26-Oct-2003 cl

add gdb53 as a host tool for use as a crossgdb
replaces gdb50 from toolchain on archs which use gcc3


# 1.73 21-Oct-2003 lukem

Rework how MAKEVERBOSE operates:

* Don't bother prefixing commands with a line of ${_MKCMD}\
and instead rely upon "make -s". This is less intrusive on
all the Makefiles than the former. Idea from David Laight.

* Rename the variables use to print messages. The scheme now is:
_MKMSG_FOO Run _MKMSG 'foo'
_MKTARGET_FOO Run _MKMSG_FOO ${.TARGET}
From discussion with Alistair Crooks.


# 1.72 19-Oct-2003 matt

Add host tool version of ncdcs


# 1.71 18-Oct-2003 lukem

MAKEVERBOSE support


# 1.70 25-Jul-2003 mrg

- build "binutils" and "gcc" separately if USE_TOOLS_TOOLCHAIN is not set
to "yes".
- adjust dbsym/mdsetimage to look in the correct place for libbfd.
- new mknative-gcc based in toolchain/mknative


# 1.69 24-Jul-2003 tron

Add missing "cleandir" rule.


# 1.68 20-Jul-2003 lukem

add stat(1) as a host tool


# 1.67 16-Jul-2003 lukem

also do the MKTOOLS and PREVIOUSTOOLDIR checks for "realdepend"


# 1.66 16-Jul-2003 lukem

* If a `PREVIOUSTOOLDIR' file doesn't exist, or its contents are not
the same as "$TOOLDIR", run "make cleandir" here first.
This should prevent various problems where $TOOLDIR is encoded into the
build process for various tools (lint, groff, texinfo, toolchain),
$TOOLDIR changes, and various programs don't get rebuilt correctly.
Should fix PR [toolchain/21988].

* Clean up how the `${MKTOOLS} == no' check is performed.

* Remove "cleantools"; it made a big assumption about the location of
TOOLDIR that won't be correct in many cases.


# 1.65 26-Jun-2003 tshiozak

Citrus iconv support(3)
add host tools : mkcsmapper and mkesdb
mkcsmapper - coded character set mapping table compiler
mkesdb - encoding scheme database compiler


# 1.64 18-May-2003 lukem

Add db(1) as a host tool


# 1.63 25-Mar-2003 pooka

build file(1) as a host tool (for compiling magic files)


# 1.62 07-Mar-2003 thorpej

Make hexdump a host tool.


Revision tags: fvdl_fs64_base
# 1.61 21-Dec-2002 lukem

enable sunlabel...


# 1.60 19-Sep-2002 thorpej

Change the TOOLCHAIN_MISSING from == "no" to != "yes", to be consistent
with the other tests of this variable.


# 1.59 19-Sep-2002 matt

Since TOOLCHAIN_MISSING is defined in bsd.own.mk, it can never be undefined.
Instead, make sure the value of it is "no"


# 1.58 17-Sep-2002 thorpej

* Eliminate the USE_NEW_TOOLCHAIN variable. Instead, split it into
two variables:

TOOLCHAIN_MISSING -- set to "yes" on platforms for which there is
no working in-tree toolchain (hppa, ns32k, sh5, x86_64).

EXTERNAL_TOOLCHAIN -- if defined by the user, points to the root of
an external toolchain (e.g. /usr/local/gnu). This enables the cross-build
framework even for TOOLCHAIN_MISSING platforms.

If TOOLCHAIN_MISSING is set to "yes", MKGDB, MKBFD, and MKGCC are all
unconditionally set to "no", since the bits are not there to build.

If EXTERNAL_TOOLCHAIN is set, MKGCC is unconditionally set to "no",
since the external toolchain's compiler is not in-sync with the
in-tree compiler support components (e.g. libgcc).

* Set MACHINE_CPU much earlier in bsd.own.mk, so that more tests in
that file can use it.


# 1.57 14-Sep-2002 chris

We need binstall to be installed, before attempting to use it to install mktemp.


# 1.56 14-Sep-2002 thorpej

Descend into mktemp.


# 1.55 12-Jun-2002 veego

The last commit wasn't tested. Add a missing \


# 1.54 12-Jun-2002 thorpej

Don't build toolchain bits for hppa, for now.


# 1.53 10-Jun-2002 mason

Add cat(1) as a host tool.


# 1.52 05-Jun-2002 thorpej

Don't try to build toolchain bits for ns32k.


# 1.51 28-May-2002 bjh21

Add fgen as a host tool, used for sys/arch/sparc/bootblk.


Revision tags: netbsd-1-6-base
# 1.50 18-May-2002 lukem

branches: 1.50.2;
gratuitious comment addition


# 1.49 07-May-2002 lukem

remove now-unnecessary sparc-installboot


# 1.48 03-May-2002 kleink

On prep, descend into prep-mkbootimage.


# 1.47 06-Apr-2002 bjh21

vax-installboot has been deleted, so don't recurse into it.


# 1.46 03-Apr-2002 lukem

enable installboot


# 1.45 01-Apr-2002 thorpej

Nuke NO_DBSYM; dbsym now uses BFD for everything.


# 1.44 01-Apr-2002 bjh21

On second thoughts, don't make mktemp a host tool. It's only used once, for
creating a temporary directory for maketars, and mkdir can do that safely
enough.


# 1.43 31-Mar-2002 bjh21

Add mktemp as a host tool.


# 1.42 31-Mar-2002 bjh21

Add cksum as a host tool.


# 1.41 29-Mar-2002 matt

Drop into vax-installboot on VAX machines.


# 1.40 07-Mar-2002 tv

Rework recursion to use the original logic again, in the structure cleaned
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".


# 1.39 07-Mar-2002 tv

Don't build groff if MKMAN=no. (groff does not build properly on some
platforms because of its completely insane Make structure; this allows it
to be disabled in a sane way.)


# 1.38 26-Feb-2002 tv

Add gettext to tools.

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.)


# 1.37 23-Feb-2002 gmcgarry

Add elf2ecoff as a build tool for mips ports.


# 1.36 18-Feb-2002 pk

* Add comments on all the directory build/install ordering goo.
* 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.


# 1.35 11-Feb-2002 pk

Revert part of previous; we need the install targets.


# 1.34 10-Feb-2002 pk

Use .ORDER targets to express the dependencies on subdir runs. This makes
the resulting tree complexity O(N) (N=# of subdirs), and it also makes it
easier to comprehend the Makefile logic.


# 1.33 08-Feb-2002 pk

Make sure to not go off installing in a directory before it's fully made.


# 1.32 31-Jan-2002 tv

Roll in fixes to permit cross-compiling from non-NetBSD hosts. This
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.


# 1.31 29-Jan-2002 tv

Make almost all tools compile and run properly on non-NetBSD hosts. (In
particular, most tools now run correctly on Solaris 7.)


# 1.30 25-Jan-2002 lukem

build pax as a host tool, for -N and to work around borken vendor paxes


# 1.29 10-Jan-2002 tv

Move host-mkdep to its own directory. Create and install it before
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.


# 1.28 10-Jan-2002 lukem

revert previous, and reenable tools/makefs now that it works on
netbsd-current and netbsd-1-5


# 1.27 09-Jan-2002 tv

Disable makefs in src/tools for the moment; it's very dependent on -current
NetBSD headers and sources right now. (Temporary workaround for PR 15175.)


# 1.26 05-Jan-2002 mrg

build zic as a host tool.


# 1.25 05-Jan-2002 mrg

build makefs, and, sparc-installboot if sparc||sparc64


# 1.24 31-Dec-2001 thorpej

We can't currently build a toolchain for x86-64 here, so don't
attempt to do so.


# 1.23 29-Dec-2001 wiz

Typo fix in error message.


# 1.22 11-Dec-2001 tv

Add the framework for autoconf-based src/tools/compat structure. This will
(after it is more fleshed out) allow the host tools to work more cleanly
on non-NetBSD hosts.


# 1.21 07-Dec-2001 jmc

Add pwd_mkdb as a toolchain bit for builds


# 1.20 29-Nov-2001 thorpej

Build makewhatis as a host tool, since it is used at the end of
the build.

XXX Needs a -lz hostlib.


# 1.19 22-Nov-2001 jmc

Oops. typo which can break things for non-new toolchain builds if MKTOOLS isn't
set


# 1.18 22-Nov-2001 jmc

Check for USETOOLS!=yes in addition to MKTOOLS==no to generate the empty rule
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


# 1.17 13-Nov-2001 tv

Re-add MKTOOLS as a "yes"/"no" only variable, which prevents recursion on "no"
into the src/tools subdirs on all/depend/dependall/install. Other recursive
targets are not affected.


# 1.16 12-Nov-2001 tv

Major overhaul of src/tools and host toolchain. Summary of changes:

* 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.


# 1.15 09-Nov-2001 thorpej

Build the cross-dbsym.


# 1.14 02-Nov-2001 tv

* Always use the makewrapper when starting a build phase.

* 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.


# 1.13 31-Oct-2001 tv

Don't actually delete the default tooldir on "cleandir"; else we'll nuke
the nbmake that is probably currently running.

Just leave the "cleantools" manual target as a shortcut for the user.


# 1.12 31-Oct-2001 tv

* Create a variable HOST_OSTYPE that represents the host build environment,
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.


# 1.11 31-Oct-2001 tv

* Always descend into "tools" regardless of USETOOLS setting. Instead,
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.


# 1.10 25-Oct-2001 thorpej

Add asn1_compile as a host tool.


# 1.9 21-Oct-2001 jmc

Pull in mdsetimage to the tools builds. (XXX - using libbfd here would
probably be preferrable long term).


# 1.8 20-Oct-2001 jmc

Add mklocale to cross-tools and turn it back on for the builds.


# 1.7 13-Oct-2001 jmc

Add crunchgen, msgc and menuc


# 1.6 09-Oct-2001 enami

Make mtree a host tool and use it when appropriate.


# 1.5 04-Oct-2001 tv

Recurse properly; just add "build" to TARGETS (fixes reported problem where
"make clean" doesn't work at the src/tools level).


# 1.4 22-Sep-2001 tv

Work around "make obj" lossage in tools/. Dunno why this is happening
just yet; will investigate this evening.


# 1.3 22-Sep-2001 tv

Add lorder to TOOLDIR host tools.

Only descend into directories if USE_NEW_TOOLCHAIN is set (allows top level
Makefile to use "-m ${.CURDIR}/share/mk" to get the "correct" <bsd.own.mk>
when descending into src/tools/Makefile).


# 1.2 21-Sep-2001 tv

- Create a real cpp binary.
- Set CC properly in environment for mkdep and lint.
- Add compile_et to TOOLDIR host tools.


# 1.1 14-Aug-2001 tv

Bootstrap toolchain framework, first pass.


# 1.216 23-Feb-2024 mrg

build isl tool for GCC 12.


# 1.215 30-Nov-2023 rin

tools/Makefile: Correct inverted comment. NFC


Revision tags: netbsd-10-0-RC4 netbsd-10-0-RC3 netbsd-10-0-RC2 netbsd-10-0-RC1 netbsd-10-base
# 1.214 18-Apr-2022 jkoshy

Disconnect 'tools/lib{elf,dwarf}' from the build.

These libraries are now built by 'tools/elftoolchain/lib{elf,dwarf}'
respectively.


# 1.213 13-Apr-2022 jkoshy

When building tools use a dedicated subdirectory for compiling
Elftoolchain code.

Build and install <sys/elfdefinitions.h> in ${TOOLDIR}/include.

This change prepares the ground for upgrading libelf and libdwarf to
their current Elftoolchain versions.


# 1.212 14-Nov-2021 skrll

Make dtc on riscv


Revision tags: cjep_sun2x-base1 cjep_sun2x-base cjep_staticlib_x-base1
# 1.211 27-May-2021 cjep

If we are building date earlier, we need to use an uninstalled copy
of host-mkdep and libnbcompat otherwise the build process looks for
tools that might not be there yet (e.g. fresh build).
Reviewed by martin.


# 1.210 26-May-2021 christos

Add a date tool


Revision tags: cjep_staticlib_x-base
# 1.209 06-May-2021 rin

branches: 1.209.2;
PR port-mvme68k/56146

Build wrtvid as tools.


# 1.208 25-Apr-2021 christos

Make mips-elf2ecoff available for all mips


# 1.207 06-Feb-2021 dbj

tools: allow MKCROSSGDB to work when not building gcc


# 1.206 28-Jul-2020 uwe

Build mkubootimage for evbsh3 too.


Revision tags: phil-wifi-20200421 phil-wifi-20200411 is-mlppp-base phil-wifi-20200406 phil-wifi-20191119
# 1.205 11-Nov-2019 joerg

Update LLVM to 10.0.0git (01f3a59fb3e2542fce74c768718f594d0debd0da)


# 1.204 26-Sep-2019 bad

Exclude more subdirs if TOOLS_BUILDRUMP=yes.

Exclude subdirs added in the last 3 years but not need for rumpkernel builds.


Revision tags: netbsd-9-3-RELEASE netbsd-9-2-RELEASE netbsd-9-1-RELEASE netbsd-9-0-RELEASE netbsd-9-0-RC2 netbsd-9-0-RC1 netbsd-9-base phil-wifi-20190609
# 1.203 07-May-2019 hannken

Fix build, "pax" must be built before "libprop".

Ok: Matthew Green mrg@


# 1.202 07-May-2019 thorpej

Add support for libprop as a host tool library.


# 1.201 03-Apr-2019 joerg

Add MKLLVMRT to build a subset of the LLVM stack for JIT purposes.
Hook up AMDGPU backend for clang.


# 1.200 03-Apr-2019 joerg

Revert MKLLVMCMDS changes.


# 1.199 20-Mar-2019 mrg

split MKLLVM into MKLLVM and MKLLVMCMDS, like MKGCC and MKGCCCMDS:

- only build clang or clang-tblgen if MKLLVMCMDS != "no"
- move HAVE_MESA_VER earlier so we can detect mesa 18 and enable
MKLLVM on platforms that need it
- move the clang commands and headers into llvmcmds group
- only build the clang specific LLVM libraries if MKLLVMCMDS != "no"

much of this work came from maya@'s github commit
f90685c11d4460d3098fa35f48b58d1893e974e0, reworked for HAVE_MESA_VER
and llvmcmds vs MKCLANG.


build tested on several platforms and on amd64 and i386 with several
different build options (clang build, gcc build, gcc build with llvm
libs).


Revision tags: pgoyette-compat-20190127 pgoyette-compat-20190118
# 1.198 02-Jan-2019 christos

use MACHINE_CPU for elf2aout


# 1.197 31-Dec-2018 christos

Add an arm-specific elf2aout tool since objdump does not support a.out anymore


Revision tags: pgoyette-compat-1226 pgoyette-compat-1126 pgoyette-compat-1020 pgoyette-compat-0930
# 1.196 25-Sep-2018 joerg

Update build glue for xz-5.2.4. Hook up tools version.


Revision tags: pgoyette-compat-0906
# 1.195 11-Aug-2018 christos

hook in the tools version of grep


Revision tags: pgoyette-compat-0728 phil-wifi-base pgoyette-compat-0625 pgoyette-compat-0521
# 1.194 09-May-2018 joerg

branches: 1.194.2;
For EXTERNAL_TOOLCHAIN, MKLLVM=yes needs to build only tablegen.


Revision tags: pgoyette-compat-0502 pgoyette-compat-0422 pgoyette-compat-0415 pgoyette-compat-0407 pgoyette-compat-0330 pgoyette-compat-0322 pgoyette-compat-0315 pgoyette-compat-base
# 1.193 18-Feb-2018 uwe

branches: 1.193.2;
Fix .endif comment for TOOLS_BUILDRUMP


# 1.192 27-Dec-2017 christos

Better EXTERNAL_TOOLCHAIN support from Zachary McGrew
- Allow mdsetimage and dbsym to be built with EXTERNAL_TOOLCHAIN
- Allow BFDDIR and IBERTYDIR to be overwritten for mdsetimage and dbsym


Revision tags: perseant-stdc-iso10646-base
# 1.191 07-Jun-2017 skrll

branches: 1.191.2;
Hook in dtc/libfdt now that it builds for me


# 1.190 06-Jun-2017 skrll

Disable dtc/libfdt for now


# 1.189 05-Jun-2017 christos

No need to set dtc twice.


# 1.188 05-Jun-2017 christos

Add dtc


Revision tags: netbsd-8-base prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1 pgoyette-localcount-20170320 bouyer-socketcan-base
# 1.187 11-Jan-2017 joerg

branches: 1.187.6;
Sync tools build glue with LLVM pre-4.0.0.


Revision tags: pgoyette-localcount-20170107 pgoyette-localcount-20161104 localcount-20160914 pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base
# 1.186 24-Jan-2016 christos

branches: 1.186.2;
move cvslatest last


# 1.185 24-Jan-2016 christos

Tool version


# 1.184 19-Dec-2015 christos

move sortinfo after pax


# 1.183 18-Dec-2015 christos

Add sortinfo


# 1.182 23-Jul-2015 mrg

remove the xfree86 reachover makefiles and the vast majority of
the support in the rest of the source tree.

X11 sets could use some cleaning up perhaps (just deletion, as
we've never really marked the old X11R6 as obsolete for native
xorg using platforms so far either.)


# 1.181 24-Jun-2015 matt

Support building the xorg X11 libraries under MKCOMPAT.
Add XORG_MACHINE_ARCH to compat's bsd.*.mk
Turn xorg makekeys and makestrs into real host tools which are installed into
${TOOLSDIR}


# 1.180 07-Jan-2015 joerg

Reorganise the way xorg is build. Move build of makestrs into src/tools
as it is needed for the "includes" phase. Make it symlink all necessary
headers in obj to decouple it from "includes" itself, breaking the
dependency cycle. Move the do-x11 target between do-lib and do-build, so
that libraries can get the benefit of build_install (correct .WAIT
behavior) and everything else like "includes" uses the plain SUBDIR
entry in external/mit.


# 1.179 05-Dec-2014 pooka

build genassym for TOOLS_BUILDRUMP


# 1.178 30-Sep-2014 christos

add gpt


Revision tags: netbsd-7-2-RELEASE netbsd-7-1-2-RELEASE netbsd-7-1-1-RELEASE netbsd-7-1-RELEASE netbsd-7-1-RC2 netbsd-7-nhusb-base-20170116 netbsd-7-1-RC1 netbsd-7-0-2-RELEASE netbsd-7-nhusb-base netbsd-7-0-1-RELEASE netbsd-7-0-RELEASE netbsd-7-0-RC3 netbsd-7-0-RC2 netbsd-7-0-RC1 netbsd-7-base tls-maxphys-base
# 1.177 10-Aug-2014 matt

Changes to existing files to enable building AARCH64 userland.
evbarm64-el
This is clang only. While gcc4.8 supports aarch64, no netbsd support has
been written for aarch64 with gcc4.8.


Revision tags: tls-earlyentropy-base
# 1.176 15-Jul-2014 christos

descend to vgrind


# 1.175 15-Jun-2014 pooka

Add cat, rpcgen and stat to TOOLS_BUILDRUMP. They're useful for
installing headers for the app stack cases that need it done, and small
enough to not matter for the kernel-only cases that don't.


# 1.174 14-Jun-2014 mrg

remove remaining makefile support for GCC < 45 that i found.


Revision tags: yamt-pagecache-base9
# 1.173 03-Apr-2014 riastradh

branches: 1.173.2;
ctfconvert/ctfmerge need libdwarf &c., so build them if MKCTF=yes.


Revision tags: riastradh-xf86-video-intel-2-7-1-pre-2-21-15
# 1.172 25-Mar-2014 ozaki-r

Add MKCTF

This variable separates CTF stuffs from MKDTRACE; we can build DTrace
solely without building and using them. This allows us to use DTrace
even if CTF stuffs have problems (actually they have now).

This variable would be merged into MKDTRACE eventually, once CTF stuffs
work correctly again.


Revision tags: riastradh-drm2-base3
# 1.171 24-Feb-2014 skrll

Rename NetBSD/hp700 to NetBSD/hppa.

Unfortunately our VCS isn't very helpful here.


# 1.170 02-Sep-2013 joerg

Update LLVM/Clang snapshot to r189662. This includes many improvements
to the new SLP vectorizer, fast codegen support for PPC and using
terminfo for the color sequences. In addition, add (optional) build
infrastructure for lld to allow easier testing. This is controlled by
MKLLD.


Revision tags: riastradh-drm2-base2 riastradh-drm2-base1
# 1.169 19-Jul-2013 matt

Even if we aren't making a crossgdb still make the object dir for it.


Revision tags: riastradh-drm2-base agc-symver-base
# 1.168 27-Feb-2013 joerg

branches: 1.168.4;
Add infrastructure for building MCLinker.


# 1.167 05-Feb-2013 matt

There are other little endian arm machine_arches other than "arm"
Use MACHINE_CPU and TARGET_ENDIANNESS instead of MACHINE_ARCH


# 1.166 31-Jan-2013 pooka

Use TOOLS_BUILDRUMP=yes to restrict building of tools to those required
for building rump kernels. This cuts down the NetBSD source tree required
by buildrump.sh to a fraction and addresses a size/download time concern
from a person packaging rump kernels for Linux.

No change to the normal case (tested with several -j32/-j64 builds).

reviewed by apb


Revision tags: yamt-pagecache-base8 yamt-pagecache-base7
# 1.165 02-Dec-2012 apb

Make tools/Makefile build host-mkdep, compat, and binstall in that order,
before installing any of them. It installs them in any order relative
to each other. The .WAIT points that used to be between these three
tools are replaced by .ORDER and dependencies.

This is needed in preparation for making tools/compat install
some files into TOOLDIR.


# 1.164 02-Dec-2012 apb

TOOLDIR must be valid, unless MKTOOLS=no.
Add tests and .error directives to enforce this.


# 1.163 02-Dec-2012 apb

If tools are not wanted, then set SUBDIR= empty instead of
defining all the subdir-related targets to do nothing. This way,
the targets are not invoked at all, instead of being invoked but
doing nothing.


# 1.162 02-Dec-2012 apb

remove trailing white space


# 1.161 27-Nov-2012 jkunz

According to the i.MX23 Reference Manual section 3.1, Page 3-3:
"The i.MX23 always operates in litle-endian mode."
So build elftosb and bootloader for this processor only for evbarm(-el).


# 1.160 26-Nov-2012 pooka

Build gmake iff we're going to need it.


# 1.159 15-Nov-2012 joerg

Move the build_install logic from lib/Makefile into share/mk and re-use
it for tools. The existing logic broke for the LLVM build with the
recent .ORDER changes in make.


# 1.158 15-Nov-2012 jkunz

Add elftosb tools to evbarm userland and toolchain.
Elftosb is used to create a digitaly signed "secure boot" file.
This sb file can be booted by the first stage boot loader found in
Freescale i.MX23 and i.MX28 application processors.

Copyright (c) 2004-2010 Freescale Semiconductor, Inc.


Revision tags: yamt-pagecache-base6
# 1.157 20-Sep-2012 pooka

fix EXTERNAL_TOOLCHAIN build


# 1.156 10-Aug-2012 joerg

branches: 1.156.2;
Decouple binutils build from HAVE_GCC. Merge common fragments of
HAVE_GCC and HAVE_PCC.


Revision tags: netbsd-6-0-6-RELEASE netbsd-6-1-5-RELEASE netbsd-6-1-4-RELEASE netbsd-6-0-5-RELEASE netbsd-6-1-3-RELEASE netbsd-6-0-4-RELEASE netbsd-6-1-2-RELEASE netbsd-6-0-3-RELEASE netbsd-6-1-1-RELEASE netbsd-6-0-2-RELEASE netbsd-6-1-RELEASE netbsd-6-1-RC4 netbsd-6-1-RC3 netbsd-6-1-RC2 netbsd-6-1-RC1 netbsd-6-0-1-RELEASE matt-nb6-plus-nbase netbsd-6-0-RELEASE netbsd-6-0-RC2 matt-nb6-plus-base netbsd-6-0-RC1 yamt-pagecache-base5 yamt-pagecache-base4 netbsd-6-base yamt-pagecache-base3 yamt-pagecache-base2
# 1.155 03-Nov-2011 joerg

Revert .WAIT removal and add comment why it is needed between *tblgen.


# 1.154 02-Nov-2011 njoly

Do not build tic more than once


# 1.153 02-Nov-2011 christos

move tic later, after all the tools it needs are built.


# 1.152 02-Nov-2011 yamt

tweak dependencies for tic, which needs nbperf, awk, and sed.


Revision tags: yamt-pagecache-base
# 1.151 01-Nov-2011 joerg

branches: 1.151.2;
Remove an unnecessary .WAIT between llvm-tblgen and clang-tblgen.


# 1.150 01-Nov-2011 joerg

Hook up nbperf into the normal tool build.


# 1.149 11-Oct-2011 joerg

Update LLVM/Clang snapshot to r141658. This primarily fixes a regression
preventing Qt4 from building.


# 1.148 16-Jul-2011 tsutsui

Build nbm68k-elf2aout as a host tool on m68k targets
for an ancient PROM bootloader.
Mostly taken from nbmips-elf2ecoff.


# 1.147 10-Jul-2011 mrg

install elf2ecoff for all mips64 systems. it's needed for stand.


# 1.146 21-Jun-2011 mrg

always build gmake if HAVE_GCC.
build gmp, mpfr and then mpc if HAVE_GCC >= 45.


Revision tags: cherry-xenmp-base
# 1.145 15-Apr-2011 elric

branches: 1.145.2;
Upgrade Heimdal to 1.5pre1 by switching the build from crypto/dist/heimdal
to crypto/external/bsd/heimdal. The latter was just imported as the head
of the Heimdal tree as of a few days ago.


# 1.144 17-Mar-2011 riz

.WAIT for makefs, because in most builds, it's the first target
which includes Makefile.nbincludes, whose beforedepend: has
some race condition I don't fully understand, and which has been
causing many (but not all!) -j16 builds on the autobuild cluster
to fail in tools since sometime between 201103061600 and 201103070900.

With the proper voodoo, I was able to get 8 builds in a row to fail
without this change, and 16 in a row to succeed with it.

XXX a proper fix likely involves reworking the beforedepend: target
of Makefile.nbincludes, but this should get the build cluster back up
to full functionality in the meanwhile.


Revision tags: bouyer-quota2-nbase
# 1.143 25-Feb-2011 phx

mkubootimage is certainly useful for sandpoint


Revision tags: bouyer-quota2-base
# 1.142 06-Feb-2011 joerg

Add LLVM and clang build system. It is enabled by MKLLVM=yes.
Upstream sources can be fetched by running "make checkout" in
src/external/bsd/llvm, they will be properly imported once the
integration and missing features are sorted out.


# 1.141 31-Jan-2011 matt

Make mkubootimage for evbmips and evbppc too.


Revision tags: matt-mips64-premerge-20101231
# 1.140 15-Aug-2010 mrg

branches: 1.140.2;
add new option to build/use tools/pigz for compressing sets. for now
USE_PIGZGZIP defaults to "no". (it depends upon local <pthread.h> and -lz.)

you can set it to "yes" on most modern platforms just fine.


# 1.139 18-Jun-2010 jmcneill

hook mkubootimage into the build


# 1.138 04-Jun-2010 jmmv

Bye bye atf-compile, you won't be missed.


# 1.137 02-Mar-2010 darran

DTrace: add libelf, libdwarf, libctf, and CTF tools to the toolchain,
built when MKDTRACE=yes.


# 1.136 20-Feb-2010 joerg

Build mandoc unconditional if man pages are desirable. All
compatibility issues are supposed to be sorted out.
Build groff conditionally on MKGROFF. It is currently the only component
that requires C++.


# 1.135 03-Feb-2010 roy

Store our generated files in CVS and remove nbperf from the toolchain.
This allows us to build consistent libs without an ever changing hash.


# 1.134 03-Feb-2010 roy

Userland now builds and uses terminfo instead of termcap.

OK: core@, jdc@


# 1.133 29-Dec-2009 he

To unbreak the build, temporarily remove the build of libelf here,
since no other part of the build depends on this yet.

Suggested as a temporary workaround by thorpej@


# 1.132 23-Dec-2009 mrg

rework the main SUBDIR list here as suggested by enami. put .WAIT on
the same line as the target that needs to wait, but before the target,
rather than on the previous line, which led to confusion and an error
being introduced in the previous change.


# 1.131 21-Dec-2009 mrg

move the build of pax before libelf. fixes my build of tools/libelf,
though i didn't look to see why libelf needs pax.


# 1.130 21-Dec-2009 thorpej

Add support for building libelf in a host-tool environment.

XXX Makefile.disklabel is really mis-named, but I'm not going to tackle
that problem right now.


Revision tags: matt-premerge-20091211
# 1.129 29-Oct-2009 christos

Give m4 its own .WAIT. Fixes build issue on NetBSD-5.


# 1.128 23-Oct-2009 joerg

Add MKMANDOC option to trigger building cat pages and HTML pages with
mdocml. Add a lintmanpages target for developers to check man pages
with the strictest settings of mandoc.


Revision tags: jym-xensuspend-nbase jym-xensuspend-base
# 1.127 25-Feb-2009 sketch

Disable grep host tool and unbreak NetBSD build until I can come up with a
clean fix.


# 1.126 25-Feb-2009 sketch

Make grep a host tool.


# 1.125 14-Feb-2009 abs

Convert more MACHINE tests to MACHINE_ARCH


Revision tags: netbsd-5-2-3-RELEASE netbsd-5-1-5-RELEASE netbsd-5-2-2-RELEASE netbsd-5-1-4-RELEASE netbsd-5-2-1-RELEASE netbsd-5-1-3-RELEASE netbsd-5-2-RELEASE netbsd-5-2-RC1 netbsd-5-1-2-RELEASE netbsd-5-1-1-RELEASE matt-nb5-mips64-premerge-20101231 matt-nb5-pq3-base netbsd-5-1-RELEASE netbsd-5-1-RC4 matt-nb5-mips64-k15 netbsd-5-1-RC3 netbsd-5-1-RC2 netbsd-5-1-RC1 netbsd-5-0-2-RELEASE matt-nb5-mips64-premerge-20091211 matt-nb5-mips64-u2-k2-k4-k7-k8-k9 matt-nb4-mips64-k7-u2a-k9b matt-nb5-mips64-u1-k1-k5 netbsd-5-0-1-RELEASE netbsd-5-0-RELEASE netbsd-5-0-RC4 netbsd-5-0-RC3 netbsd-5-0-RC2 netbsd-5-0-RC1 netbsd-5-base
# 1.124 25-Oct-2008 apb

branches: 1.124.4; 1.124.8; 1.124.12;
Build sed earlier, just after mktemp. Note that sed and mktemp do not
depend on each other, but the .WAIT is needed to get them both installed
before the remainder of the tools build.


# 1.123 25-Oct-2008 apb

Remove the local handling of the NOSUBDIR variable. We can rely
on bsd.subdir.mk's handling of the NOSUBDIR variable.

Also add some comment to .if/.else/.endif and .for/.endfor lines.


Revision tags: matt-mips64-base2
# 1.122 19-Oct-2008 apb

Add awk as a host tool.


# 1.121 13-Oct-2008 dyoung

Per uwe@'s suggestion, build nbgroff under wider circumstances.
I choose to build it if MKDOC != no or if MKHTML != no. It used
to be built only when MKMAN != no.


# 1.120 05-Oct-2008 apb

Add a .WAIT to ensure that sed is installed early, so that TOOL_SED can
be used during the build of other tools.


# 1.119 26-Sep-2008 apb

Build strfile both as a host tool and as an installed program:
* in games/fortune/strfile/Makefile, build strfile as a
regular program instead of as a host tool;
* add tools/strfile directory to build strfile as a host tool;
* in tools/Makefile, add strfile to SUBDIR list;
* in BSD.*.mk, define TOOL_STRFILE variable;
* in games/fortune/datfiles/Makefile, use TOOL_STRFILE when creating
databases at build time;
* in distrib/sets/lists/games/mi, mention usr/games/strfile.


Revision tags: wrstuden-revivesa-base-3 wrstuden-revivesa-base-2
# 1.118 24-Aug-2008 gmcgarry

Build pcc as host tool if requested.


Revision tags: wrstuden-revivesa-base-1 yamt-pf42-base4 yamt-pf42-base3 wrstuden-revivesa-base
# 1.117 26-May-2008 he

Remove references to bebox-elf2pef and bebox-mkbootimage, now that they
have been integrated in common powerpc tools and subsequently removed.


Revision tags: hpcarm-cleanup-nbase yamt-pf42-base2
# 1.116 30-Apr-2008 garbled

branches: 1.116.2;
Build powerpc-mkbootimage for rs6000 and bebox too.


# 1.115 30-Apr-2008 garbled

Convert prep to use the new unified mkbootimage rather than it's own. This
mkbootimage can be shared by prep, rs6000, and bebox.

TODO: Convert bebox to use this. Needs someone to test.


Revision tags: yamt-pf42-baseX yamt-pf42-base keiichi-mipv6-nbase keiichi-mipv6-base matt-armv6-nbase cube-autoconf-base matt-armv6-base hpcarm-cleanup-base
# 1.114 12-Nov-2007 jmmv

branches: 1.114.6;
Add the atf host tools

This adds reachover Makefiles to build the atf tools required during a
cross-build.


Revision tags: matt-armv6-prevmlocking matt-mips64-base
# 1.113 14-Jan-2007 apb

branches: 1.113.4;
Build join(1) as a host tool.


# 1.112 20-Dec-2006 agc

A commit too far - don't try to build veriexecgen for just now


# 1.111 19-Dec-2006 agc

Build veriexecgen as a host tool


Revision tags: netbsd-4-0-1-RELEASE wrstuden-fixsa-newbase wrstuden-fixsa-base-1 netbsd-4-0-RELEASE netbsd-4-0-RC5 netbsd-4-0-RC4 netbsd-4-0-RC3 netbsd-4-0-RC2 netbsd-4-0-RC1 wrstuden-fixsa-base netbsd-4-base
# 1.110 22-Nov-2006 riz

Make sys/exec_elf.h and machine/elf_machdep.h available to host
tools, and allow paxctl to use them when compiled as a host
tool. This fixes the build on MacOS X (and perhaps other platforms)


# 1.109 17-Nov-2006 dsl

Add some notes about the bogosity of some of the .WAIT stuff.
Remove a 'never had a sane effect' .WAIT from a .ORDER line.
Don't add a (probably incorrect) dependency for 'make install' since
it contradicts a .ORDER line elsewhere when .ORDER applies recursively
to child nodes.
I also think that the stuff that tries to add dependencies between
the stuff that bsd.subdir.mk generates does not DTRT at all.
I suspect that build.sh builds things in an order that avoids issues here.


# 1.108 10-Nov-2006 christos

Add paxctl as a tool.


# 1.107 08-Oct-2006 apb

If PREVIOUSTOOLDIR was empty, then don't complain that it has moved.

Patch from Jukka Salmi in PR 33095.


Revision tags: abandoned-netbsd-4-base
# 1.106 03-Aug-2006 freza

* Fix parallel build race condition between real{all,depend} and
<bsd.subdir.mk> targets.
* No need to pass TOOLDIR to recursive cleandir in real{all,depend}.

With help from he@.
OK by tron@.


# 1.105 03-Aug-2006 tron

Another attempt to fix the race in parallel builds.


# 1.104 19-Jul-2006 tron

Invoking "make cleandir" with "PREVIOUSTOOLDIR" set to the previous
location will not stop recursive "make cleandir" calls. Pass the new
location instead.


# 1.103 18-Jul-2006 lukem

gettext should .WAIT for autoconf.
(The former still doesn't seem to work on read-only source; separate issue)


# 1.102 17-Jul-2006 tron

Avoid getting into a loop of "make cleandir" instances if the location
tool directory has been changed or wasn't recorded before.


# 1.101 17-Jul-2006 tron

Remove ".WAIT" again because it doesn't fix the problem.


# 1.100 12-Jul-2006 tron

Add an extra ".WAIT" to the "realall realdepend" target to make sure
it finished cleaning the tools directory in case of tool directory
mismatch before we try to rebuild the tools.


# 1.99 22-Jun-2006 mrg

only build lint and lint2 if MKLINT != "no".


# 1.98 18-Jun-2006 gdamore

Make TOOL_SED, to allow using our own sed in cases where the host's version
is busted in some way.

The TOOL_SED doesn't use TIOCGWINSIZE, and has some changes to include
nbtool_config.h in a cross build environment.

Combined with some other changes (not yet committed), this allows cross
compiling m68k code on Solaris 10/amd64.


# 1.97 02-Jun-2006 mrg

remove support for building (with) GCC 2.95. also:
- always install <stdbool.h>
- don't generate a fake one for vax / gettext.


# 1.96 11-May-2006 mrg

check HAVE_GCC == 4 not USE_GCC4.


# 1.95 01-Apr-2006 christos

Don't barf if USE_GCC4 is not defined.


# 1.94 29-Mar-2006 jmc

Turn on gmake builds if GCC4 is enabled (and force it's install before continuing


# 1.93 03-Feb-2006 dsl

The realall and realdepend bit that regenerates tools needs to be marked
.MAKE otherwise the 'make' it runs has its own list of jobs instead of
using the jobserver of the enclosing make.


# 1.92 04-Oct-2005 jmc

Make the tools using Makefile.disklabel wait so they don't stomp each other.
Also for now add a dependency to Makefile.disklabel so this doesn't run
3 times. (XXX this really should just be done differently)


# 1.91 12-Jun-2005 dyoung

.include Makefile.disklabel in installboot, so that the
nbinclude/ header files will be installed. Build installboot after
pax, since Makefile.disklabel uses pax to install the headers.


# 1.90 12-Jun-2005 dyoung

Make disklabel(8) and fdisk(8) into "host tools " last step: build
and install ${TOOLDIR}/bin/${MACHINE_GNU_PLATFORM}-disklabel,
${TOOLDIR}/bin/${MACHINE_GNU_PLATFORM}-fdisk by "reaching over" to
the sources in ${NETBSDSRCDIR}/sbin/{disklabel fdisk}/.

To avoid clashes with a build-host's header files, especially on
*BSD, the host-tools versions of fdisk and disklabel search for
#includes such as disklabel.h, disklabel_acorn.h, disklabel_gpt.h,
and bootinfo.h in a new #includes namespace, nbinclude/. That is,
they #include <nbinclude/sys/disklabel.h>, <nbinclude/machine/disklabel.h>,
<nbinclude/sparc64/disklabel.h>, instead of <sys/disklabel.h> and
such. I have also updated the system headers to #include from
nbinclude/-space when HAVE_NBTOOL_CONFIG_H is #defined.


# 1.89 30-May-2005 thorpej

Build genassym as a host tool. Part of PR toolchain/30350


Revision tags: netbsd-3-1-1-RELEASE netbsd-3-0-3-RELEASE netbsd-3-1-RELEASE netbsd-3-0-2-RELEASE netbsd-3-1-RC4 netbsd-3-1-RC3 netbsd-3-1-RC2 netbsd-3-1-RC1 netbsd-3-0-1-RELEASE netbsd-3-0-RELEASE netbsd-3-0-RC6 netbsd-3-0-RC5 netbsd-3-0-RC4 netbsd-3-0-RC3 netbsd-3-0-RC2 netbsd-3-0-RC1 netbsd-3-base
# 1.88 27-Jan-2005 is

We don't need aout2bb any longer.


# 1.87 09-Jan-2005 mycroft

Add some quotes to prevent a syntax error.


# 1.86 28-Nov-2004 jmc

Convert mkboot into a full cross tool. Last hurdle for hp300 to building on
non NetBSD/bsd hosts.


# 1.85 28-Nov-2004 jmc

Convert remaining host tools for amiga to correct cross tools. Now allows
complete amiga builds on non netbsd/bsd hosts


# 1.84 25-Nov-2004 jmc

Convert bebox's remaining host tools over to cross tools scheme. Builds to sets
w/o error now.


# 1.83 28-Jul-2004 skrll

Build hp700's mkboot as a host tool called nbhp700-mkboot. mkboot also
gets built and installed in a hp700 distribution.

TODO

- merge with hp300

- pick a preferred method for dealing with the elf headers.
hp700-mkboot and prep-mkbootimage (bintuils) vs mips-elf2ecoff and
tools/installboot


# 1.82 08-Jun-2004 abs

Add sparkcrc (used to generate checksums for acorn32 bootloader sparkive)
as a host tool.


Revision tags: netbsd-2-0-base
# 1.81 03-Jan-2004 lukem

branches: 1.81.2;
Consistently check ${TOOLCHAIN_MISSING} against "no".


# 1.80 11-Dec-2003 matt

Fix typo.


# 1.79 11-Dec-2003 matt

Add macppc-fixcoff tool.


# 1.78 10-Dec-2003 lukem

Use (cd ${.CURDIR} && ${MAKE} cleandir) instead of ${MAKE} cleandir
Suggested by Ross Harvey.


# 1.77 04-Dec-2003 mrg

always build tools/binutils now.


# 1.76 08-Nov-2003 sekiya

Build sgivol as a host tool when compiling for sgimips.


# 1.75 27-Oct-2003 lukem

add mknod as a host tool


# 1.74 26-Oct-2003 cl

add gdb53 as a host tool for use as a crossgdb
replaces gdb50 from toolchain on archs which use gcc3


# 1.73 21-Oct-2003 lukem

Rework how MAKEVERBOSE operates:

* Don't bother prefixing commands with a line of ${_MKCMD}\
and instead rely upon "make -s". This is less intrusive on
all the Makefiles than the former. Idea from David Laight.

* Rename the variables use to print messages. The scheme now is:
_MKMSG_FOO Run _MKMSG 'foo'
_MKTARGET_FOO Run _MKMSG_FOO ${.TARGET}
From discussion with Alistair Crooks.


# 1.72 19-Oct-2003 matt

Add host tool version of ncdcs


# 1.71 18-Oct-2003 lukem

MAKEVERBOSE support


# 1.70 25-Jul-2003 mrg

- build "binutils" and "gcc" separately if USE_TOOLS_TOOLCHAIN is not set
to "yes".
- adjust dbsym/mdsetimage to look in the correct place for libbfd.
- new mknative-gcc based in toolchain/mknative


# 1.69 24-Jul-2003 tron

Add missing "cleandir" rule.


# 1.68 20-Jul-2003 lukem

add stat(1) as a host tool


# 1.67 16-Jul-2003 lukem

also do the MKTOOLS and PREVIOUSTOOLDIR checks for "realdepend"


# 1.66 16-Jul-2003 lukem

* If a `PREVIOUSTOOLDIR' file doesn't exist, or its contents are not
the same as "$TOOLDIR", run "make cleandir" here first.
This should prevent various problems where $TOOLDIR is encoded into the
build process for various tools (lint, groff, texinfo, toolchain),
$TOOLDIR changes, and various programs don't get rebuilt correctly.
Should fix PR [toolchain/21988].

* Clean up how the `${MKTOOLS} == no' check is performed.

* Remove "cleantools"; it made a big assumption about the location of
TOOLDIR that won't be correct in many cases.


# 1.65 26-Jun-2003 tshiozak

Citrus iconv support(3)
add host tools : mkcsmapper and mkesdb
mkcsmapper - coded character set mapping table compiler
mkesdb - encoding scheme database compiler


# 1.64 18-May-2003 lukem

Add db(1) as a host tool


# 1.63 25-Mar-2003 pooka

build file(1) as a host tool (for compiling magic files)


# 1.62 07-Mar-2003 thorpej

Make hexdump a host tool.


Revision tags: fvdl_fs64_base
# 1.61 21-Dec-2002 lukem

enable sunlabel...


# 1.60 19-Sep-2002 thorpej

Change the TOOLCHAIN_MISSING from == "no" to != "yes", to be consistent
with the other tests of this variable.


# 1.59 19-Sep-2002 matt

Since TOOLCHAIN_MISSING is defined in bsd.own.mk, it can never be undefined.
Instead, make sure the value of it is "no"


# 1.58 17-Sep-2002 thorpej

* Eliminate the USE_NEW_TOOLCHAIN variable. Instead, split it into
two variables:

TOOLCHAIN_MISSING -- set to "yes" on platforms for which there is
no working in-tree toolchain (hppa, ns32k, sh5, x86_64).

EXTERNAL_TOOLCHAIN -- if defined by the user, points to the root of
an external toolchain (e.g. /usr/local/gnu). This enables the cross-build
framework even for TOOLCHAIN_MISSING platforms.

If TOOLCHAIN_MISSING is set to "yes", MKGDB, MKBFD, and MKGCC are all
unconditionally set to "no", since the bits are not there to build.

If EXTERNAL_TOOLCHAIN is set, MKGCC is unconditionally set to "no",
since the external toolchain's compiler is not in-sync with the
in-tree compiler support components (e.g. libgcc).

* Set MACHINE_CPU much earlier in bsd.own.mk, so that more tests in
that file can use it.


# 1.57 14-Sep-2002 chris

We need binstall to be installed, before attempting to use it to install mktemp.


# 1.56 14-Sep-2002 thorpej

Descend into mktemp.


# 1.55 12-Jun-2002 veego

The last commit wasn't tested. Add a missing \


# 1.54 12-Jun-2002 thorpej

Don't build toolchain bits for hppa, for now.


# 1.53 10-Jun-2002 mason

Add cat(1) as a host tool.


# 1.52 05-Jun-2002 thorpej

Don't try to build toolchain bits for ns32k.


# 1.51 28-May-2002 bjh21

Add fgen as a host tool, used for sys/arch/sparc/bootblk.


Revision tags: netbsd-1-6-base
# 1.50 18-May-2002 lukem

branches: 1.50.2;
gratuitious comment addition


# 1.49 07-May-2002 lukem

remove now-unnecessary sparc-installboot


# 1.48 03-May-2002 kleink

On prep, descend into prep-mkbootimage.


# 1.47 06-Apr-2002 bjh21

vax-installboot has been deleted, so don't recurse into it.


# 1.46 03-Apr-2002 lukem

enable installboot


# 1.45 01-Apr-2002 thorpej

Nuke NO_DBSYM; dbsym now uses BFD for everything.


# 1.44 01-Apr-2002 bjh21

On second thoughts, don't make mktemp a host tool. It's only used once, for
creating a temporary directory for maketars, and mkdir can do that safely
enough.


# 1.43 31-Mar-2002 bjh21

Add mktemp as a host tool.


# 1.42 31-Mar-2002 bjh21

Add cksum as a host tool.


# 1.41 29-Mar-2002 matt

Drop into vax-installboot on VAX machines.


# 1.40 07-Mar-2002 tv

Rework recursion to use the original logic again, in the structure cleaned
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".


# 1.39 07-Mar-2002 tv

Don't build groff if MKMAN=no. (groff does not build properly on some
platforms because of its completely insane Make structure; this allows it
to be disabled in a sane way.)


# 1.38 26-Feb-2002 tv

Add gettext to tools.

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.)


# 1.37 23-Feb-2002 gmcgarry

Add elf2ecoff as a build tool for mips ports.


# 1.36 18-Feb-2002 pk

* Add comments on all the directory build/install ordering goo.
* 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.


# 1.35 11-Feb-2002 pk

Revert part of previous; we need the install targets.


# 1.34 10-Feb-2002 pk

Use .ORDER targets to express the dependencies on subdir runs. This makes
the resulting tree complexity O(N) (N=# of subdirs), and it also makes it
easier to comprehend the Makefile logic.


# 1.33 08-Feb-2002 pk

Make sure to not go off installing in a directory before it's fully made.


# 1.32 31-Jan-2002 tv

Roll in fixes to permit cross-compiling from non-NetBSD hosts. This
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.


# 1.31 29-Jan-2002 tv

Make almost all tools compile and run properly on non-NetBSD hosts. (In
particular, most tools now run correctly on Solaris 7.)


# 1.30 25-Jan-2002 lukem

build pax as a host tool, for -N and to work around borken vendor paxes


# 1.29 10-Jan-2002 tv

Move host-mkdep to its own directory. Create and install it before
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.


# 1.28 10-Jan-2002 lukem

revert previous, and reenable tools/makefs now that it works on
netbsd-current and netbsd-1-5


# 1.27 09-Jan-2002 tv

Disable makefs in src/tools for the moment; it's very dependent on -current
NetBSD headers and sources right now. (Temporary workaround for PR 15175.)


# 1.26 05-Jan-2002 mrg

build zic as a host tool.


# 1.25 05-Jan-2002 mrg

build makefs, and, sparc-installboot if sparc||sparc64


# 1.24 31-Dec-2001 thorpej

We can't currently build a toolchain for x86-64 here, so don't
attempt to do so.


# 1.23 29-Dec-2001 wiz

Typo fix in error message.


# 1.22 11-Dec-2001 tv

Add the framework for autoconf-based src/tools/compat structure. This will
(after it is more fleshed out) allow the host tools to work more cleanly
on non-NetBSD hosts.


# 1.21 07-Dec-2001 jmc

Add pwd_mkdb as a toolchain bit for builds


# 1.20 29-Nov-2001 thorpej

Build makewhatis as a host tool, since it is used at the end of
the build.

XXX Needs a -lz hostlib.


# 1.19 22-Nov-2001 jmc

Oops. typo which can break things for non-new toolchain builds if MKTOOLS isn't
set


# 1.18 22-Nov-2001 jmc

Check for USETOOLS!=yes in addition to MKTOOLS==no to generate the empty rule
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


# 1.17 13-Nov-2001 tv

Re-add MKTOOLS as a "yes"/"no" only variable, which prevents recursion on "no"
into the src/tools subdirs on all/depend/dependall/install. Other recursive
targets are not affected.


# 1.16 12-Nov-2001 tv

Major overhaul of src/tools and host toolchain. Summary of changes:

* 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.


# 1.15 09-Nov-2001 thorpej

Build the cross-dbsym.


# 1.14 02-Nov-2001 tv

* Always use the makewrapper when starting a build phase.

* 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.


# 1.13 31-Oct-2001 tv

Don't actually delete the default tooldir on "cleandir"; else we'll nuke
the nbmake that is probably currently running.

Just leave the "cleantools" manual target as a shortcut for the user.


# 1.12 31-Oct-2001 tv

* Create a variable HOST_OSTYPE that represents the host build environment,
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.


# 1.11 31-Oct-2001 tv

* Always descend into "tools" regardless of USETOOLS setting. Instead,
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.


# 1.10 25-Oct-2001 thorpej

Add asn1_compile as a host tool.


# 1.9 21-Oct-2001 jmc

Pull in mdsetimage to the tools builds. (XXX - using libbfd here would
probably be preferrable long term).


# 1.8 20-Oct-2001 jmc

Add mklocale to cross-tools and turn it back on for the builds.


# 1.7 13-Oct-2001 jmc

Add crunchgen, msgc and menuc


# 1.6 09-Oct-2001 enami

Make mtree a host tool and use it when appropriate.


# 1.5 04-Oct-2001 tv

Recurse properly; just add "build" to TARGETS (fixes reported problem where
"make clean" doesn't work at the src/tools level).


# 1.4 22-Sep-2001 tv

Work around "make obj" lossage in tools/. Dunno why this is happening
just yet; will investigate this evening.


# 1.3 22-Sep-2001 tv

Add lorder to TOOLDIR host tools.

Only descend into directories if USE_NEW_TOOLCHAIN is set (allows top level
Makefile to use "-m ${.CURDIR}/share/mk" to get the "correct" <bsd.own.mk>
when descending into src/tools/Makefile).


# 1.2 21-Sep-2001 tv

- Create a real cpp binary.
- Set CC properly in environment for mkdep and lint.
- Add compile_et to TOOLDIR host tools.


# 1.1 14-Aug-2001 tv

Bootstrap toolchain framework, first pass.


# 1.215 30-Nov-2023 rin

tools/Makefile: Correct inverted comment. NFC


Revision tags: netbsd-10-0-RC1 netbsd-10-base
# 1.214 18-Apr-2022 jkoshy

Disconnect 'tools/lib{elf,dwarf}' from the build.

These libraries are now built by 'tools/elftoolchain/lib{elf,dwarf}'
respectively.


# 1.213 13-Apr-2022 jkoshy

When building tools use a dedicated subdirectory for compiling
Elftoolchain code.

Build and install <sys/elfdefinitions.h> in ${TOOLDIR}/include.

This change prepares the ground for upgrading libelf and libdwarf to
their current Elftoolchain versions.


# 1.212 14-Nov-2021 skrll

Make dtc on riscv


Revision tags: cjep_sun2x-base1 cjep_sun2x-base cjep_staticlib_x-base1
# 1.211 27-May-2021 cjep

If we are building date earlier, we need to use an uninstalled copy
of host-mkdep and libnbcompat otherwise the build process looks for
tools that might not be there yet (e.g. fresh build).
Reviewed by martin.


# 1.210 26-May-2021 christos

Add a date tool


Revision tags: cjep_staticlib_x-base
# 1.209 06-May-2021 rin

branches: 1.209.2;
PR port-mvme68k/56146

Build wrtvid as tools.


# 1.208 25-Apr-2021 christos

Make mips-elf2ecoff available for all mips


# 1.207 06-Feb-2021 dbj

tools: allow MKCROSSGDB to work when not building gcc


# 1.206 28-Jul-2020 uwe

Build mkubootimage for evbsh3 too.


Revision tags: phil-wifi-20200421 phil-wifi-20200411 is-mlppp-base phil-wifi-20200406 phil-wifi-20191119
# 1.205 11-Nov-2019 joerg

Update LLVM to 10.0.0git (01f3a59fb3e2542fce74c768718f594d0debd0da)


# 1.204 26-Sep-2019 bad

Exclude more subdirs if TOOLS_BUILDRUMP=yes.

Exclude subdirs added in the last 3 years but not need for rumpkernel builds.


Revision tags: netbsd-9-3-RELEASE netbsd-9-2-RELEASE netbsd-9-1-RELEASE netbsd-9-0-RELEASE netbsd-9-0-RC2 netbsd-9-0-RC1 netbsd-9-base phil-wifi-20190609
# 1.203 07-May-2019 hannken

Fix build, "pax" must be built before "libprop".

Ok: Matthew Green mrg@


# 1.202 07-May-2019 thorpej

Add support for libprop as a host tool library.


# 1.201 03-Apr-2019 joerg

Add MKLLVMRT to build a subset of the LLVM stack for JIT purposes.
Hook up AMDGPU backend for clang.


# 1.200 03-Apr-2019 joerg

Revert MKLLVMCMDS changes.


# 1.199 20-Mar-2019 mrg

split MKLLVM into MKLLVM and MKLLVMCMDS, like MKGCC and MKGCCCMDS:

- only build clang or clang-tblgen if MKLLVMCMDS != "no"
- move HAVE_MESA_VER earlier so we can detect mesa 18 and enable
MKLLVM on platforms that need it
- move the clang commands and headers into llvmcmds group
- only build the clang specific LLVM libraries if MKLLVMCMDS != "no"

much of this work came from maya@'s github commit
f90685c11d4460d3098fa35f48b58d1893e974e0, reworked for HAVE_MESA_VER
and llvmcmds vs MKCLANG.


build tested on several platforms and on amd64 and i386 with several
different build options (clang build, gcc build, gcc build with llvm
libs).


Revision tags: pgoyette-compat-20190127 pgoyette-compat-20190118
# 1.198 02-Jan-2019 christos

use MACHINE_CPU for elf2aout


# 1.197 31-Dec-2018 christos

Add an arm-specific elf2aout tool since objdump does not support a.out anymore


Revision tags: pgoyette-compat-1226 pgoyette-compat-1126 pgoyette-compat-1020 pgoyette-compat-0930
# 1.196 25-Sep-2018 joerg

Update build glue for xz-5.2.4. Hook up tools version.


Revision tags: pgoyette-compat-0906
# 1.195 11-Aug-2018 christos

hook in the tools version of grep


Revision tags: pgoyette-compat-0728 phil-wifi-base pgoyette-compat-0625 pgoyette-compat-0521
# 1.194 09-May-2018 joerg

branches: 1.194.2;
For EXTERNAL_TOOLCHAIN, MKLLVM=yes needs to build only tablegen.


Revision tags: pgoyette-compat-0502 pgoyette-compat-0422 pgoyette-compat-0415 pgoyette-compat-0407 pgoyette-compat-0330 pgoyette-compat-0322 pgoyette-compat-0315 pgoyette-compat-base
# 1.193 18-Feb-2018 uwe

branches: 1.193.2;
Fix .endif comment for TOOLS_BUILDRUMP


# 1.192 27-Dec-2017 christos

Better EXTERNAL_TOOLCHAIN support from Zachary McGrew
- Allow mdsetimage and dbsym to be built with EXTERNAL_TOOLCHAIN
- Allow BFDDIR and IBERTYDIR to be overwritten for mdsetimage and dbsym


Revision tags: perseant-stdc-iso10646-base
# 1.191 07-Jun-2017 skrll

branches: 1.191.2;
Hook in dtc/libfdt now that it builds for me


# 1.190 06-Jun-2017 skrll

Disable dtc/libfdt for now


# 1.189 05-Jun-2017 christos

No need to set dtc twice.


# 1.188 05-Jun-2017 christos

Add dtc


Revision tags: netbsd-8-base prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1 pgoyette-localcount-20170320 bouyer-socketcan-base
# 1.187 11-Jan-2017 joerg

branches: 1.187.6;
Sync tools build glue with LLVM pre-4.0.0.


Revision tags: pgoyette-localcount-20170107 pgoyette-localcount-20161104 localcount-20160914 pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base
# 1.186 24-Jan-2016 christos

branches: 1.186.2;
move cvslatest last


# 1.185 24-Jan-2016 christos

Tool version


# 1.184 19-Dec-2015 christos

move sortinfo after pax


# 1.183 18-Dec-2015 christos

Add sortinfo


# 1.182 23-Jul-2015 mrg

remove the xfree86 reachover makefiles and the vast majority of
the support in the rest of the source tree.

X11 sets could use some cleaning up perhaps (just deletion, as
we've never really marked the old X11R6 as obsolete for native
xorg using platforms so far either.)


# 1.181 24-Jun-2015 matt

Support building the xorg X11 libraries under MKCOMPAT.
Add XORG_MACHINE_ARCH to compat's bsd.*.mk
Turn xorg makekeys and makestrs into real host tools which are installed into
${TOOLSDIR}


# 1.180 07-Jan-2015 joerg

Reorganise the way xorg is build. Move build of makestrs into src/tools
as it is needed for the "includes" phase. Make it symlink all necessary
headers in obj to decouple it from "includes" itself, breaking the
dependency cycle. Move the do-x11 target between do-lib and do-build, so
that libraries can get the benefit of build_install (correct .WAIT
behavior) and everything else like "includes" uses the plain SUBDIR
entry in external/mit.


# 1.179 05-Dec-2014 pooka

build genassym for TOOLS_BUILDRUMP


# 1.178 30-Sep-2014 christos

add gpt


Revision tags: netbsd-7-2-RELEASE netbsd-7-1-2-RELEASE netbsd-7-1-1-RELEASE netbsd-7-1-RELEASE netbsd-7-1-RC2 netbsd-7-nhusb-base-20170116 netbsd-7-1-RC1 netbsd-7-0-2-RELEASE netbsd-7-nhusb-base netbsd-7-0-1-RELEASE netbsd-7-0-RELEASE netbsd-7-0-RC3 netbsd-7-0-RC2 netbsd-7-0-RC1 netbsd-7-base tls-maxphys-base
# 1.177 10-Aug-2014 matt

Changes to existing files to enable building AARCH64 userland.
evbarm64-el
This is clang only. While gcc4.8 supports aarch64, no netbsd support has
been written for aarch64 with gcc4.8.


Revision tags: tls-earlyentropy-base
# 1.176 15-Jul-2014 christos

descend to vgrind


# 1.175 15-Jun-2014 pooka

Add cat, rpcgen and stat to TOOLS_BUILDRUMP. They're useful for
installing headers for the app stack cases that need it done, and small
enough to not matter for the kernel-only cases that don't.


# 1.174 14-Jun-2014 mrg

remove remaining makefile support for GCC < 45 that i found.


Revision tags: yamt-pagecache-base9
# 1.173 03-Apr-2014 riastradh

branches: 1.173.2;
ctfconvert/ctfmerge need libdwarf &c., so build them if MKCTF=yes.


Revision tags: riastradh-xf86-video-intel-2-7-1-pre-2-21-15
# 1.172 25-Mar-2014 ozaki-r

Add MKCTF

This variable separates CTF stuffs from MKDTRACE; we can build DTrace
solely without building and using them. This allows us to use DTrace
even if CTF stuffs have problems (actually they have now).

This variable would be merged into MKDTRACE eventually, once CTF stuffs
work correctly again.


Revision tags: riastradh-drm2-base3
# 1.171 24-Feb-2014 skrll

Rename NetBSD/hp700 to NetBSD/hppa.

Unfortunately our VCS isn't very helpful here.


# 1.170 02-Sep-2013 joerg

Update LLVM/Clang snapshot to r189662. This includes many improvements
to the new SLP vectorizer, fast codegen support for PPC and using
terminfo for the color sequences. In addition, add (optional) build
infrastructure for lld to allow easier testing. This is controlled by
MKLLD.


Revision tags: riastradh-drm2-base2 riastradh-drm2-base1
# 1.169 19-Jul-2013 matt

Even if we aren't making a crossgdb still make the object dir for it.


Revision tags: riastradh-drm2-base agc-symver-base
# 1.168 27-Feb-2013 joerg

branches: 1.168.4;
Add infrastructure for building MCLinker.


# 1.167 05-Feb-2013 matt

There are other little endian arm machine_arches other than "arm"
Use MACHINE_CPU and TARGET_ENDIANNESS instead of MACHINE_ARCH


# 1.166 31-Jan-2013 pooka

Use TOOLS_BUILDRUMP=yes to restrict building of tools to those required
for building rump kernels. This cuts down the NetBSD source tree required
by buildrump.sh to a fraction and addresses a size/download time concern
from a person packaging rump kernels for Linux.

No change to the normal case (tested with several -j32/-j64 builds).

reviewed by apb


Revision tags: yamt-pagecache-base8 yamt-pagecache-base7
# 1.165 02-Dec-2012 apb

Make tools/Makefile build host-mkdep, compat, and binstall in that order,
before installing any of them. It installs them in any order relative
to each other. The .WAIT points that used to be between these three
tools are replaced by .ORDER and dependencies.

This is needed in preparation for making tools/compat install
some files into TOOLDIR.


# 1.164 02-Dec-2012 apb

TOOLDIR must be valid, unless MKTOOLS=no.
Add tests and .error directives to enforce this.


# 1.163 02-Dec-2012 apb

If tools are not wanted, then set SUBDIR= empty instead of
defining all the subdir-related targets to do nothing. This way,
the targets are not invoked at all, instead of being invoked but
doing nothing.


# 1.162 02-Dec-2012 apb

remove trailing white space


# 1.161 27-Nov-2012 jkunz

According to the i.MX23 Reference Manual section 3.1, Page 3-3:
"The i.MX23 always operates in litle-endian mode."
So build elftosb and bootloader for this processor only for evbarm(-el).


# 1.160 26-Nov-2012 pooka

Build gmake iff we're going to need it.


# 1.159 15-Nov-2012 joerg

Move the build_install logic from lib/Makefile into share/mk and re-use
it for tools. The existing logic broke for the LLVM build with the
recent .ORDER changes in make.


# 1.158 15-Nov-2012 jkunz

Add elftosb tools to evbarm userland and toolchain.
Elftosb is used to create a digitaly signed "secure boot" file.
This sb file can be booted by the first stage boot loader found in
Freescale i.MX23 and i.MX28 application processors.

Copyright (c) 2004-2010 Freescale Semiconductor, Inc.


Revision tags: yamt-pagecache-base6
# 1.157 20-Sep-2012 pooka

fix EXTERNAL_TOOLCHAIN build


# 1.156 10-Aug-2012 joerg

branches: 1.156.2;
Decouple binutils build from HAVE_GCC. Merge common fragments of
HAVE_GCC and HAVE_PCC.


Revision tags: netbsd-6-0-6-RELEASE netbsd-6-1-5-RELEASE netbsd-6-1-4-RELEASE netbsd-6-0-5-RELEASE netbsd-6-1-3-RELEASE netbsd-6-0-4-RELEASE netbsd-6-1-2-RELEASE netbsd-6-0-3-RELEASE netbsd-6-1-1-RELEASE netbsd-6-0-2-RELEASE netbsd-6-1-RELEASE netbsd-6-1-RC4 netbsd-6-1-RC3 netbsd-6-1-RC2 netbsd-6-1-RC1 netbsd-6-0-1-RELEASE matt-nb6-plus-nbase netbsd-6-0-RELEASE netbsd-6-0-RC2 matt-nb6-plus-base netbsd-6-0-RC1 yamt-pagecache-base5 yamt-pagecache-base4 netbsd-6-base yamt-pagecache-base3 yamt-pagecache-base2
# 1.155 03-Nov-2011 joerg

Revert .WAIT removal and add comment why it is needed between *tblgen.


# 1.154 02-Nov-2011 njoly

Do not build tic more than once


# 1.153 02-Nov-2011 christos

move tic later, after all the tools it needs are built.


# 1.152 02-Nov-2011 yamt

tweak dependencies for tic, which needs nbperf, awk, and sed.


Revision tags: yamt-pagecache-base
# 1.151 01-Nov-2011 joerg

branches: 1.151.2;
Remove an unnecessary .WAIT between llvm-tblgen and clang-tblgen.


# 1.150 01-Nov-2011 joerg

Hook up nbperf into the normal tool build.


# 1.149 11-Oct-2011 joerg

Update LLVM/Clang snapshot to r141658. This primarily fixes a regression
preventing Qt4 from building.


# 1.148 16-Jul-2011 tsutsui

Build nbm68k-elf2aout as a host tool on m68k targets
for an ancient PROM bootloader.
Mostly taken from nbmips-elf2ecoff.


# 1.147 10-Jul-2011 mrg

install elf2ecoff for all mips64 systems. it's needed for stand.


# 1.146 21-Jun-2011 mrg

always build gmake if HAVE_GCC.
build gmp, mpfr and then mpc if HAVE_GCC >= 45.


Revision tags: cherry-xenmp-base
# 1.145 15-Apr-2011 elric

branches: 1.145.2;
Upgrade Heimdal to 1.5pre1 by switching the build from crypto/dist/heimdal
to crypto/external/bsd/heimdal. The latter was just imported as the head
of the Heimdal tree as of a few days ago.


# 1.144 17-Mar-2011 riz

.WAIT for makefs, because in most builds, it's the first target
which includes Makefile.nbincludes, whose beforedepend: has
some race condition I don't fully understand, and which has been
causing many (but not all!) -j16 builds on the autobuild cluster
to fail in tools since sometime between 201103061600 and 201103070900.

With the proper voodoo, I was able to get 8 builds in a row to fail
without this change, and 16 in a row to succeed with it.

XXX a proper fix likely involves reworking the beforedepend: target
of Makefile.nbincludes, but this should get the build cluster back up
to full functionality in the meanwhile.


Revision tags: bouyer-quota2-nbase
# 1.143 25-Feb-2011 phx

mkubootimage is certainly useful for sandpoint


Revision tags: bouyer-quota2-base
# 1.142 06-Feb-2011 joerg

Add LLVM and clang build system. It is enabled by MKLLVM=yes.
Upstream sources can be fetched by running "make checkout" in
src/external/bsd/llvm, they will be properly imported once the
integration and missing features are sorted out.


# 1.141 31-Jan-2011 matt

Make mkubootimage for evbmips and evbppc too.


Revision tags: matt-mips64-premerge-20101231
# 1.140 15-Aug-2010 mrg

branches: 1.140.2;
add new option to build/use tools/pigz for compressing sets. for now
USE_PIGZGZIP defaults to "no". (it depends upon local <pthread.h> and -lz.)

you can set it to "yes" on most modern platforms just fine.


# 1.139 18-Jun-2010 jmcneill

hook mkubootimage into the build


# 1.138 04-Jun-2010 jmmv

Bye bye atf-compile, you won't be missed.


# 1.137 02-Mar-2010 darran

DTrace: add libelf, libdwarf, libctf, and CTF tools to the toolchain,
built when MKDTRACE=yes.


# 1.136 20-Feb-2010 joerg

Build mandoc unconditional if man pages are desirable. All
compatibility issues are supposed to be sorted out.
Build groff conditionally on MKGROFF. It is currently the only component
that requires C++.


# 1.135 03-Feb-2010 roy

Store our generated files in CVS and remove nbperf from the toolchain.
This allows us to build consistent libs without an ever changing hash.


# 1.134 03-Feb-2010 roy

Userland now builds and uses terminfo instead of termcap.

OK: core@, jdc@


# 1.133 29-Dec-2009 he

To unbreak the build, temporarily remove the build of libelf here,
since no other part of the build depends on this yet.

Suggested as a temporary workaround by thorpej@


# 1.132 23-Dec-2009 mrg

rework the main SUBDIR list here as suggested by enami. put .WAIT on
the same line as the target that needs to wait, but before the target,
rather than on the previous line, which led to confusion and an error
being introduced in the previous change.


# 1.131 21-Dec-2009 mrg

move the build of pax before libelf. fixes my build of tools/libelf,
though i didn't look to see why libelf needs pax.


# 1.130 21-Dec-2009 thorpej

Add support for building libelf in a host-tool environment.

XXX Makefile.disklabel is really mis-named, but I'm not going to tackle
that problem right now.


Revision tags: matt-premerge-20091211
# 1.129 29-Oct-2009 christos

Give m4 its own .WAIT. Fixes build issue on NetBSD-5.


# 1.128 23-Oct-2009 joerg

Add MKMANDOC option to trigger building cat pages and HTML pages with
mdocml. Add a lintmanpages target for developers to check man pages
with the strictest settings of mandoc.


Revision tags: jym-xensuspend-nbase jym-xensuspend-base
# 1.127 25-Feb-2009 sketch

Disable grep host tool and unbreak NetBSD build until I can come up with a
clean fix.


# 1.126 25-Feb-2009 sketch

Make grep a host tool.


# 1.125 14-Feb-2009 abs

Convert more MACHINE tests to MACHINE_ARCH


Revision tags: netbsd-5-2-3-RELEASE netbsd-5-1-5-RELEASE netbsd-5-2-2-RELEASE netbsd-5-1-4-RELEASE netbsd-5-2-1-RELEASE netbsd-5-1-3-RELEASE netbsd-5-2-RELEASE netbsd-5-2-RC1 netbsd-5-1-2-RELEASE netbsd-5-1-1-RELEASE matt-nb5-mips64-premerge-20101231 matt-nb5-pq3-base netbsd-5-1-RELEASE netbsd-5-1-RC4 matt-nb5-mips64-k15 netbsd-5-1-RC3 netbsd-5-1-RC2 netbsd-5-1-RC1 netbsd-5-0-2-RELEASE matt-nb5-mips64-premerge-20091211 matt-nb5-mips64-u2-k2-k4-k7-k8-k9 matt-nb4-mips64-k7-u2a-k9b matt-nb5-mips64-u1-k1-k5 netbsd-5-0-1-RELEASE netbsd-5-0-RELEASE netbsd-5-0-RC4 netbsd-5-0-RC3 netbsd-5-0-RC2 netbsd-5-0-RC1 netbsd-5-base
# 1.124 25-Oct-2008 apb

branches: 1.124.4; 1.124.8; 1.124.12;
Build sed earlier, just after mktemp. Note that sed and mktemp do not
depend on each other, but the .WAIT is needed to get them both installed
before the remainder of the tools build.


# 1.123 25-Oct-2008 apb

Remove the local handling of the NOSUBDIR variable. We can rely
on bsd.subdir.mk's handling of the NOSUBDIR variable.

Also add some comment to .if/.else/.endif and .for/.endfor lines.


Revision tags: matt-mips64-base2
# 1.122 19-Oct-2008 apb

Add awk as a host tool.


# 1.121 13-Oct-2008 dyoung

Per uwe@'s suggestion, build nbgroff under wider circumstances.
I choose to build it if MKDOC != no or if MKHTML != no. It used
to be built only when MKMAN != no.


# 1.120 05-Oct-2008 apb

Add a .WAIT to ensure that sed is installed early, so that TOOL_SED can
be used during the build of other tools.


# 1.119 26-Sep-2008 apb

Build strfile both as a host tool and as an installed program:
* in games/fortune/strfile/Makefile, build strfile as a
regular program instead of as a host tool;
* add tools/strfile directory to build strfile as a host tool;
* in tools/Makefile, add strfile to SUBDIR list;
* in BSD.*.mk, define TOOL_STRFILE variable;
* in games/fortune/datfiles/Makefile, use TOOL_STRFILE when creating
databases at build time;
* in distrib/sets/lists/games/mi, mention usr/games/strfile.


Revision tags: wrstuden-revivesa-base-3 wrstuden-revivesa-base-2
# 1.118 24-Aug-2008 gmcgarry

Build pcc as host tool if requested.


Revision tags: wrstuden-revivesa-base-1 yamt-pf42-base4 yamt-pf42-base3 wrstuden-revivesa-base
# 1.117 26-May-2008 he

Remove references to bebox-elf2pef and bebox-mkbootimage, now that they
have been integrated in common powerpc tools and subsequently removed.


Revision tags: hpcarm-cleanup-nbase yamt-pf42-base2
# 1.116 30-Apr-2008 garbled

branches: 1.116.2;
Build powerpc-mkbootimage for rs6000 and bebox too.


# 1.115 30-Apr-2008 garbled

Convert prep to use the new unified mkbootimage rather than it's own. This
mkbootimage can be shared by prep, rs6000, and bebox.

TODO: Convert bebox to use this. Needs someone to test.


Revision tags: yamt-pf42-baseX yamt-pf42-base keiichi-mipv6-nbase keiichi-mipv6-base matt-armv6-nbase cube-autoconf-base matt-armv6-base hpcarm-cleanup-base
# 1.114 12-Nov-2007 jmmv

branches: 1.114.6;
Add the atf host tools

This adds reachover Makefiles to build the atf tools required during a
cross-build.


Revision tags: matt-armv6-prevmlocking matt-mips64-base
# 1.113 14-Jan-2007 apb

branches: 1.113.4;
Build join(1) as a host tool.


# 1.112 20-Dec-2006 agc

A commit too far - don't try to build veriexecgen for just now


# 1.111 19-Dec-2006 agc

Build veriexecgen as a host tool


Revision tags: netbsd-4-0-1-RELEASE wrstuden-fixsa-newbase wrstuden-fixsa-base-1 netbsd-4-0-RELEASE netbsd-4-0-RC5 netbsd-4-0-RC4 netbsd-4-0-RC3 netbsd-4-0-RC2 netbsd-4-0-RC1 wrstuden-fixsa-base netbsd-4-base
# 1.110 22-Nov-2006 riz

Make sys/exec_elf.h and machine/elf_machdep.h available to host
tools, and allow paxctl to use them when compiled as a host
tool. This fixes the build on MacOS X (and perhaps other platforms)


# 1.109 17-Nov-2006 dsl

Add some notes about the bogosity of some of the .WAIT stuff.
Remove a 'never had a sane effect' .WAIT from a .ORDER line.
Don't add a (probably incorrect) dependency for 'make install' since
it contradicts a .ORDER line elsewhere when .ORDER applies recursively
to child nodes.
I also think that the stuff that tries to add dependencies between
the stuff that bsd.subdir.mk generates does not DTRT at all.
I suspect that build.sh builds things in an order that avoids issues here.


# 1.108 10-Nov-2006 christos

Add paxctl as a tool.


# 1.107 08-Oct-2006 apb

If PREVIOUSTOOLDIR was empty, then don't complain that it has moved.

Patch from Jukka Salmi in PR 33095.


Revision tags: abandoned-netbsd-4-base
# 1.106 03-Aug-2006 freza

* Fix parallel build race condition between real{all,depend} and
<bsd.subdir.mk> targets.
* No need to pass TOOLDIR to recursive cleandir in real{all,depend}.

With help from he@.
OK by tron@.


# 1.105 03-Aug-2006 tron

Another attempt to fix the race in parallel builds.


# 1.104 19-Jul-2006 tron

Invoking "make cleandir" with "PREVIOUSTOOLDIR" set to the previous
location will not stop recursive "make cleandir" calls. Pass the new
location instead.


# 1.103 18-Jul-2006 lukem

gettext should .WAIT for autoconf.
(The former still doesn't seem to work on read-only source; separate issue)


# 1.102 17-Jul-2006 tron

Avoid getting into a loop of "make cleandir" instances if the location
tool directory has been changed or wasn't recorded before.


# 1.101 17-Jul-2006 tron

Remove ".WAIT" again because it doesn't fix the problem.


# 1.100 12-Jul-2006 tron

Add an extra ".WAIT" to the "realall realdepend" target to make sure
it finished cleaning the tools directory in case of tool directory
mismatch before we try to rebuild the tools.


# 1.99 22-Jun-2006 mrg

only build lint and lint2 if MKLINT != "no".


# 1.98 18-Jun-2006 gdamore

Make TOOL_SED, to allow using our own sed in cases where the host's version
is busted in some way.

The TOOL_SED doesn't use TIOCGWINSIZE, and has some changes to include
nbtool_config.h in a cross build environment.

Combined with some other changes (not yet committed), this allows cross
compiling m68k code on Solaris 10/amd64.


# 1.97 02-Jun-2006 mrg

remove support for building (with) GCC 2.95. also:
- always install <stdbool.h>
- don't generate a fake one for vax / gettext.


# 1.96 11-May-2006 mrg

check HAVE_GCC == 4 not USE_GCC4.


# 1.95 01-Apr-2006 christos

Don't barf if USE_GCC4 is not defined.


# 1.94 29-Mar-2006 jmc

Turn on gmake builds if GCC4 is enabled (and force it's install before continuing


# 1.93 03-Feb-2006 dsl

The realall and realdepend bit that regenerates tools needs to be marked
.MAKE otherwise the 'make' it runs has its own list of jobs instead of
using the jobserver of the enclosing make.


# 1.92 04-Oct-2005 jmc

Make the tools using Makefile.disklabel wait so they don't stomp each other.
Also for now add a dependency to Makefile.disklabel so this doesn't run
3 times. (XXX this really should just be done differently)


# 1.91 12-Jun-2005 dyoung

.include Makefile.disklabel in installboot, so that the
nbinclude/ header files will be installed. Build installboot after
pax, since Makefile.disklabel uses pax to install the headers.


# 1.90 12-Jun-2005 dyoung

Make disklabel(8) and fdisk(8) into "host tools " last step: build
and install ${TOOLDIR}/bin/${MACHINE_GNU_PLATFORM}-disklabel,
${TOOLDIR}/bin/${MACHINE_GNU_PLATFORM}-fdisk by "reaching over" to
the sources in ${NETBSDSRCDIR}/sbin/{disklabel fdisk}/.

To avoid clashes with a build-host's header files, especially on
*BSD, the host-tools versions of fdisk and disklabel search for
#includes such as disklabel.h, disklabel_acorn.h, disklabel_gpt.h,
and bootinfo.h in a new #includes namespace, nbinclude/. That is,
they #include <nbinclude/sys/disklabel.h>, <nbinclude/machine/disklabel.h>,
<nbinclude/sparc64/disklabel.h>, instead of <sys/disklabel.h> and
such. I have also updated the system headers to #include from
nbinclude/-space when HAVE_NBTOOL_CONFIG_H is #defined.


# 1.89 30-May-2005 thorpej

Build genassym as a host tool. Part of PR toolchain/30350


Revision tags: netbsd-3-1-1-RELEASE netbsd-3-0-3-RELEASE netbsd-3-1-RELEASE netbsd-3-0-2-RELEASE netbsd-3-1-RC4 netbsd-3-1-RC3 netbsd-3-1-RC2 netbsd-3-1-RC1 netbsd-3-0-1-RELEASE netbsd-3-0-RELEASE netbsd-3-0-RC6 netbsd-3-0-RC5 netbsd-3-0-RC4 netbsd-3-0-RC3 netbsd-3-0-RC2 netbsd-3-0-RC1 netbsd-3-base
# 1.88 27-Jan-2005 is

We don't need aout2bb any longer.


# 1.87 09-Jan-2005 mycroft

Add some quotes to prevent a syntax error.


# 1.86 28-Nov-2004 jmc

Convert mkboot into a full cross tool. Last hurdle for hp300 to building on
non NetBSD/bsd hosts.


# 1.85 28-Nov-2004 jmc

Convert remaining host tools for amiga to correct cross tools. Now allows
complete amiga builds on non netbsd/bsd hosts


# 1.84 25-Nov-2004 jmc

Convert bebox's remaining host tools over to cross tools scheme. Builds to sets
w/o error now.


# 1.83 28-Jul-2004 skrll

Build hp700's mkboot as a host tool called nbhp700-mkboot. mkboot also
gets built and installed in a hp700 distribution.

TODO

- merge with hp300

- pick a preferred method for dealing with the elf headers.
hp700-mkboot and prep-mkbootimage (bintuils) vs mips-elf2ecoff and
tools/installboot


# 1.82 08-Jun-2004 abs

Add sparkcrc (used to generate checksums for acorn32 bootloader sparkive)
as a host tool.


Revision tags: netbsd-2-0-base
# 1.81 03-Jan-2004 lukem

branches: 1.81.2;
Consistently check ${TOOLCHAIN_MISSING} against "no".


# 1.80 11-Dec-2003 matt

Fix typo.


# 1.79 11-Dec-2003 matt

Add macppc-fixcoff tool.


# 1.78 10-Dec-2003 lukem

Use (cd ${.CURDIR} && ${MAKE} cleandir) instead of ${MAKE} cleandir
Suggested by Ross Harvey.


# 1.77 04-Dec-2003 mrg

always build tools/binutils now.


# 1.76 08-Nov-2003 sekiya

Build sgivol as a host tool when compiling for sgimips.


# 1.75 27-Oct-2003 lukem

add mknod as a host tool


# 1.74 26-Oct-2003 cl

add gdb53 as a host tool for use as a crossgdb
replaces gdb50 from toolchain on archs which use gcc3


# 1.73 21-Oct-2003 lukem

Rework how MAKEVERBOSE operates:

* Don't bother prefixing commands with a line of ${_MKCMD}\
and instead rely upon "make -s". This is less intrusive on
all the Makefiles than the former. Idea from David Laight.

* Rename the variables use to print messages. The scheme now is:
_MKMSG_FOO Run _MKMSG 'foo'
_MKTARGET_FOO Run _MKMSG_FOO ${.TARGET}
From discussion with Alistair Crooks.


# 1.72 19-Oct-2003 matt

Add host tool version of ncdcs


# 1.71 18-Oct-2003 lukem

MAKEVERBOSE support


# 1.70 25-Jul-2003 mrg

- build "binutils" and "gcc" separately if USE_TOOLS_TOOLCHAIN is not set
to "yes".
- adjust dbsym/mdsetimage to look in the correct place for libbfd.
- new mknative-gcc based in toolchain/mknative


# 1.69 24-Jul-2003 tron

Add missing "cleandir" rule.


# 1.68 20-Jul-2003 lukem

add stat(1) as a host tool


# 1.67 16-Jul-2003 lukem

also do the MKTOOLS and PREVIOUSTOOLDIR checks for "realdepend"


# 1.66 16-Jul-2003 lukem

* If a `PREVIOUSTOOLDIR' file doesn't exist, or its contents are not
the same as "$TOOLDIR", run "make cleandir" here first.
This should prevent various problems where $TOOLDIR is encoded into the
build process for various tools (lint, groff, texinfo, toolchain),
$TOOLDIR changes, and various programs don't get rebuilt correctly.
Should fix PR [toolchain/21988].

* Clean up how the `${MKTOOLS} == no' check is performed.

* Remove "cleantools"; it made a big assumption about the location of
TOOLDIR that won't be correct in many cases.


# 1.65 26-Jun-2003 tshiozak

Citrus iconv support(3)
add host tools : mkcsmapper and mkesdb
mkcsmapper - coded character set mapping table compiler
mkesdb - encoding scheme database compiler


# 1.64 18-May-2003 lukem

Add db(1) as a host tool


# 1.63 25-Mar-2003 pooka

build file(1) as a host tool (for compiling magic files)


# 1.62 07-Mar-2003 thorpej

Make hexdump a host tool.


Revision tags: fvdl_fs64_base
# 1.61 21-Dec-2002 lukem

enable sunlabel...


# 1.60 19-Sep-2002 thorpej

Change the TOOLCHAIN_MISSING from == "no" to != "yes", to be consistent
with the other tests of this variable.


# 1.59 19-Sep-2002 matt

Since TOOLCHAIN_MISSING is defined in bsd.own.mk, it can never be undefined.
Instead, make sure the value of it is "no"


# 1.58 17-Sep-2002 thorpej

* Eliminate the USE_NEW_TOOLCHAIN variable. Instead, split it into
two variables:

TOOLCHAIN_MISSING -- set to "yes" on platforms for which there is
no working in-tree toolchain (hppa, ns32k, sh5, x86_64).

EXTERNAL_TOOLCHAIN -- if defined by the user, points to the root of
an external toolchain (e.g. /usr/local/gnu). This enables the cross-build
framework even for TOOLCHAIN_MISSING platforms.

If TOOLCHAIN_MISSING is set to "yes", MKGDB, MKBFD, and MKGCC are all
unconditionally set to "no", since the bits are not there to build.

If EXTERNAL_TOOLCHAIN is set, MKGCC is unconditionally set to "no",
since the external toolchain's compiler is not in-sync with the
in-tree compiler support components (e.g. libgcc).

* Set MACHINE_CPU much earlier in bsd.own.mk, so that more tests in
that file can use it.


# 1.57 14-Sep-2002 chris

We need binstall to be installed, before attempting to use it to install mktemp.


# 1.56 14-Sep-2002 thorpej

Descend into mktemp.


# 1.55 12-Jun-2002 veego

The last commit wasn't tested. Add a missing \


# 1.54 12-Jun-2002 thorpej

Don't build toolchain bits for hppa, for now.


# 1.53 10-Jun-2002 mason

Add cat(1) as a host tool.


# 1.52 05-Jun-2002 thorpej

Don't try to build toolchain bits for ns32k.


# 1.51 28-May-2002 bjh21

Add fgen as a host tool, used for sys/arch/sparc/bootblk.


Revision tags: netbsd-1-6-base
# 1.50 18-May-2002 lukem

branches: 1.50.2;
gratuitious comment addition


# 1.49 07-May-2002 lukem

remove now-unnecessary sparc-installboot


# 1.48 03-May-2002 kleink

On prep, descend into prep-mkbootimage.


# 1.47 06-Apr-2002 bjh21

vax-installboot has been deleted, so don't recurse into it.


# 1.46 03-Apr-2002 lukem

enable installboot


# 1.45 01-Apr-2002 thorpej

Nuke NO_DBSYM; dbsym now uses BFD for everything.


# 1.44 01-Apr-2002 bjh21

On second thoughts, don't make mktemp a host tool. It's only used once, for
creating a temporary directory for maketars, and mkdir can do that safely
enough.


# 1.43 31-Mar-2002 bjh21

Add mktemp as a host tool.


# 1.42 31-Mar-2002 bjh21

Add cksum as a host tool.


# 1.41 29-Mar-2002 matt

Drop into vax-installboot on VAX machines.


# 1.40 07-Mar-2002 tv

Rework recursion to use the original logic again, in the structure cleaned
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".


# 1.39 07-Mar-2002 tv

Don't build groff if MKMAN=no. (groff does not build properly on some
platforms because of its completely insane Make structure; this allows it
to be disabled in a sane way.)


# 1.38 26-Feb-2002 tv

Add gettext to tools.

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.)


# 1.37 23-Feb-2002 gmcgarry

Add elf2ecoff as a build tool for mips ports.


# 1.36 18-Feb-2002 pk

* Add comments on all the directory build/install ordering goo.
* 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.


# 1.35 11-Feb-2002 pk

Revert part of previous; we need the install targets.


# 1.34 10-Feb-2002 pk

Use .ORDER targets to express the dependencies on subdir runs. This makes
the resulting tree complexity O(N) (N=# of subdirs), and it also makes it
easier to comprehend the Makefile logic.


# 1.33 08-Feb-2002 pk

Make sure to not go off installing in a directory before it's fully made.


# 1.32 31-Jan-2002 tv

Roll in fixes to permit cross-compiling from non-NetBSD hosts. This
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.


# 1.31 29-Jan-2002 tv

Make almost all tools compile and run properly on non-NetBSD hosts. (In
particular, most tools now run correctly on Solaris 7.)


# 1.30 25-Jan-2002 lukem

build pax as a host tool, for -N and to work around borken vendor paxes


# 1.29 10-Jan-2002 tv

Move host-mkdep to its own directory. Create and install it before
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.


# 1.28 10-Jan-2002 lukem

revert previous, and reenable tools/makefs now that it works on
netbsd-current and netbsd-1-5


# 1.27 09-Jan-2002 tv

Disable makefs in src/tools for the moment; it's very dependent on -current
NetBSD headers and sources right now. (Temporary workaround for PR 15175.)


# 1.26 05-Jan-2002 mrg

build zic as a host tool.


# 1.25 05-Jan-2002 mrg

build makefs, and, sparc-installboot if sparc||sparc64


# 1.24 31-Dec-2001 thorpej

We can't currently build a toolchain for x86-64 here, so don't
attempt to do so.


# 1.23 29-Dec-2001 wiz

Typo fix in error message.


# 1.22 11-Dec-2001 tv

Add the framework for autoconf-based src/tools/compat structure. This will
(after it is more fleshed out) allow the host tools to work more cleanly
on non-NetBSD hosts.


# 1.21 07-Dec-2001 jmc

Add pwd_mkdb as a toolchain bit for builds


# 1.20 29-Nov-2001 thorpej

Build makewhatis as a host tool, since it is used at the end of
the build.

XXX Needs a -lz hostlib.


# 1.19 22-Nov-2001 jmc

Oops. typo which can break things for non-new toolchain builds if MKTOOLS isn't
set


# 1.18 22-Nov-2001 jmc

Check for USETOOLS!=yes in addition to MKTOOLS==no to generate the empty rule
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


# 1.17 13-Nov-2001 tv

Re-add MKTOOLS as a "yes"/"no" only variable, which prevents recursion on "no"
into the src/tools subdirs on all/depend/dependall/install. Other recursive
targets are not affected.


# 1.16 12-Nov-2001 tv

Major overhaul of src/tools and host toolchain. Summary of changes:

* 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.


# 1.15 09-Nov-2001 thorpej

Build the cross-dbsym.


# 1.14 02-Nov-2001 tv

* Always use the makewrapper when starting a build phase.

* 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.


# 1.13 31-Oct-2001 tv

Don't actually delete the default tooldir on "cleandir"; else we'll nuke
the nbmake that is probably currently running.

Just leave the "cleantools" manual target as a shortcut for the user.


# 1.12 31-Oct-2001 tv

* Create a variable HOST_OSTYPE that represents the host build environment,
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.


# 1.11 31-Oct-2001 tv

* Always descend into "tools" regardless of USETOOLS setting. Instead,
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.


# 1.10 25-Oct-2001 thorpej

Add asn1_compile as a host tool.


# 1.9 21-Oct-2001 jmc

Pull in mdsetimage to the tools builds. (XXX - using libbfd here would
probably be preferrable long term).


# 1.8 20-Oct-2001 jmc

Add mklocale to cross-tools and turn it back on for the builds.


# 1.7 13-Oct-2001 jmc

Add crunchgen, msgc and menuc


# 1.6 09-Oct-2001 enami

Make mtree a host tool and use it when appropriate.


# 1.5 04-Oct-2001 tv

Recurse properly; just add "build" to TARGETS (fixes reported problem where
"make clean" doesn't work at the src/tools level).


# 1.4 22-Sep-2001 tv

Work around "make obj" lossage in tools/. Dunno why this is happening
just yet; will investigate this evening.


# 1.3 22-Sep-2001 tv

Add lorder to TOOLDIR host tools.

Only descend into directories if USE_NEW_TOOLCHAIN is set (allows top level
Makefile to use "-m ${.CURDIR}/share/mk" to get the "correct" <bsd.own.mk>
when descending into src/tools/Makefile).


# 1.2 21-Sep-2001 tv

- Create a real cpp binary.
- Set CC properly in environment for mkdep and lint.
- Add compile_et to TOOLDIR host tools.


# 1.1 14-Aug-2001 tv

Bootstrap toolchain framework, first pass.


# 1.214 18-Apr-2022 jkoshy

Disconnect 'tools/lib{elf,dwarf}' from the build.

These libraries are now built by 'tools/elftoolchain/lib{elf,dwarf}'
respectively.


# 1.213 13-Apr-2022 jkoshy

When building tools use a dedicated subdirectory for compiling
Elftoolchain code.

Build and install <sys/elfdefinitions.h> in ${TOOLDIR}/include.

This change prepares the ground for upgrading libelf and libdwarf to
their current Elftoolchain versions.


# 1.212 14-Nov-2021 skrll

Make dtc on riscv


Revision tags: cjep_sun2x-base1 cjep_sun2x-base cjep_staticlib_x-base1
# 1.211 27-May-2021 cjep

If we are building date earlier, we need to use an uninstalled copy
of host-mkdep and libnbcompat otherwise the build process looks for
tools that might not be there yet (e.g. fresh build).
Reviewed by martin.


# 1.210 26-May-2021 christos

Add a date tool


Revision tags: cjep_staticlib_x-base
# 1.209 06-May-2021 rin

branches: 1.209.2;
PR port-mvme68k/56146

Build wrtvid as tools.


# 1.208 25-Apr-2021 christos

Make mips-elf2ecoff available for all mips


# 1.207 06-Feb-2021 dbj

tools: allow MKCROSSGDB to work when not building gcc


# 1.206 28-Jul-2020 uwe

Build mkubootimage for evbsh3 too.


Revision tags: phil-wifi-20200421 phil-wifi-20200411 is-mlppp-base phil-wifi-20200406 phil-wifi-20191119
# 1.205 11-Nov-2019 joerg

Update LLVM to 10.0.0git (01f3a59fb3e2542fce74c768718f594d0debd0da)


# 1.204 26-Sep-2019 bad

Exclude more subdirs if TOOLS_BUILDRUMP=yes.

Exclude subdirs added in the last 3 years but not need for rumpkernel builds.


Revision tags: netbsd-9-2-RELEASE netbsd-9-1-RELEASE netbsd-9-0-RELEASE netbsd-9-0-RC2 netbsd-9-0-RC1 netbsd-9-base phil-wifi-20190609
# 1.203 07-May-2019 hannken

Fix build, "pax" must be built before "libprop".

Ok: Matthew Green mrg@


# 1.202 07-May-2019 thorpej

Add support for libprop as a host tool library.


# 1.201 03-Apr-2019 joerg

Add MKLLVMRT to build a subset of the LLVM stack for JIT purposes.
Hook up AMDGPU backend for clang.


# 1.200 03-Apr-2019 joerg

Revert MKLLVMCMDS changes.


# 1.199 20-Mar-2019 mrg

split MKLLVM into MKLLVM and MKLLVMCMDS, like MKGCC and MKGCCCMDS:

- only build clang or clang-tblgen if MKLLVMCMDS != "no"
- move HAVE_MESA_VER earlier so we can detect mesa 18 and enable
MKLLVM on platforms that need it
- move the clang commands and headers into llvmcmds group
- only build the clang specific LLVM libraries if MKLLVMCMDS != "no"

much of this work came from maya@'s github commit
f90685c11d4460d3098fa35f48b58d1893e974e0, reworked for HAVE_MESA_VER
and llvmcmds vs MKCLANG.


build tested on several platforms and on amd64 and i386 with several
different build options (clang build, gcc build, gcc build with llvm
libs).


Revision tags: pgoyette-compat-20190127 pgoyette-compat-20190118
# 1.198 02-Jan-2019 christos

use MACHINE_CPU for elf2aout


# 1.197 31-Dec-2018 christos

Add an arm-specific elf2aout tool since objdump does not support a.out anymore


Revision tags: pgoyette-compat-1226 pgoyette-compat-1126 pgoyette-compat-1020 pgoyette-compat-0930
# 1.196 25-Sep-2018 joerg

Update build glue for xz-5.2.4. Hook up tools version.


Revision tags: pgoyette-compat-0906
# 1.195 11-Aug-2018 christos

hook in the tools version of grep


Revision tags: pgoyette-compat-0728 phil-wifi-base pgoyette-compat-0625 pgoyette-compat-0521
# 1.194 09-May-2018 joerg

branches: 1.194.2;
For EXTERNAL_TOOLCHAIN, MKLLVM=yes needs to build only tablegen.


Revision tags: pgoyette-compat-0502 pgoyette-compat-0422 pgoyette-compat-0415 pgoyette-compat-0407 pgoyette-compat-0330 pgoyette-compat-0322 pgoyette-compat-0315 pgoyette-compat-base
# 1.193 18-Feb-2018 uwe

branches: 1.193.2;
Fix .endif comment for TOOLS_BUILDRUMP


# 1.192 27-Dec-2017 christos

Better EXTERNAL_TOOLCHAIN support from Zachary McGrew
- Allow mdsetimage and dbsym to be built with EXTERNAL_TOOLCHAIN
- Allow BFDDIR and IBERTYDIR to be overwritten for mdsetimage and dbsym


Revision tags: perseant-stdc-iso10646-base
# 1.191 07-Jun-2017 skrll

branches: 1.191.2;
Hook in dtc/libfdt now that it builds for me


# 1.190 06-Jun-2017 skrll

Disable dtc/libfdt for now


# 1.189 05-Jun-2017 christos

No need to set dtc twice.


# 1.188 05-Jun-2017 christos

Add dtc


Revision tags: netbsd-8-base prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1 pgoyette-localcount-20170320 bouyer-socketcan-base
# 1.187 11-Jan-2017 joerg

branches: 1.187.6;
Sync tools build glue with LLVM pre-4.0.0.


Revision tags: pgoyette-localcount-20170107 pgoyette-localcount-20161104 localcount-20160914 pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base
# 1.186 24-Jan-2016 christos

branches: 1.186.2;
move cvslatest last


# 1.185 24-Jan-2016 christos

Tool version


# 1.184 19-Dec-2015 christos

move sortinfo after pax


# 1.183 18-Dec-2015 christos

Add sortinfo


# 1.182 23-Jul-2015 mrg

remove the xfree86 reachover makefiles and the vast majority of
the support in the rest of the source tree.

X11 sets could use some cleaning up perhaps (just deletion, as
we've never really marked the old X11R6 as obsolete for native
xorg using platforms so far either.)


# 1.181 24-Jun-2015 matt

Support building the xorg X11 libraries under MKCOMPAT.
Add XORG_MACHINE_ARCH to compat's bsd.*.mk
Turn xorg makekeys and makestrs into real host tools which are installed into
${TOOLSDIR}


# 1.180 07-Jan-2015 joerg

Reorganise the way xorg is build. Move build of makestrs into src/tools
as it is needed for the "includes" phase. Make it symlink all necessary
headers in obj to decouple it from "includes" itself, breaking the
dependency cycle. Move the do-x11 target between do-lib and do-build, so
that libraries can get the benefit of build_install (correct .WAIT
behavior) and everything else like "includes" uses the plain SUBDIR
entry in external/mit.


# 1.179 05-Dec-2014 pooka

build genassym for TOOLS_BUILDRUMP


# 1.178 30-Sep-2014 christos

add gpt


Revision tags: netbsd-7-2-RELEASE netbsd-7-1-2-RELEASE netbsd-7-1-1-RELEASE netbsd-7-1-RELEASE netbsd-7-1-RC2 netbsd-7-nhusb-base-20170116 netbsd-7-1-RC1 netbsd-7-0-2-RELEASE netbsd-7-nhusb-base netbsd-7-0-1-RELEASE netbsd-7-0-RELEASE netbsd-7-0-RC3 netbsd-7-0-RC2 netbsd-7-0-RC1 netbsd-7-base tls-maxphys-base
# 1.177 10-Aug-2014 matt

Changes to existing files to enable building AARCH64 userland.
evbarm64-el
This is clang only. While gcc4.8 supports aarch64, no netbsd support has
been written for aarch64 with gcc4.8.


Revision tags: tls-earlyentropy-base
# 1.176 15-Jul-2014 christos

descend to vgrind


# 1.175 15-Jun-2014 pooka

Add cat, rpcgen and stat to TOOLS_BUILDRUMP. They're useful for
installing headers for the app stack cases that need it done, and small
enough to not matter for the kernel-only cases that don't.


# 1.174 14-Jun-2014 mrg

remove remaining makefile support for GCC < 45 that i found.


Revision tags: yamt-pagecache-base9
# 1.173 03-Apr-2014 riastradh

branches: 1.173.2;
ctfconvert/ctfmerge need libdwarf &c., so build them if MKCTF=yes.


Revision tags: riastradh-xf86-video-intel-2-7-1-pre-2-21-15
# 1.172 25-Mar-2014 ozaki-r

Add MKCTF

This variable separates CTF stuffs from MKDTRACE; we can build DTrace
solely without building and using them. This allows us to use DTrace
even if CTF stuffs have problems (actually they have now).

This variable would be merged into MKDTRACE eventually, once CTF stuffs
work correctly again.


Revision tags: riastradh-drm2-base3
# 1.171 24-Feb-2014 skrll

Rename NetBSD/hp700 to NetBSD/hppa.

Unfortunately our VCS isn't very helpful here.


# 1.170 02-Sep-2013 joerg

Update LLVM/Clang snapshot to r189662. This includes many improvements
to the new SLP vectorizer, fast codegen support for PPC and using
terminfo for the color sequences. In addition, add (optional) build
infrastructure for lld to allow easier testing. This is controlled by
MKLLD.


Revision tags: riastradh-drm2-base2 riastradh-drm2-base1
# 1.169 19-Jul-2013 matt

Even if we aren't making a crossgdb still make the object dir for it.


Revision tags: riastradh-drm2-base agc-symver-base
# 1.168 27-Feb-2013 joerg

branches: 1.168.4;
Add infrastructure for building MCLinker.


# 1.167 05-Feb-2013 matt

There are other little endian arm machine_arches other than "arm"
Use MACHINE_CPU and TARGET_ENDIANNESS instead of MACHINE_ARCH


# 1.166 31-Jan-2013 pooka

Use TOOLS_BUILDRUMP=yes to restrict building of tools to those required
for building rump kernels. This cuts down the NetBSD source tree required
by buildrump.sh to a fraction and addresses a size/download time concern
from a person packaging rump kernels for Linux.

No change to the normal case (tested with several -j32/-j64 builds).

reviewed by apb


Revision tags: yamt-pagecache-base8 yamt-pagecache-base7
# 1.165 02-Dec-2012 apb

Make tools/Makefile build host-mkdep, compat, and binstall in that order,
before installing any of them. It installs them in any order relative
to each other. The .WAIT points that used to be between these three
tools are replaced by .ORDER and dependencies.

This is needed in preparation for making tools/compat install
some files into TOOLDIR.


# 1.164 02-Dec-2012 apb

TOOLDIR must be valid, unless MKTOOLS=no.
Add tests and .error directives to enforce this.


# 1.163 02-Dec-2012 apb

If tools are not wanted, then set SUBDIR= empty instead of
defining all the subdir-related targets to do nothing. This way,
the targets are not invoked at all, instead of being invoked but
doing nothing.


# 1.162 02-Dec-2012 apb

remove trailing white space


# 1.161 27-Nov-2012 jkunz

According to the i.MX23 Reference Manual section 3.1, Page 3-3:
"The i.MX23 always operates in litle-endian mode."
So build elftosb and bootloader for this processor only for evbarm(-el).


# 1.160 26-Nov-2012 pooka

Build gmake iff we're going to need it.


# 1.159 15-Nov-2012 joerg

Move the build_install logic from lib/Makefile into share/mk and re-use
it for tools. The existing logic broke for the LLVM build with the
recent .ORDER changes in make.


# 1.158 15-Nov-2012 jkunz

Add elftosb tools to evbarm userland and toolchain.
Elftosb is used to create a digitaly signed "secure boot" file.
This sb file can be booted by the first stage boot loader found in
Freescale i.MX23 and i.MX28 application processors.

Copyright (c) 2004-2010 Freescale Semiconductor, Inc.


Revision tags: yamt-pagecache-base6
# 1.157 20-Sep-2012 pooka

fix EXTERNAL_TOOLCHAIN build


# 1.156 10-Aug-2012 joerg

branches: 1.156.2;
Decouple binutils build from HAVE_GCC. Merge common fragments of
HAVE_GCC and HAVE_PCC.


Revision tags: netbsd-6-0-6-RELEASE netbsd-6-1-5-RELEASE netbsd-6-1-4-RELEASE netbsd-6-0-5-RELEASE netbsd-6-1-3-RELEASE netbsd-6-0-4-RELEASE netbsd-6-1-2-RELEASE netbsd-6-0-3-RELEASE netbsd-6-1-1-RELEASE netbsd-6-0-2-RELEASE netbsd-6-1-RELEASE netbsd-6-1-RC4 netbsd-6-1-RC3 netbsd-6-1-RC2 netbsd-6-1-RC1 netbsd-6-0-1-RELEASE matt-nb6-plus-nbase netbsd-6-0-RELEASE netbsd-6-0-RC2 matt-nb6-plus-base netbsd-6-0-RC1 yamt-pagecache-base5 yamt-pagecache-base4 netbsd-6-base yamt-pagecache-base3 yamt-pagecache-base2
# 1.155 03-Nov-2011 joerg

Revert .WAIT removal and add comment why it is needed between *tblgen.


# 1.154 02-Nov-2011 njoly

Do not build tic more than once


# 1.153 02-Nov-2011 christos

move tic later, after all the tools it needs are built.


# 1.152 02-Nov-2011 yamt

tweak dependencies for tic, which needs nbperf, awk, and sed.


Revision tags: yamt-pagecache-base
# 1.151 01-Nov-2011 joerg

branches: 1.151.2;
Remove an unnecessary .WAIT between llvm-tblgen and clang-tblgen.


# 1.150 01-Nov-2011 joerg

Hook up nbperf into the normal tool build.


# 1.149 11-Oct-2011 joerg

Update LLVM/Clang snapshot to r141658. This primarily fixes a regression
preventing Qt4 from building.


# 1.148 16-Jul-2011 tsutsui

Build nbm68k-elf2aout as a host tool on m68k targets
for an ancient PROM bootloader.
Mostly taken from nbmips-elf2ecoff.


# 1.147 10-Jul-2011 mrg

install elf2ecoff for all mips64 systems. it's needed for stand.


# 1.146 21-Jun-2011 mrg

always build gmake if HAVE_GCC.
build gmp, mpfr and then mpc if HAVE_GCC >= 45.


Revision tags: cherry-xenmp-base
# 1.145 15-Apr-2011 elric

branches: 1.145.2;
Upgrade Heimdal to 1.5pre1 by switching the build from crypto/dist/heimdal
to crypto/external/bsd/heimdal. The latter was just imported as the head
of the Heimdal tree as of a few days ago.


# 1.144 17-Mar-2011 riz

.WAIT for makefs, because in most builds, it's the first target
which includes Makefile.nbincludes, whose beforedepend: has
some race condition I don't fully understand, and which has been
causing many (but not all!) -j16 builds on the autobuild cluster
to fail in tools since sometime between 201103061600 and 201103070900.

With the proper voodoo, I was able to get 8 builds in a row to fail
without this change, and 16 in a row to succeed with it.

XXX a proper fix likely involves reworking the beforedepend: target
of Makefile.nbincludes, but this should get the build cluster back up
to full functionality in the meanwhile.


Revision tags: bouyer-quota2-nbase
# 1.143 25-Feb-2011 phx

mkubootimage is certainly useful for sandpoint


Revision tags: bouyer-quota2-base
# 1.142 06-Feb-2011 joerg

Add LLVM and clang build system. It is enabled by MKLLVM=yes.
Upstream sources can be fetched by running "make checkout" in
src/external/bsd/llvm, they will be properly imported once the
integration and missing features are sorted out.


# 1.141 31-Jan-2011 matt

Make mkubootimage for evbmips and evbppc too.


Revision tags: matt-mips64-premerge-20101231
# 1.140 15-Aug-2010 mrg

branches: 1.140.2;
add new option to build/use tools/pigz for compressing sets. for now
USE_PIGZGZIP defaults to "no". (it depends upon local <pthread.h> and -lz.)

you can set it to "yes" on most modern platforms just fine.


# 1.139 18-Jun-2010 jmcneill

hook mkubootimage into the build


# 1.138 04-Jun-2010 jmmv

Bye bye atf-compile, you won't be missed.


# 1.137 02-Mar-2010 darran

DTrace: add libelf, libdwarf, libctf, and CTF tools to the toolchain,
built when MKDTRACE=yes.


# 1.136 20-Feb-2010 joerg

Build mandoc unconditional if man pages are desirable. All
compatibility issues are supposed to be sorted out.
Build groff conditionally on MKGROFF. It is currently the only component
that requires C++.


# 1.135 03-Feb-2010 roy

Store our generated files in CVS and remove nbperf from the toolchain.
This allows us to build consistent libs without an ever changing hash.


# 1.134 03-Feb-2010 roy

Userland now builds and uses terminfo instead of termcap.

OK: core@, jdc@


# 1.133 29-Dec-2009 he

To unbreak the build, temporarily remove the build of libelf here,
since no other part of the build depends on this yet.

Suggested as a temporary workaround by thorpej@


# 1.132 23-Dec-2009 mrg

rework the main SUBDIR list here as suggested by enami. put .WAIT on
the same line as the target that needs to wait, but before the target,
rather than on the previous line, which led to confusion and an error
being introduced in the previous change.


# 1.131 21-Dec-2009 mrg

move the build of pax before libelf. fixes my build of tools/libelf,
though i didn't look to see why libelf needs pax.


# 1.130 21-Dec-2009 thorpej

Add support for building libelf in a host-tool environment.

XXX Makefile.disklabel is really mis-named, but I'm not going to tackle
that problem right now.


Revision tags: matt-premerge-20091211
# 1.129 29-Oct-2009 christos

Give m4 its own .WAIT. Fixes build issue on NetBSD-5.


# 1.128 23-Oct-2009 joerg

Add MKMANDOC option to trigger building cat pages and HTML pages with
mdocml. Add a lintmanpages target for developers to check man pages
with the strictest settings of mandoc.


Revision tags: jym-xensuspend-nbase jym-xensuspend-base
# 1.127 25-Feb-2009 sketch

Disable grep host tool and unbreak NetBSD build until I can come up with a
clean fix.


# 1.126 25-Feb-2009 sketch

Make grep a host tool.


# 1.125 14-Feb-2009 abs

Convert more MACHINE tests to MACHINE_ARCH


Revision tags: netbsd-5-2-3-RELEASE netbsd-5-1-5-RELEASE netbsd-5-2-2-RELEASE netbsd-5-1-4-RELEASE netbsd-5-2-1-RELEASE netbsd-5-1-3-RELEASE netbsd-5-2-RELEASE netbsd-5-2-RC1 netbsd-5-1-2-RELEASE netbsd-5-1-1-RELEASE matt-nb5-mips64-premerge-20101231 matt-nb5-pq3-base netbsd-5-1-RELEASE netbsd-5-1-RC4 matt-nb5-mips64-k15 netbsd-5-1-RC3 netbsd-5-1-RC2 netbsd-5-1-RC1 netbsd-5-0-2-RELEASE matt-nb5-mips64-premerge-20091211 matt-nb5-mips64-u2-k2-k4-k7-k8-k9 matt-nb4-mips64-k7-u2a-k9b matt-nb5-mips64-u1-k1-k5 netbsd-5-0-1-RELEASE netbsd-5-0-RELEASE netbsd-5-0-RC4 netbsd-5-0-RC3 netbsd-5-0-RC2 netbsd-5-0-RC1 netbsd-5-base
# 1.124 25-Oct-2008 apb

branches: 1.124.4; 1.124.8; 1.124.12;
Build sed earlier, just after mktemp. Note that sed and mktemp do not
depend on each other, but the .WAIT is needed to get them both installed
before the remainder of the tools build.


# 1.123 25-Oct-2008 apb

Remove the local handling of the NOSUBDIR variable. We can rely
on bsd.subdir.mk's handling of the NOSUBDIR variable.

Also add some comment to .if/.else/.endif and .for/.endfor lines.


Revision tags: matt-mips64-base2
# 1.122 19-Oct-2008 apb

Add awk as a host tool.


# 1.121 13-Oct-2008 dyoung

Per uwe@'s suggestion, build nbgroff under wider circumstances.
I choose to build it if MKDOC != no or if MKHTML != no. It used
to be built only when MKMAN != no.


# 1.120 05-Oct-2008 apb

Add a .WAIT to ensure that sed is installed early, so that TOOL_SED can
be used during the build of other tools.


# 1.119 26-Sep-2008 apb

Build strfile both as a host tool and as an installed program:
* in games/fortune/strfile/Makefile, build strfile as a
regular program instead of as a host tool;
* add tools/strfile directory to build strfile as a host tool;
* in tools/Makefile, add strfile to SUBDIR list;
* in BSD.*.mk, define TOOL_STRFILE variable;
* in games/fortune/datfiles/Makefile, use TOOL_STRFILE when creating
databases at build time;
* in distrib/sets/lists/games/mi, mention usr/games/strfile.


Revision tags: wrstuden-revivesa-base-3 wrstuden-revivesa-base-2
# 1.118 24-Aug-2008 gmcgarry

Build pcc as host tool if requested.


Revision tags: wrstuden-revivesa-base-1 yamt-pf42-base4 yamt-pf42-base3 wrstuden-revivesa-base
# 1.117 26-May-2008 he

Remove references to bebox-elf2pef and bebox-mkbootimage, now that they
have been integrated in common powerpc tools and subsequently removed.


Revision tags: hpcarm-cleanup-nbase yamt-pf42-base2
# 1.116 30-Apr-2008 garbled

branches: 1.116.2;
Build powerpc-mkbootimage for rs6000 and bebox too.


# 1.115 30-Apr-2008 garbled

Convert prep to use the new unified mkbootimage rather than it's own. This
mkbootimage can be shared by prep, rs6000, and bebox.

TODO: Convert bebox to use this. Needs someone to test.


Revision tags: yamt-pf42-baseX yamt-pf42-base keiichi-mipv6-nbase keiichi-mipv6-base matt-armv6-nbase cube-autoconf-base matt-armv6-base hpcarm-cleanup-base
# 1.114 12-Nov-2007 jmmv

branches: 1.114.6;
Add the atf host tools

This adds reachover Makefiles to build the atf tools required during a
cross-build.


Revision tags: matt-armv6-prevmlocking matt-mips64-base
# 1.113 14-Jan-2007 apb

branches: 1.113.4;
Build join(1) as a host tool.


# 1.112 20-Dec-2006 agc

A commit too far - don't try to build veriexecgen for just now


# 1.111 19-Dec-2006 agc

Build veriexecgen as a host tool


Revision tags: netbsd-4-0-1-RELEASE wrstuden-fixsa-newbase wrstuden-fixsa-base-1 netbsd-4-0-RELEASE netbsd-4-0-RC5 netbsd-4-0-RC4 netbsd-4-0-RC3 netbsd-4-0-RC2 netbsd-4-0-RC1 wrstuden-fixsa-base netbsd-4-base
# 1.110 22-Nov-2006 riz

Make sys/exec_elf.h and machine/elf_machdep.h available to host
tools, and allow paxctl to use them when compiled as a host
tool. This fixes the build on MacOS X (and perhaps other platforms)


# 1.109 17-Nov-2006 dsl

Add some notes about the bogosity of some of the .WAIT stuff.
Remove a 'never had a sane effect' .WAIT from a .ORDER line.
Don't add a (probably incorrect) dependency for 'make install' since
it contradicts a .ORDER line elsewhere when .ORDER applies recursively
to child nodes.
I also think that the stuff that tries to add dependencies between
the stuff that bsd.subdir.mk generates does not DTRT at all.
I suspect that build.sh builds things in an order that avoids issues here.


# 1.108 10-Nov-2006 christos

Add paxctl as a tool.


# 1.107 08-Oct-2006 apb

If PREVIOUSTOOLDIR was empty, then don't complain that it has moved.

Patch from Jukka Salmi in PR 33095.


Revision tags: abandoned-netbsd-4-base
# 1.106 03-Aug-2006 freza

* Fix parallel build race condition between real{all,depend} and
<bsd.subdir.mk> targets.
* No need to pass TOOLDIR to recursive cleandir in real{all,depend}.

With help from he@.
OK by tron@.


# 1.105 03-Aug-2006 tron

Another attempt to fix the race in parallel builds.


# 1.104 19-Jul-2006 tron

Invoking "make cleandir" with "PREVIOUSTOOLDIR" set to the previous
location will not stop recursive "make cleandir" calls. Pass the new
location instead.


# 1.103 18-Jul-2006 lukem

gettext should .WAIT for autoconf.
(The former still doesn't seem to work on read-only source; separate issue)


# 1.102 17-Jul-2006 tron

Avoid getting into a loop of "make cleandir" instances if the location
tool directory has been changed or wasn't recorded before.


# 1.101 17-Jul-2006 tron

Remove ".WAIT" again because it doesn't fix the problem.


# 1.100 12-Jul-2006 tron

Add an extra ".WAIT" to the "realall realdepend" target to make sure
it finished cleaning the tools directory in case of tool directory
mismatch before we try to rebuild the tools.


# 1.99 22-Jun-2006 mrg

only build lint and lint2 if MKLINT != "no".


# 1.98 18-Jun-2006 gdamore

Make TOOL_SED, to allow using our own sed in cases where the host's version
is busted in some way.

The TOOL_SED doesn't use TIOCGWINSIZE, and has some changes to include
nbtool_config.h in a cross build environment.

Combined with some other changes (not yet committed), this allows cross
compiling m68k code on Solaris 10/amd64.


# 1.97 02-Jun-2006 mrg

remove support for building (with) GCC 2.95. also:
- always install <stdbool.h>
- don't generate a fake one for vax / gettext.


# 1.96 11-May-2006 mrg

check HAVE_GCC == 4 not USE_GCC4.


# 1.95 01-Apr-2006 christos

Don't barf if USE_GCC4 is not defined.


# 1.94 29-Mar-2006 jmc

Turn on gmake builds if GCC4 is enabled (and force it's install before continuing


# 1.93 03-Feb-2006 dsl

The realall and realdepend bit that regenerates tools needs to be marked
.MAKE otherwise the 'make' it runs has its own list of jobs instead of
using the jobserver of the enclosing make.


# 1.92 04-Oct-2005 jmc

Make the tools using Makefile.disklabel wait so they don't stomp each other.
Also for now add a dependency to Makefile.disklabel so this doesn't run
3 times. (XXX this really should just be done differently)


# 1.91 12-Jun-2005 dyoung

.include Makefile.disklabel in installboot, so that the
nbinclude/ header files will be installed. Build installboot after
pax, since Makefile.disklabel uses pax to install the headers.


# 1.90 12-Jun-2005 dyoung

Make disklabel(8) and fdisk(8) into "host tools " last step: build
and install ${TOOLDIR}/bin/${MACHINE_GNU_PLATFORM}-disklabel,
${TOOLDIR}/bin/${MACHINE_GNU_PLATFORM}-fdisk by "reaching over" to
the sources in ${NETBSDSRCDIR}/sbin/{disklabel fdisk}/.

To avoid clashes with a build-host's header files, especially on
*BSD, the host-tools versions of fdisk and disklabel search for
#includes such as disklabel.h, disklabel_acorn.h, disklabel_gpt.h,
and bootinfo.h in a new #includes namespace, nbinclude/. That is,
they #include <nbinclude/sys/disklabel.h>, <nbinclude/machine/disklabel.h>,
<nbinclude/sparc64/disklabel.h>, instead of <sys/disklabel.h> and
such. I have also updated the system headers to #include from
nbinclude/-space when HAVE_NBTOOL_CONFIG_H is #defined.


# 1.89 30-May-2005 thorpej

Build genassym as a host tool. Part of PR toolchain/30350


Revision tags: netbsd-3-1-1-RELEASE netbsd-3-0-3-RELEASE netbsd-3-1-RELEASE netbsd-3-0-2-RELEASE netbsd-3-1-RC4 netbsd-3-1-RC3 netbsd-3-1-RC2 netbsd-3-1-RC1 netbsd-3-0-1-RELEASE netbsd-3-0-RELEASE netbsd-3-0-RC6 netbsd-3-0-RC5 netbsd-3-0-RC4 netbsd-3-0-RC3 netbsd-3-0-RC2 netbsd-3-0-RC1 netbsd-3-base
# 1.88 27-Jan-2005 is

We don't need aout2bb any longer.


# 1.87 09-Jan-2005 mycroft

Add some quotes to prevent a syntax error.


# 1.86 28-Nov-2004 jmc

Convert mkboot into a full cross tool. Last hurdle for hp300 to building on
non NetBSD/bsd hosts.


# 1.85 28-Nov-2004 jmc

Convert remaining host tools for amiga to correct cross tools. Now allows
complete amiga builds on non netbsd/bsd hosts


# 1.84 25-Nov-2004 jmc

Convert bebox's remaining host tools over to cross tools scheme. Builds to sets
w/o error now.


# 1.83 28-Jul-2004 skrll

Build hp700's mkboot as a host tool called nbhp700-mkboot. mkboot also
gets built and installed in a hp700 distribution.

TODO

- merge with hp300

- pick a preferred method for dealing with the elf headers.
hp700-mkboot and prep-mkbootimage (bintuils) vs mips-elf2ecoff and
tools/installboot


# 1.82 08-Jun-2004 abs

Add sparkcrc (used to generate checksums for acorn32 bootloader sparkive)
as a host tool.


Revision tags: netbsd-2-0-base
# 1.81 03-Jan-2004 lukem

branches: 1.81.2;
Consistently check ${TOOLCHAIN_MISSING} against "no".


# 1.80 11-Dec-2003 matt

Fix typo.


# 1.79 11-Dec-2003 matt

Add macppc-fixcoff tool.


# 1.78 10-Dec-2003 lukem

Use (cd ${.CURDIR} && ${MAKE} cleandir) instead of ${MAKE} cleandir
Suggested by Ross Harvey.


# 1.77 04-Dec-2003 mrg

always build tools/binutils now.


# 1.76 08-Nov-2003 sekiya

Build sgivol as a host tool when compiling for sgimips.


# 1.75 27-Oct-2003 lukem

add mknod as a host tool


# 1.74 26-Oct-2003 cl

add gdb53 as a host tool for use as a crossgdb
replaces gdb50 from toolchain on archs which use gcc3


# 1.73 21-Oct-2003 lukem

Rework how MAKEVERBOSE operates:

* Don't bother prefixing commands with a line of ${_MKCMD}\
and instead rely upon "make -s". This is less intrusive on
all the Makefiles than the former. Idea from David Laight.

* Rename the variables use to print messages. The scheme now is:
_MKMSG_FOO Run _MKMSG 'foo'
_MKTARGET_FOO Run _MKMSG_FOO ${.TARGET}
From discussion with Alistair Crooks.


# 1.72 19-Oct-2003 matt

Add host tool version of ncdcs


# 1.71 18-Oct-2003 lukem

MAKEVERBOSE support


# 1.70 25-Jul-2003 mrg

- build "binutils" and "gcc" separately if USE_TOOLS_TOOLCHAIN is not set
to "yes".
- adjust dbsym/mdsetimage to look in the correct place for libbfd.
- new mknative-gcc based in toolchain/mknative


# 1.69 24-Jul-2003 tron

Add missing "cleandir" rule.


# 1.68 20-Jul-2003 lukem

add stat(1) as a host tool


# 1.67 16-Jul-2003 lukem

also do the MKTOOLS and PREVIOUSTOOLDIR checks for "realdepend"


# 1.66 16-Jul-2003 lukem

* If a `PREVIOUSTOOLDIR' file doesn't exist, or its contents are not
the same as "$TOOLDIR", run "make cleandir" here first.
This should prevent various problems where $TOOLDIR is encoded into the
build process for various tools (lint, groff, texinfo, toolchain),
$TOOLDIR changes, and various programs don't get rebuilt correctly.
Should fix PR [toolchain/21988].

* Clean up how the `${MKTOOLS} == no' check is performed.

* Remove "cleantools"; it made a big assumption about the location of
TOOLDIR that won't be correct in many cases.


# 1.65 26-Jun-2003 tshiozak

Citrus iconv support(3)
add host tools : mkcsmapper and mkesdb
mkcsmapper - coded character set mapping table compiler
mkesdb - encoding scheme database compiler


# 1.64 18-May-2003 lukem

Add db(1) as a host tool


# 1.63 25-Mar-2003 pooka

build file(1) as a host tool (for compiling magic files)


# 1.62 07-Mar-2003 thorpej

Make hexdump a host tool.


Revision tags: fvdl_fs64_base
# 1.61 21-Dec-2002 lukem

enable sunlabel...


# 1.60 19-Sep-2002 thorpej

Change the TOOLCHAIN_MISSING from == "no" to != "yes", to be consistent
with the other tests of this variable.


# 1.59 19-Sep-2002 matt

Since TOOLCHAIN_MISSING is defined in bsd.own.mk, it can never be undefined.
Instead, make sure the value of it is "no"


# 1.58 17-Sep-2002 thorpej

* Eliminate the USE_NEW_TOOLCHAIN variable. Instead, split it into
two variables:

TOOLCHAIN_MISSING -- set to "yes" on platforms for which there is
no working in-tree toolchain (hppa, ns32k, sh5, x86_64).

EXTERNAL_TOOLCHAIN -- if defined by the user, points to the root of
an external toolchain (e.g. /usr/local/gnu). This enables the cross-build
framework even for TOOLCHAIN_MISSING platforms.

If TOOLCHAIN_MISSING is set to "yes", MKGDB, MKBFD, and MKGCC are all
unconditionally set to "no", since the bits are not there to build.

If EXTERNAL_TOOLCHAIN is set, MKGCC is unconditionally set to "no",
since the external toolchain's compiler is not in-sync with the
in-tree compiler support components (e.g. libgcc).

* Set MACHINE_CPU much earlier in bsd.own.mk, so that more tests in
that file can use it.


# 1.57 14-Sep-2002 chris

We need binstall to be installed, before attempting to use it to install mktemp.


# 1.56 14-Sep-2002 thorpej

Descend into mktemp.


# 1.55 12-Jun-2002 veego

The last commit wasn't tested. Add a missing \


# 1.54 12-Jun-2002 thorpej

Don't build toolchain bits for hppa, for now.


# 1.53 10-Jun-2002 mason

Add cat(1) as a host tool.


# 1.52 05-Jun-2002 thorpej

Don't try to build toolchain bits for ns32k.


# 1.51 28-May-2002 bjh21

Add fgen as a host tool, used for sys/arch/sparc/bootblk.


Revision tags: netbsd-1-6-base
# 1.50 18-May-2002 lukem

branches: 1.50.2;
gratuitious comment addition


# 1.49 07-May-2002 lukem

remove now-unnecessary sparc-installboot


# 1.48 03-May-2002 kleink

On prep, descend into prep-mkbootimage.


# 1.47 06-Apr-2002 bjh21

vax-installboot has been deleted, so don't recurse into it.


# 1.46 03-Apr-2002 lukem

enable installboot


# 1.45 01-Apr-2002 thorpej

Nuke NO_DBSYM; dbsym now uses BFD for everything.


# 1.44 01-Apr-2002 bjh21

On second thoughts, don't make mktemp a host tool. It's only used once, for
creating a temporary directory for maketars, and mkdir can do that safely
enough.


# 1.43 31-Mar-2002 bjh21

Add mktemp as a host tool.


# 1.42 31-Mar-2002 bjh21

Add cksum as a host tool.


# 1.41 29-Mar-2002 matt

Drop into vax-installboot on VAX machines.


# 1.40 07-Mar-2002 tv

Rework recursion to use the original logic again, in the structure cleaned
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".


# 1.39 07-Mar-2002 tv

Don't build groff if MKMAN=no. (groff does not build properly on some
platforms because of its completely insane Make structure; this allows it
to be disabled in a sane way.)


# 1.38 26-Feb-2002 tv

Add gettext to tools.

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.)


# 1.37 23-Feb-2002 gmcgarry

Add elf2ecoff as a build tool for mips ports.


# 1.36 18-Feb-2002 pk

* Add comments on all the directory build/install ordering goo.
* 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.


# 1.35 11-Feb-2002 pk

Revert part of previous; we need the install targets.


# 1.34 10-Feb-2002 pk

Use .ORDER targets to express the dependencies on subdir runs. This makes
the resulting tree complexity O(N) (N=# of subdirs), and it also makes it
easier to comprehend the Makefile logic.


# 1.33 08-Feb-2002 pk

Make sure to not go off installing in a directory before it's fully made.


# 1.32 31-Jan-2002 tv

Roll in fixes to permit cross-compiling from non-NetBSD hosts. This
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.


# 1.31 29-Jan-2002 tv

Make almost all tools compile and run properly on non-NetBSD hosts. (In
particular, most tools now run correctly on Solaris 7.)


# 1.30 25-Jan-2002 lukem

build pax as a host tool, for -N and to work around borken vendor paxes


# 1.29 10-Jan-2002 tv

Move host-mkdep to its own directory. Create and install it before
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.


# 1.28 10-Jan-2002 lukem

revert previous, and reenable tools/makefs now that it works on
netbsd-current and netbsd-1-5


# 1.27 09-Jan-2002 tv

Disable makefs in src/tools for the moment; it's very dependent on -current
NetBSD headers and sources right now. (Temporary workaround for PR 15175.)


# 1.26 05-Jan-2002 mrg

build zic as a host tool.


# 1.25 05-Jan-2002 mrg

build makefs, and, sparc-installboot if sparc||sparc64


# 1.24 31-Dec-2001 thorpej

We can't currently build a toolchain for x86-64 here, so don't
attempt to do so.


# 1.23 29-Dec-2001 wiz

Typo fix in error message.


# 1.22 11-Dec-2001 tv

Add the framework for autoconf-based src/tools/compat structure. This will
(after it is more fleshed out) allow the host tools to work more cleanly
on non-NetBSD hosts.


# 1.21 07-Dec-2001 jmc

Add pwd_mkdb as a toolchain bit for builds


# 1.20 29-Nov-2001 thorpej

Build makewhatis as a host tool, since it is used at the end of
the build.

XXX Needs a -lz hostlib.


# 1.19 22-Nov-2001 jmc

Oops. typo which can break things for non-new toolchain builds if MKTOOLS isn't
set


# 1.18 22-Nov-2001 jmc

Check for USETOOLS!=yes in addition to MKTOOLS==no to generate the empty rule
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


# 1.17 13-Nov-2001 tv

Re-add MKTOOLS as a "yes"/"no" only variable, which prevents recursion on "no"
into the src/tools subdirs on all/depend/dependall/install. Other recursive
targets are not affected.


# 1.16 12-Nov-2001 tv

Major overhaul of src/tools and host toolchain. Summary of changes:

* 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.


# 1.15 09-Nov-2001 thorpej

Build the cross-dbsym.


# 1.14 02-Nov-2001 tv

* Always use the makewrapper when starting a build phase.

* 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.


# 1.13 31-Oct-2001 tv

Don't actually delete the default tooldir on "cleandir"; else we'll nuke
the nbmake that is probably currently running.

Just leave the "cleantools" manual target as a shortcut for the user.


# 1.12 31-Oct-2001 tv

* Create a variable HOST_OSTYPE that represents the host build environment,
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.


# 1.11 31-Oct-2001 tv

* Always descend into "tools" regardless of USETOOLS setting. Instead,
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.


# 1.10 25-Oct-2001 thorpej

Add asn1_compile as a host tool.


# 1.9 21-Oct-2001 jmc

Pull in mdsetimage to the tools builds. (XXX - using libbfd here would
probably be preferrable long term).


# 1.8 20-Oct-2001 jmc

Add mklocale to cross-tools and turn it back on for the builds.


# 1.7 13-Oct-2001 jmc

Add crunchgen, msgc and menuc


# 1.6 09-Oct-2001 enami

Make mtree a host tool and use it when appropriate.


# 1.5 04-Oct-2001 tv

Recurse properly; just add "build" to TARGETS (fixes reported problem where
"make clean" doesn't work at the src/tools level).


# 1.4 22-Sep-2001 tv

Work around "make obj" lossage in tools/. Dunno why this is happening
just yet; will investigate this evening.


# 1.3 22-Sep-2001 tv

Add lorder to TOOLDIR host tools.

Only descend into directories if USE_NEW_TOOLCHAIN is set (allows top level
Makefile to use "-m ${.CURDIR}/share/mk" to get the "correct" <bsd.own.mk>
when descending into src/tools/Makefile).


# 1.2 21-Sep-2001 tv

- Create a real cpp binary.
- Set CC properly in environment for mkdep and lint.
- Add compile_et to TOOLDIR host tools.


# 1.1 14-Aug-2001 tv

Bootstrap toolchain framework, first pass.


# 1.213 13-Apr-2022 jkoshy

When building tools use a dedicated subdirectory for compiling
Elftoolchain code.

Build and install <sys/elfdefinitions.h> in ${TOOLDIR}/include.

This change prepares the ground for upgrading libelf and libdwarf to
their current Elftoolchain versions.


# 1.212 14-Nov-2021 skrll

Make dtc on riscv


Revision tags: cjep_sun2x-base1 cjep_sun2x-base cjep_staticlib_x-base1
# 1.211 27-May-2021 cjep

If we are building date earlier, we need to use an uninstalled copy
of host-mkdep and libnbcompat otherwise the build process looks for
tools that might not be there yet (e.g. fresh build).
Reviewed by martin.


# 1.210 26-May-2021 christos

Add a date tool


Revision tags: cjep_staticlib_x-base
# 1.209 06-May-2021 rin

branches: 1.209.2;
PR port-mvme68k/56146

Build wrtvid as tools.


# 1.208 25-Apr-2021 christos

Make mips-elf2ecoff available for all mips


# 1.207 06-Feb-2021 dbj

tools: allow MKCROSSGDB to work when not building gcc


# 1.206 28-Jul-2020 uwe

Build mkubootimage for evbsh3 too.


Revision tags: phil-wifi-20200421 phil-wifi-20200411 is-mlppp-base phil-wifi-20200406 phil-wifi-20191119
# 1.205 11-Nov-2019 joerg

Update LLVM to 10.0.0git (01f3a59fb3e2542fce74c768718f594d0debd0da)


# 1.204 26-Sep-2019 bad

Exclude more subdirs if TOOLS_BUILDRUMP=yes.

Exclude subdirs added in the last 3 years but not need for rumpkernel builds.


Revision tags: netbsd-9-2-RELEASE netbsd-9-1-RELEASE netbsd-9-0-RELEASE netbsd-9-0-RC2 netbsd-9-0-RC1 netbsd-9-base phil-wifi-20190609
# 1.203 07-May-2019 hannken

Fix build, "pax" must be built before "libprop".

Ok: Matthew Green mrg@


# 1.202 07-May-2019 thorpej

Add support for libprop as a host tool library.


# 1.201 03-Apr-2019 joerg

Add MKLLVMRT to build a subset of the LLVM stack for JIT purposes.
Hook up AMDGPU backend for clang.


# 1.200 03-Apr-2019 joerg

Revert MKLLVMCMDS changes.


# 1.199 20-Mar-2019 mrg

split MKLLVM into MKLLVM and MKLLVMCMDS, like MKGCC and MKGCCCMDS:

- only build clang or clang-tblgen if MKLLVMCMDS != "no"
- move HAVE_MESA_VER earlier so we can detect mesa 18 and enable
MKLLVM on platforms that need it
- move the clang commands and headers into llvmcmds group
- only build the clang specific LLVM libraries if MKLLVMCMDS != "no"

much of this work came from maya@'s github commit
f90685c11d4460d3098fa35f48b58d1893e974e0, reworked for HAVE_MESA_VER
and llvmcmds vs MKCLANG.


build tested on several platforms and on amd64 and i386 with several
different build options (clang build, gcc build, gcc build with llvm
libs).


Revision tags: pgoyette-compat-20190127 pgoyette-compat-20190118
# 1.198 02-Jan-2019 christos

use MACHINE_CPU for elf2aout


# 1.197 31-Dec-2018 christos

Add an arm-specific elf2aout tool since objdump does not support a.out anymore


Revision tags: pgoyette-compat-1226 pgoyette-compat-1126 pgoyette-compat-1020 pgoyette-compat-0930
# 1.196 25-Sep-2018 joerg

Update build glue for xz-5.2.4. Hook up tools version.


Revision tags: pgoyette-compat-0906
# 1.195 11-Aug-2018 christos

hook in the tools version of grep


Revision tags: pgoyette-compat-0728 phil-wifi-base pgoyette-compat-0625 pgoyette-compat-0521
# 1.194 09-May-2018 joerg

branches: 1.194.2;
For EXTERNAL_TOOLCHAIN, MKLLVM=yes needs to build only tablegen.


Revision tags: pgoyette-compat-0502 pgoyette-compat-0422 pgoyette-compat-0415 pgoyette-compat-0407 pgoyette-compat-0330 pgoyette-compat-0322 pgoyette-compat-0315 pgoyette-compat-base
# 1.193 18-Feb-2018 uwe

branches: 1.193.2;
Fix .endif comment for TOOLS_BUILDRUMP


# 1.192 27-Dec-2017 christos

Better EXTERNAL_TOOLCHAIN support from Zachary McGrew
- Allow mdsetimage and dbsym to be built with EXTERNAL_TOOLCHAIN
- Allow BFDDIR and IBERTYDIR to be overwritten for mdsetimage and dbsym


Revision tags: perseant-stdc-iso10646-base
# 1.191 07-Jun-2017 skrll

branches: 1.191.2;
Hook in dtc/libfdt now that it builds for me


# 1.190 06-Jun-2017 skrll

Disable dtc/libfdt for now


# 1.189 05-Jun-2017 christos

No need to set dtc twice.


# 1.188 05-Jun-2017 christos

Add dtc


Revision tags: netbsd-8-base prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1 pgoyette-localcount-20170320 bouyer-socketcan-base
# 1.187 11-Jan-2017 joerg

branches: 1.187.6;
Sync tools build glue with LLVM pre-4.0.0.


Revision tags: pgoyette-localcount-20170107 pgoyette-localcount-20161104 localcount-20160914 pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base
# 1.186 24-Jan-2016 christos

branches: 1.186.2;
move cvslatest last


# 1.185 24-Jan-2016 christos

Tool version


# 1.184 19-Dec-2015 christos

move sortinfo after pax


# 1.183 18-Dec-2015 christos

Add sortinfo


# 1.182 23-Jul-2015 mrg

remove the xfree86 reachover makefiles and the vast majority of
the support in the rest of the source tree.

X11 sets could use some cleaning up perhaps (just deletion, as
we've never really marked the old X11R6 as obsolete for native
xorg using platforms so far either.)


# 1.181 24-Jun-2015 matt

Support building the xorg X11 libraries under MKCOMPAT.
Add XORG_MACHINE_ARCH to compat's bsd.*.mk
Turn xorg makekeys and makestrs into real host tools which are installed into
${TOOLSDIR}


# 1.180 07-Jan-2015 joerg

Reorganise the way xorg is build. Move build of makestrs into src/tools
as it is needed for the "includes" phase. Make it symlink all necessary
headers in obj to decouple it from "includes" itself, breaking the
dependency cycle. Move the do-x11 target between do-lib and do-build, so
that libraries can get the benefit of build_install (correct .WAIT
behavior) and everything else like "includes" uses the plain SUBDIR
entry in external/mit.


# 1.179 05-Dec-2014 pooka

build genassym for TOOLS_BUILDRUMP


# 1.178 30-Sep-2014 christos

add gpt


Revision tags: netbsd-7-2-RELEASE netbsd-7-1-2-RELEASE netbsd-7-1-1-RELEASE netbsd-7-1-RELEASE netbsd-7-1-RC2 netbsd-7-nhusb-base-20170116 netbsd-7-1-RC1 netbsd-7-0-2-RELEASE netbsd-7-nhusb-base netbsd-7-0-1-RELEASE netbsd-7-0-RELEASE netbsd-7-0-RC3 netbsd-7-0-RC2 netbsd-7-0-RC1 netbsd-7-base tls-maxphys-base
# 1.177 10-Aug-2014 matt

Changes to existing files to enable building AARCH64 userland.
evbarm64-el
This is clang only. While gcc4.8 supports aarch64, no netbsd support has
been written for aarch64 with gcc4.8.


Revision tags: tls-earlyentropy-base
# 1.176 15-Jul-2014 christos

descend to vgrind


# 1.175 15-Jun-2014 pooka

Add cat, rpcgen and stat to TOOLS_BUILDRUMP. They're useful for
installing headers for the app stack cases that need it done, and small
enough to not matter for the kernel-only cases that don't.


# 1.174 14-Jun-2014 mrg

remove remaining makefile support for GCC < 45 that i found.


Revision tags: yamt-pagecache-base9
# 1.173 03-Apr-2014 riastradh

branches: 1.173.2;
ctfconvert/ctfmerge need libdwarf &c., so build them if MKCTF=yes.


Revision tags: riastradh-xf86-video-intel-2-7-1-pre-2-21-15
# 1.172 25-Mar-2014 ozaki-r

Add MKCTF

This variable separates CTF stuffs from MKDTRACE; we can build DTrace
solely without building and using them. This allows us to use DTrace
even if CTF stuffs have problems (actually they have now).

This variable would be merged into MKDTRACE eventually, once CTF stuffs
work correctly again.


Revision tags: riastradh-drm2-base3
# 1.171 24-Feb-2014 skrll

Rename NetBSD/hp700 to NetBSD/hppa.

Unfortunately our VCS isn't very helpful here.


# 1.170 02-Sep-2013 joerg

Update LLVM/Clang snapshot to r189662. This includes many improvements
to the new SLP vectorizer, fast codegen support for PPC and using
terminfo for the color sequences. In addition, add (optional) build
infrastructure for lld to allow easier testing. This is controlled by
MKLLD.


Revision tags: riastradh-drm2-base2 riastradh-drm2-base1
# 1.169 19-Jul-2013 matt

Even if we aren't making a crossgdb still make the object dir for it.


Revision tags: riastradh-drm2-base agc-symver-base
# 1.168 27-Feb-2013 joerg

branches: 1.168.4;
Add infrastructure for building MCLinker.


# 1.167 05-Feb-2013 matt

There are other little endian arm machine_arches other than "arm"
Use MACHINE_CPU and TARGET_ENDIANNESS instead of MACHINE_ARCH


# 1.166 31-Jan-2013 pooka

Use TOOLS_BUILDRUMP=yes to restrict building of tools to those required
for building rump kernels. This cuts down the NetBSD source tree required
by buildrump.sh to a fraction and addresses a size/download time concern
from a person packaging rump kernels for Linux.

No change to the normal case (tested with several -j32/-j64 builds).

reviewed by apb


Revision tags: yamt-pagecache-base8 yamt-pagecache-base7
# 1.165 02-Dec-2012 apb

Make tools/Makefile build host-mkdep, compat, and binstall in that order,
before installing any of them. It installs them in any order relative
to each other. The .WAIT points that used to be between these three
tools are replaced by .ORDER and dependencies.

This is needed in preparation for making tools/compat install
some files into TOOLDIR.


# 1.164 02-Dec-2012 apb

TOOLDIR must be valid, unless MKTOOLS=no.
Add tests and .error directives to enforce this.


# 1.163 02-Dec-2012 apb

If tools are not wanted, then set SUBDIR= empty instead of
defining all the subdir-related targets to do nothing. This way,
the targets are not invoked at all, instead of being invoked but
doing nothing.


# 1.162 02-Dec-2012 apb

remove trailing white space


# 1.161 27-Nov-2012 jkunz

According to the i.MX23 Reference Manual section 3.1, Page 3-3:
"The i.MX23 always operates in litle-endian mode."
So build elftosb and bootloader for this processor only for evbarm(-el).


# 1.160 26-Nov-2012 pooka

Build gmake iff we're going to need it.


# 1.159 15-Nov-2012 joerg

Move the build_install logic from lib/Makefile into share/mk and re-use
it for tools. The existing logic broke for the LLVM build with the
recent .ORDER changes in make.


# 1.158 15-Nov-2012 jkunz

Add elftosb tools to evbarm userland and toolchain.
Elftosb is used to create a digitaly signed "secure boot" file.
This sb file can be booted by the first stage boot loader found in
Freescale i.MX23 and i.MX28 application processors.

Copyright (c) 2004-2010 Freescale Semiconductor, Inc.


Revision tags: yamt-pagecache-base6
# 1.157 20-Sep-2012 pooka

fix EXTERNAL_TOOLCHAIN build


# 1.156 10-Aug-2012 joerg

branches: 1.156.2;
Decouple binutils build from HAVE_GCC. Merge common fragments of
HAVE_GCC and HAVE_PCC.


Revision tags: netbsd-6-0-6-RELEASE netbsd-6-1-5-RELEASE netbsd-6-1-4-RELEASE netbsd-6-0-5-RELEASE netbsd-6-1-3-RELEASE netbsd-6-0-4-RELEASE netbsd-6-1-2-RELEASE netbsd-6-0-3-RELEASE netbsd-6-1-1-RELEASE netbsd-6-0-2-RELEASE netbsd-6-1-RELEASE netbsd-6-1-RC4 netbsd-6-1-RC3 netbsd-6-1-RC2 netbsd-6-1-RC1 netbsd-6-0-1-RELEASE matt-nb6-plus-nbase netbsd-6-0-RELEASE netbsd-6-0-RC2 matt-nb6-plus-base netbsd-6-0-RC1 yamt-pagecache-base5 yamt-pagecache-base4 netbsd-6-base yamt-pagecache-base3 yamt-pagecache-base2
# 1.155 03-Nov-2011 joerg

Revert .WAIT removal and add comment why it is needed between *tblgen.


# 1.154 02-Nov-2011 njoly

Do not build tic more than once


# 1.153 02-Nov-2011 christos

move tic later, after all the tools it needs are built.


# 1.152 02-Nov-2011 yamt

tweak dependencies for tic, which needs nbperf, awk, and sed.


Revision tags: yamt-pagecache-base
# 1.151 01-Nov-2011 joerg

branches: 1.151.2;
Remove an unnecessary .WAIT between llvm-tblgen and clang-tblgen.


# 1.150 01-Nov-2011 joerg

Hook up nbperf into the normal tool build.


# 1.149 11-Oct-2011 joerg

Update LLVM/Clang snapshot to r141658. This primarily fixes a regression
preventing Qt4 from building.


# 1.148 16-Jul-2011 tsutsui

Build nbm68k-elf2aout as a host tool on m68k targets
for an ancient PROM bootloader.
Mostly taken from nbmips-elf2ecoff.


# 1.147 10-Jul-2011 mrg

install elf2ecoff for all mips64 systems. it's needed for stand.


# 1.146 21-Jun-2011 mrg

always build gmake if HAVE_GCC.
build gmp, mpfr and then mpc if HAVE_GCC >= 45.


Revision tags: cherry-xenmp-base
# 1.145 15-Apr-2011 elric

branches: 1.145.2;
Upgrade Heimdal to 1.5pre1 by switching the build from crypto/dist/heimdal
to crypto/external/bsd/heimdal. The latter was just imported as the head
of the Heimdal tree as of a few days ago.


# 1.144 17-Mar-2011 riz

.WAIT for makefs, because in most builds, it's the first target
which includes Makefile.nbincludes, whose beforedepend: has
some race condition I don't fully understand, and which has been
causing many (but not all!) -j16 builds on the autobuild cluster
to fail in tools since sometime between 201103061600 and 201103070900.

With the proper voodoo, I was able to get 8 builds in a row to fail
without this change, and 16 in a row to succeed with it.

XXX a proper fix likely involves reworking the beforedepend: target
of Makefile.nbincludes, but this should get the build cluster back up
to full functionality in the meanwhile.


Revision tags: bouyer-quota2-nbase
# 1.143 25-Feb-2011 phx

mkubootimage is certainly useful for sandpoint


Revision tags: bouyer-quota2-base
# 1.142 06-Feb-2011 joerg

Add LLVM and clang build system. It is enabled by MKLLVM=yes.
Upstream sources can be fetched by running "make checkout" in
src/external/bsd/llvm, they will be properly imported once the
integration and missing features are sorted out.


# 1.141 31-Jan-2011 matt

Make mkubootimage for evbmips and evbppc too.


Revision tags: matt-mips64-premerge-20101231
# 1.140 15-Aug-2010 mrg

branches: 1.140.2;
add new option to build/use tools/pigz for compressing sets. for now
USE_PIGZGZIP defaults to "no". (it depends upon local <pthread.h> and -lz.)

you can set it to "yes" on most modern platforms just fine.


# 1.139 18-Jun-2010 jmcneill

hook mkubootimage into the build


# 1.138 04-Jun-2010 jmmv

Bye bye atf-compile, you won't be missed.


# 1.137 02-Mar-2010 darran

DTrace: add libelf, libdwarf, libctf, and CTF tools to the toolchain,
built when MKDTRACE=yes.


# 1.136 20-Feb-2010 joerg

Build mandoc unconditional if man pages are desirable. All
compatibility issues are supposed to be sorted out.
Build groff conditionally on MKGROFF. It is currently the only component
that requires C++.


# 1.135 03-Feb-2010 roy

Store our generated files in CVS and remove nbperf from the toolchain.
This allows us to build consistent libs without an ever changing hash.


# 1.134 03-Feb-2010 roy

Userland now builds and uses terminfo instead of termcap.

OK: core@, jdc@


# 1.133 29-Dec-2009 he

To unbreak the build, temporarily remove the build of libelf here,
since no other part of the build depends on this yet.

Suggested as a temporary workaround by thorpej@


# 1.132 23-Dec-2009 mrg

rework the main SUBDIR list here as suggested by enami. put .WAIT on
the same line as the target that needs to wait, but before the target,
rather than on the previous line, which led to confusion and an error
being introduced in the previous change.


# 1.131 21-Dec-2009 mrg

move the build of pax before libelf. fixes my build of tools/libelf,
though i didn't look to see why libelf needs pax.


# 1.130 21-Dec-2009 thorpej

Add support for building libelf in a host-tool environment.

XXX Makefile.disklabel is really mis-named, but I'm not going to tackle
that problem right now.


Revision tags: matt-premerge-20091211
# 1.129 29-Oct-2009 christos

Give m4 its own .WAIT. Fixes build issue on NetBSD-5.


# 1.128 23-Oct-2009 joerg

Add MKMANDOC option to trigger building cat pages and HTML pages with
mdocml. Add a lintmanpages target for developers to check man pages
with the strictest settings of mandoc.


Revision tags: jym-xensuspend-nbase jym-xensuspend-base
# 1.127 25-Feb-2009 sketch

Disable grep host tool and unbreak NetBSD build until I can come up with a
clean fix.


# 1.126 25-Feb-2009 sketch

Make grep a host tool.


# 1.125 14-Feb-2009 abs

Convert more MACHINE tests to MACHINE_ARCH


Revision tags: netbsd-5-2-3-RELEASE netbsd-5-1-5-RELEASE netbsd-5-2-2-RELEASE netbsd-5-1-4-RELEASE netbsd-5-2-1-RELEASE netbsd-5-1-3-RELEASE netbsd-5-2-RELEASE netbsd-5-2-RC1 netbsd-5-1-2-RELEASE netbsd-5-1-1-RELEASE matt-nb5-mips64-premerge-20101231 matt-nb5-pq3-base netbsd-5-1-RELEASE netbsd-5-1-RC4 matt-nb5-mips64-k15 netbsd-5-1-RC3 netbsd-5-1-RC2 netbsd-5-1-RC1 netbsd-5-0-2-RELEASE matt-nb5-mips64-premerge-20091211 matt-nb5-mips64-u2-k2-k4-k7-k8-k9 matt-nb4-mips64-k7-u2a-k9b matt-nb5-mips64-u1-k1-k5 netbsd-5-0-1-RELEASE netbsd-5-0-RELEASE netbsd-5-0-RC4 netbsd-5-0-RC3 netbsd-5-0-RC2 netbsd-5-0-RC1 netbsd-5-base
# 1.124 25-Oct-2008 apb

branches: 1.124.4; 1.124.8; 1.124.12;
Build sed earlier, just after mktemp. Note that sed and mktemp do not
depend on each other, but the .WAIT is needed to get them both installed
before the remainder of the tools build.


# 1.123 25-Oct-2008 apb

Remove the local handling of the NOSUBDIR variable. We can rely
on bsd.subdir.mk's handling of the NOSUBDIR variable.

Also add some comment to .if/.else/.endif and .for/.endfor lines.


Revision tags: matt-mips64-base2
# 1.122 19-Oct-2008 apb

Add awk as a host tool.


# 1.121 13-Oct-2008 dyoung

Per uwe@'s suggestion, build nbgroff under wider circumstances.
I choose to build it if MKDOC != no or if MKHTML != no. It used
to be built only when MKMAN != no.


# 1.120 05-Oct-2008 apb

Add a .WAIT to ensure that sed is installed early, so that TOOL_SED can
be used during the build of other tools.


# 1.119 26-Sep-2008 apb

Build strfile both as a host tool and as an installed program:
* in games/fortune/strfile/Makefile, build strfile as a
regular program instead of as a host tool;
* add tools/strfile directory to build strfile as a host tool;
* in tools/Makefile, add strfile to SUBDIR list;
* in BSD.*.mk, define TOOL_STRFILE variable;
* in games/fortune/datfiles/Makefile, use TOOL_STRFILE when creating
databases at build time;
* in distrib/sets/lists/games/mi, mention usr/games/strfile.


Revision tags: wrstuden-revivesa-base-3 wrstuden-revivesa-base-2
# 1.118 24-Aug-2008 gmcgarry

Build pcc as host tool if requested.


Revision tags: wrstuden-revivesa-base-1 yamt-pf42-base4 yamt-pf42-base3 wrstuden-revivesa-base
# 1.117 26-May-2008 he

Remove references to bebox-elf2pef and bebox-mkbootimage, now that they
have been integrated in common powerpc tools and subsequently removed.


Revision tags: hpcarm-cleanup-nbase yamt-pf42-base2
# 1.116 30-Apr-2008 garbled

branches: 1.116.2;
Build powerpc-mkbootimage for rs6000 and bebox too.


# 1.115 30-Apr-2008 garbled

Convert prep to use the new unified mkbootimage rather than it's own. This
mkbootimage can be shared by prep, rs6000, and bebox.

TODO: Convert bebox to use this. Needs someone to test.


Revision tags: yamt-pf42-baseX yamt-pf42-base keiichi-mipv6-nbase keiichi-mipv6-base matt-armv6-nbase cube-autoconf-base matt-armv6-base hpcarm-cleanup-base
# 1.114 12-Nov-2007 jmmv

branches: 1.114.6;
Add the atf host tools

This adds reachover Makefiles to build the atf tools required during a
cross-build.


Revision tags: matt-armv6-prevmlocking matt-mips64-base
# 1.113 14-Jan-2007 apb

branches: 1.113.4;
Build join(1) as a host tool.


# 1.112 20-Dec-2006 agc

A commit too far - don't try to build veriexecgen for just now


# 1.111 19-Dec-2006 agc

Build veriexecgen as a host tool


Revision tags: netbsd-4-0-1-RELEASE wrstuden-fixsa-newbase wrstuden-fixsa-base-1 netbsd-4-0-RELEASE netbsd-4-0-RC5 netbsd-4-0-RC4 netbsd-4-0-RC3 netbsd-4-0-RC2 netbsd-4-0-RC1 wrstuden-fixsa-base netbsd-4-base
# 1.110 22-Nov-2006 riz

Make sys/exec_elf.h and machine/elf_machdep.h available to host
tools, and allow paxctl to use them when compiled as a host
tool. This fixes the build on MacOS X (and perhaps other platforms)


# 1.109 17-Nov-2006 dsl

Add some notes about the bogosity of some of the .WAIT stuff.
Remove a 'never had a sane effect' .WAIT from a .ORDER line.
Don't add a (probably incorrect) dependency for 'make install' since
it contradicts a .ORDER line elsewhere when .ORDER applies recursively
to child nodes.
I also think that the stuff that tries to add dependencies between
the stuff that bsd.subdir.mk generates does not DTRT at all.
I suspect that build.sh builds things in an order that avoids issues here.


# 1.108 10-Nov-2006 christos

Add paxctl as a tool.


# 1.107 08-Oct-2006 apb

If PREVIOUSTOOLDIR was empty, then don't complain that it has moved.

Patch from Jukka Salmi in PR 33095.


Revision tags: abandoned-netbsd-4-base
# 1.106 03-Aug-2006 freza

* Fix parallel build race condition between real{all,depend} and
<bsd.subdir.mk> targets.
* No need to pass TOOLDIR to recursive cleandir in real{all,depend}.

With help from he@.
OK by tron@.


# 1.105 03-Aug-2006 tron

Another attempt to fix the race in parallel builds.


# 1.104 19-Jul-2006 tron

Invoking "make cleandir" with "PREVIOUSTOOLDIR" set to the previous
location will not stop recursive "make cleandir" calls. Pass the new
location instead.


# 1.103 18-Jul-2006 lukem

gettext should .WAIT for autoconf.
(The former still doesn't seem to work on read-only source; separate issue)


# 1.102 17-Jul-2006 tron

Avoid getting into a loop of "make cleandir" instances if the location
tool directory has been changed or wasn't recorded before.


# 1.101 17-Jul-2006 tron

Remove ".WAIT" again because it doesn't fix the problem.


# 1.100 12-Jul-2006 tron

Add an extra ".WAIT" to the "realall realdepend" target to make sure
it finished cleaning the tools directory in case of tool directory
mismatch before we try to rebuild the tools.


# 1.99 22-Jun-2006 mrg

only build lint and lint2 if MKLINT != "no".


# 1.98 18-Jun-2006 gdamore

Make TOOL_SED, to allow using our own sed in cases where the host's version
is busted in some way.

The TOOL_SED doesn't use TIOCGWINSIZE, and has some changes to include
nbtool_config.h in a cross build environment.

Combined with some other changes (not yet committed), this allows cross
compiling m68k code on Solaris 10/amd64.


# 1.97 02-Jun-2006 mrg

remove support for building (with) GCC 2.95. also:
- always install <stdbool.h>
- don't generate a fake one for vax / gettext.


# 1.96 11-May-2006 mrg

check HAVE_GCC == 4 not USE_GCC4.


# 1.95 01-Apr-2006 christos

Don't barf if USE_GCC4 is not defined.


# 1.94 29-Mar-2006 jmc

Turn on gmake builds if GCC4 is enabled (and force it's install before continuing


# 1.93 03-Feb-2006 dsl

The realall and realdepend bit that regenerates tools needs to be marked
.MAKE otherwise the 'make' it runs has its own list of jobs instead of
using the jobserver of the enclosing make.


# 1.92 04-Oct-2005 jmc

Make the tools using Makefile.disklabel wait so they don't stomp each other.
Also for now add a dependency to Makefile.disklabel so this doesn't run
3 times. (XXX this really should just be done differently)


# 1.91 12-Jun-2005 dyoung

.include Makefile.disklabel in installboot, so that the
nbinclude/ header files will be installed. Build installboot after
pax, since Makefile.disklabel uses pax to install the headers.


# 1.90 12-Jun-2005 dyoung

Make disklabel(8) and fdisk(8) into "host tools " last step: build
and install ${TOOLDIR}/bin/${MACHINE_GNU_PLATFORM}-disklabel,
${TOOLDIR}/bin/${MACHINE_GNU_PLATFORM}-fdisk by "reaching over" to
the sources in ${NETBSDSRCDIR}/sbin/{disklabel fdisk}/.

To avoid clashes with a build-host's header files, especially on
*BSD, the host-tools versions of fdisk and disklabel search for
#includes such as disklabel.h, disklabel_acorn.h, disklabel_gpt.h,
and bootinfo.h in a new #includes namespace, nbinclude/. That is,
they #include <nbinclude/sys/disklabel.h>, <nbinclude/machine/disklabel.h>,
<nbinclude/sparc64/disklabel.h>, instead of <sys/disklabel.h> and
such. I have also updated the system headers to #include from
nbinclude/-space when HAVE_NBTOOL_CONFIG_H is #defined.


# 1.89 30-May-2005 thorpej

Build genassym as a host tool. Part of PR toolchain/30350


Revision tags: netbsd-3-1-1-RELEASE netbsd-3-0-3-RELEASE netbsd-3-1-RELEASE netbsd-3-0-2-RELEASE netbsd-3-1-RC4 netbsd-3-1-RC3 netbsd-3-1-RC2 netbsd-3-1-RC1 netbsd-3-0-1-RELEASE netbsd-3-0-RELEASE netbsd-3-0-RC6 netbsd-3-0-RC5 netbsd-3-0-RC4 netbsd-3-0-RC3 netbsd-3-0-RC2 netbsd-3-0-RC1 netbsd-3-base
# 1.88 27-Jan-2005 is

We don't need aout2bb any longer.


# 1.87 09-Jan-2005 mycroft

Add some quotes to prevent a syntax error.


# 1.86 28-Nov-2004 jmc

Convert mkboot into a full cross tool. Last hurdle for hp300 to building on
non NetBSD/bsd hosts.


# 1.85 28-Nov-2004 jmc

Convert remaining host tools for amiga to correct cross tools. Now allows
complete amiga builds on non netbsd/bsd hosts


# 1.84 25-Nov-2004 jmc

Convert bebox's remaining host tools over to cross tools scheme. Builds to sets
w/o error now.


# 1.83 28-Jul-2004 skrll

Build hp700's mkboot as a host tool called nbhp700-mkboot. mkboot also
gets built and installed in a hp700 distribution.

TODO

- merge with hp300

- pick a preferred method for dealing with the elf headers.
hp700-mkboot and prep-mkbootimage (bintuils) vs mips-elf2ecoff and
tools/installboot


# 1.82 08-Jun-2004 abs

Add sparkcrc (used to generate checksums for acorn32 bootloader sparkive)
as a host tool.


Revision tags: netbsd-2-0-base
# 1.81 03-Jan-2004 lukem

branches: 1.81.2;
Consistently check ${TOOLCHAIN_MISSING} against "no".


# 1.80 11-Dec-2003 matt

Fix typo.


# 1.79 11-Dec-2003 matt

Add macppc-fixcoff tool.


# 1.78 10-Dec-2003 lukem

Use (cd ${.CURDIR} && ${MAKE} cleandir) instead of ${MAKE} cleandir
Suggested by Ross Harvey.


# 1.77 04-Dec-2003 mrg

always build tools/binutils now.


# 1.76 08-Nov-2003 sekiya

Build sgivol as a host tool when compiling for sgimips.


# 1.75 27-Oct-2003 lukem

add mknod as a host tool


# 1.74 26-Oct-2003 cl

add gdb53 as a host tool for use as a crossgdb
replaces gdb50 from toolchain on archs which use gcc3


# 1.73 21-Oct-2003 lukem

Rework how MAKEVERBOSE operates:

* Don't bother prefixing commands with a line of ${_MKCMD}\
and instead rely upon "make -s". This is less intrusive on
all the Makefiles than the former. Idea from David Laight.

* Rename the variables use to print messages. The scheme now is:
_MKMSG_FOO Run _MKMSG 'foo'
_MKTARGET_FOO Run _MKMSG_FOO ${.TARGET}
From discussion with Alistair Crooks.


# 1.72 19-Oct-2003 matt

Add host tool version of ncdcs


# 1.71 18-Oct-2003 lukem

MAKEVERBOSE support


# 1.70 25-Jul-2003 mrg

- build "binutils" and "gcc" separately if USE_TOOLS_TOOLCHAIN is not set
to "yes".
- adjust dbsym/mdsetimage to look in the correct place for libbfd.
- new mknative-gcc based in toolchain/mknative


# 1.69 24-Jul-2003 tron

Add missing "cleandir" rule.


# 1.68 20-Jul-2003 lukem

add stat(1) as a host tool


# 1.67 16-Jul-2003 lukem

also do the MKTOOLS and PREVIOUSTOOLDIR checks for "realdepend"


# 1.66 16-Jul-2003 lukem

* If a `PREVIOUSTOOLDIR' file doesn't exist, or its contents are not
the same as "$TOOLDIR", run "make cleandir" here first.
This should prevent various problems where $TOOLDIR is encoded into the
build process for various tools (lint, groff, texinfo, toolchain),
$TOOLDIR changes, and various programs don't get rebuilt correctly.
Should fix PR [toolchain/21988].

* Clean up how the `${MKTOOLS} == no' check is performed.

* Remove "cleantools"; it made a big assumption about the location of
TOOLDIR that won't be correct in many cases.


# 1.65 26-Jun-2003 tshiozak

Citrus iconv support(3)
add host tools : mkcsmapper and mkesdb
mkcsmapper - coded character set mapping table compiler
mkesdb - encoding scheme database compiler


# 1.64 18-May-2003 lukem

Add db(1) as a host tool


# 1.63 25-Mar-2003 pooka

build file(1) as a host tool (for compiling magic files)


# 1.62 07-Mar-2003 thorpej

Make hexdump a host tool.


Revision tags: fvdl_fs64_base
# 1.61 21-Dec-2002 lukem

enable sunlabel...


# 1.60 19-Sep-2002 thorpej

Change the TOOLCHAIN_MISSING from == "no" to != "yes", to be consistent
with the other tests of this variable.


# 1.59 19-Sep-2002 matt

Since TOOLCHAIN_MISSING is defined in bsd.own.mk, it can never be undefined.
Instead, make sure the value of it is "no"


# 1.58 17-Sep-2002 thorpej

* Eliminate the USE_NEW_TOOLCHAIN variable. Instead, split it into
two variables:

TOOLCHAIN_MISSING -- set to "yes" on platforms for which there is
no working in-tree toolchain (hppa, ns32k, sh5, x86_64).

EXTERNAL_TOOLCHAIN -- if defined by the user, points to the root of
an external toolchain (e.g. /usr/local/gnu). This enables the cross-build
framework even for TOOLCHAIN_MISSING platforms.

If TOOLCHAIN_MISSING is set to "yes", MKGDB, MKBFD, and MKGCC are all
unconditionally set to "no", since the bits are not there to build.

If EXTERNAL_TOOLCHAIN is set, MKGCC is unconditionally set to "no",
since the external toolchain's compiler is not in-sync with the
in-tree compiler support components (e.g. libgcc).

* Set MACHINE_CPU much earlier in bsd.own.mk, so that more tests in
that file can use it.


# 1.57 14-Sep-2002 chris

We need binstall to be installed, before attempting to use it to install mktemp.


# 1.56 14-Sep-2002 thorpej

Descend into mktemp.


# 1.55 12-Jun-2002 veego

The last commit wasn't tested. Add a missing \


# 1.54 12-Jun-2002 thorpej

Don't build toolchain bits for hppa, for now.


# 1.53 10-Jun-2002 mason

Add cat(1) as a host tool.


# 1.52 05-Jun-2002 thorpej

Don't try to build toolchain bits for ns32k.


# 1.51 28-May-2002 bjh21

Add fgen as a host tool, used for sys/arch/sparc/bootblk.


Revision tags: netbsd-1-6-base
# 1.50 18-May-2002 lukem

branches: 1.50.2;
gratuitious comment addition


# 1.49 07-May-2002 lukem

remove now-unnecessary sparc-installboot


# 1.48 03-May-2002 kleink

On prep, descend into prep-mkbootimage.


# 1.47 06-Apr-2002 bjh21

vax-installboot has been deleted, so don't recurse into it.


# 1.46 03-Apr-2002 lukem

enable installboot


# 1.45 01-Apr-2002 thorpej

Nuke NO_DBSYM; dbsym now uses BFD for everything.


# 1.44 01-Apr-2002 bjh21

On second thoughts, don't make mktemp a host tool. It's only used once, for
creating a temporary directory for maketars, and mkdir can do that safely
enough.


# 1.43 31-Mar-2002 bjh21

Add mktemp as a host tool.


# 1.42 31-Mar-2002 bjh21

Add cksum as a host tool.


# 1.41 29-Mar-2002 matt

Drop into vax-installboot on VAX machines.


# 1.40 07-Mar-2002 tv

Rework recursion to use the original logic again, in the structure cleaned
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".


# 1.39 07-Mar-2002 tv

Don't build groff if MKMAN=no. (groff does not build properly on some
platforms because of its completely insane Make structure; this allows it
to be disabled in a sane way.)


# 1.38 26-Feb-2002 tv

Add gettext to tools.

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.)


# 1.37 23-Feb-2002 gmcgarry

Add elf2ecoff as a build tool for mips ports.


# 1.36 18-Feb-2002 pk

* Add comments on all the directory build/install ordering goo.
* 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.


# 1.35 11-Feb-2002 pk

Revert part of previous; we need the install targets.


# 1.34 10-Feb-2002 pk

Use .ORDER targets to express the dependencies on subdir runs. This makes
the resulting tree complexity O(N) (N=# of subdirs), and it also makes it
easier to comprehend the Makefile logic.


# 1.33 08-Feb-2002 pk

Make sure to not go off installing in a directory before it's fully made.


# 1.32 31-Jan-2002 tv

Roll in fixes to permit cross-compiling from non-NetBSD hosts. This
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.


# 1.31 29-Jan-2002 tv

Make almost all tools compile and run properly on non-NetBSD hosts. (In
particular, most tools now run correctly on Solaris 7.)


# 1.30 25-Jan-2002 lukem

build pax as a host tool, for -N and to work around borken vendor paxes


# 1.29 10-Jan-2002 tv

Move host-mkdep to its own directory. Create and install it before
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.


# 1.28 10-Jan-2002 lukem

revert previous, and reenable tools/makefs now that it works on
netbsd-current and netbsd-1-5


# 1.27 09-Jan-2002 tv

Disable makefs in src/tools for the moment; it's very dependent on -current
NetBSD headers and sources right now. (Temporary workaround for PR 15175.)


# 1.26 05-Jan-2002 mrg

build zic as a host tool.


# 1.25 05-Jan-2002 mrg

build makefs, and, sparc-installboot if sparc||sparc64


# 1.24 31-Dec-2001 thorpej

We can't currently build a toolchain for x86-64 here, so don't
attempt to do so.


# 1.23 29-Dec-2001 wiz

Typo fix in error message.


# 1.22 11-Dec-2001 tv

Add the framework for autoconf-based src/tools/compat structure. This will
(after it is more fleshed out) allow the host tools to work more cleanly
on non-NetBSD hosts.


# 1.21 07-Dec-2001 jmc

Add pwd_mkdb as a toolchain bit for builds


# 1.20 29-Nov-2001 thorpej

Build makewhatis as a host tool, since it is used at the end of
the build.

XXX Needs a -lz hostlib.


# 1.19 22-Nov-2001 jmc

Oops. typo which can break things for non-new toolchain builds if MKTOOLS isn't
set


# 1.18 22-Nov-2001 jmc

Check for USETOOLS!=yes in addition to MKTOOLS==no to generate the empty rule
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


# 1.17 13-Nov-2001 tv

Re-add MKTOOLS as a "yes"/"no" only variable, which prevents recursion on "no"
into the src/tools subdirs on all/depend/dependall/install. Other recursive
targets are not affected.


# 1.16 12-Nov-2001 tv

Major overhaul of src/tools and host toolchain. Summary of changes:

* 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.


# 1.15 09-Nov-2001 thorpej

Build the cross-dbsym.


# 1.14 02-Nov-2001 tv

* Always use the makewrapper when starting a build phase.

* 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.


# 1.13 31-Oct-2001 tv

Don't actually delete the default tooldir on "cleandir"; else we'll nuke
the nbmake that is probably currently running.

Just leave the "cleantools" manual target as a shortcut for the user.


# 1.12 31-Oct-2001 tv

* Create a variable HOST_OSTYPE that represents the host build environment,
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.


# 1.11 31-Oct-2001 tv

* Always descend into "tools" regardless of USETOOLS setting. Instead,
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.


# 1.10 25-Oct-2001 thorpej

Add asn1_compile as a host tool.


# 1.9 21-Oct-2001 jmc

Pull in mdsetimage to the tools builds. (XXX - using libbfd here would
probably be preferrable long term).


# 1.8 20-Oct-2001 jmc

Add mklocale to cross-tools and turn it back on for the builds.


# 1.7 13-Oct-2001 jmc

Add crunchgen, msgc and menuc


# 1.6 09-Oct-2001 enami

Make mtree a host tool and use it when appropriate.


# 1.5 04-Oct-2001 tv

Recurse properly; just add "build" to TARGETS (fixes reported problem where
"make clean" doesn't work at the src/tools level).


# 1.4 22-Sep-2001 tv

Work around "make obj" lossage in tools/. Dunno why this is happening
just yet; will investigate this evening.


# 1.3 22-Sep-2001 tv

Add lorder to TOOLDIR host tools.

Only descend into directories if USE_NEW_TOOLCHAIN is set (allows top level
Makefile to use "-m ${.CURDIR}/share/mk" to get the "correct" <bsd.own.mk>
when descending into src/tools/Makefile).


# 1.2 21-Sep-2001 tv

- Create a real cpp binary.
- Set CC properly in environment for mkdep and lint.
- Add compile_et to TOOLDIR host tools.


# 1.1 14-Aug-2001 tv

Bootstrap toolchain framework, first pass.


# 1.212 14-Nov-2021 skrll

Make dtc on riscv


Revision tags: cjep_sun2x-base1 cjep_sun2x-base cjep_staticlib_x-base1
# 1.211 27-May-2021 cjep

If we are building date earlier, we need to use an uninstalled copy
of host-mkdep and libnbcompat otherwise the build process looks for
tools that might not be there yet (e.g. fresh build).
Reviewed by martin.


# 1.210 26-May-2021 christos

Add a date tool


Revision tags: cjep_staticlib_x-base
# 1.209 06-May-2021 rin

branches: 1.209.2;
PR port-mvme68k/56146

Build wrtvid as tools.


# 1.208 25-Apr-2021 christos

Make mips-elf2ecoff available for all mips


# 1.207 06-Feb-2021 dbj

tools: allow MKCROSSGDB to work when not building gcc


# 1.206 28-Jul-2020 uwe

Build mkubootimage for evbsh3 too.


Revision tags: phil-wifi-20200421 phil-wifi-20200411 is-mlppp-base phil-wifi-20200406 phil-wifi-20191119
# 1.205 11-Nov-2019 joerg

Update LLVM to 10.0.0git (01f3a59fb3e2542fce74c768718f594d0debd0da)


# 1.204 26-Sep-2019 bad

Exclude more subdirs if TOOLS_BUILDRUMP=yes.

Exclude subdirs added in the last 3 years but not need for rumpkernel builds.


Revision tags: netbsd-9-2-RELEASE netbsd-9-1-RELEASE netbsd-9-0-RELEASE netbsd-9-0-RC2 netbsd-9-0-RC1 netbsd-9-base phil-wifi-20190609
# 1.203 07-May-2019 hannken

Fix build, "pax" must be built before "libprop".

Ok: Matthew Green mrg@


# 1.202 07-May-2019 thorpej

Add support for libprop as a host tool library.


# 1.201 03-Apr-2019 joerg

Add MKLLVMRT to build a subset of the LLVM stack for JIT purposes.
Hook up AMDGPU backend for clang.


# 1.200 03-Apr-2019 joerg

Revert MKLLVMCMDS changes.


# 1.199 20-Mar-2019 mrg

split MKLLVM into MKLLVM and MKLLVMCMDS, like MKGCC and MKGCCCMDS:

- only build clang or clang-tblgen if MKLLVMCMDS != "no"
- move HAVE_MESA_VER earlier so we can detect mesa 18 and enable
MKLLVM on platforms that need it
- move the clang commands and headers into llvmcmds group
- only build the clang specific LLVM libraries if MKLLVMCMDS != "no"

much of this work came from maya@'s github commit
f90685c11d4460d3098fa35f48b58d1893e974e0, reworked for HAVE_MESA_VER
and llvmcmds vs MKCLANG.


build tested on several platforms and on amd64 and i386 with several
different build options (clang build, gcc build, gcc build with llvm
libs).


Revision tags: pgoyette-compat-20190127 pgoyette-compat-20190118
# 1.198 02-Jan-2019 christos

use MACHINE_CPU for elf2aout


# 1.197 31-Dec-2018 christos

Add an arm-specific elf2aout tool since objdump does not support a.out anymore


Revision tags: pgoyette-compat-1226 pgoyette-compat-1126 pgoyette-compat-1020 pgoyette-compat-0930
# 1.196 25-Sep-2018 joerg

Update build glue for xz-5.2.4. Hook up tools version.


Revision tags: pgoyette-compat-0906
# 1.195 11-Aug-2018 christos

hook in the tools version of grep


Revision tags: pgoyette-compat-0728 phil-wifi-base pgoyette-compat-0625 pgoyette-compat-0521
# 1.194 09-May-2018 joerg

branches: 1.194.2;
For EXTERNAL_TOOLCHAIN, MKLLVM=yes needs to build only tablegen.


Revision tags: pgoyette-compat-0502 pgoyette-compat-0422 pgoyette-compat-0415 pgoyette-compat-0407 pgoyette-compat-0330 pgoyette-compat-0322 pgoyette-compat-0315 pgoyette-compat-base
# 1.193 18-Feb-2018 uwe

branches: 1.193.2;
Fix .endif comment for TOOLS_BUILDRUMP


# 1.192 27-Dec-2017 christos

Better EXTERNAL_TOOLCHAIN support from Zachary McGrew
- Allow mdsetimage and dbsym to be built with EXTERNAL_TOOLCHAIN
- Allow BFDDIR and IBERTYDIR to be overwritten for mdsetimage and dbsym


Revision tags: perseant-stdc-iso10646-base
# 1.191 07-Jun-2017 skrll

branches: 1.191.2;
Hook in dtc/libfdt now that it builds for me


# 1.190 06-Jun-2017 skrll

Disable dtc/libfdt for now


# 1.189 05-Jun-2017 christos

No need to set dtc twice.


# 1.188 05-Jun-2017 christos

Add dtc


Revision tags: netbsd-8-base prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1 pgoyette-localcount-20170320 bouyer-socketcan-base
# 1.187 11-Jan-2017 joerg

branches: 1.187.6;
Sync tools build glue with LLVM pre-4.0.0.


Revision tags: pgoyette-localcount-20170107 pgoyette-localcount-20161104 localcount-20160914 pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base
# 1.186 24-Jan-2016 christos

branches: 1.186.2;
move cvslatest last


# 1.185 24-Jan-2016 christos

Tool version


# 1.184 19-Dec-2015 christos

move sortinfo after pax


# 1.183 18-Dec-2015 christos

Add sortinfo


# 1.182 23-Jul-2015 mrg

remove the xfree86 reachover makefiles and the vast majority of
the support in the rest of the source tree.

X11 sets could use some cleaning up perhaps (just deletion, as
we've never really marked the old X11R6 as obsolete for native
xorg using platforms so far either.)


# 1.181 24-Jun-2015 matt

Support building the xorg X11 libraries under MKCOMPAT.
Add XORG_MACHINE_ARCH to compat's bsd.*.mk
Turn xorg makekeys and makestrs into real host tools which are installed into
${TOOLSDIR}


# 1.180 07-Jan-2015 joerg

Reorganise the way xorg is build. Move build of makestrs into src/tools
as it is needed for the "includes" phase. Make it symlink all necessary
headers in obj to decouple it from "includes" itself, breaking the
dependency cycle. Move the do-x11 target between do-lib and do-build, so
that libraries can get the benefit of build_install (correct .WAIT
behavior) and everything else like "includes" uses the plain SUBDIR
entry in external/mit.


# 1.179 05-Dec-2014 pooka

build genassym for TOOLS_BUILDRUMP


# 1.178 30-Sep-2014 christos

add gpt


Revision tags: netbsd-7-2-RELEASE netbsd-7-1-2-RELEASE netbsd-7-1-1-RELEASE netbsd-7-1-RELEASE netbsd-7-1-RC2 netbsd-7-nhusb-base-20170116 netbsd-7-1-RC1 netbsd-7-0-2-RELEASE netbsd-7-nhusb-base netbsd-7-0-1-RELEASE netbsd-7-0-RELEASE netbsd-7-0-RC3 netbsd-7-0-RC2 netbsd-7-0-RC1 netbsd-7-base tls-maxphys-base
# 1.177 10-Aug-2014 matt

Changes to existing files to enable building AARCH64 userland.
evbarm64-el
This is clang only. While gcc4.8 supports aarch64, no netbsd support has
been written for aarch64 with gcc4.8.


Revision tags: tls-earlyentropy-base
# 1.176 15-Jul-2014 christos

descend to vgrind


# 1.175 15-Jun-2014 pooka

Add cat, rpcgen and stat to TOOLS_BUILDRUMP. They're useful for
installing headers for the app stack cases that need it done, and small
enough to not matter for the kernel-only cases that don't.


# 1.174 14-Jun-2014 mrg

remove remaining makefile support for GCC < 45 that i found.


Revision tags: yamt-pagecache-base9
# 1.173 03-Apr-2014 riastradh

branches: 1.173.2;
ctfconvert/ctfmerge need libdwarf &c., so build them if MKCTF=yes.


Revision tags: riastradh-xf86-video-intel-2-7-1-pre-2-21-15
# 1.172 25-Mar-2014 ozaki-r

Add MKCTF

This variable separates CTF stuffs from MKDTRACE; we can build DTrace
solely without building and using them. This allows us to use DTrace
even if CTF stuffs have problems (actually they have now).

This variable would be merged into MKDTRACE eventually, once CTF stuffs
work correctly again.


Revision tags: riastradh-drm2-base3
# 1.171 24-Feb-2014 skrll

Rename NetBSD/hp700 to NetBSD/hppa.

Unfortunately our VCS isn't very helpful here.


# 1.170 02-Sep-2013 joerg

Update LLVM/Clang snapshot to r189662. This includes many improvements
to the new SLP vectorizer, fast codegen support for PPC and using
terminfo for the color sequences. In addition, add (optional) build
infrastructure for lld to allow easier testing. This is controlled by
MKLLD.


Revision tags: riastradh-drm2-base2 riastradh-drm2-base1
# 1.169 19-Jul-2013 matt

Even if we aren't making a crossgdb still make the object dir for it.


Revision tags: riastradh-drm2-base agc-symver-base
# 1.168 27-Feb-2013 joerg

branches: 1.168.4;
Add infrastructure for building MCLinker.


# 1.167 05-Feb-2013 matt

There are other little endian arm machine_arches other than "arm"
Use MACHINE_CPU and TARGET_ENDIANNESS instead of MACHINE_ARCH


# 1.166 31-Jan-2013 pooka

Use TOOLS_BUILDRUMP=yes to restrict building of tools to those required
for building rump kernels. This cuts down the NetBSD source tree required
by buildrump.sh to a fraction and addresses a size/download time concern
from a person packaging rump kernels for Linux.

No change to the normal case (tested with several -j32/-j64 builds).

reviewed by apb


Revision tags: yamt-pagecache-base8 yamt-pagecache-base7
# 1.165 02-Dec-2012 apb

Make tools/Makefile build host-mkdep, compat, and binstall in that order,
before installing any of them. It installs them in any order relative
to each other. The .WAIT points that used to be between these three
tools are replaced by .ORDER and dependencies.

This is needed in preparation for making tools/compat install
some files into TOOLDIR.


# 1.164 02-Dec-2012 apb

TOOLDIR must be valid, unless MKTOOLS=no.
Add tests and .error directives to enforce this.


# 1.163 02-Dec-2012 apb

If tools are not wanted, then set SUBDIR= empty instead of
defining all the subdir-related targets to do nothing. This way,
the targets are not invoked at all, instead of being invoked but
doing nothing.


# 1.162 02-Dec-2012 apb

remove trailing white space


# 1.161 27-Nov-2012 jkunz

According to the i.MX23 Reference Manual section 3.1, Page 3-3:
"The i.MX23 always operates in litle-endian mode."
So build elftosb and bootloader for this processor only for evbarm(-el).


# 1.160 26-Nov-2012 pooka

Build gmake iff we're going to need it.


# 1.159 15-Nov-2012 joerg

Move the build_install logic from lib/Makefile into share/mk and re-use
it for tools. The existing logic broke for the LLVM build with the
recent .ORDER changes in make.


# 1.158 15-Nov-2012 jkunz

Add elftosb tools to evbarm userland and toolchain.
Elftosb is used to create a digitaly signed "secure boot" file.
This sb file can be booted by the first stage boot loader found in
Freescale i.MX23 and i.MX28 application processors.

Copyright (c) 2004-2010 Freescale Semiconductor, Inc.


Revision tags: yamt-pagecache-base6
# 1.157 20-Sep-2012 pooka

fix EXTERNAL_TOOLCHAIN build


# 1.156 10-Aug-2012 joerg

branches: 1.156.2;
Decouple binutils build from HAVE_GCC. Merge common fragments of
HAVE_GCC and HAVE_PCC.


Revision tags: netbsd-6-0-6-RELEASE netbsd-6-1-5-RELEASE netbsd-6-1-4-RELEASE netbsd-6-0-5-RELEASE netbsd-6-1-3-RELEASE netbsd-6-0-4-RELEASE netbsd-6-1-2-RELEASE netbsd-6-0-3-RELEASE netbsd-6-1-1-RELEASE netbsd-6-0-2-RELEASE netbsd-6-1-RELEASE netbsd-6-1-RC4 netbsd-6-1-RC3 netbsd-6-1-RC2 netbsd-6-1-RC1 netbsd-6-0-1-RELEASE matt-nb6-plus-nbase netbsd-6-0-RELEASE netbsd-6-0-RC2 matt-nb6-plus-base netbsd-6-0-RC1 yamt-pagecache-base5 yamt-pagecache-base4 netbsd-6-base yamt-pagecache-base3 yamt-pagecache-base2
# 1.155 03-Nov-2011 joerg

Revert .WAIT removal and add comment why it is needed between *tblgen.


# 1.154 02-Nov-2011 njoly

Do not build tic more than once


# 1.153 02-Nov-2011 christos

move tic later, after all the tools it needs are built.


# 1.152 02-Nov-2011 yamt

tweak dependencies for tic, which needs nbperf, awk, and sed.


Revision tags: yamt-pagecache-base
# 1.151 01-Nov-2011 joerg

branches: 1.151.2;
Remove an unnecessary .WAIT between llvm-tblgen and clang-tblgen.


# 1.150 01-Nov-2011 joerg

Hook up nbperf into the normal tool build.


# 1.149 11-Oct-2011 joerg

Update LLVM/Clang snapshot to r141658. This primarily fixes a regression
preventing Qt4 from building.


# 1.148 16-Jul-2011 tsutsui

Build nbm68k-elf2aout as a host tool on m68k targets
for an ancient PROM bootloader.
Mostly taken from nbmips-elf2ecoff.


# 1.147 10-Jul-2011 mrg

install elf2ecoff for all mips64 systems. it's needed for stand.


# 1.146 21-Jun-2011 mrg

always build gmake if HAVE_GCC.
build gmp, mpfr and then mpc if HAVE_GCC >= 45.


Revision tags: cherry-xenmp-base
# 1.145 15-Apr-2011 elric

branches: 1.145.2;
Upgrade Heimdal to 1.5pre1 by switching the build from crypto/dist/heimdal
to crypto/external/bsd/heimdal. The latter was just imported as the head
of the Heimdal tree as of a few days ago.


# 1.144 17-Mar-2011 riz

.WAIT for makefs, because in most builds, it's the first target
which includes Makefile.nbincludes, whose beforedepend: has
some race condition I don't fully understand, and which has been
causing many (but not all!) -j16 builds on the autobuild cluster
to fail in tools since sometime between 201103061600 and 201103070900.

With the proper voodoo, I was able to get 8 builds in a row to fail
without this change, and 16 in a row to succeed with it.

XXX a proper fix likely involves reworking the beforedepend: target
of Makefile.nbincludes, but this should get the build cluster back up
to full functionality in the meanwhile.


Revision tags: bouyer-quota2-nbase
# 1.143 25-Feb-2011 phx

mkubootimage is certainly useful for sandpoint


Revision tags: bouyer-quota2-base
# 1.142 06-Feb-2011 joerg

Add LLVM and clang build system. It is enabled by MKLLVM=yes.
Upstream sources can be fetched by running "make checkout" in
src/external/bsd/llvm, they will be properly imported once the
integration and missing features are sorted out.


# 1.141 31-Jan-2011 matt

Make mkubootimage for evbmips and evbppc too.


Revision tags: matt-mips64-premerge-20101231
# 1.140 15-Aug-2010 mrg

branches: 1.140.2;
add new option to build/use tools/pigz for compressing sets. for now
USE_PIGZGZIP defaults to "no". (it depends upon local <pthread.h> and -lz.)

you can set it to "yes" on most modern platforms just fine.


# 1.139 18-Jun-2010 jmcneill

hook mkubootimage into the build


# 1.138 04-Jun-2010 jmmv

Bye bye atf-compile, you won't be missed.


# 1.137 02-Mar-2010 darran

DTrace: add libelf, libdwarf, libctf, and CTF tools to the toolchain,
built when MKDTRACE=yes.


# 1.136 20-Feb-2010 joerg

Build mandoc unconditional if man pages are desirable. All
compatibility issues are supposed to be sorted out.
Build groff conditionally on MKGROFF. It is currently the only component
that requires C++.


# 1.135 03-Feb-2010 roy

Store our generated files in CVS and remove nbperf from the toolchain.
This allows us to build consistent libs without an ever changing hash.


# 1.134 03-Feb-2010 roy

Userland now builds and uses terminfo instead of termcap.

OK: core@, jdc@


# 1.133 29-Dec-2009 he

To unbreak the build, temporarily remove the build of libelf here,
since no other part of the build depends on this yet.

Suggested as a temporary workaround by thorpej@


# 1.132 23-Dec-2009 mrg

rework the main SUBDIR list here as suggested by enami. put .WAIT on
the same line as the target that needs to wait, but before the target,
rather than on the previous line, which led to confusion and an error
being introduced in the previous change.


# 1.131 21-Dec-2009 mrg

move the build of pax before libelf. fixes my build of tools/libelf,
though i didn't look to see why libelf needs pax.


# 1.130 21-Dec-2009 thorpej

Add support for building libelf in a host-tool environment.

XXX Makefile.disklabel is really mis-named, but I'm not going to tackle
that problem right now.


Revision tags: matt-premerge-20091211
# 1.129 29-Oct-2009 christos

Give m4 its own .WAIT. Fixes build issue on NetBSD-5.


# 1.128 23-Oct-2009 joerg

Add MKMANDOC option to trigger building cat pages and HTML pages with
mdocml. Add a lintmanpages target for developers to check man pages
with the strictest settings of mandoc.


Revision tags: jym-xensuspend-nbase jym-xensuspend-base
# 1.127 25-Feb-2009 sketch

Disable grep host tool and unbreak NetBSD build until I can come up with a
clean fix.


# 1.126 25-Feb-2009 sketch

Make grep a host tool.


# 1.125 14-Feb-2009 abs

Convert more MACHINE tests to MACHINE_ARCH


Revision tags: netbsd-5-2-3-RELEASE netbsd-5-1-5-RELEASE netbsd-5-2-2-RELEASE netbsd-5-1-4-RELEASE netbsd-5-2-1-RELEASE netbsd-5-1-3-RELEASE netbsd-5-2-RELEASE netbsd-5-2-RC1 netbsd-5-1-2-RELEASE netbsd-5-1-1-RELEASE matt-nb5-mips64-premerge-20101231 matt-nb5-pq3-base netbsd-5-1-RELEASE netbsd-5-1-RC4 matt-nb5-mips64-k15 netbsd-5-1-RC3 netbsd-5-1-RC2 netbsd-5-1-RC1 netbsd-5-0-2-RELEASE matt-nb5-mips64-premerge-20091211 matt-nb5-mips64-u2-k2-k4-k7-k8-k9 matt-nb4-mips64-k7-u2a-k9b matt-nb5-mips64-u1-k1-k5 netbsd-5-0-1-RELEASE netbsd-5-0-RELEASE netbsd-5-0-RC4 netbsd-5-0-RC3 netbsd-5-0-RC2 netbsd-5-0-RC1 netbsd-5-base
# 1.124 25-Oct-2008 apb

branches: 1.124.4; 1.124.8; 1.124.12;
Build sed earlier, just after mktemp. Note that sed and mktemp do not
depend on each other, but the .WAIT is needed to get them both installed
before the remainder of the tools build.


# 1.123 25-Oct-2008 apb

Remove the local handling of the NOSUBDIR variable. We can rely
on bsd.subdir.mk's handling of the NOSUBDIR variable.

Also add some comment to .if/.else/.endif and .for/.endfor lines.


Revision tags: matt-mips64-base2
# 1.122 19-Oct-2008 apb

Add awk as a host tool.


# 1.121 13-Oct-2008 dyoung

Per uwe@'s suggestion, build nbgroff under wider circumstances.
I choose to build it if MKDOC != no or if MKHTML != no. It used
to be built only when MKMAN != no.


# 1.120 05-Oct-2008 apb

Add a .WAIT to ensure that sed is installed early, so that TOOL_SED can
be used during the build of other tools.


# 1.119 26-Sep-2008 apb

Build strfile both as a host tool and as an installed program:
* in games/fortune/strfile/Makefile, build strfile as a
regular program instead of as a host tool;
* add tools/strfile directory to build strfile as a host tool;
* in tools/Makefile, add strfile to SUBDIR list;
* in BSD.*.mk, define TOOL_STRFILE variable;
* in games/fortune/datfiles/Makefile, use TOOL_STRFILE when creating
databases at build time;
* in distrib/sets/lists/games/mi, mention usr/games/strfile.


Revision tags: wrstuden-revivesa-base-3 wrstuden-revivesa-base-2
# 1.118 24-Aug-2008 gmcgarry

Build pcc as host tool if requested.


Revision tags: wrstuden-revivesa-base-1 yamt-pf42-base4 yamt-pf42-base3 wrstuden-revivesa-base
# 1.117 26-May-2008 he

Remove references to bebox-elf2pef and bebox-mkbootimage, now that they
have been integrated in common powerpc tools and subsequently removed.


Revision tags: hpcarm-cleanup-nbase yamt-pf42-base2
# 1.116 30-Apr-2008 garbled

branches: 1.116.2;
Build powerpc-mkbootimage for rs6000 and bebox too.


# 1.115 30-Apr-2008 garbled

Convert prep to use the new unified mkbootimage rather than it's own. This
mkbootimage can be shared by prep, rs6000, and bebox.

TODO: Convert bebox to use this. Needs someone to test.


Revision tags: yamt-pf42-baseX yamt-pf42-base keiichi-mipv6-nbase keiichi-mipv6-base matt-armv6-nbase cube-autoconf-base matt-armv6-base hpcarm-cleanup-base
# 1.114 12-Nov-2007 jmmv

branches: 1.114.6;
Add the atf host tools

This adds reachover Makefiles to build the atf tools required during a
cross-build.


Revision tags: matt-armv6-prevmlocking matt-mips64-base
# 1.113 14-Jan-2007 apb

branches: 1.113.4;
Build join(1) as a host tool.


# 1.112 20-Dec-2006 agc

A commit too far - don't try to build veriexecgen for just now


# 1.111 19-Dec-2006 agc

Build veriexecgen as a host tool


Revision tags: netbsd-4-0-1-RELEASE wrstuden-fixsa-newbase wrstuden-fixsa-base-1 netbsd-4-0-RELEASE netbsd-4-0-RC5 netbsd-4-0-RC4 netbsd-4-0-RC3 netbsd-4-0-RC2 netbsd-4-0-RC1 wrstuden-fixsa-base netbsd-4-base
# 1.110 22-Nov-2006 riz

Make sys/exec_elf.h and machine/elf_machdep.h available to host
tools, and allow paxctl to use them when compiled as a host
tool. This fixes the build on MacOS X (and perhaps other platforms)


# 1.109 17-Nov-2006 dsl

Add some notes about the bogosity of some of the .WAIT stuff.
Remove a 'never had a sane effect' .WAIT from a .ORDER line.
Don't add a (probably incorrect) dependency for 'make install' since
it contradicts a .ORDER line elsewhere when .ORDER applies recursively
to child nodes.
I also think that the stuff that tries to add dependencies between
the stuff that bsd.subdir.mk generates does not DTRT at all.
I suspect that build.sh builds things in an order that avoids issues here.


# 1.108 10-Nov-2006 christos

Add paxctl as a tool.


# 1.107 08-Oct-2006 apb

If PREVIOUSTOOLDIR was empty, then don't complain that it has moved.

Patch from Jukka Salmi in PR 33095.


Revision tags: abandoned-netbsd-4-base
# 1.106 03-Aug-2006 freza

* Fix parallel build race condition between real{all,depend} and
<bsd.subdir.mk> targets.
* No need to pass TOOLDIR to recursive cleandir in real{all,depend}.

With help from he@.
OK by tron@.


# 1.105 03-Aug-2006 tron

Another attempt to fix the race in parallel builds.


# 1.104 19-Jul-2006 tron

Invoking "make cleandir" with "PREVIOUSTOOLDIR" set to the previous
location will not stop recursive "make cleandir" calls. Pass the new
location instead.


# 1.103 18-Jul-2006 lukem

gettext should .WAIT for autoconf.
(The former still doesn't seem to work on read-only source; separate issue)


# 1.102 17-Jul-2006 tron

Avoid getting into a loop of "make cleandir" instances if the location
tool directory has been changed or wasn't recorded before.


# 1.101 17-Jul-2006 tron

Remove ".WAIT" again because it doesn't fix the problem.


# 1.100 12-Jul-2006 tron

Add an extra ".WAIT" to the "realall realdepend" target to make sure
it finished cleaning the tools directory in case of tool directory
mismatch before we try to rebuild the tools.


# 1.99 22-Jun-2006 mrg

only build lint and lint2 if MKLINT != "no".


# 1.98 18-Jun-2006 gdamore

Make TOOL_SED, to allow using our own sed in cases where the host's version
is busted in some way.

The TOOL_SED doesn't use TIOCGWINSIZE, and has some changes to include
nbtool_config.h in a cross build environment.

Combined with some other changes (not yet committed), this allows cross
compiling m68k code on Solaris 10/amd64.


# 1.97 02-Jun-2006 mrg

remove support for building (with) GCC 2.95. also:
- always install <stdbool.h>
- don't generate a fake one for vax / gettext.


# 1.96 11-May-2006 mrg

check HAVE_GCC == 4 not USE_GCC4.


# 1.95 01-Apr-2006 christos

Don't barf if USE_GCC4 is not defined.


# 1.94 29-Mar-2006 jmc

Turn on gmake builds if GCC4 is enabled (and force it's install before continuing


# 1.93 03-Feb-2006 dsl

The realall and realdepend bit that regenerates tools needs to be marked
.MAKE otherwise the 'make' it runs has its own list of jobs instead of
using the jobserver of the enclosing make.


# 1.92 04-Oct-2005 jmc

Make the tools using Makefile.disklabel wait so they don't stomp each other.
Also for now add a dependency to Makefile.disklabel so this doesn't run
3 times. (XXX this really should just be done differently)


# 1.91 12-Jun-2005 dyoung

.include Makefile.disklabel in installboot, so that the
nbinclude/ header files will be installed. Build installboot after
pax, since Makefile.disklabel uses pax to install the headers.


# 1.90 12-Jun-2005 dyoung

Make disklabel(8) and fdisk(8) into "host tools " last step: build
and install ${TOOLDIR}/bin/${MACHINE_GNU_PLATFORM}-disklabel,
${TOOLDIR}/bin/${MACHINE_GNU_PLATFORM}-fdisk by "reaching over" to
the sources in ${NETBSDSRCDIR}/sbin/{disklabel fdisk}/.

To avoid clashes with a build-host's header files, especially on
*BSD, the host-tools versions of fdisk and disklabel search for
#includes such as disklabel.h, disklabel_acorn.h, disklabel_gpt.h,
and bootinfo.h in a new #includes namespace, nbinclude/. That is,
they #include <nbinclude/sys/disklabel.h>, <nbinclude/machine/disklabel.h>,
<nbinclude/sparc64/disklabel.h>, instead of <sys/disklabel.h> and
such. I have also updated the system headers to #include from
nbinclude/-space when HAVE_NBTOOL_CONFIG_H is #defined.


# 1.89 30-May-2005 thorpej

Build genassym as a host tool. Part of PR toolchain/30350


Revision tags: netbsd-3-1-1-RELEASE netbsd-3-0-3-RELEASE netbsd-3-1-RELEASE netbsd-3-0-2-RELEASE netbsd-3-1-RC4 netbsd-3-1-RC3 netbsd-3-1-RC2 netbsd-3-1-RC1 netbsd-3-0-1-RELEASE netbsd-3-0-RELEASE netbsd-3-0-RC6 netbsd-3-0-RC5 netbsd-3-0-RC4 netbsd-3-0-RC3 netbsd-3-0-RC2 netbsd-3-0-RC1 netbsd-3-base
# 1.88 27-Jan-2005 is

We don't need aout2bb any longer.


# 1.87 09-Jan-2005 mycroft

Add some quotes to prevent a syntax error.


# 1.86 28-Nov-2004 jmc

Convert mkboot into a full cross tool. Last hurdle for hp300 to building on
non NetBSD/bsd hosts.


# 1.85 28-Nov-2004 jmc

Convert remaining host tools for amiga to correct cross tools. Now allows
complete amiga builds on non netbsd/bsd hosts


# 1.84 25-Nov-2004 jmc

Convert bebox's remaining host tools over to cross tools scheme. Builds to sets
w/o error now.


# 1.83 28-Jul-2004 skrll

Build hp700's mkboot as a host tool called nbhp700-mkboot. mkboot also
gets built and installed in a hp700 distribution.

TODO

- merge with hp300

- pick a preferred method for dealing with the elf headers.
hp700-mkboot and prep-mkbootimage (bintuils) vs mips-elf2ecoff and
tools/installboot


# 1.82 08-Jun-2004 abs

Add sparkcrc (used to generate checksums for acorn32 bootloader sparkive)
as a host tool.


Revision tags: netbsd-2-0-base
# 1.81 03-Jan-2004 lukem

branches: 1.81.2;
Consistently check ${TOOLCHAIN_MISSING} against "no".


# 1.80 11-Dec-2003 matt

Fix typo.


# 1.79 11-Dec-2003 matt

Add macppc-fixcoff tool.


# 1.78 10-Dec-2003 lukem

Use (cd ${.CURDIR} && ${MAKE} cleandir) instead of ${MAKE} cleandir
Suggested by Ross Harvey.


# 1.77 04-Dec-2003 mrg

always build tools/binutils now.


# 1.76 08-Nov-2003 sekiya

Build sgivol as a host tool when compiling for sgimips.


# 1.75 27-Oct-2003 lukem

add mknod as a host tool


# 1.74 26-Oct-2003 cl

add gdb53 as a host tool for use as a crossgdb
replaces gdb50 from toolchain on archs which use gcc3


# 1.73 21-Oct-2003 lukem

Rework how MAKEVERBOSE operates:

* Don't bother prefixing commands with a line of ${_MKCMD}\
and instead rely upon "make -s". This is less intrusive on
all the Makefiles than the former. Idea from David Laight.

* Rename the variables use to print messages. The scheme now is:
_MKMSG_FOO Run _MKMSG 'foo'
_MKTARGET_FOO Run _MKMSG_FOO ${.TARGET}
From discussion with Alistair Crooks.


# 1.72 19-Oct-2003 matt

Add host tool version of ncdcs


# 1.71 18-Oct-2003 lukem

MAKEVERBOSE support


# 1.70 25-Jul-2003 mrg

- build "binutils" and "gcc" separately if USE_TOOLS_TOOLCHAIN is not set
to "yes".
- adjust dbsym/mdsetimage to look in the correct place for libbfd.
- new mknative-gcc based in toolchain/mknative


# 1.69 24-Jul-2003 tron

Add missing "cleandir" rule.


# 1.68 20-Jul-2003 lukem

add stat(1) as a host tool


# 1.67 16-Jul-2003 lukem

also do the MKTOOLS and PREVIOUSTOOLDIR checks for "realdepend"


# 1.66 16-Jul-2003 lukem

* If a `PREVIOUSTOOLDIR' file doesn't exist, or its contents are not
the same as "$TOOLDIR", run "make cleandir" here first.
This should prevent various problems where $TOOLDIR is encoded into the
build process for various tools (lint, groff, texinfo, toolchain),
$TOOLDIR changes, and various programs don't get rebuilt correctly.
Should fix PR [toolchain/21988].

* Clean up how the `${MKTOOLS} == no' check is performed.

* Remove "cleantools"; it made a big assumption about the location of
TOOLDIR that won't be correct in many cases.


# 1.65 26-Jun-2003 tshiozak

Citrus iconv support(3)
add host tools : mkcsmapper and mkesdb
mkcsmapper - coded character set mapping table compiler
mkesdb - encoding scheme database compiler


# 1.64 18-May-2003 lukem

Add db(1) as a host tool


# 1.63 25-Mar-2003 pooka

build file(1) as a host tool (for compiling magic files)


# 1.62 07-Mar-2003 thorpej

Make hexdump a host tool.


Revision tags: fvdl_fs64_base
# 1.61 21-Dec-2002 lukem

enable sunlabel...


# 1.60 19-Sep-2002 thorpej

Change the TOOLCHAIN_MISSING from == "no" to != "yes", to be consistent
with the other tests of this variable.


# 1.59 19-Sep-2002 matt

Since TOOLCHAIN_MISSING is defined in bsd.own.mk, it can never be undefined.
Instead, make sure the value of it is "no"


# 1.58 17-Sep-2002 thorpej

* Eliminate the USE_NEW_TOOLCHAIN variable. Instead, split it into
two variables:

TOOLCHAIN_MISSING -- set to "yes" on platforms for which there is
no working in-tree toolchain (hppa, ns32k, sh5, x86_64).

EXTERNAL_TOOLCHAIN -- if defined by the user, points to the root of
an external toolchain (e.g. /usr/local/gnu). This enables the cross-build
framework even for TOOLCHAIN_MISSING platforms.

If TOOLCHAIN_MISSING is set to "yes", MKGDB, MKBFD, and MKGCC are all
unconditionally set to "no", since the bits are not there to build.

If EXTERNAL_TOOLCHAIN is set, MKGCC is unconditionally set to "no",
since the external toolchain's compiler is not in-sync with the
in-tree compiler support components (e.g. libgcc).

* Set MACHINE_CPU much earlier in bsd.own.mk, so that more tests in
that file can use it.


# 1.57 14-Sep-2002 chris

We need binstall to be installed, before attempting to use it to install mktemp.


# 1.56 14-Sep-2002 thorpej

Descend into mktemp.


# 1.55 12-Jun-2002 veego

The last commit wasn't tested. Add a missing \


# 1.54 12-Jun-2002 thorpej

Don't build toolchain bits for hppa, for now.


# 1.53 10-Jun-2002 mason

Add cat(1) as a host tool.


# 1.52 05-Jun-2002 thorpej

Don't try to build toolchain bits for ns32k.


# 1.51 28-May-2002 bjh21

Add fgen as a host tool, used for sys/arch/sparc/bootblk.


Revision tags: netbsd-1-6-base
# 1.50 18-May-2002 lukem

branches: 1.50.2;
gratuitious comment addition


# 1.49 07-May-2002 lukem

remove now-unnecessary sparc-installboot


# 1.48 03-May-2002 kleink

On prep, descend into prep-mkbootimage.


# 1.47 06-Apr-2002 bjh21

vax-installboot has been deleted, so don't recurse into it.


# 1.46 03-Apr-2002 lukem

enable installboot


# 1.45 01-Apr-2002 thorpej

Nuke NO_DBSYM; dbsym now uses BFD for everything.


# 1.44 01-Apr-2002 bjh21

On second thoughts, don't make mktemp a host tool. It's only used once, for
creating a temporary directory for maketars, and mkdir can do that safely
enough.


# 1.43 31-Mar-2002 bjh21

Add mktemp as a host tool.


# 1.42 31-Mar-2002 bjh21

Add cksum as a host tool.


# 1.41 29-Mar-2002 matt

Drop into vax-installboot on VAX machines.


# 1.40 07-Mar-2002 tv

Rework recursion to use the original logic again, in the structure cleaned
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".


# 1.39 07-Mar-2002 tv

Don't build groff if MKMAN=no. (groff does not build properly on some
platforms because of its completely insane Make structure; this allows it
to be disabled in a sane way.)


# 1.38 26-Feb-2002 tv

Add gettext to tools.

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.)


# 1.37 23-Feb-2002 gmcgarry

Add elf2ecoff as a build tool for mips ports.


# 1.36 18-Feb-2002 pk

* Add comments on all the directory build/install ordering goo.
* 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.


# 1.35 11-Feb-2002 pk

Revert part of previous; we need the install targets.


# 1.34 10-Feb-2002 pk

Use .ORDER targets to express the dependencies on subdir runs. This makes
the resulting tree complexity O(N) (N=# of subdirs), and it also makes it
easier to comprehend the Makefile logic.


# 1.33 08-Feb-2002 pk

Make sure to not go off installing in a directory before it's fully made.


# 1.32 31-Jan-2002 tv

Roll in fixes to permit cross-compiling from non-NetBSD hosts. This
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.


# 1.31 29-Jan-2002 tv

Make almost all tools compile and run properly on non-NetBSD hosts. (In
particular, most tools now run correctly on Solaris 7.)


# 1.30 25-Jan-2002 lukem

build pax as a host tool, for -N and to work around borken vendor paxes


# 1.29 10-Jan-2002 tv

Move host-mkdep to its own directory. Create and install it before
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.


# 1.28 10-Jan-2002 lukem

revert previous, and reenable tools/makefs now that it works on
netbsd-current and netbsd-1-5


# 1.27 09-Jan-2002 tv

Disable makefs in src/tools for the moment; it's very dependent on -current
NetBSD headers and sources right now. (Temporary workaround for PR 15175.)


# 1.26 05-Jan-2002 mrg

build zic as a host tool.


# 1.25 05-Jan-2002 mrg

build makefs, and, sparc-installboot if sparc||sparc64


# 1.24 31-Dec-2001 thorpej

We can't currently build a toolchain for x86-64 here, so don't
attempt to do so.


# 1.23 29-Dec-2001 wiz

Typo fix in error message.


# 1.22 11-Dec-2001 tv

Add the framework for autoconf-based src/tools/compat structure. This will
(after it is more fleshed out) allow the host tools to work more cleanly
on non-NetBSD hosts.


# 1.21 07-Dec-2001 jmc

Add pwd_mkdb as a toolchain bit for builds


# 1.20 29-Nov-2001 thorpej

Build makewhatis as a host tool, since it is used at the end of
the build.

XXX Needs a -lz hostlib.


# 1.19 22-Nov-2001 jmc

Oops. typo which can break things for non-new toolchain builds if MKTOOLS isn't
set


# 1.18 22-Nov-2001 jmc

Check for USETOOLS!=yes in addition to MKTOOLS==no to generate the empty rule
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


# 1.17 13-Nov-2001 tv

Re-add MKTOOLS as a "yes"/"no" only variable, which prevents recursion on "no"
into the src/tools subdirs on all/depend/dependall/install. Other recursive
targets are not affected.


# 1.16 12-Nov-2001 tv

Major overhaul of src/tools and host toolchain. Summary of changes:

* 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.


# 1.15 09-Nov-2001 thorpej

Build the cross-dbsym.


# 1.14 02-Nov-2001 tv

* Always use the makewrapper when starting a build phase.

* 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.


# 1.13 31-Oct-2001 tv

Don't actually delete the default tooldir on "cleandir"; else we'll nuke
the nbmake that is probably currently running.

Just leave the "cleantools" manual target as a shortcut for the user.


# 1.12 31-Oct-2001 tv

* Create a variable HOST_OSTYPE that represents the host build environment,
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.


# 1.11 31-Oct-2001 tv

* Always descend into "tools" regardless of USETOOLS setting. Instead,
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.


# 1.10 25-Oct-2001 thorpej

Add asn1_compile as a host tool.


# 1.9 21-Oct-2001 jmc

Pull in mdsetimage to the tools builds. (XXX - using libbfd here would
probably be preferrable long term).


# 1.8 20-Oct-2001 jmc

Add mklocale to cross-tools and turn it back on for the builds.


# 1.7 13-Oct-2001 jmc

Add crunchgen, msgc and menuc


# 1.6 09-Oct-2001 enami

Make mtree a host tool and use it when appropriate.


# 1.5 04-Oct-2001 tv

Recurse properly; just add "build" to TARGETS (fixes reported problem where
"make clean" doesn't work at the src/tools level).


# 1.4 22-Sep-2001 tv

Work around "make obj" lossage in tools/. Dunno why this is happening
just yet; will investigate this evening.


# 1.3 22-Sep-2001 tv

Add lorder to TOOLDIR host tools.

Only descend into directories if USE_NEW_TOOLCHAIN is set (allows top level
Makefile to use "-m ${.CURDIR}/share/mk" to get the "correct" <bsd.own.mk>
when descending into src/tools/Makefile).


# 1.2 21-Sep-2001 tv

- Create a real cpp binary.
- Set CC properly in environment for mkdep and lint.
- Add compile_et to TOOLDIR host tools.


# 1.1 14-Aug-2001 tv

Bootstrap toolchain framework, first pass.


# 1.211 27-May-2021 cjep

If we are building date earlier, we need to use an uninstalled copy
of host-mkdep and libnbcompat otherwise the build process looks for
tools that might not be there yet (e.g. fresh build).
Reviewed by martin.


# 1.210 26-May-2021 christos

Add a date tool


Revision tags: cjep_staticlib_x-base
# 1.209 06-May-2021 rin

PR port-mvme68k/56146

Build wrtvid as tools.


# 1.208 25-Apr-2021 christos

Make mips-elf2ecoff available for all mips


# 1.207 06-Feb-2021 dbj

tools: allow MKCROSSGDB to work when not building gcc


# 1.206 28-Jul-2020 uwe

Build mkubootimage for evbsh3 too.


Revision tags: phil-wifi-20200421 phil-wifi-20200411 is-mlppp-base phil-wifi-20200406 phil-wifi-20191119
# 1.205 11-Nov-2019 joerg

Update LLVM to 10.0.0git (01f3a59fb3e2542fce74c768718f594d0debd0da)


# 1.204 26-Sep-2019 bad

Exclude more subdirs if TOOLS_BUILDRUMP=yes.

Exclude subdirs added in the last 3 years but not need for rumpkernel builds.


Revision tags: netbsd-9-2-RELEASE netbsd-9-1-RELEASE netbsd-9-0-RELEASE netbsd-9-0-RC2 netbsd-9-0-RC1 netbsd-9-base phil-wifi-20190609
# 1.203 07-May-2019 hannken

Fix build, "pax" must be built before "libprop".

Ok: Matthew Green mrg@


# 1.202 07-May-2019 thorpej

Add support for libprop as a host tool library.


# 1.201 03-Apr-2019 joerg

Add MKLLVMRT to build a subset of the LLVM stack for JIT purposes.
Hook up AMDGPU backend for clang.


# 1.200 03-Apr-2019 joerg

Revert MKLLVMCMDS changes.


# 1.199 20-Mar-2019 mrg

split MKLLVM into MKLLVM and MKLLVMCMDS, like MKGCC and MKGCCCMDS:

- only build clang or clang-tblgen if MKLLVMCMDS != "no"
- move HAVE_MESA_VER earlier so we can detect mesa 18 and enable
MKLLVM on platforms that need it
- move the clang commands and headers into llvmcmds group
- only build the clang specific LLVM libraries if MKLLVMCMDS != "no"

much of this work came from maya@'s github commit
f90685c11d4460d3098fa35f48b58d1893e974e0, reworked for HAVE_MESA_VER
and llvmcmds vs MKCLANG.


build tested on several platforms and on amd64 and i386 with several
different build options (clang build, gcc build, gcc build with llvm
libs).


Revision tags: pgoyette-compat-20190127 pgoyette-compat-20190118
# 1.198 02-Jan-2019 christos

use MACHINE_CPU for elf2aout


# 1.197 31-Dec-2018 christos

Add an arm-specific elf2aout tool since objdump does not support a.out anymore


Revision tags: pgoyette-compat-1226 pgoyette-compat-1126 pgoyette-compat-1020 pgoyette-compat-0930
# 1.196 25-Sep-2018 joerg

Update build glue for xz-5.2.4. Hook up tools version.


Revision tags: pgoyette-compat-0906
# 1.195 11-Aug-2018 christos

hook in the tools version of grep


Revision tags: pgoyette-compat-0728 phil-wifi-base pgoyette-compat-0625 pgoyette-compat-0521
# 1.194 09-May-2018 joerg

branches: 1.194.2;
For EXTERNAL_TOOLCHAIN, MKLLVM=yes needs to build only tablegen.


Revision tags: pgoyette-compat-0502 pgoyette-compat-0422 pgoyette-compat-0415 pgoyette-compat-0407 pgoyette-compat-0330 pgoyette-compat-0322 pgoyette-compat-0315 pgoyette-compat-base
# 1.193 18-Feb-2018 uwe

branches: 1.193.2;
Fix .endif comment for TOOLS_BUILDRUMP


# 1.192 27-Dec-2017 christos

Better EXTERNAL_TOOLCHAIN support from Zachary McGrew
- Allow mdsetimage and dbsym to be built with EXTERNAL_TOOLCHAIN
- Allow BFDDIR and IBERTYDIR to be overwritten for mdsetimage and dbsym


Revision tags: perseant-stdc-iso10646-base
# 1.191 07-Jun-2017 skrll

branches: 1.191.2;
Hook in dtc/libfdt now that it builds for me


# 1.190 06-Jun-2017 skrll

Disable dtc/libfdt for now


# 1.189 05-Jun-2017 christos

No need to set dtc twice.


# 1.188 05-Jun-2017 christos

Add dtc


Revision tags: netbsd-8-base prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1 pgoyette-localcount-20170320 bouyer-socketcan-base
# 1.187 11-Jan-2017 joerg

branches: 1.187.6;
Sync tools build glue with LLVM pre-4.0.0.


Revision tags: pgoyette-localcount-20170107 pgoyette-localcount-20161104 localcount-20160914 pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base
# 1.186 24-Jan-2016 christos

branches: 1.186.2;
move cvslatest last


# 1.185 24-Jan-2016 christos

Tool version


# 1.184 19-Dec-2015 christos

move sortinfo after pax


# 1.183 18-Dec-2015 christos

Add sortinfo


# 1.182 23-Jul-2015 mrg

remove the xfree86 reachover makefiles and the vast majority of
the support in the rest of the source tree.

X11 sets could use some cleaning up perhaps (just deletion, as
we've never really marked the old X11R6 as obsolete for native
xorg using platforms so far either.)


# 1.181 24-Jun-2015 matt

Support building the xorg X11 libraries under MKCOMPAT.
Add XORG_MACHINE_ARCH to compat's bsd.*.mk
Turn xorg makekeys and makestrs into real host tools which are installed into
${TOOLSDIR}


# 1.180 07-Jan-2015 joerg

Reorganise the way xorg is build. Move build of makestrs into src/tools
as it is needed for the "includes" phase. Make it symlink all necessary
headers in obj to decouple it from "includes" itself, breaking the
dependency cycle. Move the do-x11 target between do-lib and do-build, so
that libraries can get the benefit of build_install (correct .WAIT
behavior) and everything else like "includes" uses the plain SUBDIR
entry in external/mit.


# 1.179 05-Dec-2014 pooka

build genassym for TOOLS_BUILDRUMP


# 1.178 30-Sep-2014 christos

add gpt


Revision tags: netbsd-7-2-RELEASE netbsd-7-1-2-RELEASE netbsd-7-1-1-RELEASE netbsd-7-1-RELEASE netbsd-7-1-RC2 netbsd-7-nhusb-base-20170116 netbsd-7-1-RC1 netbsd-7-0-2-RELEASE netbsd-7-nhusb-base netbsd-7-0-1-RELEASE netbsd-7-0-RELEASE netbsd-7-0-RC3 netbsd-7-0-RC2 netbsd-7-0-RC1 netbsd-7-base tls-maxphys-base
# 1.177 10-Aug-2014 matt

Changes to existing files to enable building AARCH64 userland.
evbarm64-el
This is clang only. While gcc4.8 supports aarch64, no netbsd support has
been written for aarch64 with gcc4.8.


Revision tags: tls-earlyentropy-base
# 1.176 15-Jul-2014 christos

descend to vgrind


# 1.175 15-Jun-2014 pooka

Add cat, rpcgen and stat to TOOLS_BUILDRUMP. They're useful for
installing headers for the app stack cases that need it done, and small
enough to not matter for the kernel-only cases that don't.


# 1.174 14-Jun-2014 mrg

remove remaining makefile support for GCC < 45 that i found.


Revision tags: yamt-pagecache-base9
# 1.173 03-Apr-2014 riastradh

branches: 1.173.2;
ctfconvert/ctfmerge need libdwarf &c., so build them if MKCTF=yes.


Revision tags: riastradh-xf86-video-intel-2-7-1-pre-2-21-15
# 1.172 25-Mar-2014 ozaki-r

Add MKCTF

This variable separates CTF stuffs from MKDTRACE; we can build DTrace
solely without building and using them. This allows us to use DTrace
even if CTF stuffs have problems (actually they have now).

This variable would be merged into MKDTRACE eventually, once CTF stuffs
work correctly again.


Revision tags: riastradh-drm2-base3
# 1.171 24-Feb-2014 skrll

Rename NetBSD/hp700 to NetBSD/hppa.

Unfortunately our VCS isn't very helpful here.


# 1.170 02-Sep-2013 joerg

Update LLVM/Clang snapshot to r189662. This includes many improvements
to the new SLP vectorizer, fast codegen support for PPC and using
terminfo for the color sequences. In addition, add (optional) build
infrastructure for lld to allow easier testing. This is controlled by
MKLLD.


Revision tags: riastradh-drm2-base2 riastradh-drm2-base1
# 1.169 19-Jul-2013 matt

Even if we aren't making a crossgdb still make the object dir for it.


Revision tags: riastradh-drm2-base agc-symver-base
# 1.168 27-Feb-2013 joerg

branches: 1.168.4;
Add infrastructure for building MCLinker.


# 1.167 05-Feb-2013 matt

There are other little endian arm machine_arches other than "arm"
Use MACHINE_CPU and TARGET_ENDIANNESS instead of MACHINE_ARCH


# 1.166 31-Jan-2013 pooka

Use TOOLS_BUILDRUMP=yes to restrict building of tools to those required
for building rump kernels. This cuts down the NetBSD source tree required
by buildrump.sh to a fraction and addresses a size/download time concern
from a person packaging rump kernels for Linux.

No change to the normal case (tested with several -j32/-j64 builds).

reviewed by apb


Revision tags: yamt-pagecache-base8 yamt-pagecache-base7
# 1.165 02-Dec-2012 apb

Make tools/Makefile build host-mkdep, compat, and binstall in that order,
before installing any of them. It installs them in any order relative
to each other. The .WAIT points that used to be between these three
tools are replaced by .ORDER and dependencies.

This is needed in preparation for making tools/compat install
some files into TOOLDIR.


# 1.164 02-Dec-2012 apb

TOOLDIR must be valid, unless MKTOOLS=no.
Add tests and .error directives to enforce this.


# 1.163 02-Dec-2012 apb

If tools are not wanted, then set SUBDIR= empty instead of
defining all the subdir-related targets to do nothing. This way,
the targets are not invoked at all, instead of being invoked but
doing nothing.


# 1.162 02-Dec-2012 apb

remove trailing white space


# 1.161 27-Nov-2012 jkunz

According to the i.MX23 Reference Manual section 3.1, Page 3-3:
"The i.MX23 always operates in litle-endian mode."
So build elftosb and bootloader for this processor only for evbarm(-el).


# 1.160 26-Nov-2012 pooka

Build gmake iff we're going to need it.


# 1.159 15-Nov-2012 joerg

Move the build_install logic from lib/Makefile into share/mk and re-use
it for tools. The existing logic broke for the LLVM build with the
recent .ORDER changes in make.


# 1.158 15-Nov-2012 jkunz

Add elftosb tools to evbarm userland and toolchain.
Elftosb is used to create a digitaly signed "secure boot" file.
This sb file can be booted by the first stage boot loader found in
Freescale i.MX23 and i.MX28 application processors.

Copyright (c) 2004-2010 Freescale Semiconductor, Inc.


Revision tags: yamt-pagecache-base6
# 1.157 20-Sep-2012 pooka

fix EXTERNAL_TOOLCHAIN build


# 1.156 10-Aug-2012 joerg

branches: 1.156.2;
Decouple binutils build from HAVE_GCC. Merge common fragments of
HAVE_GCC and HAVE_PCC.


Revision tags: netbsd-6-0-6-RELEASE netbsd-6-1-5-RELEASE netbsd-6-1-4-RELEASE netbsd-6-0-5-RELEASE netbsd-6-1-3-RELEASE netbsd-6-0-4-RELEASE netbsd-6-1-2-RELEASE netbsd-6-0-3-RELEASE netbsd-6-1-1-RELEASE netbsd-6-0-2-RELEASE netbsd-6-1-RELEASE netbsd-6-1-RC4 netbsd-6-1-RC3 netbsd-6-1-RC2 netbsd-6-1-RC1 netbsd-6-0-1-RELEASE matt-nb6-plus-nbase netbsd-6-0-RELEASE netbsd-6-0-RC2 matt-nb6-plus-base netbsd-6-0-RC1 yamt-pagecache-base5 yamt-pagecache-base4 netbsd-6-base yamt-pagecache-base3 yamt-pagecache-base2
# 1.155 03-Nov-2011 joerg

Revert .WAIT removal and add comment why it is needed between *tblgen.


# 1.154 02-Nov-2011 njoly

Do not build tic more than once


# 1.153 02-Nov-2011 christos

move tic later, after all the tools it needs are built.


# 1.152 02-Nov-2011 yamt

tweak dependencies for tic, which needs nbperf, awk, and sed.


Revision tags: yamt-pagecache-base
# 1.151 01-Nov-2011 joerg

branches: 1.151.2;
Remove an unnecessary .WAIT between llvm-tblgen and clang-tblgen.


# 1.150 01-Nov-2011 joerg

Hook up nbperf into the normal tool build.


# 1.149 11-Oct-2011 joerg

Update LLVM/Clang snapshot to r141658. This primarily fixes a regression
preventing Qt4 from building.


# 1.148 16-Jul-2011 tsutsui

Build nbm68k-elf2aout as a host tool on m68k targets
for an ancient PROM bootloader.
Mostly taken from nbmips-elf2ecoff.


# 1.147 10-Jul-2011 mrg

install elf2ecoff for all mips64 systems. it's needed for stand.


# 1.146 21-Jun-2011 mrg

always build gmake if HAVE_GCC.
build gmp, mpfr and then mpc if HAVE_GCC >= 45.


Revision tags: cherry-xenmp-base
# 1.145 15-Apr-2011 elric

branches: 1.145.2;
Upgrade Heimdal to 1.5pre1 by switching the build from crypto/dist/heimdal
to crypto/external/bsd/heimdal. The latter was just imported as the head
of the Heimdal tree as of a few days ago.


# 1.144 17-Mar-2011 riz

.WAIT for makefs, because in most builds, it's the first target
which includes Makefile.nbincludes, whose beforedepend: has
some race condition I don't fully understand, and which has been
causing many (but not all!) -j16 builds on the autobuild cluster
to fail in tools since sometime between 201103061600 and 201103070900.

With the proper voodoo, I was able to get 8 builds in a row to fail
without this change, and 16 in a row to succeed with it.

XXX a proper fix likely involves reworking the beforedepend: target
of Makefile.nbincludes, but this should get the build cluster back up
to full functionality in the meanwhile.


Revision tags: bouyer-quota2-nbase
# 1.143 25-Feb-2011 phx

mkubootimage is certainly useful for sandpoint


Revision tags: bouyer-quota2-base
# 1.142 06-Feb-2011 joerg

Add LLVM and clang build system. It is enabled by MKLLVM=yes.
Upstream sources can be fetched by running "make checkout" in
src/external/bsd/llvm, they will be properly imported once the
integration and missing features are sorted out.


# 1.141 31-Jan-2011 matt

Make mkubootimage for evbmips and evbppc too.


Revision tags: matt-mips64-premerge-20101231
# 1.140 15-Aug-2010 mrg

branches: 1.140.2;
add new option to build/use tools/pigz for compressing sets. for now
USE_PIGZGZIP defaults to "no". (it depends upon local <pthread.h> and -lz.)

you can set it to "yes" on most modern platforms just fine.


# 1.139 18-Jun-2010 jmcneill

hook mkubootimage into the build


# 1.138 04-Jun-2010 jmmv

Bye bye atf-compile, you won't be missed.


# 1.137 02-Mar-2010 darran

DTrace: add libelf, libdwarf, libctf, and CTF tools to the toolchain,
built when MKDTRACE=yes.


# 1.136 20-Feb-2010 joerg

Build mandoc unconditional if man pages are desirable. All
compatibility issues are supposed to be sorted out.
Build groff conditionally on MKGROFF. It is currently the only component
that requires C++.


# 1.135 03-Feb-2010 roy

Store our generated files in CVS and remove nbperf from the toolchain.
This allows us to build consistent libs without an ever changing hash.


# 1.134 03-Feb-2010 roy

Userland now builds and uses terminfo instead of termcap.

OK: core@, jdc@


# 1.133 29-Dec-2009 he

To unbreak the build, temporarily remove the build of libelf here,
since no other part of the build depends on this yet.

Suggested as a temporary workaround by thorpej@


# 1.132 23-Dec-2009 mrg

rework the main SUBDIR list here as suggested by enami. put .WAIT on
the same line as the target that needs to wait, but before the target,
rather than on the previous line, which led to confusion and an error
being introduced in the previous change.


# 1.131 21-Dec-2009 mrg

move the build of pax before libelf. fixes my build of tools/libelf,
though i didn't look to see why libelf needs pax.


# 1.130 21-Dec-2009 thorpej

Add support for building libelf in a host-tool environment.

XXX Makefile.disklabel is really mis-named, but I'm not going to tackle
that problem right now.


Revision tags: matt-premerge-20091211
# 1.129 29-Oct-2009 christos

Give m4 its own .WAIT. Fixes build issue on NetBSD-5.


# 1.128 23-Oct-2009 joerg

Add MKMANDOC option to trigger building cat pages and HTML pages with
mdocml. Add a lintmanpages target for developers to check man pages
with the strictest settings of mandoc.


Revision tags: jym-xensuspend-nbase jym-xensuspend-base
# 1.127 25-Feb-2009 sketch

Disable grep host tool and unbreak NetBSD build until I can come up with a
clean fix.


# 1.126 25-Feb-2009 sketch

Make grep a host tool.


# 1.125 14-Feb-2009 abs

Convert more MACHINE tests to MACHINE_ARCH


Revision tags: netbsd-5-2-3-RELEASE netbsd-5-1-5-RELEASE netbsd-5-2-2-RELEASE netbsd-5-1-4-RELEASE netbsd-5-2-1-RELEASE netbsd-5-1-3-RELEASE netbsd-5-2-RELEASE netbsd-5-2-RC1 netbsd-5-1-2-RELEASE netbsd-5-1-1-RELEASE matt-nb5-mips64-premerge-20101231 matt-nb5-pq3-base netbsd-5-1-RELEASE netbsd-5-1-RC4 matt-nb5-mips64-k15 netbsd-5-1-RC3 netbsd-5-1-RC2 netbsd-5-1-RC1 netbsd-5-0-2-RELEASE matt-nb5-mips64-premerge-20091211 matt-nb5-mips64-u2-k2-k4-k7-k8-k9 matt-nb4-mips64-k7-u2a-k9b matt-nb5-mips64-u1-k1-k5 netbsd-5-0-1-RELEASE netbsd-5-0-RELEASE netbsd-5-0-RC4 netbsd-5-0-RC3 netbsd-5-0-RC2 netbsd-5-0-RC1 netbsd-5-base
# 1.124 25-Oct-2008 apb

branches: 1.124.4; 1.124.8; 1.124.12;
Build sed earlier, just after mktemp. Note that sed and mktemp do not
depend on each other, but the .WAIT is needed to get them both installed
before the remainder of the tools build.


# 1.123 25-Oct-2008 apb

Remove the local handling of the NOSUBDIR variable. We can rely
on bsd.subdir.mk's handling of the NOSUBDIR variable.

Also add some comment to .if/.else/.endif and .for/.endfor lines.


Revision tags: matt-mips64-base2
# 1.122 19-Oct-2008 apb

Add awk as a host tool.


# 1.121 13-Oct-2008 dyoung

Per uwe@'s suggestion, build nbgroff under wider circumstances.
I choose to build it if MKDOC != no or if MKHTML != no. It used
to be built only when MKMAN != no.


# 1.120 05-Oct-2008 apb

Add a .WAIT to ensure that sed is installed early, so that TOOL_SED can
be used during the build of other tools.


# 1.119 26-Sep-2008 apb

Build strfile both as a host tool and as an installed program:
* in games/fortune/strfile/Makefile, build strfile as a
regular program instead of as a host tool;
* add tools/strfile directory to build strfile as a host tool;
* in tools/Makefile, add strfile to SUBDIR list;
* in BSD.*.mk, define TOOL_STRFILE variable;
* in games/fortune/datfiles/Makefile, use TOOL_STRFILE when creating
databases at build time;
* in distrib/sets/lists/games/mi, mention usr/games/strfile.


Revision tags: wrstuden-revivesa-base-3 wrstuden-revivesa-base-2
# 1.118 24-Aug-2008 gmcgarry

Build pcc as host tool if requested.


Revision tags: wrstuden-revivesa-base-1 yamt-pf42-base4 yamt-pf42-base3 wrstuden-revivesa-base
# 1.117 26-May-2008 he

Remove references to bebox-elf2pef and bebox-mkbootimage, now that they
have been integrated in common powerpc tools and subsequently removed.


Revision tags: hpcarm-cleanup-nbase yamt-pf42-base2
# 1.116 30-Apr-2008 garbled

branches: 1.116.2;
Build powerpc-mkbootimage for rs6000 and bebox too.


# 1.115 30-Apr-2008 garbled

Convert prep to use the new unified mkbootimage rather than it's own. This
mkbootimage can be shared by prep, rs6000, and bebox.

TODO: Convert bebox to use this. Needs someone to test.


Revision tags: yamt-pf42-baseX yamt-pf42-base keiichi-mipv6-nbase keiichi-mipv6-base matt-armv6-nbase cube-autoconf-base matt-armv6-base hpcarm-cleanup-base
# 1.114 12-Nov-2007 jmmv

branches: 1.114.6;
Add the atf host tools

This adds reachover Makefiles to build the atf tools required during a
cross-build.


Revision tags: matt-armv6-prevmlocking matt-mips64-base
# 1.113 14-Jan-2007 apb

branches: 1.113.4;
Build join(1) as a host tool.


# 1.112 20-Dec-2006 agc

A commit too far - don't try to build veriexecgen for just now


# 1.111 19-Dec-2006 agc

Build veriexecgen as a host tool


Revision tags: netbsd-4-0-1-RELEASE wrstuden-fixsa-newbase wrstuden-fixsa-base-1 netbsd-4-0-RELEASE netbsd-4-0-RC5 netbsd-4-0-RC4 netbsd-4-0-RC3 netbsd-4-0-RC2 netbsd-4-0-RC1 wrstuden-fixsa-base netbsd-4-base
# 1.110 22-Nov-2006 riz

Make sys/exec_elf.h and machine/elf_machdep.h available to host
tools, and allow paxctl to use them when compiled as a host
tool. This fixes the build on MacOS X (and perhaps other platforms)


# 1.109 17-Nov-2006 dsl

Add some notes about the bogosity of some of the .WAIT stuff.
Remove a 'never had a sane effect' .WAIT from a .ORDER line.
Don't add a (probably incorrect) dependency for 'make install' since
it contradicts a .ORDER line elsewhere when .ORDER applies recursively
to child nodes.
I also think that the stuff that tries to add dependencies between
the stuff that bsd.subdir.mk generates does not DTRT at all.
I suspect that build.sh builds things in an order that avoids issues here.


# 1.108 10-Nov-2006 christos

Add paxctl as a tool.


# 1.107 08-Oct-2006 apb

If PREVIOUSTOOLDIR was empty, then don't complain that it has moved.

Patch from Jukka Salmi in PR 33095.


Revision tags: abandoned-netbsd-4-base
# 1.106 03-Aug-2006 freza

* Fix parallel build race condition between real{all,depend} and
<bsd.subdir.mk> targets.
* No need to pass TOOLDIR to recursive cleandir in real{all,depend}.

With help from he@.
OK by tron@.


# 1.105 03-Aug-2006 tron

Another attempt to fix the race in parallel builds.


# 1.104 19-Jul-2006 tron

Invoking "make cleandir" with "PREVIOUSTOOLDIR" set to the previous
location will not stop recursive "make cleandir" calls. Pass the new
location instead.


# 1.103 18-Jul-2006 lukem

gettext should .WAIT for autoconf.
(The former still doesn't seem to work on read-only source; separate issue)


# 1.102 17-Jul-2006 tron

Avoid getting into a loop of "make cleandir" instances if the location
tool directory has been changed or wasn't recorded before.


# 1.101 17-Jul-2006 tron

Remove ".WAIT" again because it doesn't fix the problem.


# 1.100 12-Jul-2006 tron

Add an extra ".WAIT" to the "realall realdepend" target to make sure
it finished cleaning the tools directory in case of tool directory
mismatch before we try to rebuild the tools.


# 1.99 22-Jun-2006 mrg

only build lint and lint2 if MKLINT != "no".


# 1.98 18-Jun-2006 gdamore

Make TOOL_SED, to allow using our own sed in cases where the host's version
is busted in some way.

The TOOL_SED doesn't use TIOCGWINSIZE, and has some changes to include
nbtool_config.h in a cross build environment.

Combined with some other changes (not yet committed), this allows cross
compiling m68k code on Solaris 10/amd64.


# 1.97 02-Jun-2006 mrg

remove support for building (with) GCC 2.95. also:
- always install <stdbool.h>
- don't generate a fake one for vax / gettext.


# 1.96 11-May-2006 mrg

check HAVE_GCC == 4 not USE_GCC4.


# 1.95 01-Apr-2006 christos

Don't barf if USE_GCC4 is not defined.


# 1.94 29-Mar-2006 jmc

Turn on gmake builds if GCC4 is enabled (and force it's install before continuing


# 1.93 03-Feb-2006 dsl

The realall and realdepend bit that regenerates tools needs to be marked
.MAKE otherwise the 'make' it runs has its own list of jobs instead of
using the jobserver of the enclosing make.


# 1.92 04-Oct-2005 jmc

Make the tools using Makefile.disklabel wait so they don't stomp each other.
Also for now add a dependency to Makefile.disklabel so this doesn't run
3 times. (XXX this really should just be done differently)


# 1.91 12-Jun-2005 dyoung

.include Makefile.disklabel in installboot, so that the
nbinclude/ header files will be installed. Build installboot after
pax, since Makefile.disklabel uses pax to install the headers.


# 1.90 12-Jun-2005 dyoung

Make disklabel(8) and fdisk(8) into "host tools " last step: build
and install ${TOOLDIR}/bin/${MACHINE_GNU_PLATFORM}-disklabel,
${TOOLDIR}/bin/${MACHINE_GNU_PLATFORM}-fdisk by "reaching over" to
the sources in ${NETBSDSRCDIR}/sbin/{disklabel fdisk}/.

To avoid clashes with a build-host's header files, especially on
*BSD, the host-tools versions of fdisk and disklabel search for
#includes such as disklabel.h, disklabel_acorn.h, disklabel_gpt.h,
and bootinfo.h in a new #includes namespace, nbinclude/. That is,
they #include <nbinclude/sys/disklabel.h>, <nbinclude/machine/disklabel.h>,
<nbinclude/sparc64/disklabel.h>, instead of <sys/disklabel.h> and
such. I have also updated the system headers to #include from
nbinclude/-space when HAVE_NBTOOL_CONFIG_H is #defined.


# 1.89 30-May-2005 thorpej

Build genassym as a host tool. Part of PR toolchain/30350


Revision tags: netbsd-3-1-1-RELEASE netbsd-3-0-3-RELEASE netbsd-3-1-RELEASE netbsd-3-0-2-RELEASE netbsd-3-1-RC4 netbsd-3-1-RC3 netbsd-3-1-RC2 netbsd-3-1-RC1 netbsd-3-0-1-RELEASE netbsd-3-0-RELEASE netbsd-3-0-RC6 netbsd-3-0-RC5 netbsd-3-0-RC4 netbsd-3-0-RC3 netbsd-3-0-RC2 netbsd-3-0-RC1 netbsd-3-base
# 1.88 27-Jan-2005 is

We don't need aout2bb any longer.


# 1.87 09-Jan-2005 mycroft

Add some quotes to prevent a syntax error.


# 1.86 28-Nov-2004 jmc

Convert mkboot into a full cross tool. Last hurdle for hp300 to building on
non NetBSD/bsd hosts.


# 1.85 28-Nov-2004 jmc

Convert remaining host tools for amiga to correct cross tools. Now allows
complete amiga builds on non netbsd/bsd hosts


# 1.84 25-Nov-2004 jmc

Convert bebox's remaining host tools over to cross tools scheme. Builds to sets
w/o error now.


# 1.83 28-Jul-2004 skrll

Build hp700's mkboot as a host tool called nbhp700-mkboot. mkboot also
gets built and installed in a hp700 distribution.

TODO

- merge with hp300

- pick a preferred method for dealing with the elf headers.
hp700-mkboot and prep-mkbootimage (bintuils) vs mips-elf2ecoff and
tools/installboot


# 1.82 08-Jun-2004 abs

Add sparkcrc (used to generate checksums for acorn32 bootloader sparkive)
as a host tool.


Revision tags: netbsd-2-0-base
# 1.81 03-Jan-2004 lukem

branches: 1.81.2;
Consistently check ${TOOLCHAIN_MISSING} against "no".


# 1.80 11-Dec-2003 matt

Fix typo.


# 1.79 11-Dec-2003 matt

Add macppc-fixcoff tool.


# 1.78 10-Dec-2003 lukem

Use (cd ${.CURDIR} && ${MAKE} cleandir) instead of ${MAKE} cleandir
Suggested by Ross Harvey.


# 1.77 04-Dec-2003 mrg

always build tools/binutils now.


# 1.76 08-Nov-2003 sekiya

Build sgivol as a host tool when compiling for sgimips.


# 1.75 27-Oct-2003 lukem

add mknod as a host tool


# 1.74 26-Oct-2003 cl

add gdb53 as a host tool for use as a crossgdb
replaces gdb50 from toolchain on archs which use gcc3


# 1.73 21-Oct-2003 lukem

Rework how MAKEVERBOSE operates:

* Don't bother prefixing commands with a line of ${_MKCMD}\
and instead rely upon "make -s". This is less intrusive on
all the Makefiles than the former. Idea from David Laight.

* Rename the variables use to print messages. The scheme now is:
_MKMSG_FOO Run _MKMSG 'foo'
_MKTARGET_FOO Run _MKMSG_FOO ${.TARGET}
From discussion with Alistair Crooks.


# 1.72 19-Oct-2003 matt

Add host tool version of ncdcs


# 1.71 18-Oct-2003 lukem

MAKEVERBOSE support


# 1.70 25-Jul-2003 mrg

- build "binutils" and "gcc" separately if USE_TOOLS_TOOLCHAIN is not set
to "yes".
- adjust dbsym/mdsetimage to look in the correct place for libbfd.
- new mknative-gcc based in toolchain/mknative


# 1.69 24-Jul-2003 tron

Add missing "cleandir" rule.


# 1.68 20-Jul-2003 lukem

add stat(1) as a host tool


# 1.67 16-Jul-2003 lukem

also do the MKTOOLS and PREVIOUSTOOLDIR checks for "realdepend"


# 1.66 16-Jul-2003 lukem

* If a `PREVIOUSTOOLDIR' file doesn't exist, or its contents are not
the same as "$TOOLDIR", run "make cleandir" here first.
This should prevent various problems where $TOOLDIR is encoded into the
build process for various tools (lint, groff, texinfo, toolchain),
$TOOLDIR changes, and various programs don't get rebuilt correctly.
Should fix PR [toolchain/21988].

* Clean up how the `${MKTOOLS} == no' check is performed.

* Remove "cleantools"; it made a big assumption about the location of
TOOLDIR that won't be correct in many cases.


# 1.65 26-Jun-2003 tshiozak

Citrus iconv support(3)
add host tools : mkcsmapper and mkesdb
mkcsmapper - coded character set mapping table compiler
mkesdb - encoding scheme database compiler


# 1.64 18-May-2003 lukem

Add db(1) as a host tool


# 1.63 25-Mar-2003 pooka

build file(1) as a host tool (for compiling magic files)


# 1.62 07-Mar-2003 thorpej

Make hexdump a host tool.


Revision tags: fvdl_fs64_base
# 1.61 21-Dec-2002 lukem

enable sunlabel...


# 1.60 19-Sep-2002 thorpej

Change the TOOLCHAIN_MISSING from == "no" to != "yes", to be consistent
with the other tests of this variable.


# 1.59 19-Sep-2002 matt

Since TOOLCHAIN_MISSING is defined in bsd.own.mk, it can never be undefined.
Instead, make sure the value of it is "no"


# 1.58 17-Sep-2002 thorpej

* Eliminate the USE_NEW_TOOLCHAIN variable. Instead, split it into
two variables:

TOOLCHAIN_MISSING -- set to "yes" on platforms for which there is
no working in-tree toolchain (hppa, ns32k, sh5, x86_64).

EXTERNAL_TOOLCHAIN -- if defined by the user, points to the root of
an external toolchain (e.g. /usr/local/gnu). This enables the cross-build
framework even for TOOLCHAIN_MISSING platforms.

If TOOLCHAIN_MISSING is set to "yes", MKGDB, MKBFD, and MKGCC are all
unconditionally set to "no", since the bits are not there to build.

If EXTERNAL_TOOLCHAIN is set, MKGCC is unconditionally set to "no",
since the external toolchain's compiler is not in-sync with the
in-tree compiler support components (e.g. libgcc).

* Set MACHINE_CPU much earlier in bsd.own.mk, so that more tests in
that file can use it.


# 1.57 14-Sep-2002 chris

We need binstall to be installed, before attempting to use it to install mktemp.


# 1.56 14-Sep-2002 thorpej

Descend into mktemp.


# 1.55 12-Jun-2002 veego

The last commit wasn't tested. Add a missing \


# 1.54 12-Jun-2002 thorpej

Don't build toolchain bits for hppa, for now.


# 1.53 10-Jun-2002 mason

Add cat(1) as a host tool.


# 1.52 05-Jun-2002 thorpej

Don't try to build toolchain bits for ns32k.


# 1.51 28-May-2002 bjh21

Add fgen as a host tool, used for sys/arch/sparc/bootblk.


Revision tags: netbsd-1-6-base
# 1.50 18-May-2002 lukem

branches: 1.50.2;
gratuitious comment addition


# 1.49 07-May-2002 lukem

remove now-unnecessary sparc-installboot


# 1.48 03-May-2002 kleink

On prep, descend into prep-mkbootimage.


# 1.47 06-Apr-2002 bjh21

vax-installboot has been deleted, so don't recurse into it.


# 1.46 03-Apr-2002 lukem

enable installboot


# 1.45 01-Apr-2002 thorpej

Nuke NO_DBSYM; dbsym now uses BFD for everything.


# 1.44 01-Apr-2002 bjh21

On second thoughts, don't make mktemp a host tool. It's only used once, for
creating a temporary directory for maketars, and mkdir can do that safely
enough.


# 1.43 31-Mar-2002 bjh21

Add mktemp as a host tool.


# 1.42 31-Mar-2002 bjh21

Add cksum as a host tool.


# 1.41 29-Mar-2002 matt

Drop into vax-installboot on VAX machines.


# 1.40 07-Mar-2002 tv

Rework recursion to use the original logic again, in the structure cleaned
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".


# 1.39 07-Mar-2002 tv

Don't build groff if MKMAN=no. (groff does not build properly on some
platforms because of its completely insane Make structure; this allows it
to be disabled in a sane way.)


# 1.38 26-Feb-2002 tv

Add gettext to tools.

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.)


# 1.37 23-Feb-2002 gmcgarry

Add elf2ecoff as a build tool for mips ports.


# 1.36 18-Feb-2002 pk

* Add comments on all the directory build/install ordering goo.
* 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.


# 1.35 11-Feb-2002 pk

Revert part of previous; we need the install targets.


# 1.34 10-Feb-2002 pk

Use .ORDER targets to express the dependencies on subdir runs. This makes
the resulting tree complexity O(N) (N=# of subdirs), and it also makes it
easier to comprehend the Makefile logic.


# 1.33 08-Feb-2002 pk

Make sure to not go off installing in a directory before it's fully made.


# 1.32 31-Jan-2002 tv

Roll in fixes to permit cross-compiling from non-NetBSD hosts. This
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.


# 1.31 29-Jan-2002 tv

Make almost all tools compile and run properly on non-NetBSD hosts. (In
particular, most tools now run correctly on Solaris 7.)


# 1.30 25-Jan-2002 lukem

build pax as a host tool, for -N and to work around borken vendor paxes


# 1.29 10-Jan-2002 tv

Move host-mkdep to its own directory. Create and install it before
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.


# 1.28 10-Jan-2002 lukem

revert previous, and reenable tools/makefs now that it works on
netbsd-current and netbsd-1-5


# 1.27 09-Jan-2002 tv

Disable makefs in src/tools for the moment; it's very dependent on -current
NetBSD headers and sources right now. (Temporary workaround for PR 15175.)


# 1.26 05-Jan-2002 mrg

build zic as a host tool.


# 1.25 05-Jan-2002 mrg

build makefs, and, sparc-installboot if sparc||sparc64


# 1.24 31-Dec-2001 thorpej

We can't currently build a toolchain for x86-64 here, so don't
attempt to do so.


# 1.23 29-Dec-2001 wiz

Typo fix in error message.


# 1.22 11-Dec-2001 tv

Add the framework for autoconf-based src/tools/compat structure. This will
(after it is more fleshed out) allow the host tools to work more cleanly
on non-NetBSD hosts.


# 1.21 07-Dec-2001 jmc

Add pwd_mkdb as a toolchain bit for builds


# 1.20 29-Nov-2001 thorpej

Build makewhatis as a host tool, since it is used at the end of
the build.

XXX Needs a -lz hostlib.


# 1.19 22-Nov-2001 jmc

Oops. typo which can break things for non-new toolchain builds if MKTOOLS isn't
set


# 1.18 22-Nov-2001 jmc

Check for USETOOLS!=yes in addition to MKTOOLS==no to generate the empty rule
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


# 1.17 13-Nov-2001 tv

Re-add MKTOOLS as a "yes"/"no" only variable, which prevents recursion on "no"
into the src/tools subdirs on all/depend/dependall/install. Other recursive
targets are not affected.


# 1.16 12-Nov-2001 tv

Major overhaul of src/tools and host toolchain. Summary of changes:

* 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.


# 1.15 09-Nov-2001 thorpej

Build the cross-dbsym.


# 1.14 02-Nov-2001 tv

* Always use the makewrapper when starting a build phase.

* 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.


# 1.13 31-Oct-2001 tv

Don't actually delete the default tooldir on "cleandir"; else we'll nuke
the nbmake that is probably currently running.

Just leave the "cleantools" manual target as a shortcut for the user.


# 1.12 31-Oct-2001 tv

* Create a variable HOST_OSTYPE that represents the host build environment,
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.


# 1.11 31-Oct-2001 tv

* Always descend into "tools" regardless of USETOOLS setting. Instead,
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.


# 1.10 25-Oct-2001 thorpej

Add asn1_compile as a host tool.


# 1.9 21-Oct-2001 jmc

Pull in mdsetimage to the tools builds. (XXX - using libbfd here would
probably be preferrable long term).


# 1.8 20-Oct-2001 jmc

Add mklocale to cross-tools and turn it back on for the builds.


# 1.7 13-Oct-2001 jmc

Add crunchgen, msgc and menuc


# 1.6 09-Oct-2001 enami

Make mtree a host tool and use it when appropriate.


# 1.5 04-Oct-2001 tv

Recurse properly; just add "build" to TARGETS (fixes reported problem where
"make clean" doesn't work at the src/tools level).


# 1.4 22-Sep-2001 tv

Work around "make obj" lossage in tools/. Dunno why this is happening
just yet; will investigate this evening.


# 1.3 22-Sep-2001 tv

Add lorder to TOOLDIR host tools.

Only descend into directories if USE_NEW_TOOLCHAIN is set (allows top level
Makefile to use "-m ${.CURDIR}/share/mk" to get the "correct" <bsd.own.mk>
when descending into src/tools/Makefile).


# 1.2 21-Sep-2001 tv

- Create a real cpp binary.
- Set CC properly in environment for mkdep and lint.
- Add compile_et to TOOLDIR host tools.


# 1.1 14-Aug-2001 tv

Bootstrap toolchain framework, first pass.


# 1.209 06-May-2021 rin

PR port-mvme68k/56146

Build wrtvid as tools.


# 1.208 25-Apr-2021 christos

Make mips-elf2ecoff available for all mips


# 1.207 06-Feb-2021 dbj

tools: allow MKCROSSGDB to work when not building gcc


# 1.206 28-Jul-2020 uwe

Build mkubootimage for evbsh3 too.


Revision tags: phil-wifi-20200421 phil-wifi-20200411 is-mlppp-base phil-wifi-20200406 phil-wifi-20191119
# 1.205 11-Nov-2019 joerg

Update LLVM to 10.0.0git (01f3a59fb3e2542fce74c768718f594d0debd0da)


# 1.204 26-Sep-2019 bad

Exclude more subdirs if TOOLS_BUILDRUMP=yes.

Exclude subdirs added in the last 3 years but not need for rumpkernel builds.


Revision tags: netbsd-9-1-RELEASE netbsd-9-0-RELEASE netbsd-9-0-RC2 netbsd-9-0-RC1 netbsd-9-base phil-wifi-20190609
# 1.203 07-May-2019 hannken

Fix build, "pax" must be built before "libprop".

Ok: Matthew Green mrg@


# 1.202 07-May-2019 thorpej

Add support for libprop as a host tool library.


# 1.201 03-Apr-2019 joerg

Add MKLLVMRT to build a subset of the LLVM stack for JIT purposes.
Hook up AMDGPU backend for clang.


# 1.200 03-Apr-2019 joerg

Revert MKLLVMCMDS changes.


# 1.199 20-Mar-2019 mrg

split MKLLVM into MKLLVM and MKLLVMCMDS, like MKGCC and MKGCCCMDS:

- only build clang or clang-tblgen if MKLLVMCMDS != "no"
- move HAVE_MESA_VER earlier so we can detect mesa 18 and enable
MKLLVM on platforms that need it
- move the clang commands and headers into llvmcmds group
- only build the clang specific LLVM libraries if MKLLVMCMDS != "no"

much of this work came from maya@'s github commit
f90685c11d4460d3098fa35f48b58d1893e974e0, reworked for HAVE_MESA_VER
and llvmcmds vs MKCLANG.


build tested on several platforms and on amd64 and i386 with several
different build options (clang build, gcc build, gcc build with llvm
libs).


Revision tags: pgoyette-compat-20190127 pgoyette-compat-20190118
# 1.198 02-Jan-2019 christos

use MACHINE_CPU for elf2aout


# 1.197 31-Dec-2018 christos

Add an arm-specific elf2aout tool since objdump does not support a.out anymore


Revision tags: pgoyette-compat-1226 pgoyette-compat-1126 pgoyette-compat-1020 pgoyette-compat-0930
# 1.196 25-Sep-2018 joerg

Update build glue for xz-5.2.4. Hook up tools version.


Revision tags: pgoyette-compat-0906
# 1.195 11-Aug-2018 christos

hook in the tools version of grep


Revision tags: pgoyette-compat-0728 phil-wifi-base pgoyette-compat-0625 pgoyette-compat-0521
# 1.194 09-May-2018 joerg

branches: 1.194.2;
For EXTERNAL_TOOLCHAIN, MKLLVM=yes needs to build only tablegen.


Revision tags: pgoyette-compat-0502 pgoyette-compat-0422 pgoyette-compat-0415 pgoyette-compat-0407 pgoyette-compat-0330 pgoyette-compat-0322 pgoyette-compat-0315 pgoyette-compat-base
# 1.193 18-Feb-2018 uwe

branches: 1.193.2;
Fix .endif comment for TOOLS_BUILDRUMP


# 1.192 27-Dec-2017 christos

Better EXTERNAL_TOOLCHAIN support from Zachary McGrew
- Allow mdsetimage and dbsym to be built with EXTERNAL_TOOLCHAIN
- Allow BFDDIR and IBERTYDIR to be overwritten for mdsetimage and dbsym


Revision tags: perseant-stdc-iso10646-base
# 1.191 07-Jun-2017 skrll

branches: 1.191.2;
Hook in dtc/libfdt now that it builds for me


# 1.190 06-Jun-2017 skrll

Disable dtc/libfdt for now


# 1.189 05-Jun-2017 christos

No need to set dtc twice.


# 1.188 05-Jun-2017 christos

Add dtc


Revision tags: netbsd-8-base prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1 pgoyette-localcount-20170320 bouyer-socketcan-base
# 1.187 11-Jan-2017 joerg

branches: 1.187.6;
Sync tools build glue with LLVM pre-4.0.0.


Revision tags: pgoyette-localcount-20170107 pgoyette-localcount-20161104 localcount-20160914 pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base
# 1.186 24-Jan-2016 christos

branches: 1.186.2;
move cvslatest last


# 1.185 24-Jan-2016 christos

Tool version


# 1.184 19-Dec-2015 christos

move sortinfo after pax


# 1.183 18-Dec-2015 christos

Add sortinfo


# 1.182 23-Jul-2015 mrg

remove the xfree86 reachover makefiles and the vast majority of
the support in the rest of the source tree.

X11 sets could use some cleaning up perhaps (just deletion, as
we've never really marked the old X11R6 as obsolete for native
xorg using platforms so far either.)


# 1.181 24-Jun-2015 matt

Support building the xorg X11 libraries under MKCOMPAT.
Add XORG_MACHINE_ARCH to compat's bsd.*.mk
Turn xorg makekeys and makestrs into real host tools which are installed into
${TOOLSDIR}


# 1.180 07-Jan-2015 joerg

Reorganise the way xorg is build. Move build of makestrs into src/tools
as it is needed for the "includes" phase. Make it symlink all necessary
headers in obj to decouple it from "includes" itself, breaking the
dependency cycle. Move the do-x11 target between do-lib and do-build, so
that libraries can get the benefit of build_install (correct .WAIT
behavior) and everything else like "includes" uses the plain SUBDIR
entry in external/mit.


# 1.179 05-Dec-2014 pooka

build genassym for TOOLS_BUILDRUMP


# 1.178 30-Sep-2014 christos

add gpt


Revision tags: netbsd-7-2-RELEASE netbsd-7-1-2-RELEASE netbsd-7-1-1-RELEASE netbsd-7-1-RELEASE netbsd-7-1-RC2 netbsd-7-nhusb-base-20170116 netbsd-7-1-RC1 netbsd-7-0-2-RELEASE netbsd-7-nhusb-base netbsd-7-0-1-RELEASE netbsd-7-0-RELEASE netbsd-7-0-RC3 netbsd-7-0-RC2 netbsd-7-0-RC1 netbsd-7-base tls-maxphys-base
# 1.177 10-Aug-2014 matt

Changes to existing files to enable building AARCH64 userland.
evbarm64-el
This is clang only. While gcc4.8 supports aarch64, no netbsd support has
been written for aarch64 with gcc4.8.


Revision tags: tls-earlyentropy-base
# 1.176 15-Jul-2014 christos

descend to vgrind


# 1.175 15-Jun-2014 pooka

Add cat, rpcgen and stat to TOOLS_BUILDRUMP. They're useful for
installing headers for the app stack cases that need it done, and small
enough to not matter for the kernel-only cases that don't.


# 1.174 14-Jun-2014 mrg

remove remaining makefile support for GCC < 45 that i found.


Revision tags: yamt-pagecache-base9
# 1.173 03-Apr-2014 riastradh

branches: 1.173.2;
ctfconvert/ctfmerge need libdwarf &c., so build them if MKCTF=yes.


Revision tags: riastradh-xf86-video-intel-2-7-1-pre-2-21-15
# 1.172 25-Mar-2014 ozaki-r

Add MKCTF

This variable separates CTF stuffs from MKDTRACE; we can build DTrace
solely without building and using them. This allows us to use DTrace
even if CTF stuffs have problems (actually they have now).

This variable would be merged into MKDTRACE eventually, once CTF stuffs
work correctly again.


Revision tags: riastradh-drm2-base3
# 1.171 24-Feb-2014 skrll

Rename NetBSD/hp700 to NetBSD/hppa.

Unfortunately our VCS isn't very helpful here.


# 1.170 02-Sep-2013 joerg

Update LLVM/Clang snapshot to r189662. This includes many improvements
to the new SLP vectorizer, fast codegen support for PPC and using
terminfo for the color sequences. In addition, add (optional) build
infrastructure for lld to allow easier testing. This is controlled by
MKLLD.


Revision tags: riastradh-drm2-base2 riastradh-drm2-base1
# 1.169 19-Jul-2013 matt

Even if we aren't making a crossgdb still make the object dir for it.


Revision tags: riastradh-drm2-base agc-symver-base
# 1.168 27-Feb-2013 joerg

branches: 1.168.4;
Add infrastructure for building MCLinker.


# 1.167 05-Feb-2013 matt

There are other little endian arm machine_arches other than "arm"
Use MACHINE_CPU and TARGET_ENDIANNESS instead of MACHINE_ARCH


# 1.166 31-Jan-2013 pooka

Use TOOLS_BUILDRUMP=yes to restrict building of tools to those required
for building rump kernels. This cuts down the NetBSD source tree required
by buildrump.sh to a fraction and addresses a size/download time concern
from a person packaging rump kernels for Linux.

No change to the normal case (tested with several -j32/-j64 builds).

reviewed by apb


Revision tags: yamt-pagecache-base8 yamt-pagecache-base7
# 1.165 02-Dec-2012 apb

Make tools/Makefile build host-mkdep, compat, and binstall in that order,
before installing any of them. It installs them in any order relative
to each other. The .WAIT points that used to be between these three
tools are replaced by .ORDER and dependencies.

This is needed in preparation for making tools/compat install
some files into TOOLDIR.


# 1.164 02-Dec-2012 apb

TOOLDIR must be valid, unless MKTOOLS=no.
Add tests and .error directives to enforce this.


# 1.163 02-Dec-2012 apb

If tools are not wanted, then set SUBDIR= empty instead of
defining all the subdir-related targets to do nothing. This way,
the targets are not invoked at all, instead of being invoked but
doing nothing.


# 1.162 02-Dec-2012 apb

remove trailing white space


# 1.161 27-Nov-2012 jkunz

According to the i.MX23 Reference Manual section 3.1, Page 3-3:
"The i.MX23 always operates in litle-endian mode."
So build elftosb and bootloader for this processor only for evbarm(-el).


# 1.160 26-Nov-2012 pooka

Build gmake iff we're going to need it.


# 1.159 15-Nov-2012 joerg

Move the build_install logic from lib/Makefile into share/mk and re-use
it for tools. The existing logic broke for the LLVM build with the
recent .ORDER changes in make.


# 1.158 15-Nov-2012 jkunz

Add elftosb tools to evbarm userland and toolchain.
Elftosb is used to create a digitaly signed "secure boot" file.
This sb file can be booted by the first stage boot loader found in
Freescale i.MX23 and i.MX28 application processors.

Copyright (c) 2004-2010 Freescale Semiconductor, Inc.


Revision tags: yamt-pagecache-base6
# 1.157 20-Sep-2012 pooka

fix EXTERNAL_TOOLCHAIN build


# 1.156 10-Aug-2012 joerg

branches: 1.156.2;
Decouple binutils build from HAVE_GCC. Merge common fragments of
HAVE_GCC and HAVE_PCC.


Revision tags: netbsd-6-0-6-RELEASE netbsd-6-1-5-RELEASE netbsd-6-1-4-RELEASE netbsd-6-0-5-RELEASE netbsd-6-1-3-RELEASE netbsd-6-0-4-RELEASE netbsd-6-1-2-RELEASE netbsd-6-0-3-RELEASE netbsd-6-1-1-RELEASE netbsd-6-0-2-RELEASE netbsd-6-1-RELEASE netbsd-6-1-RC4 netbsd-6-1-RC3 netbsd-6-1-RC2 netbsd-6-1-RC1 netbsd-6-0-1-RELEASE matt-nb6-plus-nbase netbsd-6-0-RELEASE netbsd-6-0-RC2 matt-nb6-plus-base netbsd-6-0-RC1 yamt-pagecache-base5 yamt-pagecache-base4 netbsd-6-base yamt-pagecache-base3 yamt-pagecache-base2
# 1.155 03-Nov-2011 joerg

Revert .WAIT removal and add comment why it is needed between *tblgen.


# 1.154 02-Nov-2011 njoly

Do not build tic more than once


# 1.153 02-Nov-2011 christos

move tic later, after all the tools it needs are built.


# 1.152 02-Nov-2011 yamt

tweak dependencies for tic, which needs nbperf, awk, and sed.


Revision tags: yamt-pagecache-base
# 1.151 01-Nov-2011 joerg

branches: 1.151.2;
Remove an unnecessary .WAIT between llvm-tblgen and clang-tblgen.


# 1.150 01-Nov-2011 joerg

Hook up nbperf into the normal tool build.


# 1.149 11-Oct-2011 joerg

Update LLVM/Clang snapshot to r141658. This primarily fixes a regression
preventing Qt4 from building.


# 1.148 16-Jul-2011 tsutsui

Build nbm68k-elf2aout as a host tool on m68k targets
for an ancient PROM bootloader.
Mostly taken from nbmips-elf2ecoff.


# 1.147 10-Jul-2011 mrg

install elf2ecoff for all mips64 systems. it's needed for stand.


# 1.146 21-Jun-2011 mrg

always build gmake if HAVE_GCC.
build gmp, mpfr and then mpc if HAVE_GCC >= 45.


Revision tags: cherry-xenmp-base
# 1.145 15-Apr-2011 elric

branches: 1.145.2;
Upgrade Heimdal to 1.5pre1 by switching the build from crypto/dist/heimdal
to crypto/external/bsd/heimdal. The latter was just imported as the head
of the Heimdal tree as of a few days ago.


# 1.144 17-Mar-2011 riz

.WAIT for makefs, because in most builds, it's the first target
which includes Makefile.nbincludes, whose beforedepend: has
some race condition I don't fully understand, and which has been
causing many (but not all!) -j16 builds on the autobuild cluster
to fail in tools since sometime between 201103061600 and 201103070900.

With the proper voodoo, I was able to get 8 builds in a row to fail
without this change, and 16 in a row to succeed with it.

XXX a proper fix likely involves reworking the beforedepend: target
of Makefile.nbincludes, but this should get the build cluster back up
to full functionality in the meanwhile.


Revision tags: bouyer-quota2-nbase
# 1.143 25-Feb-2011 phx

mkubootimage is certainly useful for sandpoint


Revision tags: bouyer-quota2-base
# 1.142 06-Feb-2011 joerg

Add LLVM and clang build system. It is enabled by MKLLVM=yes.
Upstream sources can be fetched by running "make checkout" in
src/external/bsd/llvm, they will be properly imported once the
integration and missing features are sorted out.


# 1.141 31-Jan-2011 matt

Make mkubootimage for evbmips and evbppc too.


Revision tags: matt-mips64-premerge-20101231
# 1.140 15-Aug-2010 mrg

branches: 1.140.2;
add new option to build/use tools/pigz for compressing sets. for now
USE_PIGZGZIP defaults to "no". (it depends upon local <pthread.h> and -lz.)

you can set it to "yes" on most modern platforms just fine.


# 1.139 18-Jun-2010 jmcneill

hook mkubootimage into the build


# 1.138 04-Jun-2010 jmmv

Bye bye atf-compile, you won't be missed.


# 1.137 02-Mar-2010 darran

DTrace: add libelf, libdwarf, libctf, and CTF tools to the toolchain,
built when MKDTRACE=yes.


# 1.136 20-Feb-2010 joerg

Build mandoc unconditional if man pages are desirable. All
compatibility issues are supposed to be sorted out.
Build groff conditionally on MKGROFF. It is currently the only component
that requires C++.


# 1.135 03-Feb-2010 roy

Store our generated files in CVS and remove nbperf from the toolchain.
This allows us to build consistent libs without an ever changing hash.


# 1.134 03-Feb-2010 roy

Userland now builds and uses terminfo instead of termcap.

OK: core@, jdc@


# 1.133 29-Dec-2009 he

To unbreak the build, temporarily remove the build of libelf here,
since no other part of the build depends on this yet.

Suggested as a temporary workaround by thorpej@


# 1.132 23-Dec-2009 mrg

rework the main SUBDIR list here as suggested by enami. put .WAIT on
the same line as the target that needs to wait, but before the target,
rather than on the previous line, which led to confusion and an error
being introduced in the previous change.


# 1.131 21-Dec-2009 mrg

move the build of pax before libelf. fixes my build of tools/libelf,
though i didn't look to see why libelf needs pax.


# 1.130 21-Dec-2009 thorpej

Add support for building libelf in a host-tool environment.

XXX Makefile.disklabel is really mis-named, but I'm not going to tackle
that problem right now.


Revision tags: matt-premerge-20091211
# 1.129 29-Oct-2009 christos

Give m4 its own .WAIT. Fixes build issue on NetBSD-5.


# 1.128 23-Oct-2009 joerg

Add MKMANDOC option to trigger building cat pages and HTML pages with
mdocml. Add a lintmanpages target for developers to check man pages
with the strictest settings of mandoc.


Revision tags: jym-xensuspend-nbase jym-xensuspend-base
# 1.127 25-Feb-2009 sketch

Disable grep host tool and unbreak NetBSD build until I can come up with a
clean fix.


# 1.126 25-Feb-2009 sketch

Make grep a host tool.


# 1.125 14-Feb-2009 abs

Convert more MACHINE tests to MACHINE_ARCH


Revision tags: netbsd-5-2-3-RELEASE netbsd-5-1-5-RELEASE netbsd-5-2-2-RELEASE netbsd-5-1-4-RELEASE netbsd-5-2-1-RELEASE netbsd-5-1-3-RELEASE netbsd-5-2-RELEASE netbsd-5-2-RC1 netbsd-5-1-2-RELEASE netbsd-5-1-1-RELEASE matt-nb5-mips64-premerge-20101231 matt-nb5-pq3-base netbsd-5-1-RELEASE netbsd-5-1-RC4 matt-nb5-mips64-k15 netbsd-5-1-RC3 netbsd-5-1-RC2 netbsd-5-1-RC1 netbsd-5-0-2-RELEASE matt-nb5-mips64-premerge-20091211 matt-nb5-mips64-u2-k2-k4-k7-k8-k9 matt-nb4-mips64-k7-u2a-k9b matt-nb5-mips64-u1-k1-k5 netbsd-5-0-1-RELEASE netbsd-5-0-RELEASE netbsd-5-0-RC4 netbsd-5-0-RC3 netbsd-5-0-RC2 netbsd-5-0-RC1 netbsd-5-base
# 1.124 25-Oct-2008 apb

branches: 1.124.4; 1.124.8; 1.124.12;
Build sed earlier, just after mktemp. Note that sed and mktemp do not
depend on each other, but the .WAIT is needed to get them both installed
before the remainder of the tools build.


# 1.123 25-Oct-2008 apb

Remove the local handling of the NOSUBDIR variable. We can rely
on bsd.subdir.mk's handling of the NOSUBDIR variable.

Also add some comment to .if/.else/.endif and .for/.endfor lines.


Revision tags: matt-mips64-base2
# 1.122 19-Oct-2008 apb

Add awk as a host tool.


# 1.121 13-Oct-2008 dyoung

Per uwe@'s suggestion, build nbgroff under wider circumstances.
I choose to build it if MKDOC != no or if MKHTML != no. It used
to be built only when MKMAN != no.


# 1.120 05-Oct-2008 apb

Add a .WAIT to ensure that sed is installed early, so that TOOL_SED can
be used during the build of other tools.


# 1.119 26-Sep-2008 apb

Build strfile both as a host tool and as an installed program:
* in games/fortune/strfile/Makefile, build strfile as a
regular program instead of as a host tool;
* add tools/strfile directory to build strfile as a host tool;
* in tools/Makefile, add strfile to SUBDIR list;
* in BSD.*.mk, define TOOL_STRFILE variable;
* in games/fortune/datfiles/Makefile, use TOOL_STRFILE when creating
databases at build time;
* in distrib/sets/lists/games/mi, mention usr/games/strfile.


Revision tags: wrstuden-revivesa-base-3 wrstuden-revivesa-base-2
# 1.118 24-Aug-2008 gmcgarry

Build pcc as host tool if requested.


Revision tags: wrstuden-revivesa-base-1 yamt-pf42-base4 yamt-pf42-base3 wrstuden-revivesa-base
# 1.117 26-May-2008 he

Remove references to bebox-elf2pef and bebox-mkbootimage, now that they
have been integrated in common powerpc tools and subsequently removed.


Revision tags: hpcarm-cleanup-nbase yamt-pf42-base2
# 1.116 30-Apr-2008 garbled

branches: 1.116.2;
Build powerpc-mkbootimage for rs6000 and bebox too.


# 1.115 30-Apr-2008 garbled

Convert prep to use the new unified mkbootimage rather than it's own. This
mkbootimage can be shared by prep, rs6000, and bebox.

TODO: Convert bebox to use this. Needs someone to test.


Revision tags: yamt-pf42-baseX yamt-pf42-base keiichi-mipv6-nbase keiichi-mipv6-base matt-armv6-nbase cube-autoconf-base matt-armv6-base hpcarm-cleanup-base
# 1.114 12-Nov-2007 jmmv

branches: 1.114.6;
Add the atf host tools

This adds reachover Makefiles to build the atf tools required during a
cross-build.


Revision tags: matt-armv6-prevmlocking matt-mips64-base
# 1.113 14-Jan-2007 apb

branches: 1.113.4;
Build join(1) as a host tool.


# 1.112 20-Dec-2006 agc

A commit too far - don't try to build veriexecgen for just now


# 1.111 19-Dec-2006 agc

Build veriexecgen as a host tool


Revision tags: netbsd-4-0-1-RELEASE wrstuden-fixsa-newbase wrstuden-fixsa-base-1 netbsd-4-0-RELEASE netbsd-4-0-RC5 netbsd-4-0-RC4 netbsd-4-0-RC3 netbsd-4-0-RC2 netbsd-4-0-RC1 wrstuden-fixsa-base netbsd-4-base
# 1.110 22-Nov-2006 riz

Make sys/exec_elf.h and machine/elf_machdep.h available to host
tools, and allow paxctl to use them when compiled as a host
tool. This fixes the build on MacOS X (and perhaps other platforms)


# 1.109 17-Nov-2006 dsl

Add some notes about the bogosity of some of the .WAIT stuff.
Remove a 'never had a sane effect' .WAIT from a .ORDER line.
Don't add a (probably incorrect) dependency for 'make install' since
it contradicts a .ORDER line elsewhere when .ORDER applies recursively
to child nodes.
I also think that the stuff that tries to add dependencies between
the stuff that bsd.subdir.mk generates does not DTRT at all.
I suspect that build.sh builds things in an order that avoids issues here.


# 1.108 10-Nov-2006 christos

Add paxctl as a tool.


# 1.107 08-Oct-2006 apb

If PREVIOUSTOOLDIR was empty, then don't complain that it has moved.

Patch from Jukka Salmi in PR 33095.


Revision tags: abandoned-netbsd-4-base
# 1.106 03-Aug-2006 freza

* Fix parallel build race condition between real{all,depend} and
<bsd.subdir.mk> targets.
* No need to pass TOOLDIR to recursive cleandir in real{all,depend}.

With help from he@.
OK by tron@.


# 1.105 03-Aug-2006 tron

Another attempt to fix the race in parallel builds.


# 1.104 19-Jul-2006 tron

Invoking "make cleandir" with "PREVIOUSTOOLDIR" set to the previous
location will not stop recursive "make cleandir" calls. Pass the new
location instead.


# 1.103 18-Jul-2006 lukem

gettext should .WAIT for autoconf.
(The former still doesn't seem to work on read-only source; separate issue)


# 1.102 17-Jul-2006 tron

Avoid getting into a loop of "make cleandir" instances if the location
tool directory has been changed or wasn't recorded before.


# 1.101 17-Jul-2006 tron

Remove ".WAIT" again because it doesn't fix the problem.


# 1.100 12-Jul-2006 tron

Add an extra ".WAIT" to the "realall realdepend" target to make sure
it finished cleaning the tools directory in case of tool directory
mismatch before we try to rebuild the tools.


# 1.99 22-Jun-2006 mrg

only build lint and lint2 if MKLINT != "no".


# 1.98 18-Jun-2006 gdamore

Make TOOL_SED, to allow using our own sed in cases where the host's version
is busted in some way.

The TOOL_SED doesn't use TIOCGWINSIZE, and has some changes to include
nbtool_config.h in a cross build environment.

Combined with some other changes (not yet committed), this allows cross
compiling m68k code on Solaris 10/amd64.


# 1.97 02-Jun-2006 mrg

remove support for building (with) GCC 2.95. also:
- always install <stdbool.h>
- don't generate a fake one for vax / gettext.


# 1.96 11-May-2006 mrg

check HAVE_GCC == 4 not USE_GCC4.


# 1.95 01-Apr-2006 christos

Don't barf if USE_GCC4 is not defined.


# 1.94 29-Mar-2006 jmc

Turn on gmake builds if GCC4 is enabled (and force it's install before continuing


# 1.93 03-Feb-2006 dsl

The realall and realdepend bit that regenerates tools needs to be marked
.MAKE otherwise the 'make' it runs has its own list of jobs instead of
using the jobserver of the enclosing make.


# 1.92 04-Oct-2005 jmc

Make the tools using Makefile.disklabel wait so they don't stomp each other.
Also for now add a dependency to Makefile.disklabel so this doesn't run
3 times. (XXX this really should just be done differently)


# 1.91 12-Jun-2005 dyoung

.include Makefile.disklabel in installboot, so that the
nbinclude/ header files will be installed. Build installboot after
pax, since Makefile.disklabel uses pax to install the headers.


# 1.90 12-Jun-2005 dyoung

Make disklabel(8) and fdisk(8) into "host tools " last step: build
and install ${TOOLDIR}/bin/${MACHINE_GNU_PLATFORM}-disklabel,
${TOOLDIR}/bin/${MACHINE_GNU_PLATFORM}-fdisk by "reaching over" to
the sources in ${NETBSDSRCDIR}/sbin/{disklabel fdisk}/.

To avoid clashes with a build-host's header files, especially on
*BSD, the host-tools versions of fdisk and disklabel search for
#includes such as disklabel.h, disklabel_acorn.h, disklabel_gpt.h,
and bootinfo.h in a new #includes namespace, nbinclude/. That is,
they #include <nbinclude/sys/disklabel.h>, <nbinclude/machine/disklabel.h>,
<nbinclude/sparc64/disklabel.h>, instead of <sys/disklabel.h> and
such. I have also updated the system headers to #include from
nbinclude/-space when HAVE_NBTOOL_CONFIG_H is #defined.


# 1.89 30-May-2005 thorpej

Build genassym as a host tool. Part of PR toolchain/30350


Revision tags: netbsd-3-1-1-RELEASE netbsd-3-0-3-RELEASE netbsd-3-1-RELEASE netbsd-3-0-2-RELEASE netbsd-3-1-RC4 netbsd-3-1-RC3 netbsd-3-1-RC2 netbsd-3-1-RC1 netbsd-3-0-1-RELEASE netbsd-3-0-RELEASE netbsd-3-0-RC6 netbsd-3-0-RC5 netbsd-3-0-RC4 netbsd-3-0-RC3 netbsd-3-0-RC2 netbsd-3-0-RC1 netbsd-3-base
# 1.88 27-Jan-2005 is

We don't need aout2bb any longer.


# 1.87 09-Jan-2005 mycroft

Add some quotes to prevent a syntax error.


# 1.86 28-Nov-2004 jmc

Convert mkboot into a full cross tool. Last hurdle for hp300 to building on
non NetBSD/bsd hosts.


# 1.85 28-Nov-2004 jmc

Convert remaining host tools for amiga to correct cross tools. Now allows
complete amiga builds on non netbsd/bsd hosts


# 1.84 25-Nov-2004 jmc

Convert bebox's remaining host tools over to cross tools scheme. Builds to sets
w/o error now.


# 1.83 28-Jul-2004 skrll

Build hp700's mkboot as a host tool called nbhp700-mkboot. mkboot also
gets built and installed in a hp700 distribution.

TODO

- merge with hp300

- pick a preferred method for dealing with the elf headers.
hp700-mkboot and prep-mkbootimage (bintuils) vs mips-elf2ecoff and
tools/installboot


# 1.82 08-Jun-2004 abs

Add sparkcrc (used to generate checksums for acorn32 bootloader sparkive)
as a host tool.


Revision tags: netbsd-2-0-base
# 1.81 03-Jan-2004 lukem

branches: 1.81.2;
Consistently check ${TOOLCHAIN_MISSING} against "no".


# 1.80 11-Dec-2003 matt

Fix typo.


# 1.79 11-Dec-2003 matt

Add macppc-fixcoff tool.


# 1.78 10-Dec-2003 lukem

Use (cd ${.CURDIR} && ${MAKE} cleandir) instead of ${MAKE} cleandir
Suggested by Ross Harvey.


# 1.77 04-Dec-2003 mrg

always build tools/binutils now.


# 1.76 08-Nov-2003 sekiya

Build sgivol as a host tool when compiling for sgimips.


# 1.75 27-Oct-2003 lukem

add mknod as a host tool


# 1.74 26-Oct-2003 cl

add gdb53 as a host tool for use as a crossgdb
replaces gdb50 from toolchain on archs which use gcc3


# 1.73 21-Oct-2003 lukem

Rework how MAKEVERBOSE operates:

* Don't bother prefixing commands with a line of ${_MKCMD}\
and instead rely upon "make -s". This is less intrusive on
all the Makefiles than the former. Idea from David Laight.

* Rename the variables use to print messages. The scheme now is:
_MKMSG_FOO Run _MKMSG 'foo'
_MKTARGET_FOO Run _MKMSG_FOO ${.TARGET}
From discussion with Alistair Crooks.


# 1.72 19-Oct-2003 matt

Add host tool version of ncdcs


# 1.71 18-Oct-2003 lukem

MAKEVERBOSE support


# 1.70 25-Jul-2003 mrg

- build "binutils" and "gcc" separately if USE_TOOLS_TOOLCHAIN is not set
to "yes".
- adjust dbsym/mdsetimage to look in the correct place for libbfd.
- new mknative-gcc based in toolchain/mknative


# 1.69 24-Jul-2003 tron

Add missing "cleandir" rule.


# 1.68 20-Jul-2003 lukem

add stat(1) as a host tool


# 1.67 16-Jul-2003 lukem

also do the MKTOOLS and PREVIOUSTOOLDIR checks for "realdepend"


# 1.66 16-Jul-2003 lukem

* If a `PREVIOUSTOOLDIR' file doesn't exist, or its contents are not
the same as "$TOOLDIR", run "make cleandir" here first.
This should prevent various problems where $TOOLDIR is encoded into the
build process for various tools (lint, groff, texinfo, toolchain),
$TOOLDIR changes, and various programs don't get rebuilt correctly.
Should fix PR [toolchain/21988].

* Clean up how the `${MKTOOLS} == no' check is performed.

* Remove "cleantools"; it made a big assumption about the location of
TOOLDIR that won't be correct in many cases.


# 1.65 26-Jun-2003 tshiozak

Citrus iconv support(3)
add host tools : mkcsmapper and mkesdb
mkcsmapper - coded character set mapping table compiler
mkesdb - encoding scheme database compiler


# 1.64 18-May-2003 lukem

Add db(1) as a host tool


# 1.63 25-Mar-2003 pooka

build file(1) as a host tool (for compiling magic files)


# 1.62 07-Mar-2003 thorpej

Make hexdump a host tool.


Revision tags: fvdl_fs64_base
# 1.61 21-Dec-2002 lukem

enable sunlabel...


# 1.60 19-Sep-2002 thorpej

Change the TOOLCHAIN_MISSING from == "no" to != "yes", to be consistent
with the other tests of this variable.


# 1.59 19-Sep-2002 matt

Since TOOLCHAIN_MISSING is defined in bsd.own.mk, it can never be undefined.
Instead, make sure the value of it is "no"


# 1.58 17-Sep-2002 thorpej

* Eliminate the USE_NEW_TOOLCHAIN variable. Instead, split it into
two variables:

TOOLCHAIN_MISSING -- set to "yes" on platforms for which there is
no working in-tree toolchain (hppa, ns32k, sh5, x86_64).

EXTERNAL_TOOLCHAIN -- if defined by the user, points to the root of
an external toolchain (e.g. /usr/local/gnu). This enables the cross-build
framework even for TOOLCHAIN_MISSING platforms.

If TOOLCHAIN_MISSING is set to "yes", MKGDB, MKBFD, and MKGCC are all
unconditionally set to "no", since the bits are not there to build.

If EXTERNAL_TOOLCHAIN is set, MKGCC is unconditionally set to "no",
since the external toolchain's compiler is not in-sync with the
in-tree compiler support components (e.g. libgcc).

* Set MACHINE_CPU much earlier in bsd.own.mk, so that more tests in
that file can use it.


# 1.57 14-Sep-2002 chris

We need binstall to be installed, before attempting to use it to install mktemp.


# 1.56 14-Sep-2002 thorpej

Descend into mktemp.


# 1.55 12-Jun-2002 veego

The last commit wasn't tested. Add a missing \


# 1.54 12-Jun-2002 thorpej

Don't build toolchain bits for hppa, for now.


# 1.53 10-Jun-2002 mason

Add cat(1) as a host tool.


# 1.52 05-Jun-2002 thorpej

Don't try to build toolchain bits for ns32k.


# 1.51 28-May-2002 bjh21

Add fgen as a host tool, used for sys/arch/sparc/bootblk.


Revision tags: netbsd-1-6-base
# 1.50 18-May-2002 lukem

branches: 1.50.2;
gratuitious comment addition


# 1.49 07-May-2002 lukem

remove now-unnecessary sparc-installboot


# 1.48 03-May-2002 kleink

On prep, descend into prep-mkbootimage.


# 1.47 06-Apr-2002 bjh21

vax-installboot has been deleted, so don't recurse into it.


# 1.46 03-Apr-2002 lukem

enable installboot


# 1.45 01-Apr-2002 thorpej

Nuke NO_DBSYM; dbsym now uses BFD for everything.


# 1.44 01-Apr-2002 bjh21

On second thoughts, don't make mktemp a host tool. It's only used once, for
creating a temporary directory for maketars, and mkdir can do that safely
enough.


# 1.43 31-Mar-2002 bjh21

Add mktemp as a host tool.


# 1.42 31-Mar-2002 bjh21

Add cksum as a host tool.


# 1.41 29-Mar-2002 matt

Drop into vax-installboot on VAX machines.


# 1.40 07-Mar-2002 tv

Rework recursion to use the original logic again, in the structure cleaned
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".


# 1.39 07-Mar-2002 tv

Don't build groff if MKMAN=no. (groff does not build properly on some
platforms because of its completely insane Make structure; this allows it
to be disabled in a sane way.)


# 1.38 26-Feb-2002 tv

Add gettext to tools.

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.)


# 1.37 23-Feb-2002 gmcgarry

Add elf2ecoff as a build tool for mips ports.


# 1.36 18-Feb-2002 pk

* Add comments on all the directory build/install ordering goo.
* 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.


# 1.35 11-Feb-2002 pk

Revert part of previous; we need the install targets.


# 1.34 10-Feb-2002 pk

Use .ORDER targets to express the dependencies on subdir runs. This makes
the resulting tree complexity O(N) (N=# of subdirs), and it also makes it
easier to comprehend the Makefile logic.


# 1.33 08-Feb-2002 pk

Make sure to not go off installing in a directory before it's fully made.


# 1.32 31-Jan-2002 tv

Roll in fixes to permit cross-compiling from non-NetBSD hosts. This
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.


# 1.31 29-Jan-2002 tv

Make almost all tools compile and run properly on non-NetBSD hosts. (In
particular, most tools now run correctly on Solaris 7.)


# 1.30 25-Jan-2002 lukem

build pax as a host tool, for -N and to work around borken vendor paxes


# 1.29 10-Jan-2002 tv

Move host-mkdep to its own directory. Create and install it before
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.


# 1.28 10-Jan-2002 lukem

revert previous, and reenable tools/makefs now that it works on
netbsd-current and netbsd-1-5


# 1.27 09-Jan-2002 tv

Disable makefs in src/tools for the moment; it's very dependent on -current
NetBSD headers and sources right now. (Temporary workaround for PR 15175.)


# 1.26 05-Jan-2002 mrg

build zic as a host tool.


# 1.25 05-Jan-2002 mrg

build makefs, and, sparc-installboot if sparc||sparc64


# 1.24 31-Dec-2001 thorpej

We can't currently build a toolchain for x86-64 here, so don't
attempt to do so.


# 1.23 29-Dec-2001 wiz

Typo fix in error message.


# 1.22 11-Dec-2001 tv

Add the framework for autoconf-based src/tools/compat structure. This will
(after it is more fleshed out) allow the host tools to work more cleanly
on non-NetBSD hosts.


# 1.21 07-Dec-2001 jmc

Add pwd_mkdb as a toolchain bit for builds


# 1.20 29-Nov-2001 thorpej

Build makewhatis as a host tool, since it is used at the end of
the build.

XXX Needs a -lz hostlib.


# 1.19 22-Nov-2001 jmc

Oops. typo which can break things for non-new toolchain builds if MKTOOLS isn't
set


# 1.18 22-Nov-2001 jmc

Check for USETOOLS!=yes in addition to MKTOOLS==no to generate the empty rule
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


# 1.17 13-Nov-2001 tv

Re-add MKTOOLS as a "yes"/"no" only variable, which prevents recursion on "no"
into the src/tools subdirs on all/depend/dependall/install. Other recursive
targets are not affected.


# 1.16 12-Nov-2001 tv

Major overhaul of src/tools and host toolchain. Summary of changes:

* 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.


# 1.15 09-Nov-2001 thorpej

Build the cross-dbsym.


# 1.14 02-Nov-2001 tv

* Always use the makewrapper when starting a build phase.

* 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.


# 1.13 31-Oct-2001 tv

Don't actually delete the default tooldir on "cleandir"; else we'll nuke
the nbmake that is probably currently running.

Just leave the "cleantools" manual target as a shortcut for the user.


# 1.12 31-Oct-2001 tv

* Create a variable HOST_OSTYPE that represents the host build environment,
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.


# 1.11 31-Oct-2001 tv

* Always descend into "tools" regardless of USETOOLS setting. Instead,
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.


# 1.10 25-Oct-2001 thorpej

Add asn1_compile as a host tool.


# 1.9 21-Oct-2001 jmc

Pull in mdsetimage to the tools builds. (XXX - using libbfd here would
probably be preferrable long term).


# 1.8 20-Oct-2001 jmc

Add mklocale to cross-tools and turn it back on for the builds.


# 1.7 13-Oct-2001 jmc

Add crunchgen, msgc and menuc


# 1.6 09-Oct-2001 enami

Make mtree a host tool and use it when appropriate.


# 1.5 04-Oct-2001 tv

Recurse properly; just add "build" to TARGETS (fixes reported problem where
"make clean" doesn't work at the src/tools level).


# 1.4 22-Sep-2001 tv

Work around "make obj" lossage in tools/. Dunno why this is happening
just yet; will investigate this evening.


# 1.3 22-Sep-2001 tv

Add lorder to TOOLDIR host tools.

Only descend into directories if USE_NEW_TOOLCHAIN is set (allows top level
Makefile to use "-m ${.CURDIR}/share/mk" to get the "correct" <bsd.own.mk>
when descending into src/tools/Makefile).


# 1.2 21-Sep-2001 tv

- Create a real cpp binary.
- Set CC properly in environment for mkdep and lint.
- Add compile_et to TOOLDIR host tools.


# 1.1 14-Aug-2001 tv

Bootstrap toolchain framework, first pass.


# 1.208 25-Apr-2021 christos

Make mips-elf2ecoff available for all mips


# 1.207 06-Feb-2021 dbj

tools: allow MKCROSSGDB to work when not building gcc


# 1.206 28-Jul-2020 uwe

Build mkubootimage for evbsh3 too.


Revision tags: phil-wifi-20200421 phil-wifi-20200411 is-mlppp-base phil-wifi-20200406 phil-wifi-20191119
# 1.205 11-Nov-2019 joerg

Update LLVM to 10.0.0git (01f3a59fb3e2542fce74c768718f594d0debd0da)


# 1.204 26-Sep-2019 bad

Exclude more subdirs if TOOLS_BUILDRUMP=yes.

Exclude subdirs added in the last 3 years but not need for rumpkernel builds.


Revision tags: netbsd-9-1-RELEASE netbsd-9-0-RELEASE netbsd-9-0-RC2 netbsd-9-0-RC1 netbsd-9-base phil-wifi-20190609
# 1.203 07-May-2019 hannken

Fix build, "pax" must be built before "libprop".

Ok: Matthew Green mrg@


# 1.202 07-May-2019 thorpej

Add support for libprop as a host tool library.


# 1.201 03-Apr-2019 joerg

Add MKLLVMRT to build a subset of the LLVM stack for JIT purposes.
Hook up AMDGPU backend for clang.


# 1.200 03-Apr-2019 joerg

Revert MKLLVMCMDS changes.


# 1.199 20-Mar-2019 mrg

split MKLLVM into MKLLVM and MKLLVMCMDS, like MKGCC and MKGCCCMDS:

- only build clang or clang-tblgen if MKLLVMCMDS != "no"
- move HAVE_MESA_VER earlier so we can detect mesa 18 and enable
MKLLVM on platforms that need it
- move the clang commands and headers into llvmcmds group
- only build the clang specific LLVM libraries if MKLLVMCMDS != "no"

much of this work came from maya@'s github commit
f90685c11d4460d3098fa35f48b58d1893e974e0, reworked for HAVE_MESA_VER
and llvmcmds vs MKCLANG.


build tested on several platforms and on amd64 and i386 with several
different build options (clang build, gcc build, gcc build with llvm
libs).


Revision tags: pgoyette-compat-20190127 pgoyette-compat-20190118
# 1.198 02-Jan-2019 christos

use MACHINE_CPU for elf2aout


# 1.197 31-Dec-2018 christos

Add an arm-specific elf2aout tool since objdump does not support a.out anymore


Revision tags: pgoyette-compat-1226 pgoyette-compat-1126 pgoyette-compat-1020 pgoyette-compat-0930
# 1.196 25-Sep-2018 joerg

Update build glue for xz-5.2.4. Hook up tools version.


Revision tags: pgoyette-compat-0906
# 1.195 11-Aug-2018 christos

hook in the tools version of grep


Revision tags: pgoyette-compat-0728 phil-wifi-base pgoyette-compat-0625 pgoyette-compat-0521
# 1.194 09-May-2018 joerg

branches: 1.194.2;
For EXTERNAL_TOOLCHAIN, MKLLVM=yes needs to build only tablegen.


Revision tags: pgoyette-compat-0502 pgoyette-compat-0422 pgoyette-compat-0415 pgoyette-compat-0407 pgoyette-compat-0330 pgoyette-compat-0322 pgoyette-compat-0315 pgoyette-compat-base
# 1.193 18-Feb-2018 uwe

branches: 1.193.2;
Fix .endif comment for TOOLS_BUILDRUMP


# 1.192 27-Dec-2017 christos

Better EXTERNAL_TOOLCHAIN support from Zachary McGrew
- Allow mdsetimage and dbsym to be built with EXTERNAL_TOOLCHAIN
- Allow BFDDIR and IBERTYDIR to be overwritten for mdsetimage and dbsym


Revision tags: perseant-stdc-iso10646-base
# 1.191 07-Jun-2017 skrll

branches: 1.191.2;
Hook in dtc/libfdt now that it builds for me


# 1.190 06-Jun-2017 skrll

Disable dtc/libfdt for now


# 1.189 05-Jun-2017 christos

No need to set dtc twice.


# 1.188 05-Jun-2017 christos

Add dtc


Revision tags: netbsd-8-base prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1 pgoyette-localcount-20170320 bouyer-socketcan-base
# 1.187 11-Jan-2017 joerg

branches: 1.187.6;
Sync tools build glue with LLVM pre-4.0.0.


Revision tags: pgoyette-localcount-20170107 pgoyette-localcount-20161104 localcount-20160914 pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base
# 1.186 24-Jan-2016 christos

branches: 1.186.2;
move cvslatest last


# 1.185 24-Jan-2016 christos

Tool version


# 1.184 19-Dec-2015 christos

move sortinfo after pax


# 1.183 18-Dec-2015 christos

Add sortinfo


# 1.182 23-Jul-2015 mrg

remove the xfree86 reachover makefiles and the vast majority of
the support in the rest of the source tree.

X11 sets could use some cleaning up perhaps (just deletion, as
we've never really marked the old X11R6 as obsolete for native
xorg using platforms so far either.)


# 1.181 24-Jun-2015 matt

Support building the xorg X11 libraries under MKCOMPAT.
Add XORG_MACHINE_ARCH to compat's bsd.*.mk
Turn xorg makekeys and makestrs into real host tools which are installed into
${TOOLSDIR}


# 1.180 07-Jan-2015 joerg

Reorganise the way xorg is build. Move build of makestrs into src/tools
as it is needed for the "includes" phase. Make it symlink all necessary
headers in obj to decouple it from "includes" itself, breaking the
dependency cycle. Move the do-x11 target between do-lib and do-build, so
that libraries can get the benefit of build_install (correct .WAIT
behavior) and everything else like "includes" uses the plain SUBDIR
entry in external/mit.


# 1.179 05-Dec-2014 pooka

build genassym for TOOLS_BUILDRUMP


# 1.178 30-Sep-2014 christos

add gpt


Revision tags: netbsd-7-2-RELEASE netbsd-7-1-2-RELEASE netbsd-7-1-1-RELEASE netbsd-7-1-RELEASE netbsd-7-1-RC2 netbsd-7-nhusb-base-20170116 netbsd-7-1-RC1 netbsd-7-0-2-RELEASE netbsd-7-nhusb-base netbsd-7-0-1-RELEASE netbsd-7-0-RELEASE netbsd-7-0-RC3 netbsd-7-0-RC2 netbsd-7-0-RC1 netbsd-7-base tls-maxphys-base
# 1.177 10-Aug-2014 matt

Changes to existing files to enable building AARCH64 userland.
evbarm64-el
This is clang only. While gcc4.8 supports aarch64, no netbsd support has
been written for aarch64 with gcc4.8.


Revision tags: tls-earlyentropy-base
# 1.176 15-Jul-2014 christos

descend to vgrind


# 1.175 15-Jun-2014 pooka

Add cat, rpcgen and stat to TOOLS_BUILDRUMP. They're useful for
installing headers for the app stack cases that need it done, and small
enough to not matter for the kernel-only cases that don't.


# 1.174 14-Jun-2014 mrg

remove remaining makefile support for GCC < 45 that i found.


Revision tags: yamt-pagecache-base9
# 1.173 03-Apr-2014 riastradh

branches: 1.173.2;
ctfconvert/ctfmerge need libdwarf &c., so build them if MKCTF=yes.


Revision tags: riastradh-xf86-video-intel-2-7-1-pre-2-21-15
# 1.172 25-Mar-2014 ozaki-r

Add MKCTF

This variable separates CTF stuffs from MKDTRACE; we can build DTrace
solely without building and using them. This allows us to use DTrace
even if CTF stuffs have problems (actually they have now).

This variable would be merged into MKDTRACE eventually, once CTF stuffs
work correctly again.


Revision tags: riastradh-drm2-base3
# 1.171 24-Feb-2014 skrll

Rename NetBSD/hp700 to NetBSD/hppa.

Unfortunately our VCS isn't very helpful here.


# 1.170 02-Sep-2013 joerg

Update LLVM/Clang snapshot to r189662. This includes many improvements
to the new SLP vectorizer, fast codegen support for PPC and using
terminfo for the color sequences. In addition, add (optional) build
infrastructure for lld to allow easier testing. This is controlled by
MKLLD.


Revision tags: riastradh-drm2-base2 riastradh-drm2-base1
# 1.169 19-Jul-2013 matt

Even if we aren't making a crossgdb still make the object dir for it.


Revision tags: riastradh-drm2-base agc-symver-base
# 1.168 27-Feb-2013 joerg

branches: 1.168.4;
Add infrastructure for building MCLinker.


# 1.167 05-Feb-2013 matt

There are other little endian arm machine_arches other than "arm"
Use MACHINE_CPU and TARGET_ENDIANNESS instead of MACHINE_ARCH


# 1.166 31-Jan-2013 pooka

Use TOOLS_BUILDRUMP=yes to restrict building of tools to those required
for building rump kernels. This cuts down the NetBSD source tree required
by buildrump.sh to a fraction and addresses a size/download time concern
from a person packaging rump kernels for Linux.

No change to the normal case (tested with several -j32/-j64 builds).

reviewed by apb


Revision tags: yamt-pagecache-base8 yamt-pagecache-base7
# 1.165 02-Dec-2012 apb

Make tools/Makefile build host-mkdep, compat, and binstall in that order,
before installing any of them. It installs them in any order relative
to each other. The .WAIT points that used to be between these three
tools are replaced by .ORDER and dependencies.

This is needed in preparation for making tools/compat install
some files into TOOLDIR.


# 1.164 02-Dec-2012 apb

TOOLDIR must be valid, unless MKTOOLS=no.
Add tests and .error directives to enforce this.


# 1.163 02-Dec-2012 apb

If tools are not wanted, then set SUBDIR= empty instead of
defining all the subdir-related targets to do nothing. This way,
the targets are not invoked at all, instead of being invoked but
doing nothing.


# 1.162 02-Dec-2012 apb

remove trailing white space


# 1.161 27-Nov-2012 jkunz

According to the i.MX23 Reference Manual section 3.1, Page 3-3:
"The i.MX23 always operates in litle-endian mode."
So build elftosb and bootloader for this processor only for evbarm(-el).


# 1.160 26-Nov-2012 pooka

Build gmake iff we're going to need it.


# 1.159 15-Nov-2012 joerg

Move the build_install logic from lib/Makefile into share/mk and re-use
it for tools. The existing logic broke for the LLVM build with the
recent .ORDER changes in make.


# 1.158 15-Nov-2012 jkunz

Add elftosb tools to evbarm userland and toolchain.
Elftosb is used to create a digitaly signed "secure boot" file.
This sb file can be booted by the first stage boot loader found in
Freescale i.MX23 and i.MX28 application processors.

Copyright (c) 2004-2010 Freescale Semiconductor, Inc.


Revision tags: yamt-pagecache-base6
# 1.157 20-Sep-2012 pooka

fix EXTERNAL_TOOLCHAIN build


# 1.156 10-Aug-2012 joerg

branches: 1.156.2;
Decouple binutils build from HAVE_GCC. Merge common fragments of
HAVE_GCC and HAVE_PCC.


Revision tags: netbsd-6-0-6-RELEASE netbsd-6-1-5-RELEASE netbsd-6-1-4-RELEASE netbsd-6-0-5-RELEASE netbsd-6-1-3-RELEASE netbsd-6-0-4-RELEASE netbsd-6-1-2-RELEASE netbsd-6-0-3-RELEASE netbsd-6-1-1-RELEASE netbsd-6-0-2-RELEASE netbsd-6-1-RELEASE netbsd-6-1-RC4 netbsd-6-1-RC3 netbsd-6-1-RC2 netbsd-6-1-RC1 netbsd-6-0-1-RELEASE matt-nb6-plus-nbase netbsd-6-0-RELEASE netbsd-6-0-RC2 matt-nb6-plus-base netbsd-6-0-RC1 yamt-pagecache-base5 yamt-pagecache-base4 netbsd-6-base yamt-pagecache-base3 yamt-pagecache-base2
# 1.155 03-Nov-2011 joerg

Revert .WAIT removal and add comment why it is needed between *tblgen.


# 1.154 02-Nov-2011 njoly

Do not build tic more than once


# 1.153 02-Nov-2011 christos

move tic later, after all the tools it needs are built.


# 1.152 02-Nov-2011 yamt

tweak dependencies for tic, which needs nbperf, awk, and sed.


Revision tags: yamt-pagecache-base
# 1.151 01-Nov-2011 joerg

branches: 1.151.2;
Remove an unnecessary .WAIT between llvm-tblgen and clang-tblgen.


# 1.150 01-Nov-2011 joerg

Hook up nbperf into the normal tool build.


# 1.149 11-Oct-2011 joerg

Update LLVM/Clang snapshot to r141658. This primarily fixes a regression
preventing Qt4 from building.


# 1.148 16-Jul-2011 tsutsui

Build nbm68k-elf2aout as a host tool on m68k targets
for an ancient PROM bootloader.
Mostly taken from nbmips-elf2ecoff.


# 1.147 10-Jul-2011 mrg

install elf2ecoff for all mips64 systems. it's needed for stand.


# 1.146 21-Jun-2011 mrg

always build gmake if HAVE_GCC.
build gmp, mpfr and then mpc if HAVE_GCC >= 45.


Revision tags: cherry-xenmp-base
# 1.145 15-Apr-2011 elric

branches: 1.145.2;
Upgrade Heimdal to 1.5pre1 by switching the build from crypto/dist/heimdal
to crypto/external/bsd/heimdal. The latter was just imported as the head
of the Heimdal tree as of a few days ago.


# 1.144 17-Mar-2011 riz

.WAIT for makefs, because in most builds, it's the first target
which includes Makefile.nbincludes, whose beforedepend: has
some race condition I don't fully understand, and which has been
causing many (but not all!) -j16 builds on the autobuild cluster
to fail in tools since sometime between 201103061600 and 201103070900.

With the proper voodoo, I was able to get 8 builds in a row to fail
without this change, and 16 in a row to succeed with it.

XXX a proper fix likely involves reworking the beforedepend: target
of Makefile.nbincludes, but this should get the build cluster back up
to full functionality in the meanwhile.


Revision tags: bouyer-quota2-nbase
# 1.143 25-Feb-2011 phx

mkubootimage is certainly useful for sandpoint


Revision tags: bouyer-quota2-base
# 1.142 06-Feb-2011 joerg

Add LLVM and clang build system. It is enabled by MKLLVM=yes.
Upstream sources can be fetched by running "make checkout" in
src/external/bsd/llvm, they will be properly imported once the
integration and missing features are sorted out.


# 1.141 31-Jan-2011 matt

Make mkubootimage for evbmips and evbppc too.


Revision tags: matt-mips64-premerge-20101231
# 1.140 15-Aug-2010 mrg

branches: 1.140.2;
add new option to build/use tools/pigz for compressing sets. for now
USE_PIGZGZIP defaults to "no". (it depends upon local <pthread.h> and -lz.)

you can set it to "yes" on most modern platforms just fine.


# 1.139 18-Jun-2010 jmcneill

hook mkubootimage into the build


# 1.138 04-Jun-2010 jmmv

Bye bye atf-compile, you won't be missed.


# 1.137 02-Mar-2010 darran

DTrace: add libelf, libdwarf, libctf, and CTF tools to the toolchain,
built when MKDTRACE=yes.


# 1.136 20-Feb-2010 joerg

Build mandoc unconditional if man pages are desirable. All
compatibility issues are supposed to be sorted out.
Build groff conditionally on MKGROFF. It is currently the only component
that requires C++.


# 1.135 03-Feb-2010 roy

Store our generated files in CVS and remove nbperf from the toolchain.
This allows us to build consistent libs without an ever changing hash.


# 1.134 03-Feb-2010 roy

Userland now builds and uses terminfo instead of termcap.

OK: core@, jdc@


# 1.133 29-Dec-2009 he

To unbreak the build, temporarily remove the build of libelf here,
since no other part of the build depends on this yet.

Suggested as a temporary workaround by thorpej@


# 1.132 23-Dec-2009 mrg

rework the main SUBDIR list here as suggested by enami. put .WAIT on
the same line as the target that needs to wait, but before the target,
rather than on the previous line, which led to confusion and an error
being introduced in the previous change.


# 1.131 21-Dec-2009 mrg

move the build of pax before libelf. fixes my build of tools/libelf,
though i didn't look to see why libelf needs pax.


# 1.130 21-Dec-2009 thorpej

Add support for building libelf in a host-tool environment.

XXX Makefile.disklabel is really mis-named, but I'm not going to tackle
that problem right now.


Revision tags: matt-premerge-20091211
# 1.129 29-Oct-2009 christos

Give m4 its own .WAIT. Fixes build issue on NetBSD-5.


# 1.128 23-Oct-2009 joerg

Add MKMANDOC option to trigger building cat pages and HTML pages with
mdocml. Add a lintmanpages target for developers to check man pages
with the strictest settings of mandoc.


Revision tags: jym-xensuspend-nbase jym-xensuspend-base
# 1.127 25-Feb-2009 sketch

Disable grep host tool and unbreak NetBSD build until I can come up with a
clean fix.


# 1.126 25-Feb-2009 sketch

Make grep a host tool.


# 1.125 14-Feb-2009 abs

Convert more MACHINE tests to MACHINE_ARCH


Revision tags: netbsd-5-2-3-RELEASE netbsd-5-1-5-RELEASE netbsd-5-2-2-RELEASE netbsd-5-1-4-RELEASE netbsd-5-2-1-RELEASE netbsd-5-1-3-RELEASE netbsd-5-2-RELEASE netbsd-5-2-RC1 netbsd-5-1-2-RELEASE netbsd-5-1-1-RELEASE matt-nb5-mips64-premerge-20101231 matt-nb5-pq3-base netbsd-5-1-RELEASE netbsd-5-1-RC4 matt-nb5-mips64-k15 netbsd-5-1-RC3 netbsd-5-1-RC2 netbsd-5-1-RC1 netbsd-5-0-2-RELEASE matt-nb5-mips64-premerge-20091211 matt-nb5-mips64-u2-k2-k4-k7-k8-k9 matt-nb4-mips64-k7-u2a-k9b matt-nb5-mips64-u1-k1-k5 netbsd-5-0-1-RELEASE netbsd-5-0-RELEASE netbsd-5-0-RC4 netbsd-5-0-RC3 netbsd-5-0-RC2 netbsd-5-0-RC1 netbsd-5-base
# 1.124 25-Oct-2008 apb

branches: 1.124.4; 1.124.8; 1.124.12;
Build sed earlier, just after mktemp. Note that sed and mktemp do not
depend on each other, but the .WAIT is needed to get them both installed
before the remainder of the tools build.


# 1.123 25-Oct-2008 apb

Remove the local handling of the NOSUBDIR variable. We can rely
on bsd.subdir.mk's handling of the NOSUBDIR variable.

Also add some comment to .if/.else/.endif and .for/.endfor lines.


Revision tags: matt-mips64-base2
# 1.122 19-Oct-2008 apb

Add awk as a host tool.


# 1.121 13-Oct-2008 dyoung

Per uwe@'s suggestion, build nbgroff under wider circumstances.
I choose to build it if MKDOC != no or if MKHTML != no. It used
to be built only when MKMAN != no.


# 1.120 05-Oct-2008 apb

Add a .WAIT to ensure that sed is installed early, so that TOOL_SED can
be used during the build of other tools.


# 1.119 26-Sep-2008 apb

Build strfile both as a host tool and as an installed program:
* in games/fortune/strfile/Makefile, build strfile as a
regular program instead of as a host tool;
* add tools/strfile directory to build strfile as a host tool;
* in tools/Makefile, add strfile to SUBDIR list;
* in BSD.*.mk, define TOOL_STRFILE variable;
* in games/fortune/datfiles/Makefile, use TOOL_STRFILE when creating
databases at build time;
* in distrib/sets/lists/games/mi, mention usr/games/strfile.


Revision tags: wrstuden-revivesa-base-3 wrstuden-revivesa-base-2
# 1.118 24-Aug-2008 gmcgarry

Build pcc as host tool if requested.


Revision tags: wrstuden-revivesa-base-1 yamt-pf42-base4 yamt-pf42-base3 wrstuden-revivesa-base
# 1.117 26-May-2008 he

Remove references to bebox-elf2pef and bebox-mkbootimage, now that they
have been integrated in common powerpc tools and subsequently removed.


Revision tags: hpcarm-cleanup-nbase yamt-pf42-base2
# 1.116 30-Apr-2008 garbled

branches: 1.116.2;
Build powerpc-mkbootimage for rs6000 and bebox too.


# 1.115 30-Apr-2008 garbled

Convert prep to use the new unified mkbootimage rather than it's own. This
mkbootimage can be shared by prep, rs6000, and bebox.

TODO: Convert bebox to use this. Needs someone to test.


Revision tags: yamt-pf42-baseX yamt-pf42-base keiichi-mipv6-nbase keiichi-mipv6-base matt-armv6-nbase cube-autoconf-base matt-armv6-base hpcarm-cleanup-base
# 1.114 12-Nov-2007 jmmv

branches: 1.114.6;
Add the atf host tools

This adds reachover Makefiles to build the atf tools required during a
cross-build.


Revision tags: matt-armv6-prevmlocking matt-mips64-base
# 1.113 14-Jan-2007 apb

branches: 1.113.4;
Build join(1) as a host tool.


# 1.112 20-Dec-2006 agc

A commit too far - don't try to build veriexecgen for just now


# 1.111 19-Dec-2006 agc

Build veriexecgen as a host tool


Revision tags: netbsd-4-0-1-RELEASE wrstuden-fixsa-newbase wrstuden-fixsa-base-1 netbsd-4-0-RELEASE netbsd-4-0-RC5 netbsd-4-0-RC4 netbsd-4-0-RC3 netbsd-4-0-RC2 netbsd-4-0-RC1 wrstuden-fixsa-base netbsd-4-base
# 1.110 22-Nov-2006 riz

Make sys/exec_elf.h and machine/elf_machdep.h available to host
tools, and allow paxctl to use them when compiled as a host
tool. This fixes the build on MacOS X (and perhaps other platforms)


# 1.109 17-Nov-2006 dsl

Add some notes about the bogosity of some of the .WAIT stuff.
Remove a 'never had a sane effect' .WAIT from a .ORDER line.
Don't add a (probably incorrect) dependency for 'make install' since
it contradicts a .ORDER line elsewhere when .ORDER applies recursively
to child nodes.
I also think that the stuff that tries to add dependencies between
the stuff that bsd.subdir.mk generates does not DTRT at all.
I suspect that build.sh builds things in an order that avoids issues here.


# 1.108 10-Nov-2006 christos

Add paxctl as a tool.


# 1.107 08-Oct-2006 apb

If PREVIOUSTOOLDIR was empty, then don't complain that it has moved.

Patch from Jukka Salmi in PR 33095.


Revision tags: abandoned-netbsd-4-base
# 1.106 03-Aug-2006 freza

* Fix parallel build race condition between real{all,depend} and
<bsd.subdir.mk> targets.
* No need to pass TOOLDIR to recursive cleandir in real{all,depend}.

With help from he@.
OK by tron@.


# 1.105 03-Aug-2006 tron

Another attempt to fix the race in parallel builds.


# 1.104 19-Jul-2006 tron

Invoking "make cleandir" with "PREVIOUSTOOLDIR" set to the previous
location will not stop recursive "make cleandir" calls. Pass the new
location instead.


# 1.103 18-Jul-2006 lukem

gettext should .WAIT for autoconf.
(The former still doesn't seem to work on read-only source; separate issue)


# 1.102 17-Jul-2006 tron

Avoid getting into a loop of "make cleandir" instances if the location
tool directory has been changed or wasn't recorded before.


# 1.101 17-Jul-2006 tron

Remove ".WAIT" again because it doesn't fix the problem.


# 1.100 12-Jul-2006 tron

Add an extra ".WAIT" to the "realall realdepend" target to make sure
it finished cleaning the tools directory in case of tool directory
mismatch before we try to rebuild the tools.


# 1.99 22-Jun-2006 mrg

only build lint and lint2 if MKLINT != "no".


# 1.98 18-Jun-2006 gdamore

Make TOOL_SED, to allow using our own sed in cases where the host's version
is busted in some way.

The TOOL_SED doesn't use TIOCGWINSIZE, and has some changes to include
nbtool_config.h in a cross build environment.

Combined with some other changes (not yet committed), this allows cross
compiling m68k code on Solaris 10/amd64.


# 1.97 02-Jun-2006 mrg

remove support for building (with) GCC 2.95. also:
- always install <stdbool.h>
- don't generate a fake one for vax / gettext.


# 1.96 11-May-2006 mrg

check HAVE_GCC == 4 not USE_GCC4.


# 1.95 01-Apr-2006 christos

Don't barf if USE_GCC4 is not defined.


# 1.94 29-Mar-2006 jmc

Turn on gmake builds if GCC4 is enabled (and force it's install before continuing


# 1.93 03-Feb-2006 dsl

The realall and realdepend bit that regenerates tools needs to be marked
.MAKE otherwise the 'make' it runs has its own list of jobs instead of
using the jobserver of the enclosing make.


# 1.92 04-Oct-2005 jmc

Make the tools using Makefile.disklabel wait so they don't stomp each other.
Also for now add a dependency to Makefile.disklabel so this doesn't run
3 times. (XXX this really should just be done differently)


# 1.91 12-Jun-2005 dyoung

.include Makefile.disklabel in installboot, so that the
nbinclude/ header files will be installed. Build installboot after
pax, since Makefile.disklabel uses pax to install the headers.


# 1.90 12-Jun-2005 dyoung

Make disklabel(8) and fdisk(8) into "host tools " last step: build
and install ${TOOLDIR}/bin/${MACHINE_GNU_PLATFORM}-disklabel,
${TOOLDIR}/bin/${MACHINE_GNU_PLATFORM}-fdisk by "reaching over" to
the sources in ${NETBSDSRCDIR}/sbin/{disklabel fdisk}/.

To avoid clashes with a build-host's header files, especially on
*BSD, the host-tools versions of fdisk and disklabel search for
#includes such as disklabel.h, disklabel_acorn.h, disklabel_gpt.h,
and bootinfo.h in a new #includes namespace, nbinclude/. That is,
they #include <nbinclude/sys/disklabel.h>, <nbinclude/machine/disklabel.h>,
<nbinclude/sparc64/disklabel.h>, instead of <sys/disklabel.h> and
such. I have also updated the system headers to #include from
nbinclude/-space when HAVE_NBTOOL_CONFIG_H is #defined.


# 1.89 30-May-2005 thorpej

Build genassym as a host tool. Part of PR toolchain/30350


Revision tags: netbsd-3-1-1-RELEASE netbsd-3-0-3-RELEASE netbsd-3-1-RELEASE netbsd-3-0-2-RELEASE netbsd-3-1-RC4 netbsd-3-1-RC3 netbsd-3-1-RC2 netbsd-3-1-RC1 netbsd-3-0-1-RELEASE netbsd-3-0-RELEASE netbsd-3-0-RC6 netbsd-3-0-RC5 netbsd-3-0-RC4 netbsd-3-0-RC3 netbsd-3-0-RC2 netbsd-3-0-RC1 netbsd-3-base
# 1.88 27-Jan-2005 is

We don't need aout2bb any longer.


# 1.87 09-Jan-2005 mycroft

Add some quotes to prevent a syntax error.


# 1.86 28-Nov-2004 jmc

Convert mkboot into a full cross tool. Last hurdle for hp300 to building on
non NetBSD/bsd hosts.


# 1.85 28-Nov-2004 jmc

Convert remaining host tools for amiga to correct cross tools. Now allows
complete amiga builds on non netbsd/bsd hosts


# 1.84 25-Nov-2004 jmc

Convert bebox's remaining host tools over to cross tools scheme. Builds to sets
w/o error now.


# 1.83 28-Jul-2004 skrll

Build hp700's mkboot as a host tool called nbhp700-mkboot. mkboot also
gets built and installed in a hp700 distribution.

TODO

- merge with hp300

- pick a preferred method for dealing with the elf headers.
hp700-mkboot and prep-mkbootimage (bintuils) vs mips-elf2ecoff and
tools/installboot


# 1.82 08-Jun-2004 abs

Add sparkcrc (used to generate checksums for acorn32 bootloader sparkive)
as a host tool.


Revision tags: netbsd-2-0-base
# 1.81 03-Jan-2004 lukem

branches: 1.81.2;
Consistently check ${TOOLCHAIN_MISSING} against "no".


# 1.80 11-Dec-2003 matt

Fix typo.


# 1.79 11-Dec-2003 matt

Add macppc-fixcoff tool.


# 1.78 10-Dec-2003 lukem

Use (cd ${.CURDIR} && ${MAKE} cleandir) instead of ${MAKE} cleandir
Suggested by Ross Harvey.


# 1.77 04-Dec-2003 mrg

always build tools/binutils now.


# 1.76 08-Nov-2003 sekiya

Build sgivol as a host tool when compiling for sgimips.


# 1.75 27-Oct-2003 lukem

add mknod as a host tool


# 1.74 26-Oct-2003 cl

add gdb53 as a host tool for use as a crossgdb
replaces gdb50 from toolchain on archs which use gcc3


# 1.73 21-Oct-2003 lukem

Rework how MAKEVERBOSE operates:

* Don't bother prefixing commands with a line of ${_MKCMD}\
and instead rely upon "make -s". This is less intrusive on
all the Makefiles than the former. Idea from David Laight.

* Rename the variables use to print messages. The scheme now is:
_MKMSG_FOO Run _MKMSG 'foo'
_MKTARGET_FOO Run _MKMSG_FOO ${.TARGET}
From discussion with Alistair Crooks.


# 1.72 19-Oct-2003 matt

Add host tool version of ncdcs


# 1.71 18-Oct-2003 lukem

MAKEVERBOSE support


# 1.70 25-Jul-2003 mrg

- build "binutils" and "gcc" separately if USE_TOOLS_TOOLCHAIN is not set
to "yes".
- adjust dbsym/mdsetimage to look in the correct place for libbfd.
- new mknative-gcc based in toolchain/mknative


# 1.69 24-Jul-2003 tron

Add missing "cleandir" rule.


# 1.68 20-Jul-2003 lukem

add stat(1) as a host tool


# 1.67 16-Jul-2003 lukem

also do the MKTOOLS and PREVIOUSTOOLDIR checks for "realdepend"


# 1.66 16-Jul-2003 lukem

* If a `PREVIOUSTOOLDIR' file doesn't exist, or its contents are not
the same as "$TOOLDIR", run "make cleandir" here first.
This should prevent various problems where $TOOLDIR is encoded into the
build process for various tools (lint, groff, texinfo, toolchain),
$TOOLDIR changes, and various programs don't get rebuilt correctly.
Should fix PR [toolchain/21988].

* Clean up how the `${MKTOOLS} == no' check is performed.

* Remove "cleantools"; it made a big assumption about the location of
TOOLDIR that won't be correct in many cases.


# 1.65 26-Jun-2003 tshiozak

Citrus iconv support(3)
add host tools : mkcsmapper and mkesdb
mkcsmapper - coded character set mapping table compiler
mkesdb - encoding scheme database compiler


# 1.64 18-May-2003 lukem

Add db(1) as a host tool


# 1.63 25-Mar-2003 pooka

build file(1) as a host tool (for compiling magic files)


# 1.62 07-Mar-2003 thorpej

Make hexdump a host tool.


Revision tags: fvdl_fs64_base
# 1.61 21-Dec-2002 lukem

enable sunlabel...


# 1.60 19-Sep-2002 thorpej

Change the TOOLCHAIN_MISSING from == "no" to != "yes", to be consistent
with the other tests of this variable.


# 1.59 19-Sep-2002 matt

Since TOOLCHAIN_MISSING is defined in bsd.own.mk, it can never be undefined.
Instead, make sure the value of it is "no"


# 1.58 17-Sep-2002 thorpej

* Eliminate the USE_NEW_TOOLCHAIN variable. Instead, split it into
two variables:

TOOLCHAIN_MISSING -- set to "yes" on platforms for which there is
no working in-tree toolchain (hppa, ns32k, sh5, x86_64).

EXTERNAL_TOOLCHAIN -- if defined by the user, points to the root of
an external toolchain (e.g. /usr/local/gnu). This enables the cross-build
framework even for TOOLCHAIN_MISSING platforms.

If TOOLCHAIN_MISSING is set to "yes", MKGDB, MKBFD, and MKGCC are all
unconditionally set to "no", since the bits are not there to build.

If EXTERNAL_TOOLCHAIN is set, MKGCC is unconditionally set to "no",
since the external toolchain's compiler is not in-sync with the
in-tree compiler support components (e.g. libgcc).

* Set MACHINE_CPU much earlier in bsd.own.mk, so that more tests in
that file can use it.


# 1.57 14-Sep-2002 chris

We need binstall to be installed, before attempting to use it to install mktemp.


# 1.56 14-Sep-2002 thorpej

Descend into mktemp.


# 1.55 12-Jun-2002 veego

The last commit wasn't tested. Add a missing \


# 1.54 12-Jun-2002 thorpej

Don't build toolchain bits for hppa, for now.


# 1.53 10-Jun-2002 mason

Add cat(1) as a host tool.


# 1.52 05-Jun-2002 thorpej

Don't try to build toolchain bits for ns32k.


# 1.51 28-May-2002 bjh21

Add fgen as a host tool, used for sys/arch/sparc/bootblk.


Revision tags: netbsd-1-6-base
# 1.50 18-May-2002 lukem

branches: 1.50.2;
gratuitious comment addition


# 1.49 07-May-2002 lukem

remove now-unnecessary sparc-installboot


# 1.48 03-May-2002 kleink

On prep, descend into prep-mkbootimage.


# 1.47 06-Apr-2002 bjh21

vax-installboot has been deleted, so don't recurse into it.


# 1.46 03-Apr-2002 lukem

enable installboot


# 1.45 01-Apr-2002 thorpej

Nuke NO_DBSYM; dbsym now uses BFD for everything.


# 1.44 01-Apr-2002 bjh21

On second thoughts, don't make mktemp a host tool. It's only used once, for
creating a temporary directory for maketars, and mkdir can do that safely
enough.


# 1.43 31-Mar-2002 bjh21

Add mktemp as a host tool.


# 1.42 31-Mar-2002 bjh21

Add cksum as a host tool.


# 1.41 29-Mar-2002 matt

Drop into vax-installboot on VAX machines.


# 1.40 07-Mar-2002 tv

Rework recursion to use the original logic again, in the structure cleaned
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".


# 1.39 07-Mar-2002 tv

Don't build groff if MKMAN=no. (groff does not build properly on some
platforms because of its completely insane Make structure; this allows it
to be disabled in a sane way.)


# 1.38 26-Feb-2002 tv

Add gettext to tools.

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.)


# 1.37 23-Feb-2002 gmcgarry

Add elf2ecoff as a build tool for mips ports.


# 1.36 18-Feb-2002 pk

* Add comments on all the directory build/install ordering goo.
* 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.


# 1.35 11-Feb-2002 pk

Revert part of previous; we need the install targets.


# 1.34 10-Feb-2002 pk

Use .ORDER targets to express the dependencies on subdir runs. This makes
the resulting tree complexity O(N) (N=# of subdirs), and it also makes it
easier to comprehend the Makefile logic.


# 1.33 08-Feb-2002 pk

Make sure to not go off installing in a directory before it's fully made.


# 1.32 31-Jan-2002 tv

Roll in fixes to permit cross-compiling from non-NetBSD hosts. This
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.


# 1.31 29-Jan-2002 tv

Make almost all tools compile and run properly on non-NetBSD hosts. (In
particular, most tools now run correctly on Solaris 7.)


# 1.30 25-Jan-2002 lukem

build pax as a host tool, for -N and to work around borken vendor paxes


# 1.29 10-Jan-2002 tv

Move host-mkdep to its own directory. Create and install it before
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.


# 1.28 10-Jan-2002 lukem

revert previous, and reenable tools/makefs now that it works on
netbsd-current and netbsd-1-5


# 1.27 09-Jan-2002 tv

Disable makefs in src/tools for the moment; it's very dependent on -current
NetBSD headers and sources right now. (Temporary workaround for PR 15175.)


# 1.26 05-Jan-2002 mrg

build zic as a host tool.


# 1.25 05-Jan-2002 mrg

build makefs, and, sparc-installboot if sparc||sparc64


# 1.24 31-Dec-2001 thorpej

We can't currently build a toolchain for x86-64 here, so don't
attempt to do so.


# 1.23 29-Dec-2001 wiz

Typo fix in error message.


# 1.22 11-Dec-2001 tv

Add the framework for autoconf-based src/tools/compat structure. This will
(after it is more fleshed out) allow the host tools to work more cleanly
on non-NetBSD hosts.


# 1.21 07-Dec-2001 jmc

Add pwd_mkdb as a toolchain bit for builds


# 1.20 29-Nov-2001 thorpej

Build makewhatis as a host tool, since it is used at the end of
the build.

XXX Needs a -lz hostlib.


# 1.19 22-Nov-2001 jmc

Oops. typo which can break things for non-new toolchain builds if MKTOOLS isn't
set


# 1.18 22-Nov-2001 jmc

Check for USETOOLS!=yes in addition to MKTOOLS==no to generate the empty rule
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


# 1.17 13-Nov-2001 tv

Re-add MKTOOLS as a "yes"/"no" only variable, which prevents recursion on "no"
into the src/tools subdirs on all/depend/dependall/install. Other recursive
targets are not affected.


# 1.16 12-Nov-2001 tv

Major overhaul of src/tools and host toolchain. Summary of changes:

* 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.


# 1.15 09-Nov-2001 thorpej

Build the cross-dbsym.


# 1.14 02-Nov-2001 tv

* Always use the makewrapper when starting a build phase.

* 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.


# 1.13 31-Oct-2001 tv

Don't actually delete the default tooldir on "cleandir"; else we'll nuke
the nbmake that is probably currently running.

Just leave the "cleantools" manual target as a shortcut for the user.


# 1.12 31-Oct-2001 tv

* Create a variable HOST_OSTYPE that represents the host build environment,
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.


# 1.11 31-Oct-2001 tv

* Always descend into "tools" regardless of USETOOLS setting. Instead,
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.


# 1.10 25-Oct-2001 thorpej

Add asn1_compile as a host tool.


# 1.9 21-Oct-2001 jmc

Pull in mdsetimage to the tools builds. (XXX - using libbfd here would
probably be preferrable long term).


# 1.8 20-Oct-2001 jmc

Add mklocale to cross-tools and turn it back on for the builds.


# 1.7 13-Oct-2001 jmc

Add crunchgen, msgc and menuc


# 1.6 09-Oct-2001 enami

Make mtree a host tool and use it when appropriate.


# 1.5 04-Oct-2001 tv

Recurse properly; just add "build" to TARGETS (fixes reported problem where
"make clean" doesn't work at the src/tools level).


# 1.4 22-Sep-2001 tv

Work around "make obj" lossage in tools/. Dunno why this is happening
just yet; will investigate this evening.


# 1.3 22-Sep-2001 tv

Add lorder to TOOLDIR host tools.

Only descend into directories if USE_NEW_TOOLCHAIN is set (allows top level
Makefile to use "-m ${.CURDIR}/share/mk" to get the "correct" <bsd.own.mk>
when descending into src/tools/Makefile).


# 1.2 21-Sep-2001 tv

- Create a real cpp binary.
- Set CC properly in environment for mkdep and lint.
- Add compile_et to TOOLDIR host tools.


# 1.1 14-Aug-2001 tv

Bootstrap toolchain framework, first pass.


# 1.207 06-Feb-2021 dbj

tools: allow MKCROSSGDB to work when not building gcc


# 1.206 28-Jul-2020 uwe

Build mkubootimage for evbsh3 too.


Revision tags: phil-wifi-20200421 phil-wifi-20200411 is-mlppp-base phil-wifi-20200406 phil-wifi-20191119
# 1.205 11-Nov-2019 joerg

Update LLVM to 10.0.0git (01f3a59fb3e2542fce74c768718f594d0debd0da)


# 1.204 26-Sep-2019 bad

Exclude more subdirs if TOOLS_BUILDRUMP=yes.

Exclude subdirs added in the last 3 years but not need for rumpkernel builds.


Revision tags: netbsd-9-1-RELEASE netbsd-9-0-RELEASE netbsd-9-0-RC2 netbsd-9-0-RC1 netbsd-9-base phil-wifi-20190609
# 1.203 07-May-2019 hannken

Fix build, "pax" must be built before "libprop".

Ok: Matthew Green mrg@


# 1.202 07-May-2019 thorpej

Add support for libprop as a host tool library.


# 1.201 03-Apr-2019 joerg

Add MKLLVMRT to build a subset of the LLVM stack for JIT purposes.
Hook up AMDGPU backend for clang.


# 1.200 03-Apr-2019 joerg

Revert MKLLVMCMDS changes.


# 1.199 20-Mar-2019 mrg

split MKLLVM into MKLLVM and MKLLVMCMDS, like MKGCC and MKGCCCMDS:

- only build clang or clang-tblgen if MKLLVMCMDS != "no"
- move HAVE_MESA_VER earlier so we can detect mesa 18 and enable
MKLLVM on platforms that need it
- move the clang commands and headers into llvmcmds group
- only build the clang specific LLVM libraries if MKLLVMCMDS != "no"

much of this work came from maya@'s github commit
f90685c11d4460d3098fa35f48b58d1893e974e0, reworked for HAVE_MESA_VER
and llvmcmds vs MKCLANG.


build tested on several platforms and on amd64 and i386 with several
different build options (clang build, gcc build, gcc build with llvm
libs).


Revision tags: pgoyette-compat-20190127 pgoyette-compat-20190118
# 1.198 02-Jan-2019 christos

use MACHINE_CPU for elf2aout


# 1.197 31-Dec-2018 christos

Add an arm-specific elf2aout tool since objdump does not support a.out anymore


Revision tags: pgoyette-compat-1226 pgoyette-compat-1126 pgoyette-compat-1020 pgoyette-compat-0930
# 1.196 25-Sep-2018 joerg

Update build glue for xz-5.2.4. Hook up tools version.


Revision tags: pgoyette-compat-0906
# 1.195 11-Aug-2018 christos

hook in the tools version of grep


Revision tags: pgoyette-compat-0728 phil-wifi-base pgoyette-compat-0625 pgoyette-compat-0521
# 1.194 09-May-2018 joerg

branches: 1.194.2;
For EXTERNAL_TOOLCHAIN, MKLLVM=yes needs to build only tablegen.


Revision tags: pgoyette-compat-0502 pgoyette-compat-0422 pgoyette-compat-0415 pgoyette-compat-0407 pgoyette-compat-0330 pgoyette-compat-0322 pgoyette-compat-0315 pgoyette-compat-base
# 1.193 18-Feb-2018 uwe

branches: 1.193.2;
Fix .endif comment for TOOLS_BUILDRUMP


# 1.192 27-Dec-2017 christos

Better EXTERNAL_TOOLCHAIN support from Zachary McGrew
- Allow mdsetimage and dbsym to be built with EXTERNAL_TOOLCHAIN
- Allow BFDDIR and IBERTYDIR to be overwritten for mdsetimage and dbsym


Revision tags: perseant-stdc-iso10646-base
# 1.191 07-Jun-2017 skrll

branches: 1.191.2;
Hook in dtc/libfdt now that it builds for me


# 1.190 06-Jun-2017 skrll

Disable dtc/libfdt for now


# 1.189 05-Jun-2017 christos

No need to set dtc twice.


# 1.188 05-Jun-2017 christos

Add dtc


Revision tags: netbsd-8-base prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1 pgoyette-localcount-20170320 bouyer-socketcan-base
# 1.187 11-Jan-2017 joerg

branches: 1.187.6;
Sync tools build glue with LLVM pre-4.0.0.


Revision tags: pgoyette-localcount-20170107 pgoyette-localcount-20161104 localcount-20160914 pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base
# 1.186 24-Jan-2016 christos

branches: 1.186.2;
move cvslatest last


# 1.185 24-Jan-2016 christos

Tool version


# 1.184 19-Dec-2015 christos

move sortinfo after pax


# 1.183 18-Dec-2015 christos

Add sortinfo


# 1.182 23-Jul-2015 mrg

remove the xfree86 reachover makefiles and the vast majority of
the support in the rest of the source tree.

X11 sets could use some cleaning up perhaps (just deletion, as
we've never really marked the old X11R6 as obsolete for native
xorg using platforms so far either.)


# 1.181 24-Jun-2015 matt

Support building the xorg X11 libraries under MKCOMPAT.
Add XORG_MACHINE_ARCH to compat's bsd.*.mk
Turn xorg makekeys and makestrs into real host tools which are installed into
${TOOLSDIR}


# 1.180 07-Jan-2015 joerg

Reorganise the way xorg is build. Move build of makestrs into src/tools
as it is needed for the "includes" phase. Make it symlink all necessary
headers in obj to decouple it from "includes" itself, breaking the
dependency cycle. Move the do-x11 target between do-lib and do-build, so
that libraries can get the benefit of build_install (correct .WAIT
behavior) and everything else like "includes" uses the plain SUBDIR
entry in external/mit.


# 1.179 05-Dec-2014 pooka

build genassym for TOOLS_BUILDRUMP


# 1.178 30-Sep-2014 christos

add gpt


Revision tags: netbsd-7-2-RELEASE netbsd-7-1-2-RELEASE netbsd-7-1-1-RELEASE netbsd-7-1-RELEASE netbsd-7-1-RC2 netbsd-7-nhusb-base-20170116 netbsd-7-1-RC1 netbsd-7-0-2-RELEASE netbsd-7-nhusb-base netbsd-7-0-1-RELEASE netbsd-7-0-RELEASE netbsd-7-0-RC3 netbsd-7-0-RC2 netbsd-7-0-RC1 netbsd-7-base tls-maxphys-base
# 1.177 10-Aug-2014 matt

Changes to existing files to enable building AARCH64 userland.
evbarm64-el
This is clang only. While gcc4.8 supports aarch64, no netbsd support has
been written for aarch64 with gcc4.8.


Revision tags: tls-earlyentropy-base
# 1.176 15-Jul-2014 christos

descend to vgrind


# 1.175 15-Jun-2014 pooka

Add cat, rpcgen and stat to TOOLS_BUILDRUMP. They're useful for
installing headers for the app stack cases that need it done, and small
enough to not matter for the kernel-only cases that don't.


# 1.174 14-Jun-2014 mrg

remove remaining makefile support for GCC < 45 that i found.


Revision tags: yamt-pagecache-base9
# 1.173 03-Apr-2014 riastradh

branches: 1.173.2;
ctfconvert/ctfmerge need libdwarf &c., so build them if MKCTF=yes.


Revision tags: riastradh-xf86-video-intel-2-7-1-pre-2-21-15
# 1.172 25-Mar-2014 ozaki-r

Add MKCTF

This variable separates CTF stuffs from MKDTRACE; we can build DTrace
solely without building and using them. This allows us to use DTrace
even if CTF stuffs have problems (actually they have now).

This variable would be merged into MKDTRACE eventually, once CTF stuffs
work correctly again.


Revision tags: riastradh-drm2-base3
# 1.171 24-Feb-2014 skrll

Rename NetBSD/hp700 to NetBSD/hppa.

Unfortunately our VCS isn't very helpful here.


# 1.170 02-Sep-2013 joerg

Update LLVM/Clang snapshot to r189662. This includes many improvements
to the new SLP vectorizer, fast codegen support for PPC and using
terminfo for the color sequences. In addition, add (optional) build
infrastructure for lld to allow easier testing. This is controlled by
MKLLD.


Revision tags: riastradh-drm2-base2 riastradh-drm2-base1
# 1.169 19-Jul-2013 matt

Even if we aren't making a crossgdb still make the object dir for it.


Revision tags: riastradh-drm2-base agc-symver-base
# 1.168 27-Feb-2013 joerg

branches: 1.168.4;
Add infrastructure for building MCLinker.


# 1.167 05-Feb-2013 matt

There are other little endian arm machine_arches other than "arm"
Use MACHINE_CPU and TARGET_ENDIANNESS instead of MACHINE_ARCH


# 1.166 31-Jan-2013 pooka

Use TOOLS_BUILDRUMP=yes to restrict building of tools to those required
for building rump kernels. This cuts down the NetBSD source tree required
by buildrump.sh to a fraction and addresses a size/download time concern
from a person packaging rump kernels for Linux.

No change to the normal case (tested with several -j32/-j64 builds).

reviewed by apb


Revision tags: yamt-pagecache-base8 yamt-pagecache-base7
# 1.165 02-Dec-2012 apb

Make tools/Makefile build host-mkdep, compat, and binstall in that order,
before installing any of them. It installs them in any order relative
to each other. The .WAIT points that used to be between these three
tools are replaced by .ORDER and dependencies.

This is needed in preparation for making tools/compat install
some files into TOOLDIR.


# 1.164 02-Dec-2012 apb

TOOLDIR must be valid, unless MKTOOLS=no.
Add tests and .error directives to enforce this.


# 1.163 02-Dec-2012 apb

If tools are not wanted, then set SUBDIR= empty instead of
defining all the subdir-related targets to do nothing. This way,
the targets are not invoked at all, instead of being invoked but
doing nothing.


# 1.162 02-Dec-2012 apb

remove trailing white space


# 1.161 27-Nov-2012 jkunz

According to the i.MX23 Reference Manual section 3.1, Page 3-3:
"The i.MX23 always operates in litle-endian mode."
So build elftosb and bootloader for this processor only for evbarm(-el).


# 1.160 26-Nov-2012 pooka

Build gmake iff we're going to need it.


# 1.159 15-Nov-2012 joerg

Move the build_install logic from lib/Makefile into share/mk and re-use
it for tools. The existing logic broke for the LLVM build with the
recent .ORDER changes in make.


# 1.158 15-Nov-2012 jkunz

Add elftosb tools to evbarm userland and toolchain.
Elftosb is used to create a digitaly signed "secure boot" file.
This sb file can be booted by the first stage boot loader found in
Freescale i.MX23 and i.MX28 application processors.

Copyright (c) 2004-2010 Freescale Semiconductor, Inc.


Revision tags: yamt-pagecache-base6
# 1.157 20-Sep-2012 pooka

fix EXTERNAL_TOOLCHAIN build


# 1.156 10-Aug-2012 joerg

branches: 1.156.2;
Decouple binutils build from HAVE_GCC. Merge common fragments of
HAVE_GCC and HAVE_PCC.


Revision tags: netbsd-6-0-6-RELEASE netbsd-6-1-5-RELEASE netbsd-6-1-4-RELEASE netbsd-6-0-5-RELEASE netbsd-6-1-3-RELEASE netbsd-6-0-4-RELEASE netbsd-6-1-2-RELEASE netbsd-6-0-3-RELEASE netbsd-6-1-1-RELEASE netbsd-6-0-2-RELEASE netbsd-6-1-RELEASE netbsd-6-1-RC4 netbsd-6-1-RC3 netbsd-6-1-RC2 netbsd-6-1-RC1 netbsd-6-0-1-RELEASE matt-nb6-plus-nbase netbsd-6-0-RELEASE netbsd-6-0-RC2 matt-nb6-plus-base netbsd-6-0-RC1 yamt-pagecache-base5 yamt-pagecache-base4 netbsd-6-base yamt-pagecache-base3 yamt-pagecache-base2
# 1.155 03-Nov-2011 joerg

Revert .WAIT removal and add comment why it is needed between *tblgen.


# 1.154 02-Nov-2011 njoly

Do not build tic more than once


# 1.153 02-Nov-2011 christos

move tic later, after all the tools it needs are built.


# 1.152 02-Nov-2011 yamt

tweak dependencies for tic, which needs nbperf, awk, and sed.


Revision tags: yamt-pagecache-base
# 1.151 01-Nov-2011 joerg

branches: 1.151.2;
Remove an unnecessary .WAIT between llvm-tblgen and clang-tblgen.


# 1.150 01-Nov-2011 joerg

Hook up nbperf into the normal tool build.


# 1.149 11-Oct-2011 joerg

Update LLVM/Clang snapshot to r141658. This primarily fixes a regression
preventing Qt4 from building.


# 1.148 16-Jul-2011 tsutsui

Build nbm68k-elf2aout as a host tool on m68k targets
for an ancient PROM bootloader.
Mostly taken from nbmips-elf2ecoff.


# 1.147 10-Jul-2011 mrg

install elf2ecoff for all mips64 systems. it's needed for stand.


# 1.146 21-Jun-2011 mrg

always build gmake if HAVE_GCC.
build gmp, mpfr and then mpc if HAVE_GCC >= 45.


Revision tags: cherry-xenmp-base
# 1.145 15-Apr-2011 elric

branches: 1.145.2;
Upgrade Heimdal to 1.5pre1 by switching the build from crypto/dist/heimdal
to crypto/external/bsd/heimdal. The latter was just imported as the head
of the Heimdal tree as of a few days ago.


# 1.144 17-Mar-2011 riz

.WAIT for makefs, because in most builds, it's the first target
which includes Makefile.nbincludes, whose beforedepend: has
some race condition I don't fully understand, and which has been
causing many (but not all!) -j16 builds on the autobuild cluster
to fail in tools since sometime between 201103061600 and 201103070900.

With the proper voodoo, I was able to get 8 builds in a row to fail
without this change, and 16 in a row to succeed with it.

XXX a proper fix likely involves reworking the beforedepend: target
of Makefile.nbincludes, but this should get the build cluster back up
to full functionality in the meanwhile.


Revision tags: bouyer-quota2-nbase
# 1.143 25-Feb-2011 phx

mkubootimage is certainly useful for sandpoint


Revision tags: bouyer-quota2-base
# 1.142 06-Feb-2011 joerg

Add LLVM and clang build system. It is enabled by MKLLVM=yes.
Upstream sources can be fetched by running "make checkout" in
src/external/bsd/llvm, they will be properly imported once the
integration and missing features are sorted out.


# 1.141 31-Jan-2011 matt

Make mkubootimage for evbmips and evbppc too.


Revision tags: matt-mips64-premerge-20101231
# 1.140 15-Aug-2010 mrg

branches: 1.140.2;
add new option to build/use tools/pigz for compressing sets. for now
USE_PIGZGZIP defaults to "no". (it depends upon local <pthread.h> and -lz.)

you can set it to "yes" on most modern platforms just fine.


# 1.139 18-Jun-2010 jmcneill

hook mkubootimage into the build


# 1.138 04-Jun-2010 jmmv

Bye bye atf-compile, you won't be missed.


# 1.137 02-Mar-2010 darran

DTrace: add libelf, libdwarf, libctf, and CTF tools to the toolchain,
built when MKDTRACE=yes.


# 1.136 20-Feb-2010 joerg

Build mandoc unconditional if man pages are desirable. All
compatibility issues are supposed to be sorted out.
Build groff conditionally on MKGROFF. It is currently the only component
that requires C++.


# 1.135 03-Feb-2010 roy

Store our generated files in CVS and remove nbperf from the toolchain.
This allows us to build consistent libs without an ever changing hash.


# 1.134 03-Feb-2010 roy

Userland now builds and uses terminfo instead of termcap.

OK: core@, jdc@


# 1.133 29-Dec-2009 he

To unbreak the build, temporarily remove the build of libelf here,
since no other part of the build depends on this yet.

Suggested as a temporary workaround by thorpej@


# 1.132 23-Dec-2009 mrg

rework the main SUBDIR list here as suggested by enami. put .WAIT on
the same line as the target that needs to wait, but before the target,
rather than on the previous line, which led to confusion and an error
being introduced in the previous change.


# 1.131 21-Dec-2009 mrg

move the build of pax before libelf. fixes my build of tools/libelf,
though i didn't look to see why libelf needs pax.


# 1.130 21-Dec-2009 thorpej

Add support for building libelf in a host-tool environment.

XXX Makefile.disklabel is really mis-named, but I'm not going to tackle
that problem right now.


Revision tags: matt-premerge-20091211
# 1.129 29-Oct-2009 christos

Give m4 its own .WAIT. Fixes build issue on NetBSD-5.


# 1.128 23-Oct-2009 joerg

Add MKMANDOC option to trigger building cat pages and HTML pages with
mdocml. Add a lintmanpages target for developers to check man pages
with the strictest settings of mandoc.


Revision tags: jym-xensuspend-nbase jym-xensuspend-base
# 1.127 25-Feb-2009 sketch

Disable grep host tool and unbreak NetBSD build until I can come up with a
clean fix.


# 1.126 25-Feb-2009 sketch

Make grep a host tool.


# 1.125 14-Feb-2009 abs

Convert more MACHINE tests to MACHINE_ARCH


Revision tags: netbsd-5-2-3-RELEASE netbsd-5-1-5-RELEASE netbsd-5-2-2-RELEASE netbsd-5-1-4-RELEASE netbsd-5-2-1-RELEASE netbsd-5-1-3-RELEASE netbsd-5-2-RELEASE netbsd-5-2-RC1 netbsd-5-1-2-RELEASE netbsd-5-1-1-RELEASE matt-nb5-mips64-premerge-20101231 matt-nb5-pq3-base netbsd-5-1-RELEASE netbsd-5-1-RC4 matt-nb5-mips64-k15 netbsd-5-1-RC3 netbsd-5-1-RC2 netbsd-5-1-RC1 netbsd-5-0-2-RELEASE matt-nb5-mips64-premerge-20091211 matt-nb5-mips64-u2-k2-k4-k7-k8-k9 matt-nb4-mips64-k7-u2a-k9b matt-nb5-mips64-u1-k1-k5 netbsd-5-0-1-RELEASE netbsd-5-0-RELEASE netbsd-5-0-RC4 netbsd-5-0-RC3 netbsd-5-0-RC2 netbsd-5-0-RC1 netbsd-5-base
# 1.124 25-Oct-2008 apb

branches: 1.124.4; 1.124.8; 1.124.12;
Build sed earlier, just after mktemp. Note that sed and mktemp do not
depend on each other, but the .WAIT is needed to get them both installed
before the remainder of the tools build.


# 1.123 25-Oct-2008 apb

Remove the local handling of the NOSUBDIR variable. We can rely
on bsd.subdir.mk's handling of the NOSUBDIR variable.

Also add some comment to .if/.else/.endif and .for/.endfor lines.


Revision tags: matt-mips64-base2
# 1.122 19-Oct-2008 apb

Add awk as a host tool.


# 1.121 13-Oct-2008 dyoung

Per uwe@'s suggestion, build nbgroff under wider circumstances.
I choose to build it if MKDOC != no or if MKHTML != no. It used
to be built only when MKMAN != no.


# 1.120 05-Oct-2008 apb

Add a .WAIT to ensure that sed is installed early, so that TOOL_SED can
be used during the build of other tools.


# 1.119 26-Sep-2008 apb

Build strfile both as a host tool and as an installed program:
* in games/fortune/strfile/Makefile, build strfile as a
regular program instead of as a host tool;
* add tools/strfile directory to build strfile as a host tool;
* in tools/Makefile, add strfile to SUBDIR list;
* in BSD.*.mk, define TOOL_STRFILE variable;
* in games/fortune/datfiles/Makefile, use TOOL_STRFILE when creating
databases at build time;
* in distrib/sets/lists/games/mi, mention usr/games/strfile.


Revision tags: wrstuden-revivesa-base-3 wrstuden-revivesa-base-2
# 1.118 24-Aug-2008 gmcgarry

Build pcc as host tool if requested.


Revision tags: wrstuden-revivesa-base-1 yamt-pf42-base4 yamt-pf42-base3 wrstuden-revivesa-base
# 1.117 26-May-2008 he

Remove references to bebox-elf2pef and bebox-mkbootimage, now that they
have been integrated in common powerpc tools and subsequently removed.


Revision tags: hpcarm-cleanup-nbase yamt-pf42-base2
# 1.116 30-Apr-2008 garbled

branches: 1.116.2;
Build powerpc-mkbootimage for rs6000 and bebox too.


# 1.115 30-Apr-2008 garbled

Convert prep to use the new unified mkbootimage rather than it's own. This
mkbootimage can be shared by prep, rs6000, and bebox.

TODO: Convert bebox to use this. Needs someone to test.


Revision tags: yamt-pf42-baseX yamt-pf42-base keiichi-mipv6-nbase keiichi-mipv6-base matt-armv6-nbase cube-autoconf-base matt-armv6-base hpcarm-cleanup-base
# 1.114 12-Nov-2007 jmmv

branches: 1.114.6;
Add the atf host tools

This adds reachover Makefiles to build the atf tools required during a
cross-build.


Revision tags: matt-armv6-prevmlocking matt-mips64-base
# 1.113 14-Jan-2007 apb

branches: 1.113.4;
Build join(1) as a host tool.


# 1.112 20-Dec-2006 agc

A commit too far - don't try to build veriexecgen for just now


# 1.111 19-Dec-2006 agc

Build veriexecgen as a host tool


Revision tags: netbsd-4-0-1-RELEASE wrstuden-fixsa-newbase wrstuden-fixsa-base-1 netbsd-4-0-RELEASE netbsd-4-0-RC5 netbsd-4-0-RC4 netbsd-4-0-RC3 netbsd-4-0-RC2 netbsd-4-0-RC1 wrstuden-fixsa-base netbsd-4-base
# 1.110 22-Nov-2006 riz

Make sys/exec_elf.h and machine/elf_machdep.h available to host
tools, and allow paxctl to use them when compiled as a host
tool. This fixes the build on MacOS X (and perhaps other platforms)


# 1.109 17-Nov-2006 dsl

Add some notes about the bogosity of some of the .WAIT stuff.
Remove a 'never had a sane effect' .WAIT from a .ORDER line.
Don't add a (probably incorrect) dependency for 'make install' since
it contradicts a .ORDER line elsewhere when .ORDER applies recursively
to child nodes.
I also think that the stuff that tries to add dependencies between
the stuff that bsd.subdir.mk generates does not DTRT at all.
I suspect that build.sh builds things in an order that avoids issues here.


# 1.108 10-Nov-2006 christos

Add paxctl as a tool.


# 1.107 08-Oct-2006 apb

If PREVIOUSTOOLDIR was empty, then don't complain that it has moved.

Patch from Jukka Salmi in PR 33095.


Revision tags: abandoned-netbsd-4-base
# 1.106 03-Aug-2006 freza

* Fix parallel build race condition between real{all,depend} and
<bsd.subdir.mk> targets.
* No need to pass TOOLDIR to recursive cleandir in real{all,depend}.

With help from he@.
OK by tron@.


# 1.105 03-Aug-2006 tron

Another attempt to fix the race in parallel builds.


# 1.104 19-Jul-2006 tron

Invoking "make cleandir" with "PREVIOUSTOOLDIR" set to the previous
location will not stop recursive "make cleandir" calls. Pass the new
location instead.


# 1.103 18-Jul-2006 lukem

gettext should .WAIT for autoconf.
(The former still doesn't seem to work on read-only source; separate issue)


# 1.102 17-Jul-2006 tron

Avoid getting into a loop of "make cleandir" instances if the location
tool directory has been changed or wasn't recorded before.


# 1.101 17-Jul-2006 tron

Remove ".WAIT" again because it doesn't fix the problem.


# 1.100 12-Jul-2006 tron

Add an extra ".WAIT" to the "realall realdepend" target to make sure
it finished cleaning the tools directory in case of tool directory
mismatch before we try to rebuild the tools.


# 1.99 22-Jun-2006 mrg

only build lint and lint2 if MKLINT != "no".


# 1.98 18-Jun-2006 gdamore

Make TOOL_SED, to allow using our own sed in cases where the host's version
is busted in some way.

The TOOL_SED doesn't use TIOCGWINSIZE, and has some changes to include
nbtool_config.h in a cross build environment.

Combined with some other changes (not yet committed), this allows cross
compiling m68k code on Solaris 10/amd64.


# 1.97 02-Jun-2006 mrg

remove support for building (with) GCC 2.95. also:
- always install <stdbool.h>
- don't generate a fake one for vax / gettext.


# 1.96 11-May-2006 mrg

check HAVE_GCC == 4 not USE_GCC4.


# 1.95 01-Apr-2006 christos

Don't barf if USE_GCC4 is not defined.


# 1.94 29-Mar-2006 jmc

Turn on gmake builds if GCC4 is enabled (and force it's install before continuing


# 1.93 03-Feb-2006 dsl

The realall and realdepend bit that regenerates tools needs to be marked
.MAKE otherwise the 'make' it runs has its own list of jobs instead of
using the jobserver of the enclosing make.


# 1.92 04-Oct-2005 jmc

Make the tools using Makefile.disklabel wait so they don't stomp each other.
Also for now add a dependency to Makefile.disklabel so this doesn't run
3 times. (XXX this really should just be done differently)


# 1.91 12-Jun-2005 dyoung

.include Makefile.disklabel in installboot, so that the
nbinclude/ header files will be installed. Build installboot after
pax, since Makefile.disklabel uses pax to install the headers.


# 1.90 12-Jun-2005 dyoung

Make disklabel(8) and fdisk(8) into "host tools " last step: build
and install ${TOOLDIR}/bin/${MACHINE_GNU_PLATFORM}-disklabel,
${TOOLDIR}/bin/${MACHINE_GNU_PLATFORM}-fdisk by "reaching over" to
the sources in ${NETBSDSRCDIR}/sbin/{disklabel fdisk}/.

To avoid clashes with a build-host's header files, especially on
*BSD, the host-tools versions of fdisk and disklabel search for
#includes such as disklabel.h, disklabel_acorn.h, disklabel_gpt.h,
and bootinfo.h in a new #includes namespace, nbinclude/. That is,
they #include <nbinclude/sys/disklabel.h>, <nbinclude/machine/disklabel.h>,
<nbinclude/sparc64/disklabel.h>, instead of <sys/disklabel.h> and
such. I have also updated the system headers to #include from
nbinclude/-space when HAVE_NBTOOL_CONFIG_H is #defined.


# 1.89 30-May-2005 thorpej

Build genassym as a host tool. Part of PR toolchain/30350


Revision tags: netbsd-3-1-1-RELEASE netbsd-3-0-3-RELEASE netbsd-3-1-RELEASE netbsd-3-0-2-RELEASE netbsd-3-1-RC4 netbsd-3-1-RC3 netbsd-3-1-RC2 netbsd-3-1-RC1 netbsd-3-0-1-RELEASE netbsd-3-0-RELEASE netbsd-3-0-RC6 netbsd-3-0-RC5 netbsd-3-0-RC4 netbsd-3-0-RC3 netbsd-3-0-RC2 netbsd-3-0-RC1 netbsd-3-base
# 1.88 27-Jan-2005 is

We don't need aout2bb any longer.


# 1.87 09-Jan-2005 mycroft

Add some quotes to prevent a syntax error.


# 1.86 28-Nov-2004 jmc

Convert mkboot into a full cross tool. Last hurdle for hp300 to building on
non NetBSD/bsd hosts.


# 1.85 28-Nov-2004 jmc

Convert remaining host tools for amiga to correct cross tools. Now allows
complete amiga builds on non netbsd/bsd hosts


# 1.84 25-Nov-2004 jmc

Convert bebox's remaining host tools over to cross tools scheme. Builds to sets
w/o error now.


# 1.83 28-Jul-2004 skrll

Build hp700's mkboot as a host tool called nbhp700-mkboot. mkboot also
gets built and installed in a hp700 distribution.

TODO

- merge with hp300

- pick a preferred method for dealing with the elf headers.
hp700-mkboot and prep-mkbootimage (bintuils) vs mips-elf2ecoff and
tools/installboot


# 1.82 08-Jun-2004 abs

Add sparkcrc (used to generate checksums for acorn32 bootloader sparkive)
as a host tool.


Revision tags: netbsd-2-0-base
# 1.81 03-Jan-2004 lukem

branches: 1.81.2;
Consistently check ${TOOLCHAIN_MISSING} against "no".


# 1.80 11-Dec-2003 matt

Fix typo.


# 1.79 11-Dec-2003 matt

Add macppc-fixcoff tool.


# 1.78 10-Dec-2003 lukem

Use (cd ${.CURDIR} && ${MAKE} cleandir) instead of ${MAKE} cleandir
Suggested by Ross Harvey.


# 1.77 04-Dec-2003 mrg

always build tools/binutils now.


# 1.76 08-Nov-2003 sekiya

Build sgivol as a host tool when compiling for sgimips.


# 1.75 27-Oct-2003 lukem

add mknod as a host tool


# 1.74 26-Oct-2003 cl

add gdb53 as a host tool for use as a crossgdb
replaces gdb50 from toolchain on archs which use gcc3


# 1.73 21-Oct-2003 lukem

Rework how MAKEVERBOSE operates:

* Don't bother prefixing commands with a line of ${_MKCMD}\
and instead rely upon "make -s". This is less intrusive on
all the Makefiles than the former. Idea from David Laight.

* Rename the variables use to print messages. The scheme now is:
_MKMSG_FOO Run _MKMSG 'foo'
_MKTARGET_FOO Run _MKMSG_FOO ${.TARGET}
From discussion with Alistair Crooks.


# 1.72 19-Oct-2003 matt

Add host tool version of ncdcs


# 1.71 18-Oct-2003 lukem

MAKEVERBOSE support


# 1.70 25-Jul-2003 mrg

- build "binutils" and "gcc" separately if USE_TOOLS_TOOLCHAIN is not set
to "yes".
- adjust dbsym/mdsetimage to look in the correct place for libbfd.
- new mknative-gcc based in toolchain/mknative


# 1.69 24-Jul-2003 tron

Add missing "cleandir" rule.


# 1.68 20-Jul-2003 lukem

add stat(1) as a host tool


# 1.67 16-Jul-2003 lukem

also do the MKTOOLS and PREVIOUSTOOLDIR checks for "realdepend"


# 1.66 16-Jul-2003 lukem

* If a `PREVIOUSTOOLDIR' file doesn't exist, or its contents are not
the same as "$TOOLDIR", run "make cleandir" here first.
This should prevent various problems where $TOOLDIR is encoded into the
build process for various tools (lint, groff, texinfo, toolchain),
$TOOLDIR changes, and various programs don't get rebuilt correctly.
Should fix PR [toolchain/21988].

* Clean up how the `${MKTOOLS} == no' check is performed.

* Remove "cleantools"; it made a big assumption about the location of
TOOLDIR that won't be correct in many cases.


# 1.65 26-Jun-2003 tshiozak

Citrus iconv support(3)
add host tools : mkcsmapper and mkesdb
mkcsmapper - coded character set mapping table compiler
mkesdb - encoding scheme database compiler


# 1.64 18-May-2003 lukem

Add db(1) as a host tool


# 1.63 25-Mar-2003 pooka

build file(1) as a host tool (for compiling magic files)


# 1.62 07-Mar-2003 thorpej

Make hexdump a host tool.


Revision tags: fvdl_fs64_base
# 1.61 21-Dec-2002 lukem

enable sunlabel...


# 1.60 19-Sep-2002 thorpej

Change the TOOLCHAIN_MISSING from == "no" to != "yes", to be consistent
with the other tests of this variable.


# 1.59 19-Sep-2002 matt

Since TOOLCHAIN_MISSING is defined in bsd.own.mk, it can never be undefined.
Instead, make sure the value of it is "no"


# 1.58 17-Sep-2002 thorpej

* Eliminate the USE_NEW_TOOLCHAIN variable. Instead, split it into
two variables:

TOOLCHAIN_MISSING -- set to "yes" on platforms for which there is
no working in-tree toolchain (hppa, ns32k, sh5, x86_64).

EXTERNAL_TOOLCHAIN -- if defined by the user, points to the root of
an external toolchain (e.g. /usr/local/gnu). This enables the cross-build
framework even for TOOLCHAIN_MISSING platforms.

If TOOLCHAIN_MISSING is set to "yes", MKGDB, MKBFD, and MKGCC are all
unconditionally set to "no", since the bits are not there to build.

If EXTERNAL_TOOLCHAIN is set, MKGCC is unconditionally set to "no",
since the external toolchain's compiler is not in-sync with the
in-tree compiler support components (e.g. libgcc).

* Set MACHINE_CPU much earlier in bsd.own.mk, so that more tests in
that file can use it.


# 1.57 14-Sep-2002 chris

We need binstall to be installed, before attempting to use it to install mktemp.


# 1.56 14-Sep-2002 thorpej

Descend into mktemp.


# 1.55 12-Jun-2002 veego

The last commit wasn't tested. Add a missing \


# 1.54 12-Jun-2002 thorpej

Don't build toolchain bits for hppa, for now.


# 1.53 10-Jun-2002 mason

Add cat(1) as a host tool.


# 1.52 05-Jun-2002 thorpej

Don't try to build toolchain bits for ns32k.


# 1.51 28-May-2002 bjh21

Add fgen as a host tool, used for sys/arch/sparc/bootblk.


Revision tags: netbsd-1-6-base
# 1.50 18-May-2002 lukem

branches: 1.50.2;
gratuitious comment addition


# 1.49 07-May-2002 lukem

remove now-unnecessary sparc-installboot


# 1.48 03-May-2002 kleink

On prep, descend into prep-mkbootimage.


# 1.47 06-Apr-2002 bjh21

vax-installboot has been deleted, so don't recurse into it.


# 1.46 03-Apr-2002 lukem

enable installboot


# 1.45 01-Apr-2002 thorpej

Nuke NO_DBSYM; dbsym now uses BFD for everything.


# 1.44 01-Apr-2002 bjh21

On second thoughts, don't make mktemp a host tool. It's only used once, for
creating a temporary directory for maketars, and mkdir can do that safely
enough.


# 1.43 31-Mar-2002 bjh21

Add mktemp as a host tool.


# 1.42 31-Mar-2002 bjh21

Add cksum as a host tool.


# 1.41 29-Mar-2002 matt

Drop into vax-installboot on VAX machines.


# 1.40 07-Mar-2002 tv

Rework recursion to use the original logic again, in the structure cleaned
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".


# 1.39 07-Mar-2002 tv

Don't build groff if MKMAN=no. (groff does not build properly on some
platforms because of its completely insane Make structure; this allows it
to be disabled in a sane way.)


# 1.38 26-Feb-2002 tv

Add gettext to tools.

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.)


# 1.37 23-Feb-2002 gmcgarry

Add elf2ecoff as a build tool for mips ports.


# 1.36 18-Feb-2002 pk

* Add comments on all the directory build/install ordering goo.
* 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.


# 1.35 11-Feb-2002 pk

Revert part of previous; we need the install targets.


# 1.34 10-Feb-2002 pk

Use .ORDER targets to express the dependencies on subdir runs. This makes
the resulting tree complexity O(N) (N=# of subdirs), and it also makes it
easier to comprehend the Makefile logic.


# 1.33 08-Feb-2002 pk

Make sure to not go off installing in a directory before it's fully made.


# 1.32 31-Jan-2002 tv

Roll in fixes to permit cross-compiling from non-NetBSD hosts. This
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.


# 1.31 29-Jan-2002 tv

Make almost all tools compile and run properly on non-NetBSD hosts. (In
particular, most tools now run correctly on Solaris 7.)


# 1.30 25-Jan-2002 lukem

build pax as a host tool, for -N and to work around borken vendor paxes


# 1.29 10-Jan-2002 tv

Move host-mkdep to its own directory. Create and install it before
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.


# 1.28 10-Jan-2002 lukem

revert previous, and reenable tools/makefs now that it works on
netbsd-current and netbsd-1-5


# 1.27 09-Jan-2002 tv

Disable makefs in src/tools for the moment; it's very dependent on -current
NetBSD headers and sources right now. (Temporary workaround for PR 15175.)


# 1.26 05-Jan-2002 mrg

build zic as a host tool.


# 1.25 05-Jan-2002 mrg

build makefs, and, sparc-installboot if sparc||sparc64


# 1.24 31-Dec-2001 thorpej

We can't currently build a toolchain for x86-64 here, so don't
attempt to do so.


# 1.23 29-Dec-2001 wiz

Typo fix in error message.


# 1.22 11-Dec-2001 tv

Add the framework for autoconf-based src/tools/compat structure. This will
(after it is more fleshed out) allow the host tools to work more cleanly
on non-NetBSD hosts.


# 1.21 07-Dec-2001 jmc

Add pwd_mkdb as a toolchain bit for builds


# 1.20 29-Nov-2001 thorpej

Build makewhatis as a host tool, since it is used at the end of
the build.

XXX Needs a -lz hostlib.


# 1.19 22-Nov-2001 jmc

Oops. typo which can break things for non-new toolchain builds if MKTOOLS isn't
set


# 1.18 22-Nov-2001 jmc

Check for USETOOLS!=yes in addition to MKTOOLS==no to generate the empty rule
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


# 1.17 13-Nov-2001 tv

Re-add MKTOOLS as a "yes"/"no" only variable, which prevents recursion on "no"
into the src/tools subdirs on all/depend/dependall/install. Other recursive
targets are not affected.


# 1.16 12-Nov-2001 tv

Major overhaul of src/tools and host toolchain. Summary of changes:

* 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.


# 1.15 09-Nov-2001 thorpej

Build the cross-dbsym.


# 1.14 02-Nov-2001 tv

* Always use the makewrapper when starting a build phase.

* 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.


# 1.13 31-Oct-2001 tv

Don't actually delete the default tooldir on "cleandir"; else we'll nuke
the nbmake that is probably currently running.

Just leave the "cleantools" manual target as a shortcut for the user.


# 1.12 31-Oct-2001 tv

* Create a variable HOST_OSTYPE that represents the host build environment,
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.


# 1.11 31-Oct-2001 tv

* Always descend into "tools" regardless of USETOOLS setting. Instead,
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.


# 1.10 25-Oct-2001 thorpej

Add asn1_compile as a host tool.


# 1.9 21-Oct-2001 jmc

Pull in mdsetimage to the tools builds. (XXX - using libbfd here would
probably be preferrable long term).


# 1.8 20-Oct-2001 jmc

Add mklocale to cross-tools and turn it back on for the builds.


# 1.7 13-Oct-2001 jmc

Add crunchgen, msgc and menuc


# 1.6 09-Oct-2001 enami

Make mtree a host tool and use it when appropriate.


# 1.5 04-Oct-2001 tv

Recurse properly; just add "build" to TARGETS (fixes reported problem where
"make clean" doesn't work at the src/tools level).


# 1.4 22-Sep-2001 tv

Work around "make obj" lossage in tools/. Dunno why this is happening
just yet; will investigate this evening.


# 1.3 22-Sep-2001 tv

Add lorder to TOOLDIR host tools.

Only descend into directories if USE_NEW_TOOLCHAIN is set (allows top level
Makefile to use "-m ${.CURDIR}/share/mk" to get the "correct" <bsd.own.mk>
when descending into src/tools/Makefile).


# 1.2 21-Sep-2001 tv

- Create a real cpp binary.
- Set CC properly in environment for mkdep and lint.
- Add compile_et to TOOLDIR host tools.


# 1.1 14-Aug-2001 tv

Bootstrap toolchain framework, first pass.


# 1.206 28-Jul-2020 uwe

Build mkubootimage for evbsh3 too.


Revision tags: phil-wifi-20200421 phil-wifi-20200411 is-mlppp-base phil-wifi-20200406 phil-wifi-20191119
# 1.205 11-Nov-2019 joerg

Update LLVM to 10.0.0git (01f3a59fb3e2542fce74c768718f594d0debd0da)


# 1.204 26-Sep-2019 bad

Exclude more subdirs if TOOLS_BUILDRUMP=yes.

Exclude subdirs added in the last 3 years but not need for rumpkernel builds.


Revision tags: netbsd-9-0-RELEASE netbsd-9-0-RC2 netbsd-9-0-RC1 netbsd-9-base phil-wifi-20190609
# 1.203 07-May-2019 hannken

Fix build, "pax" must be built before "libprop".

Ok: Matthew Green mrg@


# 1.202 07-May-2019 thorpej

Add support for libprop as a host tool library.


# 1.201 03-Apr-2019 joerg

Add MKLLVMRT to build a subset of the LLVM stack for JIT purposes.
Hook up AMDGPU backend for clang.


# 1.200 03-Apr-2019 joerg

Revert MKLLVMCMDS changes.


# 1.199 20-Mar-2019 mrg

split MKLLVM into MKLLVM and MKLLVMCMDS, like MKGCC and MKGCCCMDS:

- only build clang or clang-tblgen if MKLLVMCMDS != "no"
- move HAVE_MESA_VER earlier so we can detect mesa 18 and enable
MKLLVM on platforms that need it
- move the clang commands and headers into llvmcmds group
- only build the clang specific LLVM libraries if MKLLVMCMDS != "no"

much of this work came from maya@'s github commit
f90685c11d4460d3098fa35f48b58d1893e974e0, reworked for HAVE_MESA_VER
and llvmcmds vs MKCLANG.


build tested on several platforms and on amd64 and i386 with several
different build options (clang build, gcc build, gcc build with llvm
libs).


Revision tags: pgoyette-compat-20190127 pgoyette-compat-20190118
# 1.198 02-Jan-2019 christos

use MACHINE_CPU for elf2aout


# 1.197 31-Dec-2018 christos

Add an arm-specific elf2aout tool since objdump does not support a.out anymore


Revision tags: pgoyette-compat-1226 pgoyette-compat-1126 pgoyette-compat-1020 pgoyette-compat-0930
# 1.196 25-Sep-2018 joerg

Update build glue for xz-5.2.4. Hook up tools version.


Revision tags: pgoyette-compat-0906
# 1.195 11-Aug-2018 christos

hook in the tools version of grep


Revision tags: pgoyette-compat-0728 phil-wifi-base pgoyette-compat-0625 pgoyette-compat-0521
# 1.194 09-May-2018 joerg

branches: 1.194.2;
For EXTERNAL_TOOLCHAIN, MKLLVM=yes needs to build only tablegen.


Revision tags: pgoyette-compat-0502 pgoyette-compat-0422 pgoyette-compat-0415 pgoyette-compat-0407 pgoyette-compat-0330 pgoyette-compat-0322 pgoyette-compat-0315 pgoyette-compat-base
# 1.193 18-Feb-2018 uwe

branches: 1.193.2;
Fix .endif comment for TOOLS_BUILDRUMP


# 1.192 27-Dec-2017 christos

Better EXTERNAL_TOOLCHAIN support from Zachary McGrew
- Allow mdsetimage and dbsym to be built with EXTERNAL_TOOLCHAIN
- Allow BFDDIR and IBERTYDIR to be overwritten for mdsetimage and dbsym


Revision tags: perseant-stdc-iso10646-base
# 1.191 07-Jun-2017 skrll

branches: 1.191.2;
Hook in dtc/libfdt now that it builds for me


# 1.190 06-Jun-2017 skrll

Disable dtc/libfdt for now


# 1.189 05-Jun-2017 christos

No need to set dtc twice.


# 1.188 05-Jun-2017 christos

Add dtc


Revision tags: netbsd-8-base prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1 pgoyette-localcount-20170320 bouyer-socketcan-base
# 1.187 11-Jan-2017 joerg

branches: 1.187.6;
Sync tools build glue with LLVM pre-4.0.0.


Revision tags: pgoyette-localcount-20170107 pgoyette-localcount-20161104 localcount-20160914 pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base
# 1.186 24-Jan-2016 christos

branches: 1.186.2;
move cvslatest last


# 1.185 24-Jan-2016 christos

Tool version


# 1.184 19-Dec-2015 christos

move sortinfo after pax


# 1.183 18-Dec-2015 christos

Add sortinfo


# 1.182 23-Jul-2015 mrg

remove the xfree86 reachover makefiles and the vast majority of
the support in the rest of the source tree.

X11 sets could use some cleaning up perhaps (just deletion, as
we've never really marked the old X11R6 as obsolete for native
xorg using platforms so far either.)


# 1.181 24-Jun-2015 matt

Support building the xorg X11 libraries under MKCOMPAT.
Add XORG_MACHINE_ARCH to compat's bsd.*.mk
Turn xorg makekeys and makestrs into real host tools which are installed into
${TOOLSDIR}


# 1.180 07-Jan-2015 joerg

Reorganise the way xorg is build. Move build of makestrs into src/tools
as it is needed for the "includes" phase. Make it symlink all necessary
headers in obj to decouple it from "includes" itself, breaking the
dependency cycle. Move the do-x11 target between do-lib and do-build, so
that libraries can get the benefit of build_install (correct .WAIT
behavior) and everything else like "includes" uses the plain SUBDIR
entry in external/mit.


# 1.179 05-Dec-2014 pooka

build genassym for TOOLS_BUILDRUMP


# 1.178 30-Sep-2014 christos

add gpt


Revision tags: netbsd-7-2-RELEASE netbsd-7-1-2-RELEASE netbsd-7-1-1-RELEASE netbsd-7-1-RELEASE netbsd-7-1-RC2 netbsd-7-nhusb-base-20170116 netbsd-7-1-RC1 netbsd-7-0-2-RELEASE netbsd-7-nhusb-base netbsd-7-0-1-RELEASE netbsd-7-0-RELEASE netbsd-7-0-RC3 netbsd-7-0-RC2 netbsd-7-0-RC1 netbsd-7-base tls-maxphys-base
# 1.177 10-Aug-2014 matt

Changes to existing files to enable building AARCH64 userland.
evbarm64-el
This is clang only. While gcc4.8 supports aarch64, no netbsd support has
been written for aarch64 with gcc4.8.


Revision tags: tls-earlyentropy-base
# 1.176 15-Jul-2014 christos

descend to vgrind


# 1.175 15-Jun-2014 pooka

Add cat, rpcgen and stat to TOOLS_BUILDRUMP. They're useful for
installing headers for the app stack cases that need it done, and small
enough to not matter for the kernel-only cases that don't.


# 1.174 14-Jun-2014 mrg

remove remaining makefile support for GCC < 45 that i found.


Revision tags: yamt-pagecache-base9
# 1.173 03-Apr-2014 riastradh

branches: 1.173.2;
ctfconvert/ctfmerge need libdwarf &c., so build them if MKCTF=yes.


Revision tags: riastradh-xf86-video-intel-2-7-1-pre-2-21-15
# 1.172 25-Mar-2014 ozaki-r

Add MKCTF

This variable separates CTF stuffs from MKDTRACE; we can build DTrace
solely without building and using them. This allows us to use DTrace
even if CTF stuffs have problems (actually they have now).

This variable would be merged into MKDTRACE eventually, once CTF stuffs
work correctly again.


Revision tags: riastradh-drm2-base3
# 1.171 24-Feb-2014 skrll

Rename NetBSD/hp700 to NetBSD/hppa.

Unfortunately our VCS isn't very helpful here.


# 1.170 02-Sep-2013 joerg

Update LLVM/Clang snapshot to r189662. This includes many improvements
to the new SLP vectorizer, fast codegen support for PPC and using
terminfo for the color sequences. In addition, add (optional) build
infrastructure for lld to allow easier testing. This is controlled by
MKLLD.


Revision tags: riastradh-drm2-base2 riastradh-drm2-base1
# 1.169 19-Jul-2013 matt

Even if we aren't making a crossgdb still make the object dir for it.


Revision tags: riastradh-drm2-base agc-symver-base
# 1.168 27-Feb-2013 joerg

branches: 1.168.4;
Add infrastructure for building MCLinker.


# 1.167 05-Feb-2013 matt

There are other little endian arm machine_arches other than "arm"
Use MACHINE_CPU and TARGET_ENDIANNESS instead of MACHINE_ARCH


# 1.166 31-Jan-2013 pooka

Use TOOLS_BUILDRUMP=yes to restrict building of tools to those required
for building rump kernels. This cuts down the NetBSD source tree required
by buildrump.sh to a fraction and addresses a size/download time concern
from a person packaging rump kernels for Linux.

No change to the normal case (tested with several -j32/-j64 builds).

reviewed by apb


Revision tags: yamt-pagecache-base8 yamt-pagecache-base7
# 1.165 02-Dec-2012 apb

Make tools/Makefile build host-mkdep, compat, and binstall in that order,
before installing any of them. It installs them in any order relative
to each other. The .WAIT points that used to be between these three
tools are replaced by .ORDER and dependencies.

This is needed in preparation for making tools/compat install
some files into TOOLDIR.


# 1.164 02-Dec-2012 apb

TOOLDIR must be valid, unless MKTOOLS=no.
Add tests and .error directives to enforce this.


# 1.163 02-Dec-2012 apb

If tools are not wanted, then set SUBDIR= empty instead of
defining all the subdir-related targets to do nothing. This way,
the targets are not invoked at all, instead of being invoked but
doing nothing.


# 1.162 02-Dec-2012 apb

remove trailing white space


# 1.161 27-Nov-2012 jkunz

According to the i.MX23 Reference Manual section 3.1, Page 3-3:
"The i.MX23 always operates in litle-endian mode."
So build elftosb and bootloader for this processor only for evbarm(-el).


# 1.160 26-Nov-2012 pooka

Build gmake iff we're going to need it.


# 1.159 15-Nov-2012 joerg

Move the build_install logic from lib/Makefile into share/mk and re-use
it for tools. The existing logic broke for the LLVM build with the
recent .ORDER changes in make.


# 1.158 15-Nov-2012 jkunz

Add elftosb tools to evbarm userland and toolchain.
Elftosb is used to create a digitaly signed "secure boot" file.
This sb file can be booted by the first stage boot loader found in
Freescale i.MX23 and i.MX28 application processors.

Copyright (c) 2004-2010 Freescale Semiconductor, Inc.


Revision tags: yamt-pagecache-base6
# 1.157 20-Sep-2012 pooka

fix EXTERNAL_TOOLCHAIN build


# 1.156 10-Aug-2012 joerg

branches: 1.156.2;
Decouple binutils build from HAVE_GCC. Merge common fragments of
HAVE_GCC and HAVE_PCC.


Revision tags: netbsd-6-0-6-RELEASE netbsd-6-1-5-RELEASE netbsd-6-1-4-RELEASE netbsd-6-0-5-RELEASE netbsd-6-1-3-RELEASE netbsd-6-0-4-RELEASE netbsd-6-1-2-RELEASE netbsd-6-0-3-RELEASE netbsd-6-1-1-RELEASE netbsd-6-0-2-RELEASE netbsd-6-1-RELEASE netbsd-6-1-RC4 netbsd-6-1-RC3 netbsd-6-1-RC2 netbsd-6-1-RC1 netbsd-6-0-1-RELEASE matt-nb6-plus-nbase netbsd-6-0-RELEASE netbsd-6-0-RC2 matt-nb6-plus-base netbsd-6-0-RC1 yamt-pagecache-base5 yamt-pagecache-base4 netbsd-6-base yamt-pagecache-base3 yamt-pagecache-base2
# 1.155 03-Nov-2011 joerg

Revert .WAIT removal and add comment why it is needed between *tblgen.


# 1.154 02-Nov-2011 njoly

Do not build tic more than once


# 1.153 02-Nov-2011 christos

move tic later, after all the tools it needs are built.


# 1.152 02-Nov-2011 yamt

tweak dependencies for tic, which needs nbperf, awk, and sed.


Revision tags: yamt-pagecache-base
# 1.151 01-Nov-2011 joerg

branches: 1.151.2;
Remove an unnecessary .WAIT between llvm-tblgen and clang-tblgen.


# 1.150 01-Nov-2011 joerg

Hook up nbperf into the normal tool build.


# 1.149 11-Oct-2011 joerg

Update LLVM/Clang snapshot to r141658. This primarily fixes a regression
preventing Qt4 from building.


# 1.148 16-Jul-2011 tsutsui

Build nbm68k-elf2aout as a host tool on m68k targets
for an ancient PROM bootloader.
Mostly taken from nbmips-elf2ecoff.


# 1.147 10-Jul-2011 mrg

install elf2ecoff for all mips64 systems. it's needed for stand.


# 1.146 21-Jun-2011 mrg

always build gmake if HAVE_GCC.
build gmp, mpfr and then mpc if HAVE_GCC >= 45.


Revision tags: cherry-xenmp-base
# 1.145 15-Apr-2011 elric

branches: 1.145.2;
Upgrade Heimdal to 1.5pre1 by switching the build from crypto/dist/heimdal
to crypto/external/bsd/heimdal. The latter was just imported as the head
of the Heimdal tree as of a few days ago.


# 1.144 17-Mar-2011 riz

.WAIT for makefs, because in most builds, it's the first target
which includes Makefile.nbincludes, whose beforedepend: has
some race condition I don't fully understand, and which has been
causing many (but not all!) -j16 builds on the autobuild cluster
to fail in tools since sometime between 201103061600 and 201103070900.

With the proper voodoo, I was able to get 8 builds in a row to fail
without this change, and 16 in a row to succeed with it.

XXX a proper fix likely involves reworking the beforedepend: target
of Makefile.nbincludes, but this should get the build cluster back up
to full functionality in the meanwhile.


Revision tags: bouyer-quota2-nbase
# 1.143 25-Feb-2011 phx

mkubootimage is certainly useful for sandpoint


Revision tags: bouyer-quota2-base
# 1.142 06-Feb-2011 joerg

Add LLVM and clang build system. It is enabled by MKLLVM=yes.
Upstream sources can be fetched by running "make checkout" in
src/external/bsd/llvm, they will be properly imported once the
integration and missing features are sorted out.


# 1.141 31-Jan-2011 matt

Make mkubootimage for evbmips and evbppc too.


Revision tags: matt-mips64-premerge-20101231
# 1.140 15-Aug-2010 mrg

branches: 1.140.2;
add new option to build/use tools/pigz for compressing sets. for now
USE_PIGZGZIP defaults to "no". (it depends upon local <pthread.h> and -lz.)

you can set it to "yes" on most modern platforms just fine.


# 1.139 18-Jun-2010 jmcneill

hook mkubootimage into the build


# 1.138 04-Jun-2010 jmmv

Bye bye atf-compile, you won't be missed.


# 1.137 02-Mar-2010 darran

DTrace: add libelf, libdwarf, libctf, and CTF tools to the toolchain,
built when MKDTRACE=yes.


# 1.136 20-Feb-2010 joerg

Build mandoc unconditional if man pages are desirable. All
compatibility issues are supposed to be sorted out.
Build groff conditionally on MKGROFF. It is currently the only component
that requires C++.


# 1.135 03-Feb-2010 roy

Store our generated files in CVS and remove nbperf from the toolchain.
This allows us to build consistent libs without an ever changing hash.


# 1.134 03-Feb-2010 roy

Userland now builds and uses terminfo instead of termcap.

OK: core@, jdc@


# 1.133 29-Dec-2009 he

To unbreak the build, temporarily remove the build of libelf here,
since no other part of the build depends on this yet.

Suggested as a temporary workaround by thorpej@


# 1.132 23-Dec-2009 mrg

rework the main SUBDIR list here as suggested by enami. put .WAIT on
the same line as the target that needs to wait, but before the target,
rather than on the previous line, which led to confusion and an error
being introduced in the previous change.


# 1.131 21-Dec-2009 mrg

move the build of pax before libelf. fixes my build of tools/libelf,
though i didn't look to see why libelf needs pax.


# 1.130 21-Dec-2009 thorpej

Add support for building libelf in a host-tool environment.

XXX Makefile.disklabel is really mis-named, but I'm not going to tackle
that problem right now.


Revision tags: matt-premerge-20091211
# 1.129 29-Oct-2009 christos

Give m4 its own .WAIT. Fixes build issue on NetBSD-5.


# 1.128 23-Oct-2009 joerg

Add MKMANDOC option to trigger building cat pages and HTML pages with
mdocml. Add a lintmanpages target for developers to check man pages
with the strictest settings of mandoc.


Revision tags: jym-xensuspend-nbase jym-xensuspend-base
# 1.127 25-Feb-2009 sketch

Disable grep host tool and unbreak NetBSD build until I can come up with a
clean fix.


# 1.126 25-Feb-2009 sketch

Make grep a host tool.


# 1.125 14-Feb-2009 abs

Convert more MACHINE tests to MACHINE_ARCH


Revision tags: netbsd-5-2-3-RELEASE netbsd-5-1-5-RELEASE netbsd-5-2-2-RELEASE netbsd-5-1-4-RELEASE netbsd-5-2-1-RELEASE netbsd-5-1-3-RELEASE netbsd-5-2-RELEASE netbsd-5-2-RC1 netbsd-5-1-2-RELEASE netbsd-5-1-1-RELEASE matt-nb5-mips64-premerge-20101231 matt-nb5-pq3-base netbsd-5-1-RELEASE netbsd-5-1-RC4 matt-nb5-mips64-k15 netbsd-5-1-RC3 netbsd-5-1-RC2 netbsd-5-1-RC1 netbsd-5-0-2-RELEASE matt-nb5-mips64-premerge-20091211 matt-nb5-mips64-u2-k2-k4-k7-k8-k9 matt-nb4-mips64-k7-u2a-k9b matt-nb5-mips64-u1-k1-k5 netbsd-5-0-1-RELEASE netbsd-5-0-RELEASE netbsd-5-0-RC4 netbsd-5-0-RC3 netbsd-5-0-RC2 netbsd-5-0-RC1 netbsd-5-base
# 1.124 25-Oct-2008 apb

branches: 1.124.4; 1.124.8; 1.124.12;
Build sed earlier, just after mktemp. Note that sed and mktemp do not
depend on each other, but the .WAIT is needed to get them both installed
before the remainder of the tools build.


# 1.123 25-Oct-2008 apb

Remove the local handling of the NOSUBDIR variable. We can rely
on bsd.subdir.mk's handling of the NOSUBDIR variable.

Also add some comment to .if/.else/.endif and .for/.endfor lines.


Revision tags: matt-mips64-base2
# 1.122 19-Oct-2008 apb

Add awk as a host tool.


# 1.121 13-Oct-2008 dyoung

Per uwe@'s suggestion, build nbgroff under wider circumstances.
I choose to build it if MKDOC != no or if MKHTML != no. It used
to be built only when MKMAN != no.


# 1.120 05-Oct-2008 apb

Add a .WAIT to ensure that sed is installed early, so that TOOL_SED can
be used during the build of other tools.


# 1.119 26-Sep-2008 apb

Build strfile both as a host tool and as an installed program:
* in games/fortune/strfile/Makefile, build strfile as a
regular program instead of as a host tool;
* add tools/strfile directory to build strfile as a host tool;
* in tools/Makefile, add strfile to SUBDIR list;
* in BSD.*.mk, define TOOL_STRFILE variable;
* in games/fortune/datfiles/Makefile, use TOOL_STRFILE when creating
databases at build time;
* in distrib/sets/lists/games/mi, mention usr/games/strfile.


Revision tags: wrstuden-revivesa-base-3 wrstuden-revivesa-base-2
# 1.118 24-Aug-2008 gmcgarry

Build pcc as host tool if requested.


Revision tags: wrstuden-revivesa-base-1 yamt-pf42-base4 yamt-pf42-base3 wrstuden-revivesa-base
# 1.117 26-May-2008 he

Remove references to bebox-elf2pef and bebox-mkbootimage, now that they
have been integrated in common powerpc tools and subsequently removed.


Revision tags: hpcarm-cleanup-nbase yamt-pf42-base2
# 1.116 30-Apr-2008 garbled

branches: 1.116.2;
Build powerpc-mkbootimage for rs6000 and bebox too.


# 1.115 30-Apr-2008 garbled

Convert prep to use the new unified mkbootimage rather than it's own. This
mkbootimage can be shared by prep, rs6000, and bebox.

TODO: Convert bebox to use this. Needs someone to test.


Revision tags: yamt-pf42-baseX yamt-pf42-base keiichi-mipv6-nbase keiichi-mipv6-base matt-armv6-nbase cube-autoconf-base matt-armv6-base hpcarm-cleanup-base
# 1.114 12-Nov-2007 jmmv

branches: 1.114.6;
Add the atf host tools

This adds reachover Makefiles to build the atf tools required during a
cross-build.


Revision tags: matt-armv6-prevmlocking matt-mips64-base
# 1.113 14-Jan-2007 apb

branches: 1.113.4;
Build join(1) as a host tool.


# 1.112 20-Dec-2006 agc

A commit too far - don't try to build veriexecgen for just now


# 1.111 19-Dec-2006 agc

Build veriexecgen as a host tool


Revision tags: netbsd-4-0-1-RELEASE wrstuden-fixsa-newbase wrstuden-fixsa-base-1 netbsd-4-0-RELEASE netbsd-4-0-RC5 netbsd-4-0-RC4 netbsd-4-0-RC3 netbsd-4-0-RC2 netbsd-4-0-RC1 wrstuden-fixsa-base netbsd-4-base
# 1.110 22-Nov-2006 riz

Make sys/exec_elf.h and machine/elf_machdep.h available to host
tools, and allow paxctl to use them when compiled as a host
tool. This fixes the build on MacOS X (and perhaps other platforms)


# 1.109 17-Nov-2006 dsl

Add some notes about the bogosity of some of the .WAIT stuff.
Remove a 'never had a sane effect' .WAIT from a .ORDER line.
Don't add a (probably incorrect) dependency for 'make install' since
it contradicts a .ORDER line elsewhere when .ORDER applies recursively
to child nodes.
I also think that the stuff that tries to add dependencies between
the stuff that bsd.subdir.mk generates does not DTRT at all.
I suspect that build.sh builds things in an order that avoids issues here.


# 1.108 10-Nov-2006 christos

Add paxctl as a tool.


# 1.107 08-Oct-2006 apb

If PREVIOUSTOOLDIR was empty, then don't complain that it has moved.

Patch from Jukka Salmi in PR 33095.


Revision tags: abandoned-netbsd-4-base
# 1.106 03-Aug-2006 freza

* Fix parallel build race condition between real{all,depend} and
<bsd.subdir.mk> targets.
* No need to pass TOOLDIR to recursive cleandir in real{all,depend}.

With help from he@.
OK by tron@.


# 1.105 03-Aug-2006 tron

Another attempt to fix the race in parallel builds.


# 1.104 19-Jul-2006 tron

Invoking "make cleandir" with "PREVIOUSTOOLDIR" set to the previous
location will not stop recursive "make cleandir" calls. Pass the new
location instead.


# 1.103 18-Jul-2006 lukem

gettext should .WAIT for autoconf.
(The former still doesn't seem to work on read-only source; separate issue)


# 1.102 17-Jul-2006 tron

Avoid getting into a loop of "make cleandir" instances if the location
tool directory has been changed or wasn't recorded before.


# 1.101 17-Jul-2006 tron

Remove ".WAIT" again because it doesn't fix the problem.


# 1.100 12-Jul-2006 tron

Add an extra ".WAIT" to the "realall realdepend" target to make sure
it finished cleaning the tools directory in case of tool directory
mismatch before we try to rebuild the tools.


# 1.99 22-Jun-2006 mrg

only build lint and lint2 if MKLINT != "no".


# 1.98 18-Jun-2006 gdamore

Make TOOL_SED, to allow using our own sed in cases where the host's version
is busted in some way.

The TOOL_SED doesn't use TIOCGWINSIZE, and has some changes to include
nbtool_config.h in a cross build environment.

Combined with some other changes (not yet committed), this allows cross
compiling m68k code on Solaris 10/amd64.


# 1.97 02-Jun-2006 mrg

remove support for building (with) GCC 2.95. also:
- always install <stdbool.h>
- don't generate a fake one for vax / gettext.


# 1.96 11-May-2006 mrg

check HAVE_GCC == 4 not USE_GCC4.


# 1.95 01-Apr-2006 christos

Don't barf if USE_GCC4 is not defined.


# 1.94 29-Mar-2006 jmc

Turn on gmake builds if GCC4 is enabled (and force it's install before continuing


# 1.93 03-Feb-2006 dsl

The realall and realdepend bit that regenerates tools needs to be marked
.MAKE otherwise the 'make' it runs has its own list of jobs instead of
using the jobserver of the enclosing make.


# 1.92 04-Oct-2005 jmc

Make the tools using Makefile.disklabel wait so they don't stomp each other.
Also for now add a dependency to Makefile.disklabel so this doesn't run
3 times. (XXX this really should just be done differently)


# 1.91 12-Jun-2005 dyoung

.include Makefile.disklabel in installboot, so that the
nbinclude/ header files will be installed. Build installboot after
pax, since Makefile.disklabel uses pax to install the headers.


# 1.90 12-Jun-2005 dyoung

Make disklabel(8) and fdisk(8) into "host tools " last step: build
and install ${TOOLDIR}/bin/${MACHINE_GNU_PLATFORM}-disklabel,
${TOOLDIR}/bin/${MACHINE_GNU_PLATFORM}-fdisk by "reaching over" to
the sources in ${NETBSDSRCDIR}/sbin/{disklabel fdisk}/.

To avoid clashes with a build-host's header files, especially on
*BSD, the host-tools versions of fdisk and disklabel search for
#includes such as disklabel.h, disklabel_acorn.h, disklabel_gpt.h,
and bootinfo.h in a new #includes namespace, nbinclude/. That is,
they #include <nbinclude/sys/disklabel.h>, <nbinclude/machine/disklabel.h>,
<nbinclude/sparc64/disklabel.h>, instead of <sys/disklabel.h> and
such. I have also updated the system headers to #include from
nbinclude/-space when HAVE_NBTOOL_CONFIG_H is #defined.


# 1.89 30-May-2005 thorpej

Build genassym as a host tool. Part of PR toolchain/30350


Revision tags: netbsd-3-1-1-RELEASE netbsd-3-0-3-RELEASE netbsd-3-1-RELEASE netbsd-3-0-2-RELEASE netbsd-3-1-RC4 netbsd-3-1-RC3 netbsd-3-1-RC2 netbsd-3-1-RC1 netbsd-3-0-1-RELEASE netbsd-3-0-RELEASE netbsd-3-0-RC6 netbsd-3-0-RC5 netbsd-3-0-RC4 netbsd-3-0-RC3 netbsd-3-0-RC2 netbsd-3-0-RC1 netbsd-3-base
# 1.88 27-Jan-2005 is

We don't need aout2bb any longer.


# 1.87 09-Jan-2005 mycroft

Add some quotes to prevent a syntax error.


# 1.86 28-Nov-2004 jmc

Convert mkboot into a full cross tool. Last hurdle for hp300 to building on
non NetBSD/bsd hosts.


# 1.85 28-Nov-2004 jmc

Convert remaining host tools for amiga to correct cross tools. Now allows
complete amiga builds on non netbsd/bsd hosts


# 1.84 25-Nov-2004 jmc

Convert bebox's remaining host tools over to cross tools scheme. Builds to sets
w/o error now.


# 1.83 28-Jul-2004 skrll

Build hp700's mkboot as a host tool called nbhp700-mkboot. mkboot also
gets built and installed in a hp700 distribution.

TODO

- merge with hp300

- pick a preferred method for dealing with the elf headers.
hp700-mkboot and prep-mkbootimage (bintuils) vs mips-elf2ecoff and
tools/installboot


# 1.82 08-Jun-2004 abs

Add sparkcrc (used to generate checksums for acorn32 bootloader sparkive)
as a host tool.


Revision tags: netbsd-2-0-base
# 1.81 03-Jan-2004 lukem

branches: 1.81.2;
Consistently check ${TOOLCHAIN_MISSING} against "no".


# 1.80 11-Dec-2003 matt

Fix typo.


# 1.79 11-Dec-2003 matt

Add macppc-fixcoff tool.


# 1.78 10-Dec-2003 lukem

Use (cd ${.CURDIR} && ${MAKE} cleandir) instead of ${MAKE} cleandir
Suggested by Ross Harvey.


# 1.77 04-Dec-2003 mrg

always build tools/binutils now.


# 1.76 08-Nov-2003 sekiya

Build sgivol as a host tool when compiling for sgimips.


# 1.75 27-Oct-2003 lukem

add mknod as a host tool


# 1.74 26-Oct-2003 cl

add gdb53 as a host tool for use as a crossgdb
replaces gdb50 from toolchain on archs which use gcc3


# 1.73 21-Oct-2003 lukem

Rework how MAKEVERBOSE operates:

* Don't bother prefixing commands with a line of ${_MKCMD}\
and instead rely upon "make -s". This is less intrusive on
all the Makefiles than the former. Idea from David Laight.

* Rename the variables use to print messages. The scheme now is:
_MKMSG_FOO Run _MKMSG 'foo'
_MKTARGET_FOO Run _MKMSG_FOO ${.TARGET}
From discussion with Alistair Crooks.


# 1.72 19-Oct-2003 matt

Add host tool version of ncdcs


# 1.71 18-Oct-2003 lukem

MAKEVERBOSE support


# 1.70 25-Jul-2003 mrg

- build "binutils" and "gcc" separately if USE_TOOLS_TOOLCHAIN is not set
to "yes".
- adjust dbsym/mdsetimage to look in the correct place for libbfd.
- new mknative-gcc based in toolchain/mknative


# 1.69 24-Jul-2003 tron

Add missing "cleandir" rule.


# 1.68 20-Jul-2003 lukem

add stat(1) as a host tool


# 1.67 16-Jul-2003 lukem

also do the MKTOOLS and PREVIOUSTOOLDIR checks for "realdepend"


# 1.66 16-Jul-2003 lukem

* If a `PREVIOUSTOOLDIR' file doesn't exist, or its contents are not
the same as "$TOOLDIR", run "make cleandir" here first.
This should prevent various problems where $TOOLDIR is encoded into the
build process for various tools (lint, groff, texinfo, toolchain),
$TOOLDIR changes, and various programs don't get rebuilt correctly.
Should fix PR [toolchain/21988].

* Clean up how the `${MKTOOLS} == no' check is performed.

* Remove "cleantools"; it made a big assumption about the location of
TOOLDIR that won't be correct in many cases.


# 1.65 26-Jun-2003 tshiozak

Citrus iconv support(3)
add host tools : mkcsmapper and mkesdb
mkcsmapper - coded character set mapping table compiler
mkesdb - encoding scheme database compiler


# 1.64 18-May-2003 lukem

Add db(1) as a host tool


# 1.63 25-Mar-2003 pooka

build file(1) as a host tool (for compiling magic files)


# 1.62 07-Mar-2003 thorpej

Make hexdump a host tool.


Revision tags: fvdl_fs64_base
# 1.61 21-Dec-2002 lukem

enable sunlabel...


# 1.60 19-Sep-2002 thorpej

Change the TOOLCHAIN_MISSING from == "no" to != "yes", to be consistent
with the other tests of this variable.


# 1.59 19-Sep-2002 matt

Since TOOLCHAIN_MISSING is defined in bsd.own.mk, it can never be undefined.
Instead, make sure the value of it is "no"


# 1.58 17-Sep-2002 thorpej

* Eliminate the USE_NEW_TOOLCHAIN variable. Instead, split it into
two variables:

TOOLCHAIN_MISSING -- set to "yes" on platforms for which there is
no working in-tree toolchain (hppa, ns32k, sh5, x86_64).

EXTERNAL_TOOLCHAIN -- if defined by the user, points to the root of
an external toolchain (e.g. /usr/local/gnu). This enables the cross-build
framework even for TOOLCHAIN_MISSING platforms.

If TOOLCHAIN_MISSING is set to "yes", MKGDB, MKBFD, and MKGCC are all
unconditionally set to "no", since the bits are not there to build.

If EXTERNAL_TOOLCHAIN is set, MKGCC is unconditionally set to "no",
since the external toolchain's compiler is not in-sync with the
in-tree compiler support components (e.g. libgcc).

* Set MACHINE_CPU much earlier in bsd.own.mk, so that more tests in
that file can use it.


# 1.57 14-Sep-2002 chris

We need binstall to be installed, before attempting to use it to install mktemp.


# 1.56 14-Sep-2002 thorpej

Descend into mktemp.


# 1.55 12-Jun-2002 veego

The last commit wasn't tested. Add a missing \


# 1.54 12-Jun-2002 thorpej

Don't build toolchain bits for hppa, for now.


# 1.53 10-Jun-2002 mason

Add cat(1) as a host tool.


# 1.52 05-Jun-2002 thorpej

Don't try to build toolchain bits for ns32k.


# 1.51 28-May-2002 bjh21

Add fgen as a host tool, used for sys/arch/sparc/bootblk.


Revision tags: netbsd-1-6-base
# 1.50 18-May-2002 lukem

branches: 1.50.2;
gratuitious comment addition


# 1.49 07-May-2002 lukem

remove now-unnecessary sparc-installboot


# 1.48 03-May-2002 kleink

On prep, descend into prep-mkbootimage.


# 1.47 06-Apr-2002 bjh21

vax-installboot has been deleted, so don't recurse into it.


# 1.46 03-Apr-2002 lukem

enable installboot


# 1.45 01-Apr-2002 thorpej

Nuke NO_DBSYM; dbsym now uses BFD for everything.


# 1.44 01-Apr-2002 bjh21

On second thoughts, don't make mktemp a host tool. It's only used once, for
creating a temporary directory for maketars, and mkdir can do that safely
enough.


# 1.43 31-Mar-2002 bjh21

Add mktemp as a host tool.


# 1.42 31-Mar-2002 bjh21

Add cksum as a host tool.


# 1.41 29-Mar-2002 matt

Drop into vax-installboot on VAX machines.


# 1.40 07-Mar-2002 tv

Rework recursion to use the original logic again, in the structure cleaned
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".


# 1.39 07-Mar-2002 tv

Don't build groff if MKMAN=no. (groff does not build properly on some
platforms because of its completely insane Make structure; this allows it
to be disabled in a sane way.)


# 1.38 26-Feb-2002 tv

Add gettext to tools.

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.)


# 1.37 23-Feb-2002 gmcgarry

Add elf2ecoff as a build tool for mips ports.


# 1.36 18-Feb-2002 pk

* Add comments on all the directory build/install ordering goo.
* 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.


# 1.35 11-Feb-2002 pk

Revert part of previous; we need the install targets.


# 1.34 10-Feb-2002 pk

Use .ORDER targets to express the dependencies on subdir runs. This makes
the resulting tree complexity O(N) (N=# of subdirs), and it also makes it
easier to comprehend the Makefile logic.


# 1.33 08-Feb-2002 pk

Make sure to not go off installing in a directory before it's fully made.


# 1.32 31-Jan-2002 tv

Roll in fixes to permit cross-compiling from non-NetBSD hosts. This
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.


# 1.31 29-Jan-2002 tv

Make almost all tools compile and run properly on non-NetBSD hosts. (In
particular, most tools now run correctly on Solaris 7.)


# 1.30 25-Jan-2002 lukem

build pax as a host tool, for -N and to work around borken vendor paxes


# 1.29 10-Jan-2002 tv

Move host-mkdep to its own directory. Create and install it before
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.


# 1.28 10-Jan-2002 lukem

revert previous, and reenable tools/makefs now that it works on
netbsd-current and netbsd-1-5


# 1.27 09-Jan-2002 tv

Disable makefs in src/tools for the moment; it's very dependent on -current
NetBSD headers and sources right now. (Temporary workaround for PR 15175.)


# 1.26 05-Jan-2002 mrg

build zic as a host tool.


# 1.25 05-Jan-2002 mrg

build makefs, and, sparc-installboot if sparc||sparc64


# 1.24 31-Dec-2001 thorpej

We can't currently build a toolchain for x86-64 here, so don't
attempt to do so.


# 1.23 29-Dec-2001 wiz

Typo fix in error message.


# 1.22 11-Dec-2001 tv

Add the framework for autoconf-based src/tools/compat structure. This will
(after it is more fleshed out) allow the host tools to work more cleanly
on non-NetBSD hosts.


# 1.21 07-Dec-2001 jmc

Add pwd_mkdb as a toolchain bit for builds


# 1.20 29-Nov-2001 thorpej

Build makewhatis as a host tool, since it is used at the end of
the build.

XXX Needs a -lz hostlib.


# 1.19 22-Nov-2001 jmc

Oops. typo which can break things for non-new toolchain builds if MKTOOLS isn't
set


# 1.18 22-Nov-2001 jmc

Check for USETOOLS!=yes in addition to MKTOOLS==no to generate the empty rule
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


# 1.17 13-Nov-2001 tv

Re-add MKTOOLS as a "yes"/"no" only variable, which prevents recursion on "no"
into the src/tools subdirs on all/depend/dependall/install. Other recursive
targets are not affected.


# 1.16 12-Nov-2001 tv

Major overhaul of src/tools and host toolchain. Summary of changes:

* 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.


# 1.15 09-Nov-2001 thorpej

Build the cross-dbsym.


# 1.14 02-Nov-2001 tv

* Always use the makewrapper when starting a build phase.

* 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.


# 1.13 31-Oct-2001 tv

Don't actually delete the default tooldir on "cleandir"; else we'll nuke
the nbmake that is probably currently running.

Just leave the "cleantools" manual target as a shortcut for the user.


# 1.12 31-Oct-2001 tv

* Create a variable HOST_OSTYPE that represents the host build environment,
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.


# 1.11 31-Oct-2001 tv

* Always descend into "tools" regardless of USETOOLS setting. Instead,
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.


# 1.10 25-Oct-2001 thorpej

Add asn1_compile as a host tool.


# 1.9 21-Oct-2001 jmc

Pull in mdsetimage to the tools builds. (XXX - using libbfd here would
probably be preferrable long term).


# 1.8 20-Oct-2001 jmc

Add mklocale to cross-tools and turn it back on for the builds.


# 1.7 13-Oct-2001 jmc

Add crunchgen, msgc and menuc


# 1.6 09-Oct-2001 enami

Make mtree a host tool and use it when appropriate.


# 1.5 04-Oct-2001 tv

Recurse properly; just add "build" to TARGETS (fixes reported problem where
"make clean" doesn't work at the src/tools level).


# 1.4 22-Sep-2001 tv

Work around "make obj" lossage in tools/. Dunno why this is happening
just yet; will investigate this evening.


# 1.3 22-Sep-2001 tv

Add lorder to TOOLDIR host tools.

Only descend into directories if USE_NEW_TOOLCHAIN is set (allows top level
Makefile to use "-m ${.CURDIR}/share/mk" to get the "correct" <bsd.own.mk>
when descending into src/tools/Makefile).


# 1.2 21-Sep-2001 tv

- Create a real cpp binary.
- Set CC properly in environment for mkdep and lint.
- Add compile_et to TOOLDIR host tools.


# 1.1 14-Aug-2001 tv

Bootstrap toolchain framework, first pass.


# 1.205 11-Nov-2019 joerg

Update LLVM to 10.0.0git (01f3a59fb3e2542fce74c768718f594d0debd0da)


# 1.204 26-Sep-2019 bad

Exclude more subdirs if TOOLS_BUILDRUMP=yes.

Exclude subdirs added in the last 3 years but not need for rumpkernel builds.


Revision tags: netbsd-9-base phil-wifi-20190609
# 1.203 07-May-2019 hannken

Fix build, "pax" must be built before "libprop".

Ok: Matthew Green mrg@


# 1.202 07-May-2019 thorpej

Add support for libprop as a host tool library.


# 1.201 03-Apr-2019 joerg

Add MKLLVMRT to build a subset of the LLVM stack for JIT purposes.
Hook up AMDGPU backend for clang.


# 1.200 03-Apr-2019 joerg

Revert MKLLVMCMDS changes.


# 1.199 20-Mar-2019 mrg

split MKLLVM into MKLLVM and MKLLVMCMDS, like MKGCC and MKGCCCMDS:

- only build clang or clang-tblgen if MKLLVMCMDS != "no"
- move HAVE_MESA_VER earlier so we can detect mesa 18 and enable
MKLLVM on platforms that need it
- move the clang commands and headers into llvmcmds group
- only build the clang specific LLVM libraries if MKLLVMCMDS != "no"

much of this work came from maya@'s github commit
f90685c11d4460d3098fa35f48b58d1893e974e0, reworked for HAVE_MESA_VER
and llvmcmds vs MKCLANG.


build tested on several platforms and on amd64 and i386 with several
different build options (clang build, gcc build, gcc build with llvm
libs).


Revision tags: pgoyette-compat-20190127 pgoyette-compat-20190118
# 1.198 02-Jan-2019 christos

use MACHINE_CPU for elf2aout


# 1.197 31-Dec-2018 christos

Add an arm-specific elf2aout tool since objdump does not support a.out anymore


Revision tags: pgoyette-compat-1226 pgoyette-compat-1126 pgoyette-compat-1020 pgoyette-compat-0930
# 1.196 25-Sep-2018 joerg

Update build glue for xz-5.2.4. Hook up tools version.


Revision tags: pgoyette-compat-0906
# 1.195 11-Aug-2018 christos

hook in the tools version of grep


Revision tags: pgoyette-compat-0728 phil-wifi-base pgoyette-compat-0625 pgoyette-compat-0521
# 1.194 09-May-2018 joerg

branches: 1.194.2;
For EXTERNAL_TOOLCHAIN, MKLLVM=yes needs to build only tablegen.


Revision tags: pgoyette-compat-0502 pgoyette-compat-0422 pgoyette-compat-0415 pgoyette-compat-0407 pgoyette-compat-0330 pgoyette-compat-0322 pgoyette-compat-0315 pgoyette-compat-base
# 1.193 18-Feb-2018 uwe

branches: 1.193.2;
Fix .endif comment for TOOLS_BUILDRUMP


# 1.192 27-Dec-2017 christos

Better EXTERNAL_TOOLCHAIN support from Zachary McGrew
- Allow mdsetimage and dbsym to be built with EXTERNAL_TOOLCHAIN
- Allow BFDDIR and IBERTYDIR to be overwritten for mdsetimage and dbsym


Revision tags: perseant-stdc-iso10646-base
# 1.191 07-Jun-2017 skrll

branches: 1.191.2;
Hook in dtc/libfdt now that it builds for me


# 1.190 06-Jun-2017 skrll

Disable dtc/libfdt for now


# 1.189 05-Jun-2017 christos

No need to set dtc twice.


# 1.188 05-Jun-2017 christos

Add dtc


Revision tags: netbsd-8-base prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1 pgoyette-localcount-20170320 bouyer-socketcan-base
# 1.187 11-Jan-2017 joerg

branches: 1.187.6;
Sync tools build glue with LLVM pre-4.0.0.


Revision tags: pgoyette-localcount-20170107 pgoyette-localcount-20161104 localcount-20160914 pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base
# 1.186 24-Jan-2016 christos

branches: 1.186.2;
move cvslatest last


# 1.185 24-Jan-2016 christos

Tool version


# 1.184 19-Dec-2015 christos

move sortinfo after pax


# 1.183 18-Dec-2015 christos

Add sortinfo


# 1.182 23-Jul-2015 mrg

remove the xfree86 reachover makefiles and the vast majority of
the support in the rest of the source tree.

X11 sets could use some cleaning up perhaps (just deletion, as
we've never really marked the old X11R6 as obsolete for native
xorg using platforms so far either.)


# 1.181 24-Jun-2015 matt

Support building the xorg X11 libraries under MKCOMPAT.
Add XORG_MACHINE_ARCH to compat's bsd.*.mk
Turn xorg makekeys and makestrs into real host tools which are installed into
${TOOLSDIR}


# 1.180 07-Jan-2015 joerg

Reorganise the way xorg is build. Move build of makestrs into src/tools
as it is needed for the "includes" phase. Make it symlink all necessary
headers in obj to decouple it from "includes" itself, breaking the
dependency cycle. Move the do-x11 target between do-lib and do-build, so
that libraries can get the benefit of build_install (correct .WAIT
behavior) and everything else like "includes" uses the plain SUBDIR
entry in external/mit.


# 1.179 05-Dec-2014 pooka

build genassym for TOOLS_BUILDRUMP


# 1.178 30-Sep-2014 christos

add gpt


Revision tags: netbsd-7-2-RELEASE netbsd-7-1-2-RELEASE netbsd-7-1-1-RELEASE netbsd-7-1-RELEASE netbsd-7-1-RC2 netbsd-7-nhusb-base-20170116 netbsd-7-1-RC1 netbsd-7-0-2-RELEASE netbsd-7-nhusb-base netbsd-7-0-1-RELEASE netbsd-7-0-RELEASE netbsd-7-0-RC3 netbsd-7-0-RC2 netbsd-7-0-RC1 netbsd-7-base tls-maxphys-base
# 1.177 10-Aug-2014 matt

Changes to existing files to enable building AARCH64 userland.
evbarm64-el
This is clang only. While gcc4.8 supports aarch64, no netbsd support has
been written for aarch64 with gcc4.8.


Revision tags: tls-earlyentropy-base
# 1.176 15-Jul-2014 christos

descend to vgrind


# 1.175 15-Jun-2014 pooka

Add cat, rpcgen and stat to TOOLS_BUILDRUMP. They're useful for
installing headers for the app stack cases that need it done, and small
enough to not matter for the kernel-only cases that don't.


# 1.174 14-Jun-2014 mrg

remove remaining makefile support for GCC < 45 that i found.


Revision tags: yamt-pagecache-base9
# 1.173 03-Apr-2014 riastradh

branches: 1.173.2;
ctfconvert/ctfmerge need libdwarf &c., so build them if MKCTF=yes.


Revision tags: riastradh-xf86-video-intel-2-7-1-pre-2-21-15
# 1.172 25-Mar-2014 ozaki-r

Add MKCTF

This variable separates CTF stuffs from MKDTRACE; we can build DTrace
solely without building and using them. This allows us to use DTrace
even if CTF stuffs have problems (actually they have now).

This variable would be merged into MKDTRACE eventually, once CTF stuffs
work correctly again.


Revision tags: riastradh-drm2-base3
# 1.171 24-Feb-2014 skrll

Rename NetBSD/hp700 to NetBSD/hppa.

Unfortunately our VCS isn't very helpful here.


# 1.170 02-Sep-2013 joerg

Update LLVM/Clang snapshot to r189662. This includes many improvements
to the new SLP vectorizer, fast codegen support for PPC and using
terminfo for the color sequences. In addition, add (optional) build
infrastructure for lld to allow easier testing. This is controlled by
MKLLD.


Revision tags: riastradh-drm2-base2 riastradh-drm2-base1
# 1.169 19-Jul-2013 matt

Even if we aren't making a crossgdb still make the object dir for it.


Revision tags: riastradh-drm2-base agc-symver-base
# 1.168 27-Feb-2013 joerg

branches: 1.168.4;
Add infrastructure for building MCLinker.


# 1.167 05-Feb-2013 matt

There are other little endian arm machine_arches other than "arm"
Use MACHINE_CPU and TARGET_ENDIANNESS instead of MACHINE_ARCH


# 1.166 31-Jan-2013 pooka

Use TOOLS_BUILDRUMP=yes to restrict building of tools to those required
for building rump kernels. This cuts down the NetBSD source tree required
by buildrump.sh to a fraction and addresses a size/download time concern
from a person packaging rump kernels for Linux.

No change to the normal case (tested with several -j32/-j64 builds).

reviewed by apb


Revision tags: yamt-pagecache-base8 yamt-pagecache-base7
# 1.165 02-Dec-2012 apb

Make tools/Makefile build host-mkdep, compat, and binstall in that order,
before installing any of them. It installs them in any order relative
to each other. The .WAIT points that used to be between these three
tools are replaced by .ORDER and dependencies.

This is needed in preparation for making tools/compat install
some files into TOOLDIR.


# 1.164 02-Dec-2012 apb

TOOLDIR must be valid, unless MKTOOLS=no.
Add tests and .error directives to enforce this.


# 1.163 02-Dec-2012 apb

If tools are not wanted, then set SUBDIR= empty instead of
defining all the subdir-related targets to do nothing. This way,
the targets are not invoked at all, instead of being invoked but
doing nothing.


# 1.162 02-Dec-2012 apb

remove trailing white space


# 1.161 27-Nov-2012 jkunz

According to the i.MX23 Reference Manual section 3.1, Page 3-3:
"The i.MX23 always operates in litle-endian mode."
So build elftosb and bootloader for this processor only for evbarm(-el).


# 1.160 26-Nov-2012 pooka

Build gmake iff we're going to need it.


# 1.159 15-Nov-2012 joerg

Move the build_install logic from lib/Makefile into share/mk and re-use
it for tools. The existing logic broke for the LLVM build with the
recent .ORDER changes in make.


# 1.158 15-Nov-2012 jkunz

Add elftosb tools to evbarm userland and toolchain.
Elftosb is used to create a digitaly signed "secure boot" file.
This sb file can be booted by the first stage boot loader found in
Freescale i.MX23 and i.MX28 application processors.

Copyright (c) 2004-2010 Freescale Semiconductor, Inc.


Revision tags: yamt-pagecache-base6
# 1.157 20-Sep-2012 pooka

fix EXTERNAL_TOOLCHAIN build


# 1.156 10-Aug-2012 joerg

branches: 1.156.2;
Decouple binutils build from HAVE_GCC. Merge common fragments of
HAVE_GCC and HAVE_PCC.


Revision tags: netbsd-6-0-6-RELEASE netbsd-6-1-5-RELEASE netbsd-6-1-4-RELEASE netbsd-6-0-5-RELEASE netbsd-6-1-3-RELEASE netbsd-6-0-4-RELEASE netbsd-6-1-2-RELEASE netbsd-6-0-3-RELEASE netbsd-6-1-1-RELEASE netbsd-6-0-2-RELEASE netbsd-6-1-RELEASE netbsd-6-1-RC4 netbsd-6-1-RC3 netbsd-6-1-RC2 netbsd-6-1-RC1 netbsd-6-0-1-RELEASE matt-nb6-plus-nbase netbsd-6-0-RELEASE netbsd-6-0-RC2 matt-nb6-plus-base netbsd-6-0-RC1 yamt-pagecache-base5 yamt-pagecache-base4 netbsd-6-base yamt-pagecache-base3 yamt-pagecache-base2
# 1.155 03-Nov-2011 joerg

Revert .WAIT removal and add comment why it is needed between *tblgen.


# 1.154 02-Nov-2011 njoly

Do not build tic more than once


# 1.153 02-Nov-2011 christos

move tic later, after all the tools it needs are built.


# 1.152 02-Nov-2011 yamt

tweak dependencies for tic, which needs nbperf, awk, and sed.


Revision tags: yamt-pagecache-base
# 1.151 01-Nov-2011 joerg

branches: 1.151.2;
Remove an unnecessary .WAIT between llvm-tblgen and clang-tblgen.


# 1.150 01-Nov-2011 joerg

Hook up nbperf into the normal tool build.


# 1.149 11-Oct-2011 joerg

Update LLVM/Clang snapshot to r141658. This primarily fixes a regression
preventing Qt4 from building.


# 1.148 16-Jul-2011 tsutsui

Build nbm68k-elf2aout as a host tool on m68k targets
for an ancient PROM bootloader.
Mostly taken from nbmips-elf2ecoff.


# 1.147 10-Jul-2011 mrg

install elf2ecoff for all mips64 systems. it's needed for stand.


# 1.146 21-Jun-2011 mrg

always build gmake if HAVE_GCC.
build gmp, mpfr and then mpc if HAVE_GCC >= 45.


Revision tags: cherry-xenmp-base
# 1.145 15-Apr-2011 elric

branches: 1.145.2;
Upgrade Heimdal to 1.5pre1 by switching the build from crypto/dist/heimdal
to crypto/external/bsd/heimdal. The latter was just imported as the head
of the Heimdal tree as of a few days ago.


# 1.144 17-Mar-2011 riz

.WAIT for makefs, because in most builds, it's the first target
which includes Makefile.nbincludes, whose beforedepend: has
some race condition I don't fully understand, and which has been
causing many (but not all!) -j16 builds on the autobuild cluster
to fail in tools since sometime between 201103061600 and 201103070900.

With the proper voodoo, I was able to get 8 builds in a row to fail
without this change, and 16 in a row to succeed with it.

XXX a proper fix likely involves reworking the beforedepend: target
of Makefile.nbincludes, but this should get the build cluster back up
to full functionality in the meanwhile.


Revision tags: bouyer-quota2-nbase
# 1.143 25-Feb-2011 phx

mkubootimage is certainly useful for sandpoint


Revision tags: bouyer-quota2-base
# 1.142 06-Feb-2011 joerg

Add LLVM and clang build system. It is enabled by MKLLVM=yes.
Upstream sources can be fetched by running "make checkout" in
src/external/bsd/llvm, they will be properly imported once the
integration and missing features are sorted out.


# 1.141 31-Jan-2011 matt

Make mkubootimage for evbmips and evbppc too.


Revision tags: matt-mips64-premerge-20101231
# 1.140 15-Aug-2010 mrg

branches: 1.140.2;
add new option to build/use tools/pigz for compressing sets. for now
USE_PIGZGZIP defaults to "no". (it depends upon local <pthread.h> and -lz.)

you can set it to "yes" on most modern platforms just fine.


# 1.139 18-Jun-2010 jmcneill

hook mkubootimage into the build


# 1.138 04-Jun-2010 jmmv

Bye bye atf-compile, you won't be missed.


# 1.137 02-Mar-2010 darran

DTrace: add libelf, libdwarf, libctf, and CTF tools to the toolchain,
built when MKDTRACE=yes.


# 1.136 20-Feb-2010 joerg

Build mandoc unconditional if man pages are desirable. All
compatibility issues are supposed to be sorted out.
Build groff conditionally on MKGROFF. It is currently the only component
that requires C++.


# 1.135 03-Feb-2010 roy

Store our generated files in CVS and remove nbperf from the toolchain.
This allows us to build consistent libs without an ever changing hash.


# 1.134 03-Feb-2010 roy

Userland now builds and uses terminfo instead of termcap.

OK: core@, jdc@


# 1.133 29-Dec-2009 he

To unbreak the build, temporarily remove the build of libelf here,
since no other part of the build depends on this yet.

Suggested as a temporary workaround by thorpej@


# 1.132 23-Dec-2009 mrg

rework the main SUBDIR list here as suggested by enami. put .WAIT on
the same line as the target that needs to wait, but before the target,
rather than on the previous line, which led to confusion and an error
being introduced in the previous change.


# 1.131 21-Dec-2009 mrg

move the build of pax before libelf. fixes my build of tools/libelf,
though i didn't look to see why libelf needs pax.


# 1.130 21-Dec-2009 thorpej

Add support for building libelf in a host-tool environment.

XXX Makefile.disklabel is really mis-named, but I'm not going to tackle
that problem right now.


Revision tags: matt-premerge-20091211
# 1.129 29-Oct-2009 christos

Give m4 its own .WAIT. Fixes build issue on NetBSD-5.


# 1.128 23-Oct-2009 joerg

Add MKMANDOC option to trigger building cat pages and HTML pages with
mdocml. Add a lintmanpages target for developers to check man pages
with the strictest settings of mandoc.


Revision tags: jym-xensuspend-nbase jym-xensuspend-base
# 1.127 25-Feb-2009 sketch

Disable grep host tool and unbreak NetBSD build until I can come up with a
clean fix.


# 1.126 25-Feb-2009 sketch

Make grep a host tool.


# 1.125 14-Feb-2009 abs

Convert more MACHINE tests to MACHINE_ARCH


Revision tags: netbsd-5-2-3-RELEASE netbsd-5-1-5-RELEASE netbsd-5-2-2-RELEASE netbsd-5-1-4-RELEASE netbsd-5-2-1-RELEASE netbsd-5-1-3-RELEASE netbsd-5-2-RELEASE netbsd-5-2-RC1 netbsd-5-1-2-RELEASE netbsd-5-1-1-RELEASE matt-nb5-mips64-premerge-20101231 matt-nb5-pq3-base netbsd-5-1-RELEASE netbsd-5-1-RC4 matt-nb5-mips64-k15 netbsd-5-1-RC3 netbsd-5-1-RC2 netbsd-5-1-RC1 netbsd-5-0-2-RELEASE matt-nb5-mips64-premerge-20091211 matt-nb5-mips64-u2-k2-k4-k7-k8-k9 matt-nb4-mips64-k7-u2a-k9b matt-nb5-mips64-u1-k1-k5 netbsd-5-0-1-RELEASE netbsd-5-0-RELEASE netbsd-5-0-RC4 netbsd-5-0-RC3 netbsd-5-0-RC2 netbsd-5-0-RC1 netbsd-5-base
# 1.124 25-Oct-2008 apb

branches: 1.124.4; 1.124.8; 1.124.12;
Build sed earlier, just after mktemp. Note that sed and mktemp do not
depend on each other, but the .WAIT is needed to get them both installed
before the remainder of the tools build.


# 1.123 25-Oct-2008 apb

Remove the local handling of the NOSUBDIR variable. We can rely
on bsd.subdir.mk's handling of the NOSUBDIR variable.

Also add some comment to .if/.else/.endif and .for/.endfor lines.


Revision tags: matt-mips64-base2
# 1.122 19-Oct-2008 apb

Add awk as a host tool.


# 1.121 13-Oct-2008 dyoung

Per uwe@'s suggestion, build nbgroff under wider circumstances.
I choose to build it if MKDOC != no or if MKHTML != no. It used
to be built only when MKMAN != no.


# 1.120 05-Oct-2008 apb

Add a .WAIT to ensure that sed is installed early, so that TOOL_SED can
be used during the build of other tools.


# 1.119 26-Sep-2008 apb

Build strfile both as a host tool and as an installed program:
* in games/fortune/strfile/Makefile, build strfile as a
regular program instead of as a host tool;
* add tools/strfile directory to build strfile as a host tool;
* in tools/Makefile, add strfile to SUBDIR list;
* in BSD.*.mk, define TOOL_STRFILE variable;
* in games/fortune/datfiles/Makefile, use TOOL_STRFILE when creating
databases at build time;
* in distrib/sets/lists/games/mi, mention usr/games/strfile.


Revision tags: wrstuden-revivesa-base-3 wrstuden-revivesa-base-2
# 1.118 24-Aug-2008 gmcgarry

Build pcc as host tool if requested.


Revision tags: wrstuden-revivesa-base-1 yamt-pf42-base4 yamt-pf42-base3 wrstuden-revivesa-base
# 1.117 26-May-2008 he

Remove references to bebox-elf2pef and bebox-mkbootimage, now that they
have been integrated in common powerpc tools and subsequently removed.


Revision tags: hpcarm-cleanup-nbase yamt-pf42-base2
# 1.116 30-Apr-2008 garbled

branches: 1.116.2;
Build powerpc-mkbootimage for rs6000 and bebox too.


# 1.115 30-Apr-2008 garbled

Convert prep to use the new unified mkbootimage rather than it's own. This
mkbootimage can be shared by prep, rs6000, and bebox.

TODO: Convert bebox to use this. Needs someone to test.


Revision tags: yamt-pf42-baseX yamt-pf42-base keiichi-mipv6-nbase keiichi-mipv6-base matt-armv6-nbase cube-autoconf-base matt-armv6-base hpcarm-cleanup-base
# 1.114 12-Nov-2007 jmmv

branches: 1.114.6;
Add the atf host tools

This adds reachover Makefiles to build the atf tools required during a
cross-build.


Revision tags: matt-armv6-prevmlocking matt-mips64-base
# 1.113 14-Jan-2007 apb

branches: 1.113.4;
Build join(1) as a host tool.


# 1.112 20-Dec-2006 agc

A commit too far - don't try to build veriexecgen for just now


# 1.111 19-Dec-2006 agc

Build veriexecgen as a host tool


Revision tags: netbsd-4-0-1-RELEASE wrstuden-fixsa-newbase wrstuden-fixsa-base-1 netbsd-4-0-RELEASE netbsd-4-0-RC5 netbsd-4-0-RC4 netbsd-4-0-RC3 netbsd-4-0-RC2 netbsd-4-0-RC1 wrstuden-fixsa-base netbsd-4-base
# 1.110 22-Nov-2006 riz

Make sys/exec_elf.h and machine/elf_machdep.h available to host
tools, and allow paxctl to use them when compiled as a host
tool. This fixes the build on MacOS X (and perhaps other platforms)


# 1.109 17-Nov-2006 dsl

Add some notes about the bogosity of some of the .WAIT stuff.
Remove a 'never had a sane effect' .WAIT from a .ORDER line.
Don't add a (probably incorrect) dependency for 'make install' since
it contradicts a .ORDER line elsewhere when .ORDER applies recursively
to child nodes.
I also think that the stuff that tries to add dependencies between
the stuff that bsd.subdir.mk generates does not DTRT at all.
I suspect that build.sh builds things in an order that avoids issues here.


# 1.108 10-Nov-2006 christos

Add paxctl as a tool.


# 1.107 08-Oct-2006 apb

If PREVIOUSTOOLDIR was empty, then don't complain that it has moved.

Patch from Jukka Salmi in PR 33095.


Revision tags: abandoned-netbsd-4-base
# 1.106 03-Aug-2006 freza

* Fix parallel build race condition between real{all,depend} and
<bsd.subdir.mk> targets.
* No need to pass TOOLDIR to recursive cleandir in real{all,depend}.

With help from he@.
OK by tron@.


# 1.105 03-Aug-2006 tron

Another attempt to fix the race in parallel builds.


# 1.104 19-Jul-2006 tron

Invoking "make cleandir" with "PREVIOUSTOOLDIR" set to the previous
location will not stop recursive "make cleandir" calls. Pass the new
location instead.


# 1.103 18-Jul-2006 lukem

gettext should .WAIT for autoconf.
(The former still doesn't seem to work on read-only source; separate issue)


# 1.102 17-Jul-2006 tron

Avoid getting into a loop of "make cleandir" instances if the location
tool directory has been changed or wasn't recorded before.


# 1.101 17-Jul-2006 tron

Remove ".WAIT" again because it doesn't fix the problem.


# 1.100 12-Jul-2006 tron

Add an extra ".WAIT" to the "realall realdepend" target to make sure
it finished cleaning the tools directory in case of tool directory
mismatch before we try to rebuild the tools.


# 1.99 22-Jun-2006 mrg

only build lint and lint2 if MKLINT != "no".


# 1.98 18-Jun-2006 gdamore

Make TOOL_SED, to allow using our own sed in cases where the host's version
is busted in some way.

The TOOL_SED doesn't use TIOCGWINSIZE, and has some changes to include
nbtool_config.h in a cross build environment.

Combined with some other changes (not yet committed), this allows cross
compiling m68k code on Solaris 10/amd64.


# 1.97 02-Jun-2006 mrg

remove support for building (with) GCC 2.95. also:
- always install <stdbool.h>
- don't generate a fake one for vax / gettext.


# 1.96 11-May-2006 mrg

check HAVE_GCC == 4 not USE_GCC4.


# 1.95 01-Apr-2006 christos

Don't barf if USE_GCC4 is not defined.


# 1.94 29-Mar-2006 jmc

Turn on gmake builds if GCC4 is enabled (and force it's install before continuing


# 1.93 03-Feb-2006 dsl

The realall and realdepend bit that regenerates tools needs to be marked
.MAKE otherwise the 'make' it runs has its own list of jobs instead of
using the jobserver of the enclosing make.


# 1.92 04-Oct-2005 jmc

Make the tools using Makefile.disklabel wait so they don't stomp each other.
Also for now add a dependency to Makefile.disklabel so this doesn't run
3 times. (XXX this really should just be done differently)


# 1.91 12-Jun-2005 dyoung

.include Makefile.disklabel in installboot, so that the
nbinclude/ header files will be installed. Build installboot after
pax, since Makefile.disklabel uses pax to install the headers.


# 1.90 12-Jun-2005 dyoung

Make disklabel(8) and fdisk(8) into "host tools " last step: build
and install ${TOOLDIR}/bin/${MACHINE_GNU_PLATFORM}-disklabel,
${TOOLDIR}/bin/${MACHINE_GNU_PLATFORM}-fdisk by "reaching over" to
the sources in ${NETBSDSRCDIR}/sbin/{disklabel fdisk}/.

To avoid clashes with a build-host's header files, especially on
*BSD, the host-tools versions of fdisk and disklabel search for
#includes such as disklabel.h, disklabel_acorn.h, disklabel_gpt.h,
and bootinfo.h in a new #includes namespace, nbinclude/. That is,
they #include <nbinclude/sys/disklabel.h>, <nbinclude/machine/disklabel.h>,
<nbinclude/sparc64/disklabel.h>, instead of <sys/disklabel.h> and
such. I have also updated the system headers to #include from
nbinclude/-space when HAVE_NBTOOL_CONFIG_H is #defined.


# 1.89 30-May-2005 thorpej

Build genassym as a host tool. Part of PR toolchain/30350


Revision tags: netbsd-3-1-1-RELEASE netbsd-3-0-3-RELEASE netbsd-3-1-RELEASE netbsd-3-0-2-RELEASE netbsd-3-1-RC4 netbsd-3-1-RC3 netbsd-3-1-RC2 netbsd-3-1-RC1 netbsd-3-0-1-RELEASE netbsd-3-0-RELEASE netbsd-3-0-RC6 netbsd-3-0-RC5 netbsd-3-0-RC4 netbsd-3-0-RC3 netbsd-3-0-RC2 netbsd-3-0-RC1 netbsd-3-base
# 1.88 27-Jan-2005 is

We don't need aout2bb any longer.


# 1.87 09-Jan-2005 mycroft

Add some quotes to prevent a syntax error.


# 1.86 28-Nov-2004 jmc

Convert mkboot into a full cross tool. Last hurdle for hp300 to building on
non NetBSD/bsd hosts.


# 1.85 28-Nov-2004 jmc

Convert remaining host tools for amiga to correct cross tools. Now allows
complete amiga builds on non netbsd/bsd hosts


# 1.84 25-Nov-2004 jmc

Convert bebox's remaining host tools over to cross tools scheme. Builds to sets
w/o error now.


# 1.83 28-Jul-2004 skrll

Build hp700's mkboot as a host tool called nbhp700-mkboot. mkboot also
gets built and installed in a hp700 distribution.

TODO

- merge with hp300

- pick a preferred method for dealing with the elf headers.
hp700-mkboot and prep-mkbootimage (bintuils) vs mips-elf2ecoff and
tools/installboot


# 1.82 08-Jun-2004 abs

Add sparkcrc (used to generate checksums for acorn32 bootloader sparkive)
as a host tool.


Revision tags: netbsd-2-0-base
# 1.81 03-Jan-2004 lukem

branches: 1.81.2;
Consistently check ${TOOLCHAIN_MISSING} against "no".


# 1.80 11-Dec-2003 matt

Fix typo.


# 1.79 11-Dec-2003 matt

Add macppc-fixcoff tool.


# 1.78 10-Dec-2003 lukem

Use (cd ${.CURDIR} && ${MAKE} cleandir) instead of ${MAKE} cleandir
Suggested by Ross Harvey.


# 1.77 04-Dec-2003 mrg

always build tools/binutils now.


# 1.76 08-Nov-2003 sekiya

Build sgivol as a host tool when compiling for sgimips.


# 1.75 27-Oct-2003 lukem

add mknod as a host tool


# 1.74 26-Oct-2003 cl

add gdb53 as a host tool for use as a crossgdb
replaces gdb50 from toolchain on archs which use gcc3


# 1.73 21-Oct-2003 lukem

Rework how MAKEVERBOSE operates:

* Don't bother prefixing commands with a line of ${_MKCMD}\
and instead rely upon "make -s". This is less intrusive on
all the Makefiles than the former. Idea from David Laight.

* Rename the variables use to print messages. The scheme now is:
_MKMSG_FOO Run _MKMSG 'foo'
_MKTARGET_FOO Run _MKMSG_FOO ${.TARGET}
From discussion with Alistair Crooks.


# 1.72 19-Oct-2003 matt

Add host tool version of ncdcs


# 1.71 18-Oct-2003 lukem

MAKEVERBOSE support


# 1.70 25-Jul-2003 mrg

- build "binutils" and "gcc" separately if USE_TOOLS_TOOLCHAIN is not set
to "yes".
- adjust dbsym/mdsetimage to look in the correct place for libbfd.
- new mknative-gcc based in toolchain/mknative


# 1.69 24-Jul-2003 tron

Add missing "cleandir" rule.


# 1.68 20-Jul-2003 lukem

add stat(1) as a host tool


# 1.67 16-Jul-2003 lukem

also do the MKTOOLS and PREVIOUSTOOLDIR checks for "realdepend"


# 1.66 16-Jul-2003 lukem

* If a `PREVIOUSTOOLDIR' file doesn't exist, or its contents are not
the same as "$TOOLDIR", run "make cleandir" here first.
This should prevent various problems where $TOOLDIR is encoded into the
build process for various tools (lint, groff, texinfo, toolchain),
$TOOLDIR changes, and various programs don't get rebuilt correctly.
Should fix PR [toolchain/21988].

* Clean up how the `${MKTOOLS} == no' check is performed.

* Remove "cleantools"; it made a big assumption about the location of
TOOLDIR that won't be correct in many cases.


# 1.65 26-Jun-2003 tshiozak

Citrus iconv support(3)
add host tools : mkcsmapper and mkesdb
mkcsmapper - coded character set mapping table compiler
mkesdb - encoding scheme database compiler


# 1.64 18-May-2003 lukem

Add db(1) as a host tool


# 1.63 25-Mar-2003 pooka

build file(1) as a host tool (for compiling magic files)


# 1.62 07-Mar-2003 thorpej

Make hexdump a host tool.


Revision tags: fvdl_fs64_base
# 1.61 21-Dec-2002 lukem

enable sunlabel...


# 1.60 19-Sep-2002 thorpej

Change the TOOLCHAIN_MISSING from == "no" to != "yes", to be consistent
with the other tests of this variable.


# 1.59 19-Sep-2002 matt

Since TOOLCHAIN_MISSING is defined in bsd.own.mk, it can never be undefined.
Instead, make sure the value of it is "no"


# 1.58 17-Sep-2002 thorpej

* Eliminate the USE_NEW_TOOLCHAIN variable. Instead, split it into
two variables:

TOOLCHAIN_MISSING -- set to "yes" on platforms for which there is
no working in-tree toolchain (hppa, ns32k, sh5, x86_64).

EXTERNAL_TOOLCHAIN -- if defined by the user, points to the root of
an external toolchain (e.g. /usr/local/gnu). This enables the cross-build
framework even for TOOLCHAIN_MISSING platforms.

If TOOLCHAIN_MISSING is set to "yes", MKGDB, MKBFD, and MKGCC are all
unconditionally set to "no", since the bits are not there to build.

If EXTERNAL_TOOLCHAIN is set, MKGCC is unconditionally set to "no",
since the external toolchain's compiler is not in-sync with the
in-tree compiler support components (e.g. libgcc).

* Set MACHINE_CPU much earlier in bsd.own.mk, so that more tests in
that file can use it.


# 1.57 14-Sep-2002 chris

We need binstall to be installed, before attempting to use it to install mktemp.


# 1.56 14-Sep-2002 thorpej

Descend into mktemp.


# 1.55 12-Jun-2002 veego

The last commit wasn't tested. Add a missing \


# 1.54 12-Jun-2002 thorpej

Don't build toolchain bits for hppa, for now.


# 1.53 10-Jun-2002 mason

Add cat(1) as a host tool.


# 1.52 05-Jun-2002 thorpej

Don't try to build toolchain bits for ns32k.


# 1.51 28-May-2002 bjh21

Add fgen as a host tool, used for sys/arch/sparc/bootblk.


Revision tags: netbsd-1-6-base
# 1.50 18-May-2002 lukem

branches: 1.50.2;
gratuitious comment addition


# 1.49 07-May-2002 lukem

remove now-unnecessary sparc-installboot


# 1.48 03-May-2002 kleink

On prep, descend into prep-mkbootimage.


# 1.47 06-Apr-2002 bjh21

vax-installboot has been deleted, so don't recurse into it.


# 1.46 03-Apr-2002 lukem

enable installboot


# 1.45 01-Apr-2002 thorpej

Nuke NO_DBSYM; dbsym now uses BFD for everything.


# 1.44 01-Apr-2002 bjh21

On second thoughts, don't make mktemp a host tool. It's only used once, for
creating a temporary directory for maketars, and mkdir can do that safely
enough.


# 1.43 31-Mar-2002 bjh21

Add mktemp as a host tool.


# 1.42 31-Mar-2002 bjh21

Add cksum as a host tool.


# 1.41 29-Mar-2002 matt

Drop into vax-installboot on VAX machines.


# 1.40 07-Mar-2002 tv

Rework recursion to use the original logic again, in the structure cleaned
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".


# 1.39 07-Mar-2002 tv

Don't build groff if MKMAN=no. (groff does not build properly on some
platforms because of its completely insane Make structure; this allows it
to be disabled in a sane way.)


# 1.38 26-Feb-2002 tv

Add gettext to tools.

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.)


# 1.37 23-Feb-2002 gmcgarry

Add elf2ecoff as a build tool for mips ports.


# 1.36 18-Feb-2002 pk

* Add comments on all the directory build/install ordering goo.
* 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.


# 1.35 11-Feb-2002 pk

Revert part of previous; we need the install targets.


# 1.34 10-Feb-2002 pk

Use .ORDER targets to express the dependencies on subdir runs. This makes
the resulting tree complexity O(N) (N=# of subdirs), and it also makes it
easier to comprehend the Makefile logic.


# 1.33 08-Feb-2002 pk

Make sure to not go off installing in a directory before it's fully made.


# 1.32 31-Jan-2002 tv

Roll in fixes to permit cross-compiling from non-NetBSD hosts. This
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.


# 1.31 29-Jan-2002 tv

Make almost all tools compile and run properly on non-NetBSD hosts. (In
particular, most tools now run correctly on Solaris 7.)


# 1.30 25-Jan-2002 lukem

build pax as a host tool, for -N and to work around borken vendor paxes


# 1.29 10-Jan-2002 tv

Move host-mkdep to its own directory. Create and install it before
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.


# 1.28 10-Jan-2002 lukem

revert previous, and reenable tools/makefs now that it works on
netbsd-current and netbsd-1-5


# 1.27 09-Jan-2002 tv

Disable makefs in src/tools for the moment; it's very dependent on -current
NetBSD headers and sources right now. (Temporary workaround for PR 15175.)


# 1.26 05-Jan-2002 mrg

build zic as a host tool.


# 1.25 05-Jan-2002 mrg

build makefs, and, sparc-installboot if sparc||sparc64


# 1.24 31-Dec-2001 thorpej

We can't currently build a toolchain for x86-64 here, so don't
attempt to do so.


# 1.23 29-Dec-2001 wiz

Typo fix in error message.


# 1.22 11-Dec-2001 tv

Add the framework for autoconf-based src/tools/compat structure. This will
(after it is more fleshed out) allow the host tools to work more cleanly
on non-NetBSD hosts.


# 1.21 07-Dec-2001 jmc

Add pwd_mkdb as a toolchain bit for builds


# 1.20 29-Nov-2001 thorpej

Build makewhatis as a host tool, since it is used at the end of
the build.

XXX Needs a -lz hostlib.


# 1.19 22-Nov-2001 jmc

Oops. typo which can break things for non-new toolchain builds if MKTOOLS isn't
set


# 1.18 22-Nov-2001 jmc

Check for USETOOLS!=yes in addition to MKTOOLS==no to generate the empty rule
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


# 1.17 13-Nov-2001 tv

Re-add MKTOOLS as a "yes"/"no" only variable, which prevents recursion on "no"
into the src/tools subdirs on all/depend/dependall/install. Other recursive
targets are not affected.


# 1.16 12-Nov-2001 tv

Major overhaul of src/tools and host toolchain. Summary of changes:

* 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.


# 1.15 09-Nov-2001 thorpej

Build the cross-dbsym.


# 1.14 02-Nov-2001 tv

* Always use the makewrapper when starting a build phase.

* 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.


# 1.13 31-Oct-2001 tv

Don't actually delete the default tooldir on "cleandir"; else we'll nuke
the nbmake that is probably currently running.

Just leave the "cleantools" manual target as a shortcut for the user.


# 1.12 31-Oct-2001 tv

* Create a variable HOST_OSTYPE that represents the host build environment,
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.


# 1.11 31-Oct-2001 tv

* Always descend into "tools" regardless of USETOOLS setting. Instead,
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.


# 1.10 25-Oct-2001 thorpej

Add asn1_compile as a host tool.


# 1.9 21-Oct-2001 jmc

Pull in mdsetimage to the tools builds. (XXX - using libbfd here would
probably be preferrable long term).


# 1.8 20-Oct-2001 jmc

Add mklocale to cross-tools and turn it back on for the builds.


# 1.7 13-Oct-2001 jmc

Add crunchgen, msgc and menuc


# 1.6 09-Oct-2001 enami

Make mtree a host tool and use it when appropriate.


# 1.5 04-Oct-2001 tv

Recurse properly; just add "build" to TARGETS (fixes reported problem where
"make clean" doesn't work at the src/tools level).


# 1.4 22-Sep-2001 tv

Work around "make obj" lossage in tools/. Dunno why this is happening
just yet; will investigate this evening.


# 1.3 22-Sep-2001 tv

Add lorder to TOOLDIR host tools.

Only descend into directories if USE_NEW_TOOLCHAIN is set (allows top level
Makefile to use "-m ${.CURDIR}/share/mk" to get the "correct" <bsd.own.mk>
when descending into src/tools/Makefile).


# 1.2 21-Sep-2001 tv

- Create a real cpp binary.
- Set CC properly in environment for mkdep and lint.
- Add compile_et to TOOLDIR host tools.


# 1.1 14-Aug-2001 tv

Bootstrap toolchain framework, first pass.


# 1.204 26-Sep-2019 bad

Exclude more subdirs if TOOLS_BUILDRUMP=yes.

Exclude subdirs added in the last 3 years but not need for rumpkernel builds.


Revision tags: netbsd-9-base phil-wifi-20190609
# 1.203 07-May-2019 hannken

Fix build, "pax" must be built before "libprop".

Ok: Matthew Green mrg@


# 1.202 07-May-2019 thorpej

Add support for libprop as a host tool library.


# 1.201 03-Apr-2019 joerg

Add MKLLVMRT to build a subset of the LLVM stack for JIT purposes.
Hook up AMDGPU backend for clang.


# 1.200 03-Apr-2019 joerg

Revert MKLLVMCMDS changes.


# 1.199 20-Mar-2019 mrg

split MKLLVM into MKLLVM and MKLLVMCMDS, like MKGCC and MKGCCCMDS:

- only build clang or clang-tblgen if MKLLVMCMDS != "no"
- move HAVE_MESA_VER earlier so we can detect mesa 18 and enable
MKLLVM on platforms that need it
- move the clang commands and headers into llvmcmds group
- only build the clang specific LLVM libraries if MKLLVMCMDS != "no"

much of this work came from maya@'s github commit
f90685c11d4460d3098fa35f48b58d1893e974e0, reworked for HAVE_MESA_VER
and llvmcmds vs MKCLANG.


build tested on several platforms and on amd64 and i386 with several
different build options (clang build, gcc build, gcc build with llvm
libs).


Revision tags: pgoyette-compat-20190127 pgoyette-compat-20190118
# 1.198 02-Jan-2019 christos

use MACHINE_CPU for elf2aout


# 1.197 31-Dec-2018 christos

Add an arm-specific elf2aout tool since objdump does not support a.out anymore


Revision tags: pgoyette-compat-1226 pgoyette-compat-1126 pgoyette-compat-1020 pgoyette-compat-0930
# 1.196 25-Sep-2018 joerg

Update build glue for xz-5.2.4. Hook up tools version.


Revision tags: pgoyette-compat-0906
# 1.195 11-Aug-2018 christos

hook in the tools version of grep


Revision tags: pgoyette-compat-0728 phil-wifi-base pgoyette-compat-0625 pgoyette-compat-0521
# 1.194 09-May-2018 joerg

branches: 1.194.2;
For EXTERNAL_TOOLCHAIN, MKLLVM=yes needs to build only tablegen.


Revision tags: pgoyette-compat-0502 pgoyette-compat-0422 pgoyette-compat-0415 pgoyette-compat-0407 pgoyette-compat-0330 pgoyette-compat-0322 pgoyette-compat-0315 pgoyette-compat-base
# 1.193 18-Feb-2018 uwe

branches: 1.193.2;
Fix .endif comment for TOOLS_BUILDRUMP


# 1.192 27-Dec-2017 christos

Better EXTERNAL_TOOLCHAIN support from Zachary McGrew
- Allow mdsetimage and dbsym to be built with EXTERNAL_TOOLCHAIN
- Allow BFDDIR and IBERTYDIR to be overwritten for mdsetimage and dbsym


Revision tags: perseant-stdc-iso10646-base
# 1.191 07-Jun-2017 skrll

branches: 1.191.2;
Hook in dtc/libfdt now that it builds for me


# 1.190 06-Jun-2017 skrll

Disable dtc/libfdt for now


# 1.189 05-Jun-2017 christos

No need to set dtc twice.


# 1.188 05-Jun-2017 christos

Add dtc


Revision tags: netbsd-8-base prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1 pgoyette-localcount-20170320 bouyer-socketcan-base
# 1.187 11-Jan-2017 joerg

branches: 1.187.6;
Sync tools build glue with LLVM pre-4.0.0.


Revision tags: pgoyette-localcount-20170107 pgoyette-localcount-20161104 localcount-20160914 pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base
# 1.186 24-Jan-2016 christos

branches: 1.186.2;
move cvslatest last


# 1.185 24-Jan-2016 christos

Tool version


# 1.184 19-Dec-2015 christos

move sortinfo after pax


# 1.183 18-Dec-2015 christos

Add sortinfo


# 1.182 23-Jul-2015 mrg

remove the xfree86 reachover makefiles and the vast majority of
the support in the rest of the source tree.

X11 sets could use some cleaning up perhaps (just deletion, as
we've never really marked the old X11R6 as obsolete for native
xorg using platforms so far either.)


# 1.181 24-Jun-2015 matt

Support building the xorg X11 libraries under MKCOMPAT.
Add XORG_MACHINE_ARCH to compat's bsd.*.mk
Turn xorg makekeys and makestrs into real host tools which are installed into
${TOOLSDIR}


# 1.180 07-Jan-2015 joerg

Reorganise the way xorg is build. Move build of makestrs into src/tools
as it is needed for the "includes" phase. Make it symlink all necessary
headers in obj to decouple it from "includes" itself, breaking the
dependency cycle. Move the do-x11 target between do-lib and do-build, so
that libraries can get the benefit of build_install (correct .WAIT
behavior) and everything else like "includes" uses the plain SUBDIR
entry in external/mit.


# 1.179 05-Dec-2014 pooka

build genassym for TOOLS_BUILDRUMP


# 1.178 30-Sep-2014 christos

add gpt


Revision tags: netbsd-7-2-RELEASE netbsd-7-1-2-RELEASE netbsd-7-1-1-RELEASE netbsd-7-1-RELEASE netbsd-7-1-RC2 netbsd-7-nhusb-base-20170116 netbsd-7-1-RC1 netbsd-7-0-2-RELEASE netbsd-7-nhusb-base netbsd-7-0-1-RELEASE netbsd-7-0-RELEASE netbsd-7-0-RC3 netbsd-7-0-RC2 netbsd-7-0-RC1 netbsd-7-base tls-maxphys-base
# 1.177 10-Aug-2014 matt

Changes to existing files to enable building AARCH64 userland.
evbarm64-el
This is clang only. While gcc4.8 supports aarch64, no netbsd support has
been written for aarch64 with gcc4.8.


Revision tags: tls-earlyentropy-base
# 1.176 15-Jul-2014 christos

descend to vgrind


# 1.175 15-Jun-2014 pooka

Add cat, rpcgen and stat to TOOLS_BUILDRUMP. They're useful for
installing headers for the app stack cases that need it done, and small
enough to not matter for the kernel-only cases that don't.


# 1.174 14-Jun-2014 mrg

remove remaining makefile support for GCC < 45 that i found.


Revision tags: yamt-pagecache-base9
# 1.173 03-Apr-2014 riastradh

branches: 1.173.2;
ctfconvert/ctfmerge need libdwarf &c., so build them if MKCTF=yes.


Revision tags: riastradh-xf86-video-intel-2-7-1-pre-2-21-15
# 1.172 25-Mar-2014 ozaki-r

Add MKCTF

This variable separates CTF stuffs from MKDTRACE; we can build DTrace
solely without building and using them. This allows us to use DTrace
even if CTF stuffs have problems (actually they have now).

This variable would be merged into MKDTRACE eventually, once CTF stuffs
work correctly again.


Revision tags: riastradh-drm2-base3
# 1.171 24-Feb-2014 skrll

Rename NetBSD/hp700 to NetBSD/hppa.

Unfortunately our VCS isn't very helpful here.


# 1.170 02-Sep-2013 joerg

Update LLVM/Clang snapshot to r189662. This includes many improvements
to the new SLP vectorizer, fast codegen support for PPC and using
terminfo for the color sequences. In addition, add (optional) build
infrastructure for lld to allow easier testing. This is controlled by
MKLLD.


Revision tags: riastradh-drm2-base2 riastradh-drm2-base1
# 1.169 19-Jul-2013 matt

Even if we aren't making a crossgdb still make the object dir for it.


Revision tags: riastradh-drm2-base agc-symver-base
# 1.168 27-Feb-2013 joerg

branches: 1.168.4;
Add infrastructure for building MCLinker.


# 1.167 05-Feb-2013 matt

There are other little endian arm machine_arches other than "arm"
Use MACHINE_CPU and TARGET_ENDIANNESS instead of MACHINE_ARCH


# 1.166 31-Jan-2013 pooka

Use TOOLS_BUILDRUMP=yes to restrict building of tools to those required
for building rump kernels. This cuts down the NetBSD source tree required
by buildrump.sh to a fraction and addresses a size/download time concern
from a person packaging rump kernels for Linux.

No change to the normal case (tested with several -j32/-j64 builds).

reviewed by apb


Revision tags: yamt-pagecache-base8 yamt-pagecache-base7
# 1.165 02-Dec-2012 apb

Make tools/Makefile build host-mkdep, compat, and binstall in that order,
before installing any of them. It installs them in any order relative
to each other. The .WAIT points that used to be between these three
tools are replaced by .ORDER and dependencies.

This is needed in preparation for making tools/compat install
some files into TOOLDIR.


# 1.164 02-Dec-2012 apb

TOOLDIR must be valid, unless MKTOOLS=no.
Add tests and .error directives to enforce this.


# 1.163 02-Dec-2012 apb

If tools are not wanted, then set SUBDIR= empty instead of
defining all the subdir-related targets to do nothing. This way,
the targets are not invoked at all, instead of being invoked but
doing nothing.


# 1.162 02-Dec-2012 apb

remove trailing white space


# 1.161 27-Nov-2012 jkunz

According to the i.MX23 Reference Manual section 3.1, Page 3-3:
"The i.MX23 always operates in litle-endian mode."
So build elftosb and bootloader for this processor only for evbarm(-el).


# 1.160 26-Nov-2012 pooka

Build gmake iff we're going to need it.


# 1.159 15-Nov-2012 joerg

Move the build_install logic from lib/Makefile into share/mk and re-use
it for tools. The existing logic broke for the LLVM build with the
recent .ORDER changes in make.


# 1.158 15-Nov-2012 jkunz

Add elftosb tools to evbarm userland and toolchain.
Elftosb is used to create a digitaly signed "secure boot" file.
This sb file can be booted by the first stage boot loader found in
Freescale i.MX23 and i.MX28 application processors.

Copyright (c) 2004-2010 Freescale Semiconductor, Inc.


Revision tags: yamt-pagecache-base6
# 1.157 20-Sep-2012 pooka

fix EXTERNAL_TOOLCHAIN build


# 1.156 10-Aug-2012 joerg

branches: 1.156.2;
Decouple binutils build from HAVE_GCC. Merge common fragments of
HAVE_GCC and HAVE_PCC.


Revision tags: netbsd-6-0-6-RELEASE netbsd-6-1-5-RELEASE netbsd-6-1-4-RELEASE netbsd-6-0-5-RELEASE netbsd-6-1-3-RELEASE netbsd-6-0-4-RELEASE netbsd-6-1-2-RELEASE netbsd-6-0-3-RELEASE netbsd-6-1-1-RELEASE netbsd-6-0-2-RELEASE netbsd-6-1-RELEASE netbsd-6-1-RC4 netbsd-6-1-RC3 netbsd-6-1-RC2 netbsd-6-1-RC1 netbsd-6-0-1-RELEASE matt-nb6-plus-nbase netbsd-6-0-RELEASE netbsd-6-0-RC2 matt-nb6-plus-base netbsd-6-0-RC1 yamt-pagecache-base5 yamt-pagecache-base4 netbsd-6-base yamt-pagecache-base3 yamt-pagecache-base2
# 1.155 03-Nov-2011 joerg

Revert .WAIT removal and add comment why it is needed between *tblgen.


# 1.154 02-Nov-2011 njoly

Do not build tic more than once


# 1.153 02-Nov-2011 christos

move tic later, after all the tools it needs are built.


# 1.152 02-Nov-2011 yamt

tweak dependencies for tic, which needs nbperf, awk, and sed.


Revision tags: yamt-pagecache-base
# 1.151 01-Nov-2011 joerg

branches: 1.151.2;
Remove an unnecessary .WAIT between llvm-tblgen and clang-tblgen.


# 1.150 01-Nov-2011 joerg

Hook up nbperf into the normal tool build.


# 1.149 11-Oct-2011 joerg

Update LLVM/Clang snapshot to r141658. This primarily fixes a regression
preventing Qt4 from building.


# 1.148 16-Jul-2011 tsutsui

Build nbm68k-elf2aout as a host tool on m68k targets
for an ancient PROM bootloader.
Mostly taken from nbmips-elf2ecoff.


# 1.147 10-Jul-2011 mrg

install elf2ecoff for all mips64 systems. it's needed for stand.


# 1.146 21-Jun-2011 mrg

always build gmake if HAVE_GCC.
build gmp, mpfr and then mpc if HAVE_GCC >= 45.


Revision tags: cherry-xenmp-base
# 1.145 15-Apr-2011 elric

branches: 1.145.2;
Upgrade Heimdal to 1.5pre1 by switching the build from crypto/dist/heimdal
to crypto/external/bsd/heimdal. The latter was just imported as the head
of the Heimdal tree as of a few days ago.


# 1.144 17-Mar-2011 riz

.WAIT for makefs, because in most builds, it's the first target
which includes Makefile.nbincludes, whose beforedepend: has
some race condition I don't fully understand, and which has been
causing many (but not all!) -j16 builds on the autobuild cluster
to fail in tools since sometime between 201103061600 and 201103070900.

With the proper voodoo, I was able to get 8 builds in a row to fail
without this change, and 16 in a row to succeed with it.

XXX a proper fix likely involves reworking the beforedepend: target
of Makefile.nbincludes, but this should get the build cluster back up
to full functionality in the meanwhile.


Revision tags: bouyer-quota2-nbase
# 1.143 25-Feb-2011 phx

mkubootimage is certainly useful for sandpoint


Revision tags: bouyer-quota2-base
# 1.142 06-Feb-2011 joerg

Add LLVM and clang build system. It is enabled by MKLLVM=yes.
Upstream sources can be fetched by running "make checkout" in
src/external/bsd/llvm, they will be properly imported once the
integration and missing features are sorted out.


# 1.141 31-Jan-2011 matt

Make mkubootimage for evbmips and evbppc too.


Revision tags: matt-mips64-premerge-20101231
# 1.140 15-Aug-2010 mrg

branches: 1.140.2;
add new option to build/use tools/pigz for compressing sets. for now
USE_PIGZGZIP defaults to "no". (it depends upon local <pthread.h> and -lz.)

you can set it to "yes" on most modern platforms just fine.


# 1.139 18-Jun-2010 jmcneill

hook mkubootimage into the build


# 1.138 04-Jun-2010 jmmv

Bye bye atf-compile, you won't be missed.


# 1.137 02-Mar-2010 darran

DTrace: add libelf, libdwarf, libctf, and CTF tools to the toolchain,
built when MKDTRACE=yes.


# 1.136 20-Feb-2010 joerg

Build mandoc unconditional if man pages are desirable. All
compatibility issues are supposed to be sorted out.
Build groff conditionally on MKGROFF. It is currently the only component
that requires C++.


# 1.135 03-Feb-2010 roy

Store our generated files in CVS and remove nbperf from the toolchain.
This allows us to build consistent libs without an ever changing hash.


# 1.134 03-Feb-2010 roy

Userland now builds and uses terminfo instead of termcap.

OK: core@, jdc@


# 1.133 29-Dec-2009 he

To unbreak the build, temporarily remove the build of libelf here,
since no other part of the build depends on this yet.

Suggested as a temporary workaround by thorpej@


# 1.132 23-Dec-2009 mrg

rework the main SUBDIR list here as suggested by enami. put .WAIT on
the same line as the target that needs to wait, but before the target,
rather than on the previous line, which led to confusion and an error
being introduced in the previous change.


# 1.131 21-Dec-2009 mrg

move the build of pax before libelf. fixes my build of tools/libelf,
though i didn't look to see why libelf needs pax.


# 1.130 21-Dec-2009 thorpej

Add support for building libelf in a host-tool environment.

XXX Makefile.disklabel is really mis-named, but I'm not going to tackle
that problem right now.


Revision tags: matt-premerge-20091211
# 1.129 29-Oct-2009 christos

Give m4 its own .WAIT. Fixes build issue on NetBSD-5.


# 1.128 23-Oct-2009 joerg

Add MKMANDOC option to trigger building cat pages and HTML pages with
mdocml. Add a lintmanpages target for developers to check man pages
with the strictest settings of mandoc.


Revision tags: jym-xensuspend-nbase jym-xensuspend-base
# 1.127 25-Feb-2009 sketch

Disable grep host tool and unbreak NetBSD build until I can come up with a
clean fix.


# 1.126 25-Feb-2009 sketch

Make grep a host tool.


# 1.125 14-Feb-2009 abs

Convert more MACHINE tests to MACHINE_ARCH


Revision tags: netbsd-5-2-3-RELEASE netbsd-5-1-5-RELEASE netbsd-5-2-2-RELEASE netbsd-5-1-4-RELEASE netbsd-5-2-1-RELEASE netbsd-5-1-3-RELEASE netbsd-5-2-RELEASE netbsd-5-2-RC1 netbsd-5-1-2-RELEASE netbsd-5-1-1-RELEASE matt-nb5-mips64-premerge-20101231 matt-nb5-pq3-base netbsd-5-1-RELEASE netbsd-5-1-RC4 matt-nb5-mips64-k15 netbsd-5-1-RC3 netbsd-5-1-RC2 netbsd-5-1-RC1 netbsd-5-0-2-RELEASE matt-nb5-mips64-premerge-20091211 matt-nb5-mips64-u2-k2-k4-k7-k8-k9 matt-nb4-mips64-k7-u2a-k9b matt-nb5-mips64-u1-k1-k5 netbsd-5-0-1-RELEASE netbsd-5-0-RELEASE netbsd-5-0-RC4 netbsd-5-0-RC3 netbsd-5-0-RC2 netbsd-5-0-RC1 netbsd-5-base
# 1.124 25-Oct-2008 apb

branches: 1.124.4; 1.124.8; 1.124.12;
Build sed earlier, just after mktemp. Note that sed and mktemp do not
depend on each other, but the .WAIT is needed to get them both installed
before the remainder of the tools build.


# 1.123 25-Oct-2008 apb

Remove the local handling of the NOSUBDIR variable. We can rely
on bsd.subdir.mk's handling of the NOSUBDIR variable.

Also add some comment to .if/.else/.endif and .for/.endfor lines.


Revision tags: matt-mips64-base2
# 1.122 19-Oct-2008 apb

Add awk as a host tool.


# 1.121 13-Oct-2008 dyoung

Per uwe@'s suggestion, build nbgroff under wider circumstances.
I choose to build it if MKDOC != no or if MKHTML != no. It used
to be built only when MKMAN != no.


# 1.120 05-Oct-2008 apb

Add a .WAIT to ensure that sed is installed early, so that TOOL_SED can
be used during the build of other tools.


# 1.119 26-Sep-2008 apb

Build strfile both as a host tool and as an installed program:
* in games/fortune/strfile/Makefile, build strfile as a
regular program instead of as a host tool;
* add tools/strfile directory to build strfile as a host tool;
* in tools/Makefile, add strfile to SUBDIR list;
* in BSD.*.mk, define TOOL_STRFILE variable;
* in games/fortune/datfiles/Makefile, use TOOL_STRFILE when creating
databases at build time;
* in distrib/sets/lists/games/mi, mention usr/games/strfile.


Revision tags: wrstuden-revivesa-base-3 wrstuden-revivesa-base-2
# 1.118 24-Aug-2008 gmcgarry

Build pcc as host tool if requested.


Revision tags: wrstuden-revivesa-base-1 yamt-pf42-base4 yamt-pf42-base3 wrstuden-revivesa-base
# 1.117 26-May-2008 he

Remove references to bebox-elf2pef and bebox-mkbootimage, now that they
have been integrated in common powerpc tools and subsequently removed.


Revision tags: hpcarm-cleanup-nbase yamt-pf42-base2
# 1.116 30-Apr-2008 garbled

branches: 1.116.2;
Build powerpc-mkbootimage for rs6000 and bebox too.


# 1.115 30-Apr-2008 garbled

Convert prep to use the new unified mkbootimage rather than it's own. This
mkbootimage can be shared by prep, rs6000, and bebox.

TODO: Convert bebox to use this. Needs someone to test.


Revision tags: yamt-pf42-baseX yamt-pf42-base keiichi-mipv6-nbase keiichi-mipv6-base matt-armv6-nbase cube-autoconf-base matt-armv6-base hpcarm-cleanup-base
# 1.114 12-Nov-2007 jmmv

branches: 1.114.6;
Add the atf host tools

This adds reachover Makefiles to build the atf tools required during a
cross-build.


Revision tags: matt-armv6-prevmlocking matt-mips64-base
# 1.113 14-Jan-2007 apb

branches: 1.113.4;
Build join(1) as a host tool.


# 1.112 20-Dec-2006 agc

A commit too far - don't try to build veriexecgen for just now


# 1.111 19-Dec-2006 agc

Build veriexecgen as a host tool


Revision tags: netbsd-4-0-1-RELEASE wrstuden-fixsa-newbase wrstuden-fixsa-base-1 netbsd-4-0-RELEASE netbsd-4-0-RC5 netbsd-4-0-RC4 netbsd-4-0-RC3 netbsd-4-0-RC2 netbsd-4-0-RC1 wrstuden-fixsa-base netbsd-4-base
# 1.110 22-Nov-2006 riz

Make sys/exec_elf.h and machine/elf_machdep.h available to host
tools, and allow paxctl to use them when compiled as a host
tool. This fixes the build on MacOS X (and perhaps other platforms)


# 1.109 17-Nov-2006 dsl

Add some notes about the bogosity of some of the .WAIT stuff.
Remove a 'never had a sane effect' .WAIT from a .ORDER line.
Don't add a (probably incorrect) dependency for 'make install' since
it contradicts a .ORDER line elsewhere when .ORDER applies recursively
to child nodes.
I also think that the stuff that tries to add dependencies between
the stuff that bsd.subdir.mk generates does not DTRT at all.
I suspect that build.sh builds things in an order that avoids issues here.


# 1.108 10-Nov-2006 christos

Add paxctl as a tool.


# 1.107 08-Oct-2006 apb

If PREVIOUSTOOLDIR was empty, then don't complain that it has moved.

Patch from Jukka Salmi in PR 33095.


Revision tags: abandoned-netbsd-4-base
# 1.106 03-Aug-2006 freza

* Fix parallel build race condition between real{all,depend} and
<bsd.subdir.mk> targets.
* No need to pass TOOLDIR to recursive cleandir in real{all,depend}.

With help from he@.
OK by tron@.


# 1.105 03-Aug-2006 tron

Another attempt to fix the race in parallel builds.


# 1.104 19-Jul-2006 tron

Invoking "make cleandir" with "PREVIOUSTOOLDIR" set to the previous
location will not stop recursive "make cleandir" calls. Pass the new
location instead.


# 1.103 18-Jul-2006 lukem

gettext should .WAIT for autoconf.
(The former still doesn't seem to work on read-only source; separate issue)


# 1.102 17-Jul-2006 tron

Avoid getting into a loop of "make cleandir" instances if the location
tool directory has been changed or wasn't recorded before.


# 1.101 17-Jul-2006 tron

Remove ".WAIT" again because it doesn't fix the problem.


# 1.100 12-Jul-2006 tron

Add an extra ".WAIT" to the "realall realdepend" target to make sure
it finished cleaning the tools directory in case of tool directory
mismatch before we try to rebuild the tools.


# 1.99 22-Jun-2006 mrg

only build lint and lint2 if MKLINT != "no".


# 1.98 18-Jun-2006 gdamore

Make TOOL_SED, to allow using our own sed in cases where the host's version
is busted in some way.

The TOOL_SED doesn't use TIOCGWINSIZE, and has some changes to include
nbtool_config.h in a cross build environment.

Combined with some other changes (not yet committed), this allows cross
compiling m68k code on Solaris 10/amd64.


# 1.97 02-Jun-2006 mrg

remove support for building (with) GCC 2.95. also:
- always install <stdbool.h>
- don't generate a fake one for vax / gettext.


# 1.96 11-May-2006 mrg

check HAVE_GCC == 4 not USE_GCC4.


# 1.95 01-Apr-2006 christos

Don't barf if USE_GCC4 is not defined.


# 1.94 29-Mar-2006 jmc

Turn on gmake builds if GCC4 is enabled (and force it's install before continuing


# 1.93 03-Feb-2006 dsl

The realall and realdepend bit that regenerates tools needs to be marked
.MAKE otherwise the 'make' it runs has its own list of jobs instead of
using the jobserver of the enclosing make.


# 1.92 04-Oct-2005 jmc

Make the tools using Makefile.disklabel wait so they don't stomp each other.
Also for now add a dependency to Makefile.disklabel so this doesn't run
3 times. (XXX this really should just be done differently)


# 1.91 12-Jun-2005 dyoung

.include Makefile.disklabel in installboot, so that the
nbinclude/ header files will be installed. Build installboot after
pax, since Makefile.disklabel uses pax to install the headers.


# 1.90 12-Jun-2005 dyoung

Make disklabel(8) and fdisk(8) into "host tools " last step: build
and install ${TOOLDIR}/bin/${MACHINE_GNU_PLATFORM}-disklabel,
${TOOLDIR}/bin/${MACHINE_GNU_PLATFORM}-fdisk by "reaching over" to
the sources in ${NETBSDSRCDIR}/sbin/{disklabel fdisk}/.

To avoid clashes with a build-host's header files, especially on
*BSD, the host-tools versions of fdisk and disklabel search for
#includes such as disklabel.h, disklabel_acorn.h, disklabel_gpt.h,
and bootinfo.h in a new #includes namespace, nbinclude/. That is,
they #include <nbinclude/sys/disklabel.h>, <nbinclude/machine/disklabel.h>,
<nbinclude/sparc64/disklabel.h>, instead of <sys/disklabel.h> and
such. I have also updated the system headers to #include from
nbinclude/-space when HAVE_NBTOOL_CONFIG_H is #defined.


# 1.89 30-May-2005 thorpej

Build genassym as a host tool. Part of PR toolchain/30350


Revision tags: netbsd-3-1-1-RELEASE netbsd-3-0-3-RELEASE netbsd-3-1-RELEASE netbsd-3-0-2-RELEASE netbsd-3-1-RC4 netbsd-3-1-RC3 netbsd-3-1-RC2 netbsd-3-1-RC1 netbsd-3-0-1-RELEASE netbsd-3-0-RELEASE netbsd-3-0-RC6 netbsd-3-0-RC5 netbsd-3-0-RC4 netbsd-3-0-RC3 netbsd-3-0-RC2 netbsd-3-0-RC1 netbsd-3-base
# 1.88 27-Jan-2005 is

We don't need aout2bb any longer.


# 1.87 09-Jan-2005 mycroft

Add some quotes to prevent a syntax error.


# 1.86 28-Nov-2004 jmc

Convert mkboot into a full cross tool. Last hurdle for hp300 to building on
non NetBSD/bsd hosts.


# 1.85 28-Nov-2004 jmc

Convert remaining host tools for amiga to correct cross tools. Now allows
complete amiga builds on non netbsd/bsd hosts


# 1.84 25-Nov-2004 jmc

Convert bebox's remaining host tools over to cross tools scheme. Builds to sets
w/o error now.


# 1.83 28-Jul-2004 skrll

Build hp700's mkboot as a host tool called nbhp700-mkboot. mkboot also
gets built and installed in a hp700 distribution.

TODO

- merge with hp300

- pick a preferred method for dealing with the elf headers.
hp700-mkboot and prep-mkbootimage (bintuils) vs mips-elf2ecoff and
tools/installboot


# 1.82 08-Jun-2004 abs

Add sparkcrc (used to generate checksums for acorn32 bootloader sparkive)
as a host tool.


Revision tags: netbsd-2-0-base
# 1.81 03-Jan-2004 lukem

branches: 1.81.2;
Consistently check ${TOOLCHAIN_MISSING} against "no".


# 1.80 11-Dec-2003 matt

Fix typo.


# 1.79 11-Dec-2003 matt

Add macppc-fixcoff tool.


# 1.78 10-Dec-2003 lukem

Use (cd ${.CURDIR} && ${MAKE} cleandir) instead of ${MAKE} cleandir
Suggested by Ross Harvey.


# 1.77 04-Dec-2003 mrg

always build tools/binutils now.


# 1.76 08-Nov-2003 sekiya

Build sgivol as a host tool when compiling for sgimips.


# 1.75 27-Oct-2003 lukem

add mknod as a host tool


# 1.74 26-Oct-2003 cl

add gdb53 as a host tool for use as a crossgdb
replaces gdb50 from toolchain on archs which use gcc3


# 1.73 21-Oct-2003 lukem

Rework how MAKEVERBOSE operates:

* Don't bother prefixing commands with a line of ${_MKCMD}\
and instead rely upon "make -s". This is less intrusive on
all the Makefiles than the former. Idea from David Laight.

* Rename the variables use to print messages. The scheme now is:
_MKMSG_FOO Run _MKMSG 'foo'
_MKTARGET_FOO Run _MKMSG_FOO ${.TARGET}
From discussion with Alistair Crooks.


# 1.72 19-Oct-2003 matt

Add host tool version of ncdcs


# 1.71 18-Oct-2003 lukem

MAKEVERBOSE support


# 1.70 25-Jul-2003 mrg

- build "binutils" and "gcc" separately if USE_TOOLS_TOOLCHAIN is not set
to "yes".
- adjust dbsym/mdsetimage to look in the correct place for libbfd.
- new mknative-gcc based in toolchain/mknative


# 1.69 24-Jul-2003 tron

Add missing "cleandir" rule.


# 1.68 20-Jul-2003 lukem

add stat(1) as a host tool


# 1.67 16-Jul-2003 lukem

also do the MKTOOLS and PREVIOUSTOOLDIR checks for "realdepend"


# 1.66 16-Jul-2003 lukem

* If a `PREVIOUSTOOLDIR' file doesn't exist, or its contents are not
the same as "$TOOLDIR", run "make cleandir" here first.
This should prevent various problems where $TOOLDIR is encoded into the
build process for various tools (lint, groff, texinfo, toolchain),
$TOOLDIR changes, and various programs don't get rebuilt correctly.
Should fix PR [toolchain/21988].

* Clean up how the `${MKTOOLS} == no' check is performed.

* Remove "cleantools"; it made a big assumption about the location of
TOOLDIR that won't be correct in many cases.


# 1.65 26-Jun-2003 tshiozak

Citrus iconv support(3)
add host tools : mkcsmapper and mkesdb
mkcsmapper - coded character set mapping table compiler
mkesdb - encoding scheme database compiler


# 1.64 18-May-2003 lukem

Add db(1) as a host tool


# 1.63 25-Mar-2003 pooka

build file(1) as a host tool (for compiling magic files)


# 1.62 07-Mar-2003 thorpej

Make hexdump a host tool.


Revision tags: fvdl_fs64_base
# 1.61 21-Dec-2002 lukem

enable sunlabel...


# 1.60 19-Sep-2002 thorpej

Change the TOOLCHAIN_MISSING from == "no" to != "yes", to be consistent
with the other tests of this variable.


# 1.59 19-Sep-2002 matt

Since TOOLCHAIN_MISSING is defined in bsd.own.mk, it can never be undefined.
Instead, make sure the value of it is "no"


# 1.58 17-Sep-2002 thorpej

* Eliminate the USE_NEW_TOOLCHAIN variable. Instead, split it into
two variables:

TOOLCHAIN_MISSING -- set to "yes" on platforms for which there is
no working in-tree toolchain (hppa, ns32k, sh5, x86_64).

EXTERNAL_TOOLCHAIN -- if defined by the user, points to the root of
an external toolchain (e.g. /usr/local/gnu). This enables the cross-build
framework even for TOOLCHAIN_MISSING platforms.

If TOOLCHAIN_MISSING is set to "yes", MKGDB, MKBFD, and MKGCC are all
unconditionally set to "no", since the bits are not there to build.

If EXTERNAL_TOOLCHAIN is set, MKGCC is unconditionally set to "no",
since the external toolchain's compiler is not in-sync with the
in-tree compiler support components (e.g. libgcc).

* Set MACHINE_CPU much earlier in bsd.own.mk, so that more tests in
that file can use it.


# 1.57 14-Sep-2002 chris

We need binstall to be installed, before attempting to use it to install mktemp.


# 1.56 14-Sep-2002 thorpej

Descend into mktemp.


# 1.55 12-Jun-2002 veego

The last commit wasn't tested. Add a missing \


# 1.54 12-Jun-2002 thorpej

Don't build toolchain bits for hppa, for now.


# 1.53 10-Jun-2002 mason

Add cat(1) as a host tool.


# 1.52 05-Jun-2002 thorpej

Don't try to build toolchain bits for ns32k.


# 1.51 28-May-2002 bjh21

Add fgen as a host tool, used for sys/arch/sparc/bootblk.


Revision tags: netbsd-1-6-base
# 1.50 18-May-2002 lukem

branches: 1.50.2;
gratuitious comment addition


# 1.49 07-May-2002 lukem

remove now-unnecessary sparc-installboot


# 1.48 03-May-2002 kleink

On prep, descend into prep-mkbootimage.


# 1.47 06-Apr-2002 bjh21

vax-installboot has been deleted, so don't recurse into it.


# 1.46 03-Apr-2002 lukem

enable installboot


# 1.45 01-Apr-2002 thorpej

Nuke NO_DBSYM; dbsym now uses BFD for everything.


# 1.44 01-Apr-2002 bjh21

On second thoughts, don't make mktemp a host tool. It's only used once, for
creating a temporary directory for maketars, and mkdir can do that safely
enough.


# 1.43 31-Mar-2002 bjh21

Add mktemp as a host tool.


# 1.42 31-Mar-2002 bjh21

Add cksum as a host tool.


# 1.41 29-Mar-2002 matt

Drop into vax-installboot on VAX machines.


# 1.40 07-Mar-2002 tv

Rework recursion to use the original logic again, in the structure cleaned
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".


# 1.39 07-Mar-2002 tv

Don't build groff if MKMAN=no. (groff does not build properly on some
platforms because of its completely insane Make structure; this allows it
to be disabled in a sane way.)


# 1.38 26-Feb-2002 tv

Add gettext to tools.

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.)


# 1.37 23-Feb-2002 gmcgarry

Add elf2ecoff as a build tool for mips ports.


# 1.36 18-Feb-2002 pk

* Add comments on all the directory build/install ordering goo.
* 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.


# 1.35 11-Feb-2002 pk

Revert part of previous; we need the install targets.


# 1.34 10-Feb-2002 pk

Use .ORDER targets to express the dependencies on subdir runs. This makes
the resulting tree complexity O(N) (N=# of subdirs), and it also makes it
easier to comprehend the Makefile logic.


# 1.33 08-Feb-2002 pk

Make sure to not go off installing in a directory before it's fully made.


# 1.32 31-Jan-2002 tv

Roll in fixes to permit cross-compiling from non-NetBSD hosts. This
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.


# 1.31 29-Jan-2002 tv

Make almost all tools compile and run properly on non-NetBSD hosts. (In
particular, most tools now run correctly on Solaris 7.)


# 1.30 25-Jan-2002 lukem

build pax as a host tool, for -N and to work around borken vendor paxes


# 1.29 10-Jan-2002 tv

Move host-mkdep to its own directory. Create and install it before
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.


# 1.28 10-Jan-2002 lukem

revert previous, and reenable tools/makefs now that it works on
netbsd-current and netbsd-1-5


# 1.27 09-Jan-2002 tv

Disable makefs in src/tools for the moment; it's very dependent on -current
NetBSD headers and sources right now. (Temporary workaround for PR 15175.)


# 1.26 05-Jan-2002 mrg

build zic as a host tool.


# 1.25 05-Jan-2002 mrg

build makefs, and, sparc-installboot if sparc||sparc64


# 1.24 31-Dec-2001 thorpej

We can't currently build a toolchain for x86-64 here, so don't
attempt to do so.


# 1.23 29-Dec-2001 wiz

Typo fix in error message.


# 1.22 11-Dec-2001 tv

Add the framework for autoconf-based src/tools/compat structure. This will
(after it is more fleshed out) allow the host tools to work more cleanly
on non-NetBSD hosts.


# 1.21 07-Dec-2001 jmc

Add pwd_mkdb as a toolchain bit for builds


# 1.20 29-Nov-2001 thorpej

Build makewhatis as a host tool, since it is used at the end of
the build.

XXX Needs a -lz hostlib.


# 1.19 22-Nov-2001 jmc

Oops. typo which can break things for non-new toolchain builds if MKTOOLS isn't
set


# 1.18 22-Nov-2001 jmc

Check for USETOOLS!=yes in addition to MKTOOLS==no to generate the empty rule
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


# 1.17 13-Nov-2001 tv

Re-add MKTOOLS as a "yes"/"no" only variable, which prevents recursion on "no"
into the src/tools subdirs on all/depend/dependall/install. Other recursive
targets are not affected.


# 1.16 12-Nov-2001 tv

Major overhaul of src/tools and host toolchain. Summary of changes:

* 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.


# 1.15 09-Nov-2001 thorpej

Build the cross-dbsym.


# 1.14 02-Nov-2001 tv

* Always use the makewrapper when starting a build phase.

* 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.


# 1.13 31-Oct-2001 tv

Don't actually delete the default tooldir on "cleandir"; else we'll nuke
the nbmake that is probably currently running.

Just leave the "cleantools" manual target as a shortcut for the user.


# 1.12 31-Oct-2001 tv

* Create a variable HOST_OSTYPE that represents the host build environment,
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.


# 1.11 31-Oct-2001 tv

* Always descend into "tools" regardless of USETOOLS setting. Instead,
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.


# 1.10 25-Oct-2001 thorpej

Add asn1_compile as a host tool.


# 1.9 21-Oct-2001 jmc

Pull in mdsetimage to the tools builds. (XXX - using libbfd here would
probably be preferrable long term).


# 1.8 20-Oct-2001 jmc

Add mklocale to cross-tools and turn it back on for the builds.


# 1.7 13-Oct-2001 jmc

Add crunchgen, msgc and menuc


# 1.6 09-Oct-2001 enami

Make mtree a host tool and use it when appropriate.


# 1.5 04-Oct-2001 tv

Recurse properly; just add "build" to TARGETS (fixes reported problem where
"make clean" doesn't work at the src/tools level).


# 1.4 22-Sep-2001 tv

Work around "make obj" lossage in tools/. Dunno why this is happening
just yet; will investigate this evening.


# 1.3 22-Sep-2001 tv

Add lorder to TOOLDIR host tools.

Only descend into directories if USE_NEW_TOOLCHAIN is set (allows top level
Makefile to use "-m ${.CURDIR}/share/mk" to get the "correct" <bsd.own.mk>
when descending into src/tools/Makefile).


# 1.2 21-Sep-2001 tv

- Create a real cpp binary.
- Set CC properly in environment for mkdep and lint.
- Add compile_et to TOOLDIR host tools.


# 1.1 14-Aug-2001 tv

Bootstrap toolchain framework, first pass.


# 1.203 07-May-2019 hannken

Fix build, "pax" must be built before "libprop".

Ok: Matthew Green mrg@


# 1.202 07-May-2019 thorpej

Add support for libprop as a host tool library.


# 1.201 03-Apr-2019 joerg

Add MKLLVMRT to build a subset of the LLVM stack for JIT purposes.
Hook up AMDGPU backend for clang.


# 1.200 03-Apr-2019 joerg

Revert MKLLVMCMDS changes.


# 1.199 20-Mar-2019 mrg

split MKLLVM into MKLLVM and MKLLVMCMDS, like MKGCC and MKGCCCMDS:

- only build clang or clang-tblgen if MKLLVMCMDS != "no"
- move HAVE_MESA_VER earlier so we can detect mesa 18 and enable
MKLLVM on platforms that need it
- move the clang commands and headers into llvmcmds group
- only build the clang specific LLVM libraries if MKLLVMCMDS != "no"

much of this work came from maya@'s github commit
f90685c11d4460d3098fa35f48b58d1893e974e0, reworked for HAVE_MESA_VER
and llvmcmds vs MKCLANG.


build tested on several platforms and on amd64 and i386 with several
different build options (clang build, gcc build, gcc build with llvm
libs).


Revision tags: pgoyette-compat-20190127 pgoyette-compat-20190118
# 1.198 02-Jan-2019 christos

use MACHINE_CPU for elf2aout


# 1.197 31-Dec-2018 christos

Add an arm-specific elf2aout tool since objdump does not support a.out anymore


Revision tags: pgoyette-compat-1226 pgoyette-compat-1126 pgoyette-compat-1020 pgoyette-compat-0930
# 1.196 25-Sep-2018 joerg

Update build glue for xz-5.2.4. Hook up tools version.


Revision tags: pgoyette-compat-0906
# 1.195 11-Aug-2018 christos

hook in the tools version of grep


Revision tags: pgoyette-compat-0728 phil-wifi-base pgoyette-compat-0625 pgoyette-compat-0521
# 1.194 09-May-2018 joerg

For EXTERNAL_TOOLCHAIN, MKLLVM=yes needs to build only tablegen.


Revision tags: pgoyette-compat-0502 pgoyette-compat-0422 pgoyette-compat-0415 pgoyette-compat-0407 pgoyette-compat-0330 pgoyette-compat-0322 pgoyette-compat-0315 pgoyette-compat-base
# 1.193 18-Feb-2018 uwe

branches: 1.193.2;
Fix .endif comment for TOOLS_BUILDRUMP


# 1.192 27-Dec-2017 christos

Better EXTERNAL_TOOLCHAIN support from Zachary McGrew
- Allow mdsetimage and dbsym to be built with EXTERNAL_TOOLCHAIN
- Allow BFDDIR and IBERTYDIR to be overwritten for mdsetimage and dbsym


Revision tags: perseant-stdc-iso10646-base
# 1.191 07-Jun-2017 skrll

branches: 1.191.2;
Hook in dtc/libfdt now that it builds for me


# 1.190 06-Jun-2017 skrll

Disable dtc/libfdt for now


# 1.189 05-Jun-2017 christos

No need to set dtc twice.


# 1.188 05-Jun-2017 christos

Add dtc


Revision tags: netbsd-8-base prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1 pgoyette-localcount-20170320 bouyer-socketcan-base
# 1.187 11-Jan-2017 joerg

branches: 1.187.6;
Sync tools build glue with LLVM pre-4.0.0.


Revision tags: pgoyette-localcount-20170107 pgoyette-localcount-20161104 localcount-20160914 pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base
# 1.186 24-Jan-2016 christos

branches: 1.186.2;
move cvslatest last


# 1.185 24-Jan-2016 christos

Tool version


# 1.184 19-Dec-2015 christos

move sortinfo after pax


# 1.183 18-Dec-2015 christos

Add sortinfo


# 1.182 23-Jul-2015 mrg

remove the xfree86 reachover makefiles and the vast majority of
the support in the rest of the source tree.

X11 sets could use some cleaning up perhaps (just deletion, as
we've never really marked the old X11R6 as obsolete for native
xorg using platforms so far either.)


# 1.181 24-Jun-2015 matt

Support building the xorg X11 libraries under MKCOMPAT.
Add XORG_MACHINE_ARCH to compat's bsd.*.mk
Turn xorg makekeys and makestrs into real host tools which are installed into
${TOOLSDIR}


# 1.180 07-Jan-2015 joerg

Reorganise the way xorg is build. Move build of makestrs into src/tools
as it is needed for the "includes" phase. Make it symlink all necessary
headers in obj to decouple it from "includes" itself, breaking the
dependency cycle. Move the do-x11 target between do-lib and do-build, so
that libraries can get the benefit of build_install (correct .WAIT
behavior) and everything else like "includes" uses the plain SUBDIR
entry in external/mit.


# 1.179 05-Dec-2014 pooka

build genassym for TOOLS_BUILDRUMP


# 1.178 30-Sep-2014 christos

add gpt


Revision tags: netbsd-7-2-RELEASE netbsd-7-1-2-RELEASE netbsd-7-1-1-RELEASE netbsd-7-1-RELEASE netbsd-7-1-RC2 netbsd-7-nhusb-base-20170116 netbsd-7-1-RC1 netbsd-7-0-2-RELEASE netbsd-7-nhusb-base netbsd-7-0-1-RELEASE netbsd-7-0-RELEASE netbsd-7-0-RC3 netbsd-7-0-RC2 netbsd-7-0-RC1 netbsd-7-base tls-maxphys-base
# 1.177 10-Aug-2014 matt

Changes to existing files to enable building AARCH64 userland.
evbarm64-el
This is clang only. While gcc4.8 supports aarch64, no netbsd support has
been written for aarch64 with gcc4.8.


Revision tags: tls-earlyentropy-base
# 1.176 15-Jul-2014 christos

descend to vgrind


# 1.175 15-Jun-2014 pooka

Add cat, rpcgen and stat to TOOLS_BUILDRUMP. They're useful for
installing headers for the app stack cases that need it done, and small
enough to not matter for the kernel-only cases that don't.


# 1.174 14-Jun-2014 mrg

remove remaining makefile support for GCC < 45 that i found.


Revision tags: yamt-pagecache-base9
# 1.173 03-Apr-2014 riastradh

branches: 1.173.2;
ctfconvert/ctfmerge need libdwarf &c., so build them if MKCTF=yes.


Revision tags: riastradh-xf86-video-intel-2-7-1-pre-2-21-15
# 1.172 25-Mar-2014 ozaki-r

Add MKCTF

This variable separates CTF stuffs from MKDTRACE; we can build DTrace
solely without building and using them. This allows us to use DTrace
even if CTF stuffs have problems (actually they have now).

This variable would be merged into MKDTRACE eventually, once CTF stuffs
work correctly again.


Revision tags: riastradh-drm2-base3
# 1.171 24-Feb-2014 skrll

Rename NetBSD/hp700 to NetBSD/hppa.

Unfortunately our VCS isn't very helpful here.


# 1.170 02-Sep-2013 joerg

Update LLVM/Clang snapshot to r189662. This includes many improvements
to the new SLP vectorizer, fast codegen support for PPC and using
terminfo for the color sequences. In addition, add (optional) build
infrastructure for lld to allow easier testing. This is controlled by
MKLLD.


Revision tags: riastradh-drm2-base2 riastradh-drm2-base1
# 1.169 19-Jul-2013 matt

Even if we aren't making a crossgdb still make the object dir for it.


Revision tags: riastradh-drm2-base agc-symver-base
# 1.168 27-Feb-2013 joerg

branches: 1.168.4;
Add infrastructure for building MCLinker.


# 1.167 05-Feb-2013 matt

There are other little endian arm machine_arches other than "arm"
Use MACHINE_CPU and TARGET_ENDIANNESS instead of MACHINE_ARCH


# 1.166 31-Jan-2013 pooka

Use TOOLS_BUILDRUMP=yes to restrict building of tools to those required
for building rump kernels. This cuts down the NetBSD source tree required
by buildrump.sh to a fraction and addresses a size/download time concern
from a person packaging rump kernels for Linux.

No change to the normal case (tested with several -j32/-j64 builds).

reviewed by apb


Revision tags: yamt-pagecache-base8 yamt-pagecache-base7
# 1.165 02-Dec-2012 apb

Make tools/Makefile build host-mkdep, compat, and binstall in that order,
before installing any of them. It installs them in any order relative
to each other. The .WAIT points that used to be between these three
tools are replaced by .ORDER and dependencies.

This is needed in preparation for making tools/compat install
some files into TOOLDIR.


# 1.164 02-Dec-2012 apb

TOOLDIR must be valid, unless MKTOOLS=no.
Add tests and .error directives to enforce this.


# 1.163 02-Dec-2012 apb

If tools are not wanted, then set SUBDIR= empty instead of
defining all the subdir-related targets to do nothing. This way,
the targets are not invoked at all, instead of being invoked but
doing nothing.


# 1.162 02-Dec-2012 apb

remove trailing white space


# 1.161 27-Nov-2012 jkunz

According to the i.MX23 Reference Manual section 3.1, Page 3-3:
"The i.MX23 always operates in litle-endian mode."
So build elftosb and bootloader for this processor only for evbarm(-el).


# 1.160 26-Nov-2012 pooka

Build gmake iff we're going to need it.


# 1.159 15-Nov-2012 joerg

Move the build_install logic from lib/Makefile into share/mk and re-use
it for tools. The existing logic broke for the LLVM build with the
recent .ORDER changes in make.


# 1.158 15-Nov-2012 jkunz

Add elftosb tools to evbarm userland and toolchain.
Elftosb is used to create a digitaly signed "secure boot" file.
This sb file can be booted by the first stage boot loader found in
Freescale i.MX23 and i.MX28 application processors.

Copyright (c) 2004-2010 Freescale Semiconductor, Inc.


Revision tags: yamt-pagecache-base6
# 1.157 20-Sep-2012 pooka

fix EXTERNAL_TOOLCHAIN build


# 1.156 10-Aug-2012 joerg

branches: 1.156.2;
Decouple binutils build from HAVE_GCC. Merge common fragments of
HAVE_GCC and HAVE_PCC.


Revision tags: netbsd-6-0-6-RELEASE netbsd-6-1-5-RELEASE netbsd-6-1-4-RELEASE netbsd-6-0-5-RELEASE netbsd-6-1-3-RELEASE netbsd-6-0-4-RELEASE netbsd-6-1-2-RELEASE netbsd-6-0-3-RELEASE netbsd-6-1-1-RELEASE netbsd-6-0-2-RELEASE netbsd-6-1-RELEASE netbsd-6-1-RC4 netbsd-6-1-RC3 netbsd-6-1-RC2 netbsd-6-1-RC1 netbsd-6-0-1-RELEASE matt-nb6-plus-nbase netbsd-6-0-RELEASE netbsd-6-0-RC2 matt-nb6-plus-base netbsd-6-0-RC1 yamt-pagecache-base5 yamt-pagecache-base4 netbsd-6-base yamt-pagecache-base3 yamt-pagecache-base2
# 1.155 03-Nov-2011 joerg

Revert .WAIT removal and add comment why it is needed between *tblgen.


# 1.154 02-Nov-2011 njoly

Do not build tic more than once


# 1.153 02-Nov-2011 christos

move tic later, after all the tools it needs are built.


# 1.152 02-Nov-2011 yamt

tweak dependencies for tic, which needs nbperf, awk, and sed.


Revision tags: yamt-pagecache-base
# 1.151 01-Nov-2011 joerg

branches: 1.151.2;
Remove an unnecessary .WAIT between llvm-tblgen and clang-tblgen.


# 1.150 01-Nov-2011 joerg

Hook up nbperf into the normal tool build.


# 1.149 11-Oct-2011 joerg

Update LLVM/Clang snapshot to r141658. This primarily fixes a regression
preventing Qt4 from building.


# 1.148 16-Jul-2011 tsutsui

Build nbm68k-elf2aout as a host tool on m68k targets
for an ancient PROM bootloader.
Mostly taken from nbmips-elf2ecoff.


# 1.147 10-Jul-2011 mrg

install elf2ecoff for all mips64 systems. it's needed for stand.


# 1.146 21-Jun-2011 mrg

always build gmake if HAVE_GCC.
build gmp, mpfr and then mpc if HAVE_GCC >= 45.


Revision tags: cherry-xenmp-base
# 1.145 15-Apr-2011 elric

branches: 1.145.2;
Upgrade Heimdal to 1.5pre1 by switching the build from crypto/dist/heimdal
to crypto/external/bsd/heimdal. The latter was just imported as the head
of the Heimdal tree as of a few days ago.


# 1.144 17-Mar-2011 riz

.WAIT for makefs, because in most builds, it's the first target
which includes Makefile.nbincludes, whose beforedepend: has
some race condition I don't fully understand, and which has been
causing many (but not all!) -j16 builds on the autobuild cluster
to fail in tools since sometime between 201103061600 and 201103070900.

With the proper voodoo, I was able to get 8 builds in a row to fail
without this change, and 16 in a row to succeed with it.

XXX a proper fix likely involves reworking the beforedepend: target
of Makefile.nbincludes, but this should get the build cluster back up
to full functionality in the meanwhile.


Revision tags: bouyer-quota2-nbase
# 1.143 25-Feb-2011 phx

mkubootimage is certainly useful for sandpoint


Revision tags: bouyer-quota2-base
# 1.142 06-Feb-2011 joerg

Add LLVM and clang build system. It is enabled by MKLLVM=yes.
Upstream sources can be fetched by running "make checkout" in
src/external/bsd/llvm, they will be properly imported once the
integration and missing features are sorted out.


# 1.141 31-Jan-2011 matt

Make mkubootimage for evbmips and evbppc too.


Revision tags: matt-mips64-premerge-20101231
# 1.140 15-Aug-2010 mrg

branches: 1.140.2;
add new option to build/use tools/pigz for compressing sets. for now
USE_PIGZGZIP defaults to "no". (it depends upon local <pthread.h> and -lz.)

you can set it to "yes" on most modern platforms just fine.


# 1.139 18-Jun-2010 jmcneill

hook mkubootimage into the build


# 1.138 04-Jun-2010 jmmv

Bye bye atf-compile, you won't be missed.


# 1.137 02-Mar-2010 darran

DTrace: add libelf, libdwarf, libctf, and CTF tools to the toolchain,
built when MKDTRACE=yes.


# 1.136 20-Feb-2010 joerg

Build mandoc unconditional if man pages are desirable. All
compatibility issues are supposed to be sorted out.
Build groff conditionally on MKGROFF. It is currently the only component
that requires C++.


# 1.135 03-Feb-2010 roy

Store our generated files in CVS and remove nbperf from the toolchain.
This allows us to build consistent libs without an ever changing hash.


# 1.134 03-Feb-2010 roy

Userland now builds and uses terminfo instead of termcap.

OK: core@, jdc@


# 1.133 29-Dec-2009 he

To unbreak the build, temporarily remove the build of libelf here,
since no other part of the build depends on this yet.

Suggested as a temporary workaround by thorpej@


# 1.132 23-Dec-2009 mrg

rework the main SUBDIR list here as suggested by enami. put .WAIT on
the same line as the target that needs to wait, but before the target,
rather than on the previous line, which led to confusion and an error
being introduced in the previous change.


# 1.131 21-Dec-2009 mrg

move the build of pax before libelf. fixes my build of tools/libelf,
though i didn't look to see why libelf needs pax.


# 1.130 21-Dec-2009 thorpej

Add support for building libelf in a host-tool environment.

XXX Makefile.disklabel is really mis-named, but I'm not going to tackle
that problem right now.


Revision tags: matt-premerge-20091211
# 1.129 29-Oct-2009 christos

Give m4 its own .WAIT. Fixes build issue on NetBSD-5.


# 1.128 23-Oct-2009 joerg

Add MKMANDOC option to trigger building cat pages and HTML pages with
mdocml. Add a lintmanpages target for developers to check man pages
with the strictest settings of mandoc.


Revision tags: jym-xensuspend-nbase jym-xensuspend-base
# 1.127 25-Feb-2009 sketch

Disable grep host tool and unbreak NetBSD build until I can come up with a
clean fix.


# 1.126 25-Feb-2009 sketch

Make grep a host tool.


# 1.125 14-Feb-2009 abs

Convert more MACHINE tests to MACHINE_ARCH


Revision tags: netbsd-5-2-3-RELEASE netbsd-5-1-5-RELEASE netbsd-5-2-2-RELEASE netbsd-5-1-4-RELEASE netbsd-5-2-1-RELEASE netbsd-5-1-3-RELEASE netbsd-5-2-RELEASE netbsd-5-2-RC1 netbsd-5-1-2-RELEASE netbsd-5-1-1-RELEASE matt-nb5-mips64-premerge-20101231 matt-nb5-pq3-base netbsd-5-1-RELEASE netbsd-5-1-RC4 matt-nb5-mips64-k15 netbsd-5-1-RC3 netbsd-5-1-RC2 netbsd-5-1-RC1 netbsd-5-0-2-RELEASE matt-nb5-mips64-premerge-20091211 matt-nb5-mips64-u2-k2-k4-k7-k8-k9 matt-nb4-mips64-k7-u2a-k9b matt-nb5-mips64-u1-k1-k5 netbsd-5-0-1-RELEASE netbsd-5-0-RELEASE netbsd-5-0-RC4 netbsd-5-0-RC3 netbsd-5-0-RC2 netbsd-5-0-RC1 netbsd-5-base
# 1.124 25-Oct-2008 apb

branches: 1.124.4; 1.124.8; 1.124.12;
Build sed earlier, just after mktemp. Note that sed and mktemp do not
depend on each other, but the .WAIT is needed to get them both installed
before the remainder of the tools build.


# 1.123 25-Oct-2008 apb

Remove the local handling of the NOSUBDIR variable. We can rely
on bsd.subdir.mk's handling of the NOSUBDIR variable.

Also add some comment to .if/.else/.endif and .for/.endfor lines.


Revision tags: matt-mips64-base2
# 1.122 19-Oct-2008 apb

Add awk as a host tool.


# 1.121 13-Oct-2008 dyoung

Per uwe@'s suggestion, build nbgroff under wider circumstances.
I choose to build it if MKDOC != no or if MKHTML != no. It used
to be built only when MKMAN != no.


# 1.120 05-Oct-2008 apb

Add a .WAIT to ensure that sed is installed early, so that TOOL_SED can
be used during the build of other tools.


# 1.119 26-Sep-2008 apb

Build strfile both as a host tool and as an installed program:
* in games/fortune/strfile/Makefile, build strfile as a
regular program instead of as a host tool;
* add tools/strfile directory to build strfile as a host tool;
* in tools/Makefile, add strfile to SUBDIR list;
* in BSD.*.mk, define TOOL_STRFILE variable;
* in games/fortune/datfiles/Makefile, use TOOL_STRFILE when creating
databases at build time;
* in distrib/sets/lists/games/mi, mention usr/games/strfile.


Revision tags: wrstuden-revivesa-base-3 wrstuden-revivesa-base-2
# 1.118 24-Aug-2008 gmcgarry

Build pcc as host tool if requested.


Revision tags: wrstuden-revivesa-base-1 yamt-pf42-base4 yamt-pf42-base3 wrstuden-revivesa-base
# 1.117 26-May-2008 he

Remove references to bebox-elf2pef and bebox-mkbootimage, now that they
have been integrated in common powerpc tools and subsequently removed.


Revision tags: hpcarm-cleanup-nbase yamt-pf42-base2
# 1.116 30-Apr-2008 garbled

branches: 1.116.2;
Build powerpc-mkbootimage for rs6000 and bebox too.


# 1.115 30-Apr-2008 garbled

Convert prep to use the new unified mkbootimage rather than it's own. This
mkbootimage can be shared by prep, rs6000, and bebox.

TODO: Convert bebox to use this. Needs someone to test.


Revision tags: yamt-pf42-baseX yamt-pf42-base keiichi-mipv6-nbase keiichi-mipv6-base matt-armv6-nbase cube-autoconf-base matt-armv6-base hpcarm-cleanup-base
# 1.114 12-Nov-2007 jmmv

branches: 1.114.6;
Add the atf host tools

This adds reachover Makefiles to build the atf tools required during a
cross-build.


Revision tags: matt-armv6-prevmlocking matt-mips64-base
# 1.113 14-Jan-2007 apb

branches: 1.113.4;
Build join(1) as a host tool.


# 1.112 20-Dec-2006 agc

A commit too far - don't try to build veriexecgen for just now


# 1.111 19-Dec-2006 agc

Build veriexecgen as a host tool


Revision tags: netbsd-4-0-1-RELEASE wrstuden-fixsa-newbase wrstuden-fixsa-base-1 netbsd-4-0-RELEASE netbsd-4-0-RC5 netbsd-4-0-RC4 netbsd-4-0-RC3 netbsd-4-0-RC2 netbsd-4-0-RC1 wrstuden-fixsa-base netbsd-4-base
# 1.110 22-Nov-2006 riz

Make sys/exec_elf.h and machine/elf_machdep.h available to host
tools, and allow paxctl to use them when compiled as a host
tool. This fixes the build on MacOS X (and perhaps other platforms)


# 1.109 17-Nov-2006 dsl

Add some notes about the bogosity of some of the .WAIT stuff.
Remove a 'never had a sane effect' .WAIT from a .ORDER line.
Don't add a (probably incorrect) dependency for 'make install' since
it contradicts a .ORDER line elsewhere when .ORDER applies recursively
to child nodes.
I also think that the stuff that tries to add dependencies between
the stuff that bsd.subdir.mk generates does not DTRT at all.
I suspect that build.sh builds things in an order that avoids issues here.


# 1.108 10-Nov-2006 christos

Add paxctl as a tool.


# 1.107 08-Oct-2006 apb

If PREVIOUSTOOLDIR was empty, then don't complain that it has moved.

Patch from Jukka Salmi in PR 33095.


Revision tags: abandoned-netbsd-4-base
# 1.106 03-Aug-2006 freza

* Fix parallel build race condition between real{all,depend} and
<bsd.subdir.mk> targets.
* No need to pass TOOLDIR to recursive cleandir in real{all,depend}.

With help from he@.
OK by tron@.


# 1.105 03-Aug-2006 tron

Another attempt to fix the race in parallel builds.


# 1.104 19-Jul-2006 tron

Invoking "make cleandir" with "PREVIOUSTOOLDIR" set to the previous
location will not stop recursive "make cleandir" calls. Pass the new
location instead.


# 1.103 18-Jul-2006 lukem

gettext should .WAIT for autoconf.
(The former still doesn't seem to work on read-only source; separate issue)


# 1.102 17-Jul-2006 tron

Avoid getting into a loop of "make cleandir" instances if the location
tool directory has been changed or wasn't recorded before.


# 1.101 17-Jul-2006 tron

Remove ".WAIT" again because it doesn't fix the problem.


# 1.100 12-Jul-2006 tron

Add an extra ".WAIT" to the "realall realdepend" target to make sure
it finished cleaning the tools directory in case of tool directory
mismatch before we try to rebuild the tools.


# 1.99 22-Jun-2006 mrg

only build lint and lint2 if MKLINT != "no".


# 1.98 18-Jun-2006 gdamore

Make TOOL_SED, to allow using our own sed in cases where the host's version
is busted in some way.

The TOOL_SED doesn't use TIOCGWINSIZE, and has some changes to include
nbtool_config.h in a cross build environment.

Combined with some other changes (not yet committed), this allows cross
compiling m68k code on Solaris 10/amd64.


# 1.97 02-Jun-2006 mrg

remove support for building (with) GCC 2.95. also:
- always install <stdbool.h>
- don't generate a fake one for vax / gettext.


# 1.96 11-May-2006 mrg

check HAVE_GCC == 4 not USE_GCC4.


# 1.95 01-Apr-2006 christos

Don't barf if USE_GCC4 is not defined.


# 1.94 29-Mar-2006 jmc

Turn on gmake builds if GCC4 is enabled (and force it's install before continuing


# 1.93 03-Feb-2006 dsl

The realall and realdepend bit that regenerates tools needs to be marked
.MAKE otherwise the 'make' it runs has its own list of jobs instead of
using the jobserver of the enclosing make.


# 1.92 04-Oct-2005 jmc

Make the tools using Makefile.disklabel wait so they don't stomp each other.
Also for now add a dependency to Makefile.disklabel so this doesn't run
3 times. (XXX this really should just be done differently)


# 1.91 12-Jun-2005 dyoung

.include Makefile.disklabel in installboot, so that the
nbinclude/ header files will be installed. Build installboot after
pax, since Makefile.disklabel uses pax to install the headers.


# 1.90 12-Jun-2005 dyoung

Make disklabel(8) and fdisk(8) into "host tools " last step: build
and install ${TOOLDIR}/bin/${MACHINE_GNU_PLATFORM}-disklabel,
${TOOLDIR}/bin/${MACHINE_GNU_PLATFORM}-fdisk by "reaching over" to
the sources in ${NETBSDSRCDIR}/sbin/{disklabel fdisk}/.

To avoid clashes with a build-host's header files, especially on
*BSD, the host-tools versions of fdisk and disklabel search for
#includes such as disklabel.h, disklabel_acorn.h, disklabel_gpt.h,
and bootinfo.h in a new #includes namespace, nbinclude/. That is,
they #include <nbinclude/sys/disklabel.h>, <nbinclude/machine/disklabel.h>,
<nbinclude/sparc64/disklabel.h>, instead of <sys/disklabel.h> and
such. I have also updated the system headers to #include from
nbinclude/-space when HAVE_NBTOOL_CONFIG_H is #defined.


# 1.89 30-May-2005 thorpej

Build genassym as a host tool. Part of PR toolchain/30350


Revision tags: netbsd-3-1-1-RELEASE netbsd-3-0-3-RELEASE netbsd-3-1-RELEASE netbsd-3-0-2-RELEASE netbsd-3-1-RC4 netbsd-3-1-RC3 netbsd-3-1-RC2 netbsd-3-1-RC1 netbsd-3-0-1-RELEASE netbsd-3-0-RELEASE netbsd-3-0-RC6 netbsd-3-0-RC5 netbsd-3-0-RC4 netbsd-3-0-RC3 netbsd-3-0-RC2 netbsd-3-0-RC1 netbsd-3-base
# 1.88 27-Jan-2005 is

We don't need aout2bb any longer.


# 1.87 09-Jan-2005 mycroft

Add some quotes to prevent a syntax error.


# 1.86 28-Nov-2004 jmc

Convert mkboot into a full cross tool. Last hurdle for hp300 to building on
non NetBSD/bsd hosts.


# 1.85 28-Nov-2004 jmc

Convert remaining host tools for amiga to correct cross tools. Now allows
complete amiga builds on non netbsd/bsd hosts


# 1.84 25-Nov-2004 jmc

Convert bebox's remaining host tools over to cross tools scheme. Builds to sets
w/o error now.


# 1.83 28-Jul-2004 skrll

Build hp700's mkboot as a host tool called nbhp700-mkboot. mkboot also
gets built and installed in a hp700 distribution.

TODO

- merge with hp300

- pick a preferred method for dealing with the elf headers.
hp700-mkboot and prep-mkbootimage (bintuils) vs mips-elf2ecoff and
tools/installboot


# 1.82 08-Jun-2004 abs

Add sparkcrc (used to generate checksums for acorn32 bootloader sparkive)
as a host tool.


Revision tags: netbsd-2-0-base
# 1.81 03-Jan-2004 lukem

branches: 1.81.2;
Consistently check ${TOOLCHAIN_MISSING} against "no".


# 1.80 11-Dec-2003 matt

Fix typo.


# 1.79 11-Dec-2003 matt

Add macppc-fixcoff tool.


# 1.78 10-Dec-2003 lukem

Use (cd ${.CURDIR} && ${MAKE} cleandir) instead of ${MAKE} cleandir
Suggested by Ross Harvey.


# 1.77 04-Dec-2003 mrg

always build tools/binutils now.


# 1.76 08-Nov-2003 sekiya

Build sgivol as a host tool when compiling for sgimips.


# 1.75 27-Oct-2003 lukem

add mknod as a host tool


# 1.74 26-Oct-2003 cl

add gdb53 as a host tool for use as a crossgdb
replaces gdb50 from toolchain on archs which use gcc3


# 1.73 21-Oct-2003 lukem

Rework how MAKEVERBOSE operates:

* Don't bother prefixing commands with a line of ${_MKCMD}\
and instead rely upon "make -s". This is less intrusive on
all the Makefiles than the former. Idea from David Laight.

* Rename the variables use to print messages. The scheme now is:
_MKMSG_FOO Run _MKMSG 'foo'
_MKTARGET_FOO Run _MKMSG_FOO ${.TARGET}
From discussion with Alistair Crooks.


# 1.72 19-Oct-2003 matt

Add host tool version of ncdcs


# 1.71 18-Oct-2003 lukem

MAKEVERBOSE support


# 1.70 25-Jul-2003 mrg

- build "binutils" and "gcc" separately if USE_TOOLS_TOOLCHAIN is not set
to "yes".
- adjust dbsym/mdsetimage to look in the correct place for libbfd.
- new mknative-gcc based in toolchain/mknative


# 1.69 24-Jul-2003 tron

Add missing "cleandir" rule.


# 1.68 20-Jul-2003 lukem

add stat(1) as a host tool


# 1.67 16-Jul-2003 lukem

also do the MKTOOLS and PREVIOUSTOOLDIR checks for "realdepend"


# 1.66 16-Jul-2003 lukem

* If a `PREVIOUSTOOLDIR' file doesn't exist, or its contents are not
the same as "$TOOLDIR", run "make cleandir" here first.
This should prevent various problems where $TOOLDIR is encoded into the
build process for various tools (lint, groff, texinfo, toolchain),
$TOOLDIR changes, and various programs don't get rebuilt correctly.
Should fix PR [toolchain/21988].

* Clean up how the `${MKTOOLS} == no' check is performed.

* Remove "cleantools"; it made a big assumption about the location of
TOOLDIR that won't be correct in many cases.


# 1.65 26-Jun-2003 tshiozak

Citrus iconv support(3)
add host tools : mkcsmapper and mkesdb
mkcsmapper - coded character set mapping table compiler
mkesdb - encoding scheme database compiler


# 1.64 18-May-2003 lukem

Add db(1) as a host tool


# 1.63 25-Mar-2003 pooka

build file(1) as a host tool (for compiling magic files)


# 1.62 07-Mar-2003 thorpej

Make hexdump a host tool.


Revision tags: fvdl_fs64_base
# 1.61 21-Dec-2002 lukem

enable sunlabel...


# 1.60 19-Sep-2002 thorpej

Change the TOOLCHAIN_MISSING from == "no" to != "yes", to be consistent
with the other tests of this variable.


# 1.59 19-Sep-2002 matt

Since TOOLCHAIN_MISSING is defined in bsd.own.mk, it can never be undefined.
Instead, make sure the value of it is "no"


# 1.58 17-Sep-2002 thorpej

* Eliminate the USE_NEW_TOOLCHAIN variable. Instead, split it into
two variables:

TOOLCHAIN_MISSING -- set to "yes" on platforms for which there is
no working in-tree toolchain (hppa, ns32k, sh5, x86_64).

EXTERNAL_TOOLCHAIN -- if defined by the user, points to the root of
an external toolchain (e.g. /usr/local/gnu). This enables the cross-build
framework even for TOOLCHAIN_MISSING platforms.

If TOOLCHAIN_MISSING is set to "yes", MKGDB, MKBFD, and MKGCC are all
unconditionally set to "no", since the bits are not there to build.

If EXTERNAL_TOOLCHAIN is set, MKGCC is unconditionally set to "no",
since the external toolchain's compiler is not in-sync with the
in-tree compiler support components (e.g. libgcc).

* Set MACHINE_CPU much earlier in bsd.own.mk, so that more tests in
that file can use it.


# 1.57 14-Sep-2002 chris

We need binstall to be installed, before attempting to use it to install mktemp.


# 1.56 14-Sep-2002 thorpej

Descend into mktemp.


# 1.55 12-Jun-2002 veego

The last commit wasn't tested. Add a missing \


# 1.54 12-Jun-2002 thorpej

Don't build toolchain bits for hppa, for now.


# 1.53 10-Jun-2002 mason

Add cat(1) as a host tool.


# 1.52 05-Jun-2002 thorpej

Don't try to build toolchain bits for ns32k.


# 1.51 28-May-2002 bjh21

Add fgen as a host tool, used for sys/arch/sparc/bootblk.


Revision tags: netbsd-1-6-base
# 1.50 18-May-2002 lukem

branches: 1.50.2;
gratuitious comment addition


# 1.49 07-May-2002 lukem

remove now-unnecessary sparc-installboot


# 1.48 03-May-2002 kleink

On prep, descend into prep-mkbootimage.


# 1.47 06-Apr-2002 bjh21

vax-installboot has been deleted, so don't recurse into it.


# 1.46 03-Apr-2002 lukem

enable installboot


# 1.45 01-Apr-2002 thorpej

Nuke NO_DBSYM; dbsym now uses BFD for everything.


# 1.44 01-Apr-2002 bjh21

On second thoughts, don't make mktemp a host tool. It's only used once, for
creating a temporary directory for maketars, and mkdir can do that safely
enough.


# 1.43 31-Mar-2002 bjh21

Add mktemp as a host tool.


# 1.42 31-Mar-2002 bjh21

Add cksum as a host tool.


# 1.41 29-Mar-2002 matt

Drop into vax-installboot on VAX machines.


# 1.40 07-Mar-2002 tv

Rework recursion to use the original logic again, in the structure cleaned
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".


# 1.39 07-Mar-2002 tv

Don't build groff if MKMAN=no. (groff does not build properly on some
platforms because of its completely insane Make structure; this allows it
to be disabled in a sane way.)


# 1.38 26-Feb-2002 tv

Add gettext to tools.

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.)


# 1.37 23-Feb-2002 gmcgarry

Add elf2ecoff as a build tool for mips ports.


# 1.36 18-Feb-2002 pk

* Add comments on all the directory build/install ordering goo.
* 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.


# 1.35 11-Feb-2002 pk

Revert part of previous; we need the install targets.


# 1.34 10-Feb-2002 pk

Use .ORDER targets to express the dependencies on subdir runs. This makes
the resulting tree complexity O(N) (N=# of subdirs), and it also makes it
easier to comprehend the Makefile logic.


# 1.33 08-Feb-2002 pk

Make sure to not go off installing in a directory before it's fully made.


# 1.32 31-Jan-2002 tv

Roll in fixes to permit cross-compiling from non-NetBSD hosts. This
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.


# 1.31 29-Jan-2002 tv

Make almost all tools compile and run properly on non-NetBSD hosts. (In
particular, most tools now run correctly on Solaris 7.)


# 1.30 25-Jan-2002 lukem

build pax as a host tool, for -N and to work around borken vendor paxes


# 1.29 10-Jan-2002 tv

Move host-mkdep to its own directory. Create and install it before
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.


# 1.28 10-Jan-2002 lukem

revert previous, and reenable tools/makefs now that it works on
netbsd-current and netbsd-1-5


# 1.27 09-Jan-2002 tv

Disable makefs in src/tools for the moment; it's very dependent on -current
NetBSD headers and sources right now. (Temporary workaround for PR 15175.)


# 1.26 05-Jan-2002 mrg

build zic as a host tool.


# 1.25 05-Jan-2002 mrg

build makefs, and, sparc-installboot if sparc||sparc64


# 1.24 31-Dec-2001 thorpej

We can't currently build a toolchain for x86-64 here, so don't
attempt to do so.


# 1.23 29-Dec-2001 wiz

Typo fix in error message.


# 1.22 11-Dec-2001 tv

Add the framework for autoconf-based src/tools/compat structure. This will
(after it is more fleshed out) allow the host tools to work more cleanly
on non-NetBSD hosts.


# 1.21 07-Dec-2001 jmc

Add pwd_mkdb as a toolchain bit for builds


# 1.20 29-Nov-2001 thorpej

Build makewhatis as a host tool, since it is used at the end of
the build.

XXX Needs a -lz hostlib.


# 1.19 22-Nov-2001 jmc

Oops. typo which can break things for non-new toolchain builds if MKTOOLS isn't
set


# 1.18 22-Nov-2001 jmc

Check for USETOOLS!=yes in addition to MKTOOLS==no to generate the empty rule
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


# 1.17 13-Nov-2001 tv

Re-add MKTOOLS as a "yes"/"no" only variable, which prevents recursion on "no"
into the src/tools subdirs on all/depend/dependall/install. Other recursive
targets are not affected.


# 1.16 12-Nov-2001 tv

Major overhaul of src/tools and host toolchain. Summary of changes:

* 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.


# 1.15 09-Nov-2001 thorpej

Build the cross-dbsym.


# 1.14 02-Nov-2001 tv

* Always use the makewrapper when starting a build phase.

* 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.


# 1.13 31-Oct-2001 tv

Don't actually delete the default tooldir on "cleandir"; else we'll nuke
the nbmake that is probably currently running.

Just leave the "cleantools" manual target as a shortcut for the user.


# 1.12 31-Oct-2001 tv

* Create a variable HOST_OSTYPE that represents the host build environment,
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.


# 1.11 31-Oct-2001 tv

* Always descend into "tools" regardless of USETOOLS setting. Instead,
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.


# 1.10 25-Oct-2001 thorpej

Add asn1_compile as a host tool.


# 1.9 21-Oct-2001 jmc

Pull in mdsetimage to the tools builds. (XXX - using libbfd here would
probably be preferrable long term).


# 1.8 20-Oct-2001 jmc

Add mklocale to cross-tools and turn it back on for the builds.


# 1.7 13-Oct-2001 jmc

Add crunchgen, msgc and menuc


# 1.6 09-Oct-2001 enami

Make mtree a host tool and use it when appropriate.


# 1.5 04-Oct-2001 tv

Recurse properly; just add "build" to TARGETS (fixes reported problem where
"make clean" doesn't work at the src/tools level).


# 1.4 22-Sep-2001 tv

Work around "make obj" lossage in tools/. Dunno why this is happening
just yet; will investigate this evening.


# 1.3 22-Sep-2001 tv

Add lorder to TOOLDIR host tools.

Only descend into directories if USE_NEW_TOOLCHAIN is set (allows top level
Makefile to use "-m ${.CURDIR}/share/mk" to get the "correct" <bsd.own.mk>
when descending into src/tools/Makefile).


# 1.2 21-Sep-2001 tv

- Create a real cpp binary.
- Set CC properly in environment for mkdep and lint.
- Add compile_et to TOOLDIR host tools.


# 1.1 14-Aug-2001 tv

Bootstrap toolchain framework, first pass.


# 1.201 03-Apr-2019 joerg

Add MKLLVMRT to build a subset of the LLVM stack for JIT purposes.
Hook up AMDGPU backend for clang.


# 1.200 03-Apr-2019 joerg

Revert MKLLVMCMDS changes.


# 1.199 20-Mar-2019 mrg

split MKLLVM into MKLLVM and MKLLVMCMDS, like MKGCC and MKGCCCMDS:

- only build clang or clang-tblgen if MKLLVMCMDS != "no"
- move HAVE_MESA_VER earlier so we can detect mesa 18 and enable
MKLLVM on platforms that need it
- move the clang commands and headers into llvmcmds group
- only build the clang specific LLVM libraries if MKLLVMCMDS != "no"

much of this work came from maya@'s github commit
f90685c11d4460d3098fa35f48b58d1893e974e0, reworked for HAVE_MESA_VER
and llvmcmds vs MKCLANG.


build tested on several platforms and on amd64 and i386 with several
different build options (clang build, gcc build, gcc build with llvm
libs).


Revision tags: pgoyette-compat-20190127 pgoyette-compat-20190118
# 1.198 02-Jan-2019 christos

use MACHINE_CPU for elf2aout


# 1.197 31-Dec-2018 christos

Add an arm-specific elf2aout tool since objdump does not support a.out anymore


Revision tags: pgoyette-compat-1226 pgoyette-compat-1126 pgoyette-compat-1020 pgoyette-compat-0930
# 1.196 25-Sep-2018 joerg

Update build glue for xz-5.2.4. Hook up tools version.


Revision tags: pgoyette-compat-0906
# 1.195 11-Aug-2018 christos

hook in the tools version of grep


Revision tags: pgoyette-compat-0728 phil-wifi-base pgoyette-compat-0625 pgoyette-compat-0521
# 1.194 09-May-2018 joerg

For EXTERNAL_TOOLCHAIN, MKLLVM=yes needs to build only tablegen.


Revision tags: pgoyette-compat-0502 pgoyette-compat-0422 pgoyette-compat-0415 pgoyette-compat-0407 pgoyette-compat-0330 pgoyette-compat-0322 pgoyette-compat-0315 pgoyette-compat-base
# 1.193 18-Feb-2018 uwe

branches: 1.193.2;
Fix .endif comment for TOOLS_BUILDRUMP


# 1.192 27-Dec-2017 christos

Better EXTERNAL_TOOLCHAIN support from Zachary McGrew
- Allow mdsetimage and dbsym to be built with EXTERNAL_TOOLCHAIN
- Allow BFDDIR and IBERTYDIR to be overwritten for mdsetimage and dbsym


Revision tags: perseant-stdc-iso10646-base
# 1.191 07-Jun-2017 skrll

branches: 1.191.2;
Hook in dtc/libfdt now that it builds for me


# 1.190 06-Jun-2017 skrll

Disable dtc/libfdt for now


# 1.189 05-Jun-2017 christos

No need to set dtc twice.


# 1.188 05-Jun-2017 christos

Add dtc


Revision tags: netbsd-8-base prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1 pgoyette-localcount-20170320 bouyer-socketcan-base
# 1.187 11-Jan-2017 joerg

branches: 1.187.6;
Sync tools build glue with LLVM pre-4.0.0.


Revision tags: pgoyette-localcount-20170107 pgoyette-localcount-20161104 localcount-20160914 pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base
# 1.186 24-Jan-2016 christos

branches: 1.186.2;
move cvslatest last


# 1.185 24-Jan-2016 christos

Tool version


# 1.184 19-Dec-2015 christos

move sortinfo after pax


# 1.183 18-Dec-2015 christos

Add sortinfo


# 1.182 23-Jul-2015 mrg

remove the xfree86 reachover makefiles and the vast majority of
the support in the rest of the source tree.

X11 sets could use some cleaning up perhaps (just deletion, as
we've never really marked the old X11R6 as obsolete for native
xorg using platforms so far either.)


# 1.181 24-Jun-2015 matt

Support building the xorg X11 libraries under MKCOMPAT.
Add XORG_MACHINE_ARCH to compat's bsd.*.mk
Turn xorg makekeys and makestrs into real host tools which are installed into
${TOOLSDIR}


# 1.180 07-Jan-2015 joerg

Reorganise the way xorg is build. Move build of makestrs into src/tools
as it is needed for the "includes" phase. Make it symlink all necessary
headers in obj to decouple it from "includes" itself, breaking the
dependency cycle. Move the do-x11 target between do-lib and do-build, so
that libraries can get the benefit of build_install (correct .WAIT
behavior) and everything else like "includes" uses the plain SUBDIR
entry in external/mit.


# 1.179 05-Dec-2014 pooka

build genassym for TOOLS_BUILDRUMP


# 1.178 30-Sep-2014 christos

add gpt


Revision tags: netbsd-7-2-RELEASE netbsd-7-1-2-RELEASE netbsd-7-1-1-RELEASE netbsd-7-1-RELEASE netbsd-7-1-RC2 netbsd-7-nhusb-base-20170116 netbsd-7-1-RC1 netbsd-7-0-2-RELEASE netbsd-7-nhusb-base netbsd-7-0-1-RELEASE netbsd-7-0-RELEASE netbsd-7-0-RC3 netbsd-7-0-RC2 netbsd-7-0-RC1 netbsd-7-base tls-maxphys-base
# 1.177 10-Aug-2014 matt

Changes to existing files to enable building AARCH64 userland.
evbarm64-el
This is clang only. While gcc4.8 supports aarch64, no netbsd support has
been written for aarch64 with gcc4.8.


Revision tags: tls-earlyentropy-base
# 1.176 15-Jul-2014 christos

descend to vgrind


# 1.175 15-Jun-2014 pooka

Add cat, rpcgen and stat to TOOLS_BUILDRUMP. They're useful for
installing headers for the app stack cases that need it done, and small
enough to not matter for the kernel-only cases that don't.


# 1.174 14-Jun-2014 mrg

remove remaining makefile support for GCC < 45 that i found.


Revision tags: yamt-pagecache-base9
# 1.173 03-Apr-2014 riastradh

branches: 1.173.2;
ctfconvert/ctfmerge need libdwarf &c., so build them if MKCTF=yes.


Revision tags: riastradh-xf86-video-intel-2-7-1-pre-2-21-15
# 1.172 25-Mar-2014 ozaki-r

Add MKCTF

This variable separates CTF stuffs from MKDTRACE; we can build DTrace
solely without building and using them. This allows us to use DTrace
even if CTF stuffs have problems (actually they have now).

This variable would be merged into MKDTRACE eventually, once CTF stuffs
work correctly again.


Revision tags: riastradh-drm2-base3
# 1.171 24-Feb-2014 skrll

Rename NetBSD/hp700 to NetBSD/hppa.

Unfortunately our VCS isn't very helpful here.


# 1.170 02-Sep-2013 joerg

Update LLVM/Clang snapshot to r189662. This includes many improvements
to the new SLP vectorizer, fast codegen support for PPC and using
terminfo for the color sequences. In addition, add (optional) build
infrastructure for lld to allow easier testing. This is controlled by
MKLLD.


Revision tags: riastradh-drm2-base2 riastradh-drm2-base1
# 1.169 19-Jul-2013 matt

Even if we aren't making a crossgdb still make the object dir for it.


Revision tags: riastradh-drm2-base agc-symver-base
# 1.168 27-Feb-2013 joerg

branches: 1.168.4;
Add infrastructure for building MCLinker.


# 1.167 05-Feb-2013 matt

There are other little endian arm machine_arches other than "arm"
Use MACHINE_CPU and TARGET_ENDIANNESS instead of MACHINE_ARCH


# 1.166 31-Jan-2013 pooka

Use TOOLS_BUILDRUMP=yes to restrict building of tools to those required
for building rump kernels. This cuts down the NetBSD source tree required
by buildrump.sh to a fraction and addresses a size/download time concern
from a person packaging rump kernels for Linux.

No change to the normal case (tested with several -j32/-j64 builds).

reviewed by apb


Revision tags: yamt-pagecache-base8 yamt-pagecache-base7
# 1.165 02-Dec-2012 apb

Make tools/Makefile build host-mkdep, compat, and binstall in that order,
before installing any of them. It installs them in any order relative
to each other. The .WAIT points that used to be between these three
tools are replaced by .ORDER and dependencies.

This is needed in preparation for making tools/compat install
some files into TOOLDIR.


# 1.164 02-Dec-2012 apb

TOOLDIR must be valid, unless MKTOOLS=no.
Add tests and .error directives to enforce this.


# 1.163 02-Dec-2012 apb

If tools are not wanted, then set SUBDIR= empty instead of
defining all the subdir-related targets to do nothing. This way,
the targets are not invoked at all, instead of being invoked but
doing nothing.


# 1.162 02-Dec-2012 apb

remove trailing white space


# 1.161 27-Nov-2012 jkunz

According to the i.MX23 Reference Manual section 3.1, Page 3-3:
"The i.MX23 always operates in litle-endian mode."
So build elftosb and bootloader for this processor only for evbarm(-el).


# 1.160 26-Nov-2012 pooka

Build gmake iff we're going to need it.


# 1.159 15-Nov-2012 joerg

Move the build_install logic from lib/Makefile into share/mk and re-use
it for tools. The existing logic broke for the LLVM build with the
recent .ORDER changes in make.


# 1.158 15-Nov-2012 jkunz

Add elftosb tools to evbarm userland and toolchain.
Elftosb is used to create a digitaly signed "secure boot" file.
This sb file can be booted by the first stage boot loader found in
Freescale i.MX23 and i.MX28 application processors.

Copyright (c) 2004-2010 Freescale Semiconductor, Inc.


Revision tags: yamt-pagecache-base6
# 1.157 20-Sep-2012 pooka

fix EXTERNAL_TOOLCHAIN build


# 1.156 10-Aug-2012 joerg

branches: 1.156.2;
Decouple binutils build from HAVE_GCC. Merge common fragments of
HAVE_GCC and HAVE_PCC.


Revision tags: netbsd-6-0-6-RELEASE netbsd-6-1-5-RELEASE netbsd-6-1-4-RELEASE netbsd-6-0-5-RELEASE netbsd-6-1-3-RELEASE netbsd-6-0-4-RELEASE netbsd-6-1-2-RELEASE netbsd-6-0-3-RELEASE netbsd-6-1-1-RELEASE netbsd-6-0-2-RELEASE netbsd-6-1-RELEASE netbsd-6-1-RC4 netbsd-6-1-RC3 netbsd-6-1-RC2 netbsd-6-1-RC1 netbsd-6-0-1-RELEASE matt-nb6-plus-nbase netbsd-6-0-RELEASE netbsd-6-0-RC2 matt-nb6-plus-base netbsd-6-0-RC1 yamt-pagecache-base5 yamt-pagecache-base4 netbsd-6-base yamt-pagecache-base3 yamt-pagecache-base2
# 1.155 03-Nov-2011 joerg

Revert .WAIT removal and add comment why it is needed between *tblgen.


# 1.154 02-Nov-2011 njoly

Do not build tic more than once


# 1.153 02-Nov-2011 christos

move tic later, after all the tools it needs are built.


# 1.152 02-Nov-2011 yamt

tweak dependencies for tic, which needs nbperf, awk, and sed.


Revision tags: yamt-pagecache-base
# 1.151 01-Nov-2011 joerg

branches: 1.151.2;
Remove an unnecessary .WAIT between llvm-tblgen and clang-tblgen.


# 1.150 01-Nov-2011 joerg

Hook up nbperf into the normal tool build.


# 1.149 11-Oct-2011 joerg

Update LLVM/Clang snapshot to r141658. This primarily fixes a regression
preventing Qt4 from building.


# 1.148 16-Jul-2011 tsutsui

Build nbm68k-elf2aout as a host tool on m68k targets
for an ancient PROM bootloader.
Mostly taken from nbmips-elf2ecoff.


# 1.147 10-Jul-2011 mrg

install elf2ecoff for all mips64 systems. it's needed for stand.


# 1.146 21-Jun-2011 mrg

always build gmake if HAVE_GCC.
build gmp, mpfr and then mpc if HAVE_GCC >= 45.


Revision tags: cherry-xenmp-base
# 1.145 15-Apr-2011 elric

branches: 1.145.2;
Upgrade Heimdal to 1.5pre1 by switching the build from crypto/dist/heimdal
to crypto/external/bsd/heimdal. The latter was just imported as the head
of the Heimdal tree as of a few days ago.


# 1.144 17-Mar-2011 riz

.WAIT for makefs, because in most builds, it's the first target
which includes Makefile.nbincludes, whose beforedepend: has
some race condition I don't fully understand, and which has been
causing many (but not all!) -j16 builds on the autobuild cluster
to fail in tools since sometime between 201103061600 and 201103070900.

With the proper voodoo, I was able to get 8 builds in a row to fail
without this change, and 16 in a row to succeed with it.

XXX a proper fix likely involves reworking the beforedepend: target
of Makefile.nbincludes, but this should get the build cluster back up
to full functionality in the meanwhile.


Revision tags: bouyer-quota2-nbase
# 1.143 25-Feb-2011 phx

mkubootimage is certainly useful for sandpoint


Revision tags: bouyer-quota2-base
# 1.142 06-Feb-2011 joerg

Add LLVM and clang build system. It is enabled by MKLLVM=yes.
Upstream sources can be fetched by running "make checkout" in
src/external/bsd/llvm, they will be properly imported once the
integration and missing features are sorted out.


# 1.141 31-Jan-2011 matt

Make mkubootimage for evbmips and evbppc too.


Revision tags: matt-mips64-premerge-20101231
# 1.140 15-Aug-2010 mrg

branches: 1.140.2;
add new option to build/use tools/pigz for compressing sets. for now
USE_PIGZGZIP defaults to "no". (it depends upon local <pthread.h> and -lz.)

you can set it to "yes" on most modern platforms just fine.


# 1.139 18-Jun-2010 jmcneill

hook mkubootimage into the build


# 1.138 04-Jun-2010 jmmv

Bye bye atf-compile, you won't be missed.


# 1.137 02-Mar-2010 darran

DTrace: add libelf, libdwarf, libctf, and CTF tools to the toolchain,
built when MKDTRACE=yes.


# 1.136 20-Feb-2010 joerg

Build mandoc unconditional if man pages are desirable. All
compatibility issues are supposed to be sorted out.
Build groff conditionally on MKGROFF. It is currently the only component
that requires C++.


# 1.135 03-Feb-2010 roy

Store our generated files in CVS and remove nbperf from the toolchain.
This allows us to build consistent libs without an ever changing hash.


# 1.134 03-Feb-2010 roy

Userland now builds and uses terminfo instead of termcap.

OK: core@, jdc@


# 1.133 29-Dec-2009 he

To unbreak the build, temporarily remove the build of libelf here,
since no other part of the build depends on this yet.

Suggested as a temporary workaround by thorpej@


# 1.132 23-Dec-2009 mrg

rework the main SUBDIR list here as suggested by enami. put .WAIT on
the same line as the target that needs to wait, but before the target,
rather than on the previous line, which led to confusion and an error
being introduced in the previous change.


# 1.131 21-Dec-2009 mrg

move the build of pax before libelf. fixes my build of tools/libelf,
though i didn't look to see why libelf needs pax.


# 1.130 21-Dec-2009 thorpej

Add support for building libelf in a host-tool environment.

XXX Makefile.disklabel is really mis-named, but I'm not going to tackle
that problem right now.


Revision tags: matt-premerge-20091211
# 1.129 29-Oct-2009 christos

Give m4 its own .WAIT. Fixes build issue on NetBSD-5.


# 1.128 23-Oct-2009 joerg

Add MKMANDOC option to trigger building cat pages and HTML pages with
mdocml. Add a lintmanpages target for developers to check man pages
with the strictest settings of mandoc.


Revision tags: jym-xensuspend-nbase jym-xensuspend-base
# 1.127 25-Feb-2009 sketch

Disable grep host tool and unbreak NetBSD build until I can come up with a
clean fix.


# 1.126 25-Feb-2009 sketch

Make grep a host tool.


# 1.125 14-Feb-2009 abs

Convert more MACHINE tests to MACHINE_ARCH


Revision tags: netbsd-5-2-3-RELEASE netbsd-5-1-5-RELEASE netbsd-5-2-2-RELEASE netbsd-5-1-4-RELEASE netbsd-5-2-1-RELEASE netbsd-5-1-3-RELEASE netbsd-5-2-RELEASE netbsd-5-2-RC1 netbsd-5-1-2-RELEASE netbsd-5-1-1-RELEASE matt-nb5-mips64-premerge-20101231 matt-nb5-pq3-base netbsd-5-1-RELEASE netbsd-5-1-RC4 matt-nb5-mips64-k15 netbsd-5-1-RC3 netbsd-5-1-RC2 netbsd-5-1-RC1 netbsd-5-0-2-RELEASE matt-nb5-mips64-premerge-20091211 matt-nb5-mips64-u2-k2-k4-k7-k8-k9 matt-nb4-mips64-k7-u2a-k9b matt-nb5-mips64-u1-k1-k5 netbsd-5-0-1-RELEASE netbsd-5-0-RELEASE netbsd-5-0-RC4 netbsd-5-0-RC3 netbsd-5-0-RC2 netbsd-5-0-RC1 netbsd-5-base
# 1.124 25-Oct-2008 apb

branches: 1.124.4; 1.124.8; 1.124.12;
Build sed earlier, just after mktemp. Note that sed and mktemp do not
depend on each other, but the .WAIT is needed to get them both installed
before the remainder of the tools build.


# 1.123 25-Oct-2008 apb

Remove the local handling of the NOSUBDIR variable. We can rely
on bsd.subdir.mk's handling of the NOSUBDIR variable.

Also add some comment to .if/.else/.endif and .for/.endfor lines.


Revision tags: matt-mips64-base2
# 1.122 19-Oct-2008 apb

Add awk as a host tool.


# 1.121 13-Oct-2008 dyoung

Per uwe@'s suggestion, build nbgroff under wider circumstances.
I choose to build it if MKDOC != no or if MKHTML != no. It used
to be built only when MKMAN != no.


# 1.120 05-Oct-2008 apb

Add a .WAIT to ensure that sed is installed early, so that TOOL_SED can
be used during the build of other tools.


# 1.119 26-Sep-2008 apb

Build strfile both as a host tool and as an installed program:
* in games/fortune/strfile/Makefile, build strfile as a
regular program instead of as a host tool;
* add tools/strfile directory to build strfile as a host tool;
* in tools/Makefile, add strfile to SUBDIR list;
* in BSD.*.mk, define TOOL_STRFILE variable;
* in games/fortune/datfiles/Makefile, use TOOL_STRFILE when creating
databases at build time;
* in distrib/sets/lists/games/mi, mention usr/games/strfile.


Revision tags: wrstuden-revivesa-base-3 wrstuden-revivesa-base-2
# 1.118 24-Aug-2008 gmcgarry

Build pcc as host tool if requested.


Revision tags: wrstuden-revivesa-base-1 yamt-pf42-base4 yamt-pf42-base3 wrstuden-revivesa-base
# 1.117 26-May-2008 he

Remove references to bebox-elf2pef and bebox-mkbootimage, now that they
have been integrated in common powerpc tools and subsequently removed.


Revision tags: hpcarm-cleanup-nbase yamt-pf42-base2
# 1.116 30-Apr-2008 garbled

branches: 1.116.2;
Build powerpc-mkbootimage for rs6000 and bebox too.


# 1.115 30-Apr-2008 garbled

Convert prep to use the new unified mkbootimage rather than it's own. This
mkbootimage can be shared by prep, rs6000, and bebox.

TODO: Convert bebox to use this. Needs someone to test.


Revision tags: yamt-pf42-baseX yamt-pf42-base keiichi-mipv6-nbase keiichi-mipv6-base matt-armv6-nbase cube-autoconf-base matt-armv6-base hpcarm-cleanup-base
# 1.114 12-Nov-2007 jmmv

branches: 1.114.6;
Add the atf host tools

This adds reachover Makefiles to build the atf tools required during a
cross-build.


Revision tags: matt-armv6-prevmlocking matt-mips64-base
# 1.113 14-Jan-2007 apb

branches: 1.113.4;
Build join(1) as a host tool.


# 1.112 20-Dec-2006 agc

A commit too far - don't try to build veriexecgen for just now


# 1.111 19-Dec-2006 agc

Build veriexecgen as a host tool


Revision tags: netbsd-4-0-1-RELEASE wrstuden-fixsa-newbase wrstuden-fixsa-base-1 netbsd-4-0-RELEASE netbsd-4-0-RC5 netbsd-4-0-RC4 netbsd-4-0-RC3 netbsd-4-0-RC2 netbsd-4-0-RC1 wrstuden-fixsa-base netbsd-4-base
# 1.110 22-Nov-2006 riz

Make sys/exec_elf.h and machine/elf_machdep.h available to host
tools, and allow paxctl to use them when compiled as a host
tool. This fixes the build on MacOS X (and perhaps other platforms)


# 1.109 17-Nov-2006 dsl

Add some notes about the bogosity of some of the .WAIT stuff.
Remove a 'never had a sane effect' .WAIT from a .ORDER line.
Don't add a (probably incorrect) dependency for 'make install' since
it contradicts a .ORDER line elsewhere when .ORDER applies recursively
to child nodes.
I also think that the stuff that tries to add dependencies between
the stuff that bsd.subdir.mk generates does not DTRT at all.
I suspect that build.sh builds things in an order that avoids issues here.


# 1.108 10-Nov-2006 christos

Add paxctl as a tool.


# 1.107 08-Oct-2006 apb

If PREVIOUSTOOLDIR was empty, then don't complain that it has moved.

Patch from Jukka Salmi in PR 33095.


Revision tags: abandoned-netbsd-4-base
# 1.106 03-Aug-2006 freza

* Fix parallel build race condition between real{all,depend} and
<bsd.subdir.mk> targets.
* No need to pass TOOLDIR to recursive cleandir in real{all,depend}.

With help from he@.
OK by tron@.


# 1.105 03-Aug-2006 tron

Another attempt to fix the race in parallel builds.


# 1.104 19-Jul-2006 tron

Invoking "make cleandir" with "PREVIOUSTOOLDIR" set to the previous
location will not stop recursive "make cleandir" calls. Pass the new
location instead.


# 1.103 18-Jul-2006 lukem

gettext should .WAIT for autoconf.
(The former still doesn't seem to work on read-only source; separate issue)


# 1.102 17-Jul-2006 tron

Avoid getting into a loop of "make cleandir" instances if the location
tool directory has been changed or wasn't recorded before.


# 1.101 17-Jul-2006 tron

Remove ".WAIT" again because it doesn't fix the problem.


# 1.100 12-Jul-2006 tron

Add an extra ".WAIT" to the "realall realdepend" target to make sure
it finished cleaning the tools directory in case of tool directory
mismatch before we try to rebuild the tools.


# 1.99 22-Jun-2006 mrg

only build lint and lint2 if MKLINT != "no".


# 1.98 18-Jun-2006 gdamore

Make TOOL_SED, to allow using our own sed in cases where the host's version
is busted in some way.

The TOOL_SED doesn't use TIOCGWINSIZE, and has some changes to include
nbtool_config.h in a cross build environment.

Combined with some other changes (not yet committed), this allows cross
compiling m68k code on Solaris 10/amd64.


# 1.97 02-Jun-2006 mrg

remove support for building (with) GCC 2.95. also:
- always install <stdbool.h>
- don't generate a fake one for vax / gettext.


# 1.96 11-May-2006 mrg

check HAVE_GCC == 4 not USE_GCC4.


# 1.95 01-Apr-2006 christos

Don't barf if USE_GCC4 is not defined.


# 1.94 29-Mar-2006 jmc

Turn on gmake builds if GCC4 is enabled (and force it's install before continuing


# 1.93 03-Feb-2006 dsl

The realall and realdepend bit that regenerates tools needs to be marked
.MAKE otherwise the 'make' it runs has its own list of jobs instead of
using the jobserver of the enclosing make.


# 1.92 04-Oct-2005 jmc

Make the tools using Makefile.disklabel wait so they don't stomp each other.
Also for now add a dependency to Makefile.disklabel so this doesn't run
3 times. (XXX this really should just be done differently)


# 1.91 12-Jun-2005 dyoung

.include Makefile.disklabel in installboot, so that the
nbinclude/ header files will be installed. Build installboot after
pax, since Makefile.disklabel uses pax to install the headers.


# 1.90 12-Jun-2005 dyoung

Make disklabel(8) and fdisk(8) into "host tools " last step: build
and install ${TOOLDIR}/bin/${MACHINE_GNU_PLATFORM}-disklabel,
${TOOLDIR}/bin/${MACHINE_GNU_PLATFORM}-fdisk by "reaching over" to
the sources in ${NETBSDSRCDIR}/sbin/{disklabel fdisk}/.

To avoid clashes with a build-host's header files, especially on
*BSD, the host-tools versions of fdisk and disklabel search for
#includes such as disklabel.h, disklabel_acorn.h, disklabel_gpt.h,
and bootinfo.h in a new #includes namespace, nbinclude/. That is,
they #include <nbinclude/sys/disklabel.h>, <nbinclude/machine/disklabel.h>,
<nbinclude/sparc64/disklabel.h>, instead of <sys/disklabel.h> and
such. I have also updated the system headers to #include from
nbinclude/-space when HAVE_NBTOOL_CONFIG_H is #defined.


# 1.89 30-May-2005 thorpej

Build genassym as a host tool. Part of PR toolchain/30350


Revision tags: netbsd-3-1-1-RELEASE netbsd-3-0-3-RELEASE netbsd-3-1-RELEASE netbsd-3-0-2-RELEASE netbsd-3-1-RC4 netbsd-3-1-RC3 netbsd-3-1-RC2 netbsd-3-1-RC1 netbsd-3-0-1-RELEASE netbsd-3-0-RELEASE netbsd-3-0-RC6 netbsd-3-0-RC5 netbsd-3-0-RC4 netbsd-3-0-RC3 netbsd-3-0-RC2 netbsd-3-0-RC1 netbsd-3-base
# 1.88 27-Jan-2005 is

We don't need aout2bb any longer.


# 1.87 09-Jan-2005 mycroft

Add some quotes to prevent a syntax error.


# 1.86 28-Nov-2004 jmc

Convert mkboot into a full cross tool. Last hurdle for hp300 to building on
non NetBSD/bsd hosts.


# 1.85 28-Nov-2004 jmc

Convert remaining host tools for amiga to correct cross tools. Now allows
complete amiga builds on non netbsd/bsd hosts


# 1.84 25-Nov-2004 jmc

Convert bebox's remaining host tools over to cross tools scheme. Builds to sets
w/o error now.


# 1.83 28-Jul-2004 skrll

Build hp700's mkboot as a host tool called nbhp700-mkboot. mkboot also
gets built and installed in a hp700 distribution.

TODO

- merge with hp300

- pick a preferred method for dealing with the elf headers.
hp700-mkboot and prep-mkbootimage (bintuils) vs mips-elf2ecoff and
tools/installboot


# 1.82 08-Jun-2004 abs

Add sparkcrc (used to generate checksums for acorn32 bootloader sparkive)
as a host tool.


Revision tags: netbsd-2-0-base
# 1.81 03-Jan-2004 lukem

branches: 1.81.2;
Consistently check ${TOOLCHAIN_MISSING} against "no".


# 1.80 11-Dec-2003 matt

Fix typo.


# 1.79 11-Dec-2003 matt

Add macppc-fixcoff tool.


# 1.78 10-Dec-2003 lukem

Use (cd ${.CURDIR} && ${MAKE} cleandir) instead of ${MAKE} cleandir
Suggested by Ross Harvey.


# 1.77 04-Dec-2003 mrg

always build tools/binutils now.


# 1.76 08-Nov-2003 sekiya

Build sgivol as a host tool when compiling for sgimips.


# 1.75 27-Oct-2003 lukem

add mknod as a host tool


# 1.74 26-Oct-2003 cl

add gdb53 as a host tool for use as a crossgdb
replaces gdb50 from toolchain on archs which use gcc3


# 1.73 21-Oct-2003 lukem

Rework how MAKEVERBOSE operates:

* Don't bother prefixing commands with a line of ${_MKCMD}\
and instead rely upon "make -s". This is less intrusive on
all the Makefiles than the former. Idea from David Laight.

* Rename the variables use to print messages. The scheme now is:
_MKMSG_FOO Run _MKMSG 'foo'
_MKTARGET_FOO Run _MKMSG_FOO ${.TARGET}
From discussion with Alistair Crooks.


# 1.72 19-Oct-2003 matt

Add host tool version of ncdcs


# 1.71 18-Oct-2003 lukem

MAKEVERBOSE support


# 1.70 25-Jul-2003 mrg

- build "binutils" and "gcc" separately if USE_TOOLS_TOOLCHAIN is not set
to "yes".
- adjust dbsym/mdsetimage to look in the correct place for libbfd.
- new mknative-gcc based in toolchain/mknative


# 1.69 24-Jul-2003 tron

Add missing "cleandir" rule.


# 1.68 20-Jul-2003 lukem

add stat(1) as a host tool


# 1.67 16-Jul-2003 lukem

also do the MKTOOLS and PREVIOUSTOOLDIR checks for "realdepend"


# 1.66 16-Jul-2003 lukem

* If a `PREVIOUSTOOLDIR' file doesn't exist, or its contents are not
the same as "$TOOLDIR", run "make cleandir" here first.
This should prevent various problems where $TOOLDIR is encoded into the
build process for various tools (lint, groff, texinfo, toolchain),
$TOOLDIR changes, and various programs don't get rebuilt correctly.
Should fix PR [toolchain/21988].

* Clean up how the `${MKTOOLS} == no' check is performed.

* Remove "cleantools"; it made a big assumption about the location of
TOOLDIR that won't be correct in many cases.


# 1.65 26-Jun-2003 tshiozak

Citrus iconv support(3)
add host tools : mkcsmapper and mkesdb
mkcsmapper - coded character set mapping table compiler
mkesdb - encoding scheme database compiler


# 1.64 18-May-2003 lukem

Add db(1) as a host tool


# 1.63 25-Mar-2003 pooka

build file(1) as a host tool (for compiling magic files)


# 1.62 07-Mar-2003 thorpej

Make hexdump a host tool.


Revision tags: fvdl_fs64_base
# 1.61 21-Dec-2002 lukem

enable sunlabel...


# 1.60 19-Sep-2002 thorpej

Change the TOOLCHAIN_MISSING from == "no" to != "yes", to be consistent
with the other tests of this variable.


# 1.59 19-Sep-2002 matt

Since TOOLCHAIN_MISSING is defined in bsd.own.mk, it can never be undefined.
Instead, make sure the value of it is "no"


# 1.58 17-Sep-2002 thorpej

* Eliminate the USE_NEW_TOOLCHAIN variable. Instead, split it into
two variables:

TOOLCHAIN_MISSING -- set to "yes" on platforms for which there is
no working in-tree toolchain (hppa, ns32k, sh5, x86_64).

EXTERNAL_TOOLCHAIN -- if defined by the user, points to the root of
an external toolchain (e.g. /usr/local/gnu). This enables the cross-build
framework even for TOOLCHAIN_MISSING platforms.

If TOOLCHAIN_MISSING is set to "yes", MKGDB, MKBFD, and MKGCC are all
unconditionally set to "no", since the bits are not there to build.

If EXTERNAL_TOOLCHAIN is set, MKGCC is unconditionally set to "no",
since the external toolchain's compiler is not in-sync with the
in-tree compiler support components (e.g. libgcc).

* Set MACHINE_CPU much earlier in bsd.own.mk, so that more tests in
that file can use it.


# 1.57 14-Sep-2002 chris

We need binstall to be installed, before attempting to use it to install mktemp.


# 1.56 14-Sep-2002 thorpej

Descend into mktemp.


# 1.55 12-Jun-2002 veego

The last commit wasn't tested. Add a missing \


# 1.54 12-Jun-2002 thorpej

Don't build toolchain bits for hppa, for now.


# 1.53 10-Jun-2002 mason

Add cat(1) as a host tool.


# 1.52 05-Jun-2002 thorpej

Don't try to build toolchain bits for ns32k.


# 1.51 28-May-2002 bjh21

Add fgen as a host tool, used for sys/arch/sparc/bootblk.


Revision tags: netbsd-1-6-base
# 1.50 18-May-2002 lukem

branches: 1.50.2;
gratuitious comment addition


# 1.49 07-May-2002 lukem

remove now-unnecessary sparc-installboot


# 1.48 03-May-2002 kleink

On prep, descend into prep-mkbootimage.


# 1.47 06-Apr-2002 bjh21

vax-installboot has been deleted, so don't recurse into it.


# 1.46 03-Apr-2002 lukem

enable installboot


# 1.45 01-Apr-2002 thorpej

Nuke NO_DBSYM; dbsym now uses BFD for everything.


# 1.44 01-Apr-2002 bjh21

On second thoughts, don't make mktemp a host tool. It's only used once, for
creating a temporary directory for maketars, and mkdir can do that safely
enough.


# 1.43 31-Mar-2002 bjh21

Add mktemp as a host tool.


# 1.42 31-Mar-2002 bjh21

Add cksum as a host tool.


# 1.41 29-Mar-2002 matt

Drop into vax-installboot on VAX machines.


# 1.40 07-Mar-2002 tv

Rework recursion to use the original logic again, in the structure cleaned
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".


# 1.39 07-Mar-2002 tv

Don't build groff if MKMAN=no. (groff does not build properly on some
platforms because of its completely insane Make structure; this allows it
to be disabled in a sane way.)


# 1.38 26-Feb-2002 tv

Add gettext to tools.

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.)


# 1.37 23-Feb-2002 gmcgarry

Add elf2ecoff as a build tool for mips ports.


# 1.36 18-Feb-2002 pk

* Add comments on all the directory build/install ordering goo.
* 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.


# 1.35 11-Feb-2002 pk

Revert part of previous; we need the install targets.


# 1.34 10-Feb-2002 pk

Use .ORDER targets to express the dependencies on subdir runs. This makes
the resulting tree complexity O(N) (N=# of subdirs), and it also makes it
easier to comprehend the Makefile logic.


# 1.33 08-Feb-2002 pk

Make sure to not go off installing in a directory before it's fully made.


# 1.32 31-Jan-2002 tv

Roll in fixes to permit cross-compiling from non-NetBSD hosts. This
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.


# 1.31 29-Jan-2002 tv

Make almost all tools compile and run properly on non-NetBSD hosts. (In
particular, most tools now run correctly on Solaris 7.)


# 1.30 25-Jan-2002 lukem

build pax as a host tool, for -N and to work around borken vendor paxes


# 1.29 10-Jan-2002 tv

Move host-mkdep to its own directory. Create and install it before
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.


# 1.28 10-Jan-2002 lukem

revert previous, and reenable tools/makefs now that it works on
netbsd-current and netbsd-1-5


# 1.27 09-Jan-2002 tv

Disable makefs in src/tools for the moment; it's very dependent on -current
NetBSD headers and sources right now. (Temporary workaround for PR 15175.)


# 1.26 05-Jan-2002 mrg

build zic as a host tool.


# 1.25 05-Jan-2002 mrg

build makefs, and, sparc-installboot if sparc||sparc64


# 1.24 31-Dec-2001 thorpej

We can't currently build a toolchain for x86-64 here, so don't
attempt to do so.


# 1.23 29-Dec-2001 wiz

Typo fix in error message.


# 1.22 11-Dec-2001 tv

Add the framework for autoconf-based src/tools/compat structure. This will
(after it is more fleshed out) allow the host tools to work more cleanly
on non-NetBSD hosts.


# 1.21 07-Dec-2001 jmc

Add pwd_mkdb as a toolchain bit for builds


# 1.20 29-Nov-2001 thorpej

Build makewhatis as a host tool, since it is used at the end of
the build.

XXX Needs a -lz hostlib.


# 1.19 22-Nov-2001 jmc

Oops. typo which can break things for non-new toolchain builds if MKTOOLS isn't
set


# 1.18 22-Nov-2001 jmc

Check for USETOOLS!=yes in addition to MKTOOLS==no to generate the empty rule
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


# 1.17 13-Nov-2001 tv

Re-add MKTOOLS as a "yes"/"no" only variable, which prevents recursion on "no"
into the src/tools subdirs on all/depend/dependall/install. Other recursive
targets are not affected.


# 1.16 12-Nov-2001 tv

Major overhaul of src/tools and host toolchain. Summary of changes:

* 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.


# 1.15 09-Nov-2001 thorpej

Build the cross-dbsym.


# 1.14 02-Nov-2001 tv

* Always use the makewrapper when starting a build phase.

* 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.


# 1.13 31-Oct-2001 tv

Don't actually delete the default tooldir on "cleandir"; else we'll nuke
the nbmake that is probably currently running.

Just leave the "cleantools" manual target as a shortcut for the user.


# 1.12 31-Oct-2001 tv

* Create a variable HOST_OSTYPE that represents the host build environment,
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.


# 1.11 31-Oct-2001 tv

* Always descend into "tools" regardless of USETOOLS setting. Instead,
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.


# 1.10 25-Oct-2001 thorpej

Add asn1_compile as a host tool.


# 1.9 21-Oct-2001 jmc

Pull in mdsetimage to the tools builds. (XXX - using libbfd here would
probably be preferrable long term).


# 1.8 20-Oct-2001 jmc

Add mklocale to cross-tools and turn it back on for the builds.


# 1.7 13-Oct-2001 jmc

Add crunchgen, msgc and menuc


# 1.6 09-Oct-2001 enami

Make mtree a host tool and use it when appropriate.


# 1.5 04-Oct-2001 tv

Recurse properly; just add "build" to TARGETS (fixes reported problem where
"make clean" doesn't work at the src/tools level).


# 1.4 22-Sep-2001 tv

Work around "make obj" lossage in tools/. Dunno why this is happening
just yet; will investigate this evening.


# 1.3 22-Sep-2001 tv

Add lorder to TOOLDIR host tools.

Only descend into directories if USE_NEW_TOOLCHAIN is set (allows top level
Makefile to use "-m ${.CURDIR}/share/mk" to get the "correct" <bsd.own.mk>
when descending into src/tools/Makefile).


# 1.2 21-Sep-2001 tv

- Create a real cpp binary.
- Set CC properly in environment for mkdep and lint.
- Add compile_et to TOOLDIR host tools.


# 1.1 14-Aug-2001 tv

Bootstrap toolchain framework, first pass.


# 1.192 27-Dec-2017 christos

Better EXTERNAL_TOOLCHAIN support from Zachary McGrew
- Allow mdsetimage and dbsym to be built with EXTERNAL_TOOLCHAIN
- Allow BFDDIR and IBERTYDIR to be overwritten for mdsetimage and dbsym


Revision tags: perseant-stdc-iso10646-base
# 1.191 07-Jun-2017 skrll

Hook in dtc/libfdt now that it builds for me


# 1.190 06-Jun-2017 skrll

Disable dtc/libfdt for now


# 1.189 05-Jun-2017 christos

No need to set dtc twice.


# 1.188 05-Jun-2017 christos

Add dtc


Revision tags: netbsd-8-base prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1 pgoyette-localcount-20170320 bouyer-socketcan-base
# 1.187 11-Jan-2017 joerg

branches: 1.187.6;
Sync tools build glue with LLVM pre-4.0.0.


Revision tags: pgoyette-localcount-20170107 pgoyette-localcount-20161104 localcount-20160914 pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base
# 1.186 24-Jan-2016 christos

branches: 1.186.2;
move cvslatest last


# 1.185 24-Jan-2016 christos

Tool version


# 1.184 19-Dec-2015 christos

move sortinfo after pax


# 1.183 18-Dec-2015 christos

Add sortinfo


# 1.182 23-Jul-2015 mrg

remove the xfree86 reachover makefiles and the vast majority of
the support in the rest of the source tree.

X11 sets could use some cleaning up perhaps (just deletion, as
we've never really marked the old X11R6 as obsolete for native
xorg using platforms so far either.)


# 1.181 24-Jun-2015 matt

Support building the xorg X11 libraries under MKCOMPAT.
Add XORG_MACHINE_ARCH to compat's bsd.*.mk
Turn xorg makekeys and makestrs into real host tools which are installed into
${TOOLSDIR}


# 1.180 07-Jan-2015 joerg

Reorganise the way xorg is build. Move build of makestrs into src/tools
as it is needed for the "includes" phase. Make it symlink all necessary
headers in obj to decouple it from "includes" itself, breaking the
dependency cycle. Move the do-x11 target between do-lib and do-build, so
that libraries can get the benefit of build_install (correct .WAIT
behavior) and everything else like "includes" uses the plain SUBDIR
entry in external/mit.


# 1.179 05-Dec-2014 pooka

build genassym for TOOLS_BUILDRUMP


# 1.178 30-Sep-2014 christos

add gpt


Revision tags: netbsd-7-1-1-RELEASE netbsd-7-1-RELEASE netbsd-7-1-RC2 netbsd-7-nhusb-base-20170116 netbsd-7-1-RC1 netbsd-7-0-2-RELEASE netbsd-7-nhusb-base netbsd-7-0-1-RELEASE netbsd-7-0-RELEASE netbsd-7-0-RC3 netbsd-7-0-RC2 netbsd-7-0-RC1 netbsd-7-base tls-maxphys-base
# 1.177 10-Aug-2014 matt

Changes to existing files to enable building AARCH64 userland.
evbarm64-el
This is clang only. While gcc4.8 supports aarch64, no netbsd support has
been written for aarch64 with gcc4.8.


Revision tags: tls-earlyentropy-base
# 1.176 15-Jul-2014 christos

descend to vgrind


# 1.175 15-Jun-2014 pooka

Add cat, rpcgen and stat to TOOLS_BUILDRUMP. They're useful for
installing headers for the app stack cases that need it done, and small
enough to not matter for the kernel-only cases that don't.


# 1.174 14-Jun-2014 mrg

remove remaining makefile support for GCC < 45 that i found.


Revision tags: yamt-pagecache-base9
# 1.173 03-Apr-2014 riastradh

branches: 1.173.2;
ctfconvert/ctfmerge need libdwarf &c., so build them if MKCTF=yes.


Revision tags: riastradh-xf86-video-intel-2-7-1-pre-2-21-15
# 1.172 25-Mar-2014 ozaki-r

Add MKCTF

This variable separates CTF stuffs from MKDTRACE; we can build DTrace
solely without building and using them. This allows us to use DTrace
even if CTF stuffs have problems (actually they have now).

This variable would be merged into MKDTRACE eventually, once CTF stuffs
work correctly again.


Revision tags: riastradh-drm2-base3
# 1.171 24-Feb-2014 skrll

Rename NetBSD/hp700 to NetBSD/hppa.

Unfortunately our VCS isn't very helpful here.


# 1.170 02-Sep-2013 joerg

Update LLVM/Clang snapshot to r189662. This includes many improvements
to the new SLP vectorizer, fast codegen support for PPC and using
terminfo for the color sequences. In addition, add (optional) build
infrastructure for lld to allow easier testing. This is controlled by
MKLLD.


Revision tags: riastradh-drm2-base2 riastradh-drm2-base1
# 1.169 19-Jul-2013 matt

Even if we aren't making a crossgdb still make the object dir for it.


Revision tags: riastradh-drm2-base agc-symver-base
# 1.168 27-Feb-2013 joerg

branches: 1.168.4;
Add infrastructure for building MCLinker.


# 1.167 05-Feb-2013 matt

There are other little endian arm machine_arches other than "arm"
Use MACHINE_CPU and TARGET_ENDIANNESS instead of MACHINE_ARCH


# 1.166 31-Jan-2013 pooka

Use TOOLS_BUILDRUMP=yes to restrict building of tools to those required
for building rump kernels. This cuts down the NetBSD source tree required
by buildrump.sh to a fraction and addresses a size/download time concern
from a person packaging rump kernels for Linux.

No change to the normal case (tested with several -j32/-j64 builds).

reviewed by apb


Revision tags: yamt-pagecache-base8 yamt-pagecache-base7
# 1.165 02-Dec-2012 apb

Make tools/Makefile build host-mkdep, compat, and binstall in that order,
before installing any of them. It installs them in any order relative
to each other. The .WAIT points that used to be between these three
tools are replaced by .ORDER and dependencies.

This is needed in preparation for making tools/compat install
some files into TOOLDIR.


# 1.164 02-Dec-2012 apb

TOOLDIR must be valid, unless MKTOOLS=no.
Add tests and .error directives to enforce this.


# 1.163 02-Dec-2012 apb

If tools are not wanted, then set SUBDIR= empty instead of
defining all the subdir-related targets to do nothing. This way,
the targets are not invoked at all, instead of being invoked but
doing nothing.


# 1.162 02-Dec-2012 apb

remove trailing white space


# 1.161 27-Nov-2012 jkunz

According to the i.MX23 Reference Manual section 3.1, Page 3-3:
"The i.MX23 always operates in litle-endian mode."
So build elftosb and bootloader for this processor only for evbarm(-el).


# 1.160 26-Nov-2012 pooka

Build gmake iff we're going to need it.


# 1.159 15-Nov-2012 joerg

Move the build_install logic from lib/Makefile into share/mk and re-use
it for tools. The existing logic broke for the LLVM build with the
recent .ORDER changes in make.


# 1.158 15-Nov-2012 jkunz

Add elftosb tools to evbarm userland and toolchain.
Elftosb is used to create a digitaly signed "secure boot" file.
This sb file can be booted by the first stage boot loader found in
Freescale i.MX23 and i.MX28 application processors.

Copyright (c) 2004-2010 Freescale Semiconductor, Inc.


Revision tags: yamt-pagecache-base6
# 1.157 20-Sep-2012 pooka

fix EXTERNAL_TOOLCHAIN build


# 1.156 10-Aug-2012 joerg

branches: 1.156.2;
Decouple binutils build from HAVE_GCC. Merge common fragments of
HAVE_GCC and HAVE_PCC.


Revision tags: netbsd-6-0-6-RELEASE netbsd-6-1-5-RELEASE netbsd-6-1-4-RELEASE netbsd-6-0-5-RELEASE netbsd-6-1-3-RELEASE netbsd-6-0-4-RELEASE netbsd-6-1-2-RELEASE netbsd-6-0-3-RELEASE netbsd-6-1-1-RELEASE netbsd-6-0-2-RELEASE netbsd-6-1-RELEASE netbsd-6-1-RC4 netbsd-6-1-RC3 netbsd-6-1-RC2 netbsd-6-1-RC1 netbsd-6-0-1-RELEASE matt-nb6-plus-nbase netbsd-6-0-RELEASE netbsd-6-0-RC2 matt-nb6-plus-base netbsd-6-0-RC1 yamt-pagecache-base5 yamt-pagecache-base4 netbsd-6-base yamt-pagecache-base3 yamt-pagecache-base2
# 1.155 03-Nov-2011 joerg

Revert .WAIT removal and add comment why it is needed between *tblgen.


# 1.154 02-Nov-2011 njoly

Do not build tic more than once


# 1.153 02-Nov-2011 christos

move tic later, after all the tools it needs are built.


# 1.152 02-Nov-2011 yamt

tweak dependencies for tic, which needs nbperf, awk, and sed.


Revision tags: yamt-pagecache-base
# 1.151 01-Nov-2011 joerg

branches: 1.151.2;
Remove an unnecessary .WAIT between llvm-tblgen and clang-tblgen.


# 1.150 01-Nov-2011 joerg

Hook up nbperf into the normal tool build.


# 1.149 11-Oct-2011 joerg

Update LLVM/Clang snapshot to r141658. This primarily fixes a regression
preventing Qt4 from building.


# 1.148 16-Jul-2011 tsutsui

Build nbm68k-elf2aout as a host tool on m68k targets
for an ancient PROM bootloader.
Mostly taken from nbmips-elf2ecoff.


# 1.147 10-Jul-2011 mrg

install elf2ecoff for all mips64 systems. it's needed for stand.


# 1.146 21-Jun-2011 mrg

always build gmake if HAVE_GCC.
build gmp, mpfr and then mpc if HAVE_GCC >= 45.


Revision tags: cherry-xenmp-base
# 1.145 15-Apr-2011 elric

branches: 1.145.2;
Upgrade Heimdal to 1.5pre1 by switching the build from crypto/dist/heimdal
to crypto/external/bsd/heimdal. The latter was just imported as the head
of the Heimdal tree as of a few days ago.


# 1.144 17-Mar-2011 riz

.WAIT for makefs, because in most builds, it's the first target
which includes Makefile.nbincludes, whose beforedepend: has
some race condition I don't fully understand, and which has been
causing many (but not all!) -j16 builds on the autobuild cluster
to fail in tools since sometime between 201103061600 and 201103070900.

With the proper voodoo, I was able to get 8 builds in a row to fail
without this change, and 16 in a row to succeed with it.

XXX a proper fix likely involves reworking the beforedepend: target
of Makefile.nbincludes, but this should get the build cluster back up
to full functionality in the meanwhile.


Revision tags: bouyer-quota2-nbase
# 1.143 25-Feb-2011 phx

mkubootimage is certainly useful for sandpoint


Revision tags: bouyer-quota2-base
# 1.142 06-Feb-2011 joerg

Add LLVM and clang build system. It is enabled by MKLLVM=yes.
Upstream sources can be fetched by running "make checkout" in
src/external/bsd/llvm, they will be properly imported once the
integration and missing features are sorted out.


# 1.141 31-Jan-2011 matt

Make mkubootimage for evbmips and evbppc too.


Revision tags: matt-mips64-premerge-20101231
# 1.140 15-Aug-2010 mrg

branches: 1.140.2;
add new option to build/use tools/pigz for compressing sets. for now
USE_PIGZGZIP defaults to "no". (it depends upon local <pthread.h> and -lz.)

you can set it to "yes" on most modern platforms just fine.


# 1.139 18-Jun-2010 jmcneill

hook mkubootimage into the build


# 1.138 04-Jun-2010 jmmv

Bye bye atf-compile, you won't be missed.


# 1.137 02-Mar-2010 darran

DTrace: add libelf, libdwarf, libctf, and CTF tools to the toolchain,
built when MKDTRACE=yes.


# 1.136 20-Feb-2010 joerg

Build mandoc unconditional if man pages are desirable. All
compatibility issues are supposed to be sorted out.
Build groff conditionally on MKGROFF. It is currently the only component
that requires C++.


# 1.135 03-Feb-2010 roy

Store our generated files in CVS and remove nbperf from the toolchain.
This allows us to build consistent libs without an ever changing hash.


# 1.134 03-Feb-2010 roy

Userland now builds and uses terminfo instead of termcap.

OK: core@, jdc@


# 1.133 29-Dec-2009 he

To unbreak the build, temporarily remove the build of libelf here,
since no other part of the build depends on this yet.

Suggested as a temporary workaround by thorpej@


# 1.132 23-Dec-2009 mrg

rework the main SUBDIR list here as suggested by enami. put .WAIT on
the same line as the target that needs to wait, but before the target,
rather than on the previous line, which led to confusion and an error
being introduced in the previous change.


# 1.131 21-Dec-2009 mrg

move the build of pax before libelf. fixes my build of tools/libelf,
though i didn't look to see why libelf needs pax.


# 1.130 21-Dec-2009 thorpej

Add support for building libelf in a host-tool environment.

XXX Makefile.disklabel is really mis-named, but I'm not going to tackle
that problem right now.


Revision tags: matt-premerge-20091211
# 1.129 29-Oct-2009 christos

Give m4 its own .WAIT. Fixes build issue on NetBSD-5.


# 1.128 23-Oct-2009 joerg

Add MKMANDOC option to trigger building cat pages and HTML pages with
mdocml. Add a lintmanpages target for developers to check man pages
with the strictest settings of mandoc.


Revision tags: jym-xensuspend-nbase jym-xensuspend-base
# 1.127 25-Feb-2009 sketch

Disable grep host tool and unbreak NetBSD build until I can come up with a
clean fix.


# 1.126 25-Feb-2009 sketch

Make grep a host tool.


# 1.125 14-Feb-2009 abs

Convert more MACHINE tests to MACHINE_ARCH


Revision tags: netbsd-5-2-3-RELEASE netbsd-5-1-5-RELEASE netbsd-5-2-2-RELEASE netbsd-5-1-4-RELEASE netbsd-5-2-1-RELEASE netbsd-5-1-3-RELEASE netbsd-5-2-RELEASE netbsd-5-2-RC1 netbsd-5-1-2-RELEASE netbsd-5-1-1-RELEASE matt-nb5-mips64-premerge-20101231 matt-nb5-pq3-base netbsd-5-1-RELEASE netbsd-5-1-RC4 matt-nb5-mips64-k15 netbsd-5-1-RC3 netbsd-5-1-RC2 netbsd-5-1-RC1 netbsd-5-0-2-RELEASE matt-nb5-mips64-premerge-20091211 matt-nb5-mips64-u2-k2-k4-k7-k8-k9 matt-nb4-mips64-k7-u2a-k9b matt-nb5-mips64-u1-k1-k5 netbsd-5-0-1-RELEASE netbsd-5-0-RELEASE netbsd-5-0-RC4 netbsd-5-0-RC3 netbsd-5-0-RC2 netbsd-5-0-RC1 netbsd-5-base
# 1.124 25-Oct-2008 apb

branches: 1.124.4; 1.124.8; 1.124.12;
Build sed earlier, just after mktemp. Note that sed and mktemp do not
depend on each other, but the .WAIT is needed to get them both installed
before the remainder of the tools build.


# 1.123 25-Oct-2008 apb

Remove the local handling of the NOSUBDIR variable. We can rely
on bsd.subdir.mk's handling of the NOSUBDIR variable.

Also add some comment to .if/.else/.endif and .for/.endfor lines.


Revision tags: matt-mips64-base2
# 1.122 19-Oct-2008 apb

Add awk as a host tool.


# 1.121 13-Oct-2008 dyoung

Per uwe@'s suggestion, build nbgroff under wider circumstances.
I choose to build it if MKDOC != no or if MKHTML != no. It used
to be built only when MKMAN != no.


# 1.120 05-Oct-2008 apb

Add a .WAIT to ensure that sed is installed early, so that TOOL_SED can
be used during the build of other tools.


# 1.119 26-Sep-2008 apb

Build strfile both as a host tool and as an installed program:
* in games/fortune/strfile/Makefile, build strfile as a
regular program instead of as a host tool;
* add tools/strfile directory to build strfile as a host tool;
* in tools/Makefile, add strfile to SUBDIR list;
* in BSD.*.mk, define TOOL_STRFILE variable;
* in games/fortune/datfiles/Makefile, use TOOL_STRFILE when creating
databases at build time;
* in distrib/sets/lists/games/mi, mention usr/games/strfile.


Revision tags: wrstuden-revivesa-base-3 wrstuden-revivesa-base-2
# 1.118 24-Aug-2008 gmcgarry

Build pcc as host tool if requested.


Revision tags: wrstuden-revivesa-base-1 yamt-pf42-base4 yamt-pf42-base3 wrstuden-revivesa-base
# 1.117 26-May-2008 he

Remove references to bebox-elf2pef and bebox-mkbootimage, now that they
have been integrated in common powerpc tools and subsequently removed.


Revision tags: hpcarm-cleanup-nbase yamt-pf42-base2
# 1.116 30-Apr-2008 garbled

branches: 1.116.2;
Build powerpc-mkbootimage for rs6000 and bebox too.


# 1.115 30-Apr-2008 garbled

Convert prep to use the new unified mkbootimage rather than it's own. This
mkbootimage can be shared by prep, rs6000, and bebox.

TODO: Convert bebox to use this. Needs someone to test.


Revision tags: yamt-pf42-baseX yamt-pf42-base keiichi-mipv6-nbase keiichi-mipv6-base matt-armv6-nbase cube-autoconf-base matt-armv6-base hpcarm-cleanup-base
# 1.114 12-Nov-2007 jmmv

branches: 1.114.6;
Add the atf host tools

This adds reachover Makefiles to build the atf tools required during a
cross-build.


Revision tags: matt-armv6-prevmlocking matt-mips64-base
# 1.113 14-Jan-2007 apb

branches: 1.113.4;
Build join(1) as a host tool.


# 1.112 20-Dec-2006 agc

A commit too far - don't try to build veriexecgen for just now


# 1.111 19-Dec-2006 agc

Build veriexecgen as a host tool


Revision tags: netbsd-4-0-1-RELEASE wrstuden-fixsa-newbase wrstuden-fixsa-base-1 netbsd-4-0-RELEASE netbsd-4-0-RC5 netbsd-4-0-RC4 netbsd-4-0-RC3 netbsd-4-0-RC2 netbsd-4-0-RC1 wrstuden-fixsa-base netbsd-4-base
# 1.110 22-Nov-2006 riz

Make sys/exec_elf.h and machine/elf_machdep.h available to host
tools, and allow paxctl to use them when compiled as a host
tool. This fixes the build on MacOS X (and perhaps other platforms)


# 1.109 17-Nov-2006 dsl

Add some notes about the bogosity of some of the .WAIT stuff.
Remove a 'never had a sane effect' .WAIT from a .ORDER line.
Don't add a (probably incorrect) dependency for 'make install' since
it contradicts a .ORDER line elsewhere when .ORDER applies recursively
to child nodes.
I also think that the stuff that tries to add dependencies between
the stuff that bsd.subdir.mk generates does not DTRT at all.
I suspect that build.sh builds things in an order that avoids issues here.


# 1.108 10-Nov-2006 christos

Add paxctl as a tool.


# 1.107 08-Oct-2006 apb

If PREVIOUSTOOLDIR was empty, then don't complain that it has moved.

Patch from Jukka Salmi in PR 33095.


Revision tags: abandoned-netbsd-4-base
# 1.106 03-Aug-2006 freza

* Fix parallel build race condition between real{all,depend} and
<bsd.subdir.mk> targets.
* No need to pass TOOLDIR to recursive cleandir in real{all,depend}.

With help from he@.
OK by tron@.


# 1.105 03-Aug-2006 tron

Another attempt to fix the race in parallel builds.


# 1.104 19-Jul-2006 tron

Invoking "make cleandir" with "PREVIOUSTOOLDIR" set to the previous
location will not stop recursive "make cleandir" calls. Pass the new
location instead.


# 1.103 18-Jul-2006 lukem

gettext should .WAIT for autoconf.
(The former still doesn't seem to work on read-only source; separate issue)


# 1.102 17-Jul-2006 tron

Avoid getting into a loop of "make cleandir" instances if the location
tool directory has been changed or wasn't recorded before.


# 1.101 17-Jul-2006 tron

Remove ".WAIT" again because it doesn't fix the problem.


# 1.100 12-Jul-2006 tron

Add an extra ".WAIT" to the "realall realdepend" target to make sure
it finished cleaning the tools directory in case of tool directory
mismatch before we try to rebuild the tools.


# 1.99 22-Jun-2006 mrg

only build lint and lint2 if MKLINT != "no".


# 1.98 18-Jun-2006 gdamore

Make TOOL_SED, to allow using our own sed in cases where the host's version
is busted in some way.

The TOOL_SED doesn't use TIOCGWINSIZE, and has some changes to include
nbtool_config.h in a cross build environment.

Combined with some other changes (not yet committed), this allows cross
compiling m68k code on Solaris 10/amd64.


# 1.97 02-Jun-2006 mrg

remove support for building (with) GCC 2.95. also:
- always install <stdbool.h>
- don't generate a fake one for vax / gettext.


# 1.96 11-May-2006 mrg

check HAVE_GCC == 4 not USE_GCC4.


# 1.95 01-Apr-2006 christos

Don't barf if USE_GCC4 is not defined.


# 1.94 29-Mar-2006 jmc

Turn on gmake builds if GCC4 is enabled (and force it's install before continuing


# 1.93 03-Feb-2006 dsl

The realall and realdepend bit that regenerates tools needs to be marked
.MAKE otherwise the 'make' it runs has its own list of jobs instead of
using the jobserver of the enclosing make.


# 1.92 04-Oct-2005 jmc

Make the tools using Makefile.disklabel wait so they don't stomp each other.
Also for now add a dependency to Makefile.disklabel so this doesn't run
3 times. (XXX this really should just be done differently)


# 1.91 12-Jun-2005 dyoung

.include Makefile.disklabel in installboot, so that the
nbinclude/ header files will be installed. Build installboot after
pax, since Makefile.disklabel uses pax to install the headers.


# 1.90 12-Jun-2005 dyoung

Make disklabel(8) and fdisk(8) into "host tools " last step: build
and install ${TOOLDIR}/bin/${MACHINE_GNU_PLATFORM}-disklabel,
${TOOLDIR}/bin/${MACHINE_GNU_PLATFORM}-fdisk by "reaching over" to
the sources in ${NETBSDSRCDIR}/sbin/{disklabel fdisk}/.

To avoid clashes with a build-host's header files, especially on
*BSD, the host-tools versions of fdisk and disklabel search for
#includes such as disklabel.h, disklabel_acorn.h, disklabel_gpt.h,
and bootinfo.h in a new #includes namespace, nbinclude/. That is,
they #include <nbinclude/sys/disklabel.h>, <nbinclude/machine/disklabel.h>,
<nbinclude/sparc64/disklabel.h>, instead of <sys/disklabel.h> and
such. I have also updated the system headers to #include from
nbinclude/-space when HAVE_NBTOOL_CONFIG_H is #defined.


# 1.89 30-May-2005 thorpej

Build genassym as a host tool. Part of PR toolchain/30350


Revision tags: netbsd-3-1-1-RELEASE netbsd-3-0-3-RELEASE netbsd-3-1-RELEASE netbsd-3-0-2-RELEASE netbsd-3-1-RC4 netbsd-3-1-RC3 netbsd-3-1-RC2 netbsd-3-1-RC1 netbsd-3-0-1-RELEASE netbsd-3-0-RELEASE netbsd-3-0-RC6 netbsd-3-0-RC5 netbsd-3-0-RC4 netbsd-3-0-RC3 netbsd-3-0-RC2 netbsd-3-0-RC1 netbsd-3-base
# 1.88 27-Jan-2005 is

We don't need aout2bb any longer.


# 1.87 09-Jan-2005 mycroft

Add some quotes to prevent a syntax error.


# 1.86 28-Nov-2004 jmc

Convert mkboot into a full cross tool. Last hurdle for hp300 to building on
non NetBSD/bsd hosts.


# 1.85 28-Nov-2004 jmc

Convert remaining host tools for amiga to correct cross tools. Now allows
complete amiga builds on non netbsd/bsd hosts


# 1.84 25-Nov-2004 jmc

Convert bebox's remaining host tools over to cross tools scheme. Builds to sets
w/o error now.


# 1.83 28-Jul-2004 skrll

Build hp700's mkboot as a host tool called nbhp700-mkboot. mkboot also
gets built and installed in a hp700 distribution.

TODO

- merge with hp300

- pick a preferred method for dealing with the elf headers.
hp700-mkboot and prep-mkbootimage (bintuils) vs mips-elf2ecoff and
tools/installboot


# 1.82 08-Jun-2004 abs

Add sparkcrc (used to generate checksums for acorn32 bootloader sparkive)
as a host tool.


Revision tags: netbsd-2-0-base
# 1.81 03-Jan-2004 lukem

branches: 1.81.2;
Consistently check ${TOOLCHAIN_MISSING} against "no".


# 1.80 11-Dec-2003 matt

Fix typo.


# 1.79 11-Dec-2003 matt

Add macppc-fixcoff tool.


# 1.78 10-Dec-2003 lukem

Use (cd ${.CURDIR} && ${MAKE} cleandir) instead of ${MAKE} cleandir
Suggested by Ross Harvey.


# 1.77 04-Dec-2003 mrg

always build tools/binutils now.


# 1.76 08-Nov-2003 sekiya

Build sgivol as a host tool when compiling for sgimips.


# 1.75 27-Oct-2003 lukem

add mknod as a host tool


# 1.74 26-Oct-2003 cl

add gdb53 as a host tool for use as a crossgdb
replaces gdb50 from toolchain on archs which use gcc3


# 1.73 21-Oct-2003 lukem

Rework how MAKEVERBOSE operates:

* Don't bother prefixing commands with a line of ${_MKCMD}\
and instead rely upon "make -s". This is less intrusive on
all the Makefiles than the former. Idea from David Laight.

* Rename the variables use to print messages. The scheme now is:
_MKMSG_FOO Run _MKMSG 'foo'
_MKTARGET_FOO Run _MKMSG_FOO ${.TARGET}
From discussion with Alistair Crooks.


# 1.72 19-Oct-2003 matt

Add host tool version of ncdcs


# 1.71 18-Oct-2003 lukem

MAKEVERBOSE support


# 1.70 25-Jul-2003 mrg

- build "binutils" and "gcc" separately if USE_TOOLS_TOOLCHAIN is not set
to "yes".
- adjust dbsym/mdsetimage to look in the correct place for libbfd.
- new mknative-gcc based in toolchain/mknative


# 1.69 24-Jul-2003 tron

Add missing "cleandir" rule.


# 1.68 20-Jul-2003 lukem

add stat(1) as a host tool


# 1.67 16-Jul-2003 lukem

also do the MKTOOLS and PREVIOUSTOOLDIR checks for "realdepend"


# 1.66 16-Jul-2003 lukem

* If a `PREVIOUSTOOLDIR' file doesn't exist, or its contents are not
the same as "$TOOLDIR", run "make cleandir" here first.
This should prevent various problems where $TOOLDIR is encoded into the
build process for various tools (lint, groff, texinfo, toolchain),
$TOOLDIR changes, and various programs don't get rebuilt correctly.
Should fix PR [toolchain/21988].

* Clean up how the `${MKTOOLS} == no' check is performed.

* Remove "cleantools"; it made a big assumption about the location of
TOOLDIR that won't be correct in many cases.


# 1.65 26-Jun-2003 tshiozak

Citrus iconv support(3)
add host tools : mkcsmapper and mkesdb
mkcsmapper - coded character set mapping table compiler
mkesdb - encoding scheme database compiler


# 1.64 18-May-2003 lukem

Add db(1) as a host tool


# 1.63 25-Mar-2003 pooka

build file(1) as a host tool (for compiling magic files)


# 1.62 07-Mar-2003 thorpej

Make hexdump a host tool.


Revision tags: fvdl_fs64_base
# 1.61 21-Dec-2002 lukem

enable sunlabel...


# 1.60 19-Sep-2002 thorpej

Change the TOOLCHAIN_MISSING from == "no" to != "yes", to be consistent
with the other tests of this variable.


# 1.59 19-Sep-2002 matt

Since TOOLCHAIN_MISSING is defined in bsd.own.mk, it can never be undefined.
Instead, make sure the value of it is "no"


# 1.58 17-Sep-2002 thorpej

* Eliminate the USE_NEW_TOOLCHAIN variable. Instead, split it into
two variables:

TOOLCHAIN_MISSING -- set to "yes" on platforms for which there is
no working in-tree toolchain (hppa, ns32k, sh5, x86_64).

EXTERNAL_TOOLCHAIN -- if defined by the user, points to the root of
an external toolchain (e.g. /usr/local/gnu). This enables the cross-build
framework even for TOOLCHAIN_MISSING platforms.

If TOOLCHAIN_MISSING is set to "yes", MKGDB, MKBFD, and MKGCC are all
unconditionally set to "no", since the bits are not there to build.

If EXTERNAL_TOOLCHAIN is set, MKGCC is unconditionally set to "no",
since the external toolchain's compiler is not in-sync with the
in-tree compiler support components (e.g. libgcc).

* Set MACHINE_CPU much earlier in bsd.own.mk, so that more tests in
that file can use it.


# 1.57 14-Sep-2002 chris

We need binstall to be installed, before attempting to use it to install mktemp.


# 1.56 14-Sep-2002 thorpej

Descend into mktemp.


# 1.55 12-Jun-2002 veego

The last commit wasn't tested. Add a missing \


# 1.54 12-Jun-2002 thorpej

Don't build toolchain bits for hppa, for now.


# 1.53 10-Jun-2002 mason

Add cat(1) as a host tool.


# 1.52 05-Jun-2002 thorpej

Don't try to build toolchain bits for ns32k.


# 1.51 28-May-2002 bjh21

Add fgen as a host tool, used for sys/arch/sparc/bootblk.


Revision tags: netbsd-1-6-base
# 1.50 18-May-2002 lukem

branches: 1.50.2;
gratuitious comment addition


# 1.49 07-May-2002 lukem

remove now-unnecessary sparc-installboot


# 1.48 03-May-2002 kleink

On prep, descend into prep-mkbootimage.


# 1.47 06-Apr-2002 bjh21

vax-installboot has been deleted, so don't recurse into it.


# 1.46 03-Apr-2002 lukem

enable installboot


# 1.45 01-Apr-2002 thorpej

Nuke NO_DBSYM; dbsym now uses BFD for everything.


# 1.44 01-Apr-2002 bjh21

On second thoughts, don't make mktemp a host tool. It's only used once, for
creating a temporary directory for maketars, and mkdir can do that safely
enough.


# 1.43 31-Mar-2002 bjh21

Add mktemp as a host tool.


# 1.42 31-Mar-2002 bjh21

Add cksum as a host tool.


# 1.41 29-Mar-2002 matt

Drop into vax-installboot on VAX machines.


# 1.40 07-Mar-2002 tv

Rework recursion to use the original logic again, in the structure cleaned
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".


# 1.39 07-Mar-2002 tv

Don't build groff if MKMAN=no. (groff does not build properly on some
platforms because of its completely insane Make structure; this allows it
to be disabled in a sane way.)


# 1.38 26-Feb-2002 tv

Add gettext to tools.

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.)


# 1.37 23-Feb-2002 gmcgarry

Add elf2ecoff as a build tool for mips ports.


# 1.36 18-Feb-2002 pk

* Add comments on all the directory build/install ordering goo.
* 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.


# 1.35 11-Feb-2002 pk

Revert part of previous; we need the install targets.


# 1.34 10-Feb-2002 pk

Use .ORDER targets to express the dependencies on subdir runs. This makes
the resulting tree complexity O(N) (N=# of subdirs), and it also makes it
easier to comprehend the Makefile logic.


# 1.33 08-Feb-2002 pk

Make sure to not go off installing in a directory before it's fully made.


# 1.32 31-Jan-2002 tv

Roll in fixes to permit cross-compiling from non-NetBSD hosts. This
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.


# 1.31 29-Jan-2002 tv

Make almost all tools compile and run properly on non-NetBSD hosts. (In
particular, most tools now run correctly on Solaris 7.)


# 1.30 25-Jan-2002 lukem

build pax as a host tool, for -N and to work around borken vendor paxes


# 1.29 10-Jan-2002 tv

Move host-mkdep to its own directory. Create and install it before
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.


# 1.28 10-Jan-2002 lukem

revert previous, and reenable tools/makefs now that it works on
netbsd-current and netbsd-1-5


# 1.27 09-Jan-2002 tv

Disable makefs in src/tools for the moment; it's very dependent on -current
NetBSD headers and sources right now. (Temporary workaround for PR 15175.)


# 1.26 05-Jan-2002 mrg

build zic as a host tool.


# 1.25 05-Jan-2002 mrg

build makefs, and, sparc-installboot if sparc||sparc64


# 1.24 31-Dec-2001 thorpej

We can't currently build a toolchain for x86-64 here, so don't
attempt to do so.


# 1.23 29-Dec-2001 wiz

Typo fix in error message.


# 1.22 11-Dec-2001 tv

Add the framework for autoconf-based src/tools/compat structure. This will
(after it is more fleshed out) allow the host tools to work more cleanly
on non-NetBSD hosts.


# 1.21 07-Dec-2001 jmc

Add pwd_mkdb as a toolchain bit for builds


# 1.20 29-Nov-2001 thorpej

Build makewhatis as a host tool, since it is used at the end of
the build.

XXX Needs a -lz hostlib.


# 1.19 22-Nov-2001 jmc

Oops. typo which can break things for non-new toolchain builds if MKTOOLS isn't
set


# 1.18 22-Nov-2001 jmc

Check for USETOOLS!=yes in addition to MKTOOLS==no to generate the empty rule
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


# 1.17 13-Nov-2001 tv

Re-add MKTOOLS as a "yes"/"no" only variable, which prevents recursion on "no"
into the src/tools subdirs on all/depend/dependall/install. Other recursive
targets are not affected.


# 1.16 12-Nov-2001 tv

Major overhaul of src/tools and host toolchain. Summary of changes:

* 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.


# 1.15 09-Nov-2001 thorpej

Build the cross-dbsym.


# 1.14 02-Nov-2001 tv

* Always use the makewrapper when starting a build phase.

* 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.


# 1.13 31-Oct-2001 tv

Don't actually delete the default tooldir on "cleandir"; else we'll nuke
the nbmake that is probably currently running.

Just leave the "cleantools" manual target as a shortcut for the user.


# 1.12 31-Oct-2001 tv

* Create a variable HOST_OSTYPE that represents the host build environment,
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.


# 1.11 31-Oct-2001 tv

* Always descend into "tools" regardless of USETOOLS setting. Instead,
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.


# 1.10 25-Oct-2001 thorpej

Add asn1_compile as a host tool.


# 1.9 21-Oct-2001 jmc

Pull in mdsetimage to the tools builds. (XXX - using libbfd here would
probably be preferrable long term).


# 1.8 20-Oct-2001 jmc

Add mklocale to cross-tools and turn it back on for the builds.


# 1.7 13-Oct-2001 jmc

Add crunchgen, msgc and menuc


# 1.6 09-Oct-2001 enami

Make mtree a host tool and use it when appropriate.


# 1.5 04-Oct-2001 tv

Recurse properly; just add "build" to TARGETS (fixes reported problem where
"make clean" doesn't work at the src/tools level).


# 1.4 22-Sep-2001 tv

Work around "make obj" lossage in tools/. Dunno why this is happening
just yet; will investigate this evening.


# 1.3 22-Sep-2001 tv

Add lorder to TOOLDIR host tools.

Only descend into directories if USE_NEW_TOOLCHAIN is set (allows top level
Makefile to use "-m ${.CURDIR}/share/mk" to get the "correct" <bsd.own.mk>
when descending into src/tools/Makefile).


# 1.2 21-Sep-2001 tv

- Create a real cpp binary.
- Set CC properly in environment for mkdep and lint.
- Add compile_et to TOOLDIR host tools.


# 1.1 14-Aug-2001 tv

Bootstrap toolchain framework, first pass.


# 1.191 07-Jun-2017 skrll

Hook in dtc/libfdt now that it builds for me


# 1.190 06-Jun-2017 skrll

Disable dtc/libfdt for now


# 1.189 05-Jun-2017 christos

No need to set dtc twice.


# 1.188 05-Jun-2017 christos

Add dtc


Revision tags: netbsd-8-base prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1 pgoyette-localcount-20170320 bouyer-socketcan-base
# 1.187 11-Jan-2017 joerg

Sync tools build glue with LLVM pre-4.0.0.


Revision tags: pgoyette-localcount-20170107 pgoyette-localcount-20161104 localcount-20160914 pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base
# 1.186 24-Jan-2016 christos

branches: 1.186.2;
move cvslatest last


# 1.185 24-Jan-2016 christos

Tool version


# 1.184 19-Dec-2015 christos

move sortinfo after pax


# 1.183 18-Dec-2015 christos

Add sortinfo


# 1.182 23-Jul-2015 mrg

remove the xfree86 reachover makefiles and the vast majority of
the support in the rest of the source tree.

X11 sets could use some cleaning up perhaps (just deletion, as
we've never really marked the old X11R6 as obsolete for native
xorg using platforms so far either.)


# 1.181 24-Jun-2015 matt

Support building the xorg X11 libraries under MKCOMPAT.
Add XORG_MACHINE_ARCH to compat's bsd.*.mk
Turn xorg makekeys and makestrs into real host tools which are installed into
${TOOLSDIR}


# 1.180 07-Jan-2015 joerg

Reorganise the way xorg is build. Move build of makestrs into src/tools
as it is needed for the "includes" phase. Make it symlink all necessary
headers in obj to decouple it from "includes" itself, breaking the
dependency cycle. Move the do-x11 target between do-lib and do-build, so
that libraries can get the benefit of build_install (correct .WAIT
behavior) and everything else like "includes" uses the plain SUBDIR
entry in external/mit.


# 1.179 05-Dec-2014 pooka

build genassym for TOOLS_BUILDRUMP


# 1.178 30-Sep-2014 christos

add gpt


Revision tags: netbsd-7-1-RELEASE netbsd-7-1-RC2 netbsd-7-nhusb-base-20170116 netbsd-7-1-RC1 netbsd-7-0-2-RELEASE netbsd-7-nhusb-base netbsd-7-0-1-RELEASE netbsd-7-0-RELEASE netbsd-7-0-RC3 netbsd-7-0-RC2 netbsd-7-0-RC1 netbsd-7-base tls-maxphys-base
# 1.177 10-Aug-2014 matt

Changes to existing files to enable building AARCH64 userland.
evbarm64-el
This is clang only. While gcc4.8 supports aarch64, no netbsd support has
been written for aarch64 with gcc4.8.


Revision tags: tls-earlyentropy-base
# 1.176 15-Jul-2014 christos

descend to vgrind


# 1.175 15-Jun-2014 pooka

Add cat, rpcgen and stat to TOOLS_BUILDRUMP. They're useful for
installing headers for the app stack cases that need it done, and small
enough to not matter for the kernel-only cases that don't.


# 1.174 14-Jun-2014 mrg

remove remaining makefile support for GCC < 45 that i found.


Revision tags: yamt-pagecache-base9
# 1.173 03-Apr-2014 riastradh

branches: 1.173.2;
ctfconvert/ctfmerge need libdwarf &c., so build them if MKCTF=yes.


Revision tags: riastradh-xf86-video-intel-2-7-1-pre-2-21-15
# 1.172 25-Mar-2014 ozaki-r

Add MKCTF

This variable separates CTF stuffs from MKDTRACE; we can build DTrace
solely without building and using them. This allows us to use DTrace
even if CTF stuffs have problems (actually they have now).

This variable would be merged into MKDTRACE eventually, once CTF stuffs
work correctly again.


Revision tags: riastradh-drm2-base3
# 1.171 24-Feb-2014 skrll

Rename NetBSD/hp700 to NetBSD/hppa.

Unfortunately our VCS isn't very helpful here.


# 1.170 02-Sep-2013 joerg

Update LLVM/Clang snapshot to r189662. This includes many improvements
to the new SLP vectorizer, fast codegen support for PPC and using
terminfo for the color sequences. In addition, add (optional) build
infrastructure for lld to allow easier testing. This is controlled by
MKLLD.


Revision tags: riastradh-drm2-base2 riastradh-drm2-base1
# 1.169 19-Jul-2013 matt

Even if we aren't making a crossgdb still make the object dir for it.


Revision tags: riastradh-drm2-base agc-symver-base
# 1.168 27-Feb-2013 joerg

branches: 1.168.4;
Add infrastructure for building MCLinker.


# 1.167 05-Feb-2013 matt

There are other little endian arm machine_arches other than "arm"
Use MACHINE_CPU and TARGET_ENDIANNESS instead of MACHINE_ARCH


# 1.166 31-Jan-2013 pooka

Use TOOLS_BUILDRUMP=yes to restrict building of tools to those required
for building rump kernels. This cuts down the NetBSD source tree required
by buildrump.sh to a fraction and addresses a size/download time concern
from a person packaging rump kernels for Linux.

No change to the normal case (tested with several -j32/-j64 builds).

reviewed by apb


Revision tags: yamt-pagecache-base8 yamt-pagecache-base7
# 1.165 02-Dec-2012 apb

Make tools/Makefile build host-mkdep, compat, and binstall in that order,
before installing any of them. It installs them in any order relative
to each other. The .WAIT points that used to be between these three
tools are replaced by .ORDER and dependencies.

This is needed in preparation for making tools/compat install
some files into TOOLDIR.


# 1.164 02-Dec-2012 apb

TOOLDIR must be valid, unless MKTOOLS=no.
Add tests and .error directives to enforce this.


# 1.163 02-Dec-2012 apb

If tools are not wanted, then set SUBDIR= empty instead of
defining all the subdir-related targets to do nothing. This way,
the targets are not invoked at all, instead of being invoked but
doing nothing.


# 1.162 02-Dec-2012 apb

remove trailing white space


# 1.161 27-Nov-2012 jkunz

According to the i.MX23 Reference Manual section 3.1, Page 3-3:
"The i.MX23 always operates in litle-endian mode."
So build elftosb and bootloader for this processor only for evbarm(-el).


# 1.160 26-Nov-2012 pooka

Build gmake iff we're going to need it.


# 1.159 15-Nov-2012 joerg

Move the build_install logic from lib/Makefile into share/mk and re-use
it for tools. The existing logic broke for the LLVM build with the
recent .ORDER changes in make.


# 1.158 15-Nov-2012 jkunz

Add elftosb tools to evbarm userland and toolchain.
Elftosb is used to create a digitaly signed "secure boot" file.
This sb file can be booted by the first stage boot loader found in
Freescale i.MX23 and i.MX28 application processors.

Copyright (c) 2004-2010 Freescale Semiconductor, Inc.


Revision tags: yamt-pagecache-base6
# 1.157 20-Sep-2012 pooka

fix EXTERNAL_TOOLCHAIN build


# 1.156 10-Aug-2012 joerg

branches: 1.156.2;
Decouple binutils build from HAVE_GCC. Merge common fragments of
HAVE_GCC and HAVE_PCC.


Revision tags: netbsd-6-0-6-RELEASE netbsd-6-1-5-RELEASE netbsd-6-1-4-RELEASE netbsd-6-0-5-RELEASE netbsd-6-1-3-RELEASE netbsd-6-0-4-RELEASE netbsd-6-1-2-RELEASE netbsd-6-0-3-RELEASE netbsd-6-1-1-RELEASE netbsd-6-0-2-RELEASE netbsd-6-1-RELEASE netbsd-6-1-RC4 netbsd-6-1-RC3 netbsd-6-1-RC2 netbsd-6-1-RC1 netbsd-6-0-1-RELEASE matt-nb6-plus-nbase netbsd-6-0-RELEASE netbsd-6-0-RC2 matt-nb6-plus-base netbsd-6-0-RC1 yamt-pagecache-base5 yamt-pagecache-base4 netbsd-6-base yamt-pagecache-base3 yamt-pagecache-base2
# 1.155 03-Nov-2011 joerg

Revert .WAIT removal and add comment why it is needed between *tblgen.


# 1.154 02-Nov-2011 njoly

Do not build tic more than once


# 1.153 02-Nov-2011 christos

move tic later, after all the tools it needs are built.


# 1.152 02-Nov-2011 yamt

tweak dependencies for tic, which needs nbperf, awk, and sed.


Revision tags: yamt-pagecache-base
# 1.151 01-Nov-2011 joerg

branches: 1.151.2;
Remove an unnecessary .WAIT between llvm-tblgen and clang-tblgen.


# 1.150 01-Nov-2011 joerg

Hook up nbperf into the normal tool build.


# 1.149 11-Oct-2011 joerg

Update LLVM/Clang snapshot to r141658. This primarily fixes a regression
preventing Qt4 from building.


# 1.148 16-Jul-2011 tsutsui

Build nbm68k-elf2aout as a host tool on m68k targets
for an ancient PROM bootloader.
Mostly taken from nbmips-elf2ecoff.


# 1.147 10-Jul-2011 mrg

install elf2ecoff for all mips64 systems. it's needed for stand.


# 1.146 21-Jun-2011 mrg

always build gmake if HAVE_GCC.
build gmp, mpfr and then mpc if HAVE_GCC >= 45.


Revision tags: cherry-xenmp-base
# 1.145 15-Apr-2011 elric

branches: 1.145.2;
Upgrade Heimdal to 1.5pre1 by switching the build from crypto/dist/heimdal
to crypto/external/bsd/heimdal. The latter was just imported as the head
of the Heimdal tree as of a few days ago.


# 1.144 17-Mar-2011 riz

.WAIT for makefs, because in most builds, it's the first target
which includes Makefile.nbincludes, whose beforedepend: has
some race condition I don't fully understand, and which has been
causing many (but not all!) -j16 builds on the autobuild cluster
to fail in tools since sometime between 201103061600 and 201103070900.

With the proper voodoo, I was able to get 8 builds in a row to fail
without this change, and 16 in a row to succeed with it.

XXX a proper fix likely involves reworking the beforedepend: target
of Makefile.nbincludes, but this should get the build cluster back up
to full functionality in the meanwhile.


Revision tags: bouyer-quota2-nbase
# 1.143 25-Feb-2011 phx

mkubootimage is certainly useful for sandpoint


Revision tags: bouyer-quota2-base
# 1.142 06-Feb-2011 joerg

Add LLVM and clang build system. It is enabled by MKLLVM=yes.
Upstream sources can be fetched by running "make checkout" in
src/external/bsd/llvm, they will be properly imported once the
integration and missing features are sorted out.


# 1.141 31-Jan-2011 matt

Make mkubootimage for evbmips and evbppc too.


Revision tags: matt-mips64-premerge-20101231
# 1.140 15-Aug-2010 mrg

branches: 1.140.2;
add new option to build/use tools/pigz for compressing sets. for now
USE_PIGZGZIP defaults to "no". (it depends upon local <pthread.h> and -lz.)

you can set it to "yes" on most modern platforms just fine.


# 1.139 18-Jun-2010 jmcneill

hook mkubootimage into the build


# 1.138 04-Jun-2010 jmmv

Bye bye atf-compile, you won't be missed.


# 1.137 02-Mar-2010 darran

DTrace: add libelf, libdwarf, libctf, and CTF tools to the toolchain,
built when MKDTRACE=yes.


# 1.136 20-Feb-2010 joerg

Build mandoc unconditional if man pages are desirable. All
compatibility issues are supposed to be sorted out.
Build groff conditionally on MKGROFF. It is currently the only component
that requires C++.


# 1.135 03-Feb-2010 roy

Store our generated files in CVS and remove nbperf from the toolchain.
This allows us to build consistent libs without an ever changing hash.


# 1.134 03-Feb-2010 roy

Userland now builds and uses terminfo instead of termcap.

OK: core@, jdc@


# 1.133 29-Dec-2009 he

To unbreak the build, temporarily remove the build of libelf here,
since no other part of the build depends on this yet.

Suggested as a temporary workaround by thorpej@


# 1.132 23-Dec-2009 mrg

rework the main SUBDIR list here as suggested by enami. put .WAIT on
the same line as the target that needs to wait, but before the target,
rather than on the previous line, which led to confusion and an error
being introduced in the previous change.


# 1.131 21-Dec-2009 mrg

move the build of pax before libelf. fixes my build of tools/libelf,
though i didn't look to see why libelf needs pax.


# 1.130 21-Dec-2009 thorpej

Add support for building libelf in a host-tool environment.

XXX Makefile.disklabel is really mis-named, but I'm not going to tackle
that problem right now.


Revision tags: matt-premerge-20091211
# 1.129 29-Oct-2009 christos

Give m4 its own .WAIT. Fixes build issue on NetBSD-5.


# 1.128 23-Oct-2009 joerg

Add MKMANDOC option to trigger building cat pages and HTML pages with
mdocml. Add a lintmanpages target for developers to check man pages
with the strictest settings of mandoc.


Revision tags: jym-xensuspend-nbase jym-xensuspend-base
# 1.127 25-Feb-2009 sketch

Disable grep host tool and unbreak NetBSD build until I can come up with a
clean fix.


# 1.126 25-Feb-2009 sketch

Make grep a host tool.


# 1.125 14-Feb-2009 abs

Convert more MACHINE tests to MACHINE_ARCH


Revision tags: netbsd-5-2-3-RELEASE netbsd-5-1-5-RELEASE netbsd-5-2-2-RELEASE netbsd-5-1-4-RELEASE netbsd-5-2-1-RELEASE netbsd-5-1-3-RELEASE netbsd-5-2-RELEASE netbsd-5-2-RC1 netbsd-5-1-2-RELEASE netbsd-5-1-1-RELEASE matt-nb5-mips64-premerge-20101231 matt-nb5-pq3-base netbsd-5-1-RELEASE netbsd-5-1-RC4 matt-nb5-mips64-k15 netbsd-5-1-RC3 netbsd-5-1-RC2 netbsd-5-1-RC1 netbsd-5-0-2-RELEASE matt-nb5-mips64-premerge-20091211 matt-nb5-mips64-u2-k2-k4-k7-k8-k9 matt-nb4-mips64-k7-u2a-k9b matt-nb5-mips64-u1-k1-k5 netbsd-5-0-1-RELEASE netbsd-5-0-RELEASE netbsd-5-0-RC4 netbsd-5-0-RC3 netbsd-5-0-RC2 netbsd-5-0-RC1 netbsd-5-base
# 1.124 25-Oct-2008 apb

branches: 1.124.4; 1.124.8; 1.124.12;
Build sed earlier, just after mktemp. Note that sed and mktemp do not
depend on each other, but the .WAIT is needed to get them both installed
before the remainder of the tools build.


# 1.123 25-Oct-2008 apb

Remove the local handling of the NOSUBDIR variable. We can rely
on bsd.subdir.mk's handling of the NOSUBDIR variable.

Also add some comment to .if/.else/.endif and .for/.endfor lines.


Revision tags: matt-mips64-base2
# 1.122 19-Oct-2008 apb

Add awk as a host tool.


# 1.121 13-Oct-2008 dyoung

Per uwe@'s suggestion, build nbgroff under wider circumstances.
I choose to build it if MKDOC != no or if MKHTML != no. It used
to be built only when MKMAN != no.


# 1.120 05-Oct-2008 apb

Add a .WAIT to ensure that sed is installed early, so that TOOL_SED can
be used during the build of other tools.


# 1.119 26-Sep-2008 apb

Build strfile both as a host tool and as an installed program:
* in games/fortune/strfile/Makefile, build strfile as a
regular program instead of as a host tool;
* add tools/strfile directory to build strfile as a host tool;
* in tools/Makefile, add strfile to SUBDIR list;
* in BSD.*.mk, define TOOL_STRFILE variable;
* in games/fortune/datfiles/Makefile, use TOOL_STRFILE when creating
databases at build time;
* in distrib/sets/lists/games/mi, mention usr/games/strfile.


Revision tags: wrstuden-revivesa-base-3 wrstuden-revivesa-base-2
# 1.118 24-Aug-2008 gmcgarry

Build pcc as host tool if requested.


Revision tags: wrstuden-revivesa-base-1 yamt-pf42-base4 yamt-pf42-base3 wrstuden-revivesa-base
# 1.117 26-May-2008 he

Remove references to bebox-elf2pef and bebox-mkbootimage, now that they
have been integrated in common powerpc tools and subsequently removed.


Revision tags: hpcarm-cleanup-nbase yamt-pf42-base2
# 1.116 30-Apr-2008 garbled

branches: 1.116.2;
Build powerpc-mkbootimage for rs6000 and bebox too.


# 1.115 30-Apr-2008 garbled

Convert prep to use the new unified mkbootimage rather than it's own. This
mkbootimage can be shared by prep, rs6000, and bebox.

TODO: Convert bebox to use this. Needs someone to test.


Revision tags: yamt-pf42-baseX yamt-pf42-base keiichi-mipv6-nbase keiichi-mipv6-base matt-armv6-nbase cube-autoconf-base matt-armv6-base hpcarm-cleanup-base
# 1.114 12-Nov-2007 jmmv

branches: 1.114.6;
Add the atf host tools

This adds reachover Makefiles to build the atf tools required during a
cross-build.


Revision tags: matt-armv6-prevmlocking matt-mips64-base
# 1.113 14-Jan-2007 apb

branches: 1.113.4;
Build join(1) as a host tool.


# 1.112 20-Dec-2006 agc

A commit too far - don't try to build veriexecgen for just now


# 1.111 19-Dec-2006 agc

Build veriexecgen as a host tool


Revision tags: netbsd-4-0-1-RELEASE wrstuden-fixsa-newbase wrstuden-fixsa-base-1 netbsd-4-0-RELEASE netbsd-4-0-RC5 netbsd-4-0-RC4 netbsd-4-0-RC3 netbsd-4-0-RC2 netbsd-4-0-RC1 wrstuden-fixsa-base netbsd-4-base
# 1.110 22-Nov-2006 riz

Make sys/exec_elf.h and machine/elf_machdep.h available to host
tools, and allow paxctl to use them when compiled as a host
tool. This fixes the build on MacOS X (and perhaps other platforms)


# 1.109 17-Nov-2006 dsl

Add some notes about the bogosity of some of the .WAIT stuff.
Remove a 'never had a sane effect' .WAIT from a .ORDER line.
Don't add a (probably incorrect) dependency for 'make install' since
it contradicts a .ORDER line elsewhere when .ORDER applies recursively
to child nodes.
I also think that the stuff that tries to add dependencies between
the stuff that bsd.subdir.mk generates does not DTRT at all.
I suspect that build.sh builds things in an order that avoids issues here.


# 1.108 10-Nov-2006 christos

Add paxctl as a tool.


# 1.107 08-Oct-2006 apb

If PREVIOUSTOOLDIR was empty, then don't complain that it has moved.

Patch from Jukka Salmi in PR 33095.


Revision tags: abandoned-netbsd-4-base
# 1.106 03-Aug-2006 freza

* Fix parallel build race condition between real{all,depend} and
<bsd.subdir.mk> targets.
* No need to pass TOOLDIR to recursive cleandir in real{all,depend}.

With help from he@.
OK by tron@.


# 1.105 03-Aug-2006 tron

Another attempt to fix the race in parallel builds.


# 1.104 19-Jul-2006 tron

Invoking "make cleandir" with "PREVIOUSTOOLDIR" set to the previous
location will not stop recursive "make cleandir" calls. Pass the new
location instead.


# 1.103 18-Jul-2006 lukem

gettext should .WAIT for autoconf.
(The former still doesn't seem to work on read-only source; separate issue)


# 1.102 17-Jul-2006 tron

Avoid getting into a loop of "make cleandir" instances if the location
tool directory has been changed or wasn't recorded before.


# 1.101 17-Jul-2006 tron

Remove ".WAIT" again because it doesn't fix the problem.


# 1.100 12-Jul-2006 tron

Add an extra ".WAIT" to the "realall realdepend" target to make sure
it finished cleaning the tools directory in case of tool directory
mismatch before we try to rebuild the tools.


# 1.99 22-Jun-2006 mrg

only build lint and lint2 if MKLINT != "no".


# 1.98 18-Jun-2006 gdamore

Make TOOL_SED, to allow using our own sed in cases where the host's version
is busted in some way.

The TOOL_SED doesn't use TIOCGWINSIZE, and has some changes to include
nbtool_config.h in a cross build environment.

Combined with some other changes (not yet committed), this allows cross
compiling m68k code on Solaris 10/amd64.


# 1.97 02-Jun-2006 mrg

remove support for building (with) GCC 2.95. also:
- always install <stdbool.h>
- don't generate a fake one for vax / gettext.


# 1.96 11-May-2006 mrg

check HAVE_GCC == 4 not USE_GCC4.


# 1.95 01-Apr-2006 christos

Don't barf if USE_GCC4 is not defined.


# 1.94 29-Mar-2006 jmc

Turn on gmake builds if GCC4 is enabled (and force it's install before continuing


# 1.93 03-Feb-2006 dsl

The realall and realdepend bit that regenerates tools needs to be marked
.MAKE otherwise the 'make' it runs has its own list of jobs instead of
using the jobserver of the enclosing make.


# 1.92 04-Oct-2005 jmc

Make the tools using Makefile.disklabel wait so they don't stomp each other.
Also for now add a dependency to Makefile.disklabel so this doesn't run
3 times. (XXX this really should just be done differently)


# 1.91 12-Jun-2005 dyoung

.include Makefile.disklabel in installboot, so that the
nbinclude/ header files will be installed. Build installboot after
pax, since Makefile.disklabel uses pax to install the headers.


# 1.90 12-Jun-2005 dyoung

Make disklabel(8) and fdisk(8) into "host tools " last step: build
and install ${TOOLDIR}/bin/${MACHINE_GNU_PLATFORM}-disklabel,
${TOOLDIR}/bin/${MACHINE_GNU_PLATFORM}-fdisk by "reaching over" to
the sources in ${NETBSDSRCDIR}/sbin/{disklabel fdisk}/.

To avoid clashes with a build-host's header files, especially on
*BSD, the host-tools versions of fdisk and disklabel search for
#includes such as disklabel.h, disklabel_acorn.h, disklabel_gpt.h,
and bootinfo.h in a new #includes namespace, nbinclude/. That is,
they #include <nbinclude/sys/disklabel.h>, <nbinclude/machine/disklabel.h>,
<nbinclude/sparc64/disklabel.h>, instead of <sys/disklabel.h> and
such. I have also updated the system headers to #include from
nbinclude/-space when HAVE_NBTOOL_CONFIG_H is #defined.


# 1.89 30-May-2005 thorpej

Build genassym as a host tool. Part of PR toolchain/30350


Revision tags: netbsd-3-1-1-RELEASE netbsd-3-0-3-RELEASE netbsd-3-1-RELEASE netbsd-3-0-2-RELEASE netbsd-3-1-RC4 netbsd-3-1-RC3 netbsd-3-1-RC2 netbsd-3-1-RC1 netbsd-3-0-1-RELEASE netbsd-3-0-RELEASE netbsd-3-0-RC6 netbsd-3-0-RC5 netbsd-3-0-RC4 netbsd-3-0-RC3 netbsd-3-0-RC2 netbsd-3-0-RC1 netbsd-3-base
# 1.88 27-Jan-2005 is

We don't need aout2bb any longer.


# 1.87 09-Jan-2005 mycroft

Add some quotes to prevent a syntax error.


# 1.86 28-Nov-2004 jmc

Convert mkboot into a full cross tool. Last hurdle for hp300 to building on
non NetBSD/bsd hosts.


# 1.85 28-Nov-2004 jmc

Convert remaining host tools for amiga to correct cross tools. Now allows
complete amiga builds on non netbsd/bsd hosts


# 1.84 25-Nov-2004 jmc

Convert bebox's remaining host tools over to cross tools scheme. Builds to sets
w/o error now.


# 1.83 28-Jul-2004 skrll

Build hp700's mkboot as a host tool called nbhp700-mkboot. mkboot also
gets built and installed in a hp700 distribution.

TODO

- merge with hp300

- pick a preferred method for dealing with the elf headers.
hp700-mkboot and prep-mkbootimage (bintuils) vs mips-elf2ecoff and
tools/installboot


# 1.82 08-Jun-2004 abs

Add sparkcrc (used to generate checksums for acorn32 bootloader sparkive)
as a host tool.


Revision tags: netbsd-2-0-base
# 1.81 03-Jan-2004 lukem

branches: 1.81.2;
Consistently check ${TOOLCHAIN_MISSING} against "no".


# 1.80 11-Dec-2003 matt

Fix typo.


# 1.79 11-Dec-2003 matt

Add macppc-fixcoff tool.


# 1.78 10-Dec-2003 lukem

Use (cd ${.CURDIR} && ${MAKE} cleandir) instead of ${MAKE} cleandir
Suggested by Ross Harvey.


# 1.77 04-Dec-2003 mrg

always build tools/binutils now.


# 1.76 08-Nov-2003 sekiya

Build sgivol as a host tool when compiling for sgimips.


# 1.75 27-Oct-2003 lukem

add mknod as a host tool


# 1.74 26-Oct-2003 cl

add gdb53 as a host tool for use as a crossgdb
replaces gdb50 from toolchain on archs which use gcc3


# 1.73 21-Oct-2003 lukem

Rework how MAKEVERBOSE operates:

* Don't bother prefixing commands with a line of ${_MKCMD}\
and instead rely upon "make -s". This is less intrusive on
all the Makefiles than the former. Idea from David Laight.

* Rename the variables use to print messages. The scheme now is:
_MKMSG_FOO Run _MKMSG 'foo'
_MKTARGET_FOO Run _MKMSG_FOO ${.TARGET}
From discussion with Alistair Crooks.


# 1.72 19-Oct-2003 matt

Add host tool version of ncdcs


# 1.71 18-Oct-2003 lukem

MAKEVERBOSE support


# 1.70 25-Jul-2003 mrg

- build "binutils" and "gcc" separately if USE_TOOLS_TOOLCHAIN is not set
to "yes".
- adjust dbsym/mdsetimage to look in the correct place for libbfd.
- new mknative-gcc based in toolchain/mknative


# 1.69 24-Jul-2003 tron

Add missing "cleandir" rule.


# 1.68 20-Jul-2003 lukem

add stat(1) as a host tool


# 1.67 16-Jul-2003 lukem

also do the MKTOOLS and PREVIOUSTOOLDIR checks for "realdepend"


# 1.66 16-Jul-2003 lukem

* If a `PREVIOUSTOOLDIR' file doesn't exist, or its contents are not
the same as "$TOOLDIR", run "make cleandir" here first.
This should prevent various problems where $TOOLDIR is encoded into the
build process for various tools (lint, groff, texinfo, toolchain),
$TOOLDIR changes, and various programs don't get rebuilt correctly.
Should fix PR [toolchain/21988].

* Clean up how the `${MKTOOLS} == no' check is performed.

* Remove "cleantools"; it made a big assumption about the location of
TOOLDIR that won't be correct in many cases.


# 1.65 26-Jun-2003 tshiozak

Citrus iconv support(3)
add host tools : mkcsmapper and mkesdb
mkcsmapper - coded character set mapping table compiler
mkesdb - encoding scheme database compiler


# 1.64 18-May-2003 lukem

Add db(1) as a host tool


# 1.63 25-Mar-2003 pooka

build file(1) as a host tool (for compiling magic files)


# 1.62 07-Mar-2003 thorpej

Make hexdump a host tool.


Revision tags: fvdl_fs64_base
# 1.61 21-Dec-2002 lukem

enable sunlabel...


# 1.60 19-Sep-2002 thorpej

Change the TOOLCHAIN_MISSING from == "no" to != "yes", to be consistent
with the other tests of this variable.


# 1.59 19-Sep-2002 matt

Since TOOLCHAIN_MISSING is defined in bsd.own.mk, it can never be undefined.
Instead, make sure the value of it is "no"


# 1.58 17-Sep-2002 thorpej

* Eliminate the USE_NEW_TOOLCHAIN variable. Instead, split it into
two variables:

TOOLCHAIN_MISSING -- set to "yes" on platforms for which there is
no working in-tree toolchain (hppa, ns32k, sh5, x86_64).

EXTERNAL_TOOLCHAIN -- if defined by the user, points to the root of
an external toolchain (e.g. /usr/local/gnu). This enables the cross-build
framework even for TOOLCHAIN_MISSING platforms.

If TOOLCHAIN_MISSING is set to "yes", MKGDB, MKBFD, and MKGCC are all
unconditionally set to "no", since the bits are not there to build.

If EXTERNAL_TOOLCHAIN is set, MKGCC is unconditionally set to "no",
since the external toolchain's compiler is not in-sync with the
in-tree compiler support components (e.g. libgcc).

* Set MACHINE_CPU much earlier in bsd.own.mk, so that more tests in
that file can use it.


# 1.57 14-Sep-2002 chris

We need binstall to be installed, before attempting to use it to install mktemp.


# 1.56 14-Sep-2002 thorpej

Descend into mktemp.


# 1.55 12-Jun-2002 veego

The last commit wasn't tested. Add a missing \


# 1.54 12-Jun-2002 thorpej

Don't build toolchain bits for hppa, for now.


# 1.53 10-Jun-2002 mason

Add cat(1) as a host tool.


# 1.52 05-Jun-2002 thorpej

Don't try to build toolchain bits for ns32k.


# 1.51 28-May-2002 bjh21

Add fgen as a host tool, used for sys/arch/sparc/bootblk.


Revision tags: netbsd-1-6-base
# 1.50 18-May-2002 lukem

branches: 1.50.2;
gratuitious comment addition


# 1.49 07-May-2002 lukem

remove now-unnecessary sparc-installboot


# 1.48 03-May-2002 kleink

On prep, descend into prep-mkbootimage.


# 1.47 06-Apr-2002 bjh21

vax-installboot has been deleted, so don't recurse into it.


# 1.46 03-Apr-2002 lukem

enable installboot


# 1.45 01-Apr-2002 thorpej

Nuke NO_DBSYM; dbsym now uses BFD for everything.


# 1.44 01-Apr-2002 bjh21

On second thoughts, don't make mktemp a host tool. It's only used once, for
creating a temporary directory for maketars, and mkdir can do that safely
enough.


# 1.43 31-Mar-2002 bjh21

Add mktemp as a host tool.


# 1.42 31-Mar-2002 bjh21

Add cksum as a host tool.


# 1.41 29-Mar-2002 matt

Drop into vax-installboot on VAX machines.


# 1.40 07-Mar-2002 tv

Rework recursion to use the original logic again, in the structure cleaned
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".


# 1.39 07-Mar-2002 tv

Don't build groff if MKMAN=no. (groff does not build properly on some
platforms because of its completely insane Make structure; this allows it
to be disabled in a sane way.)


# 1.38 26-Feb-2002 tv

Add gettext to tools.

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.)


# 1.37 23-Feb-2002 gmcgarry

Add elf2ecoff as a build tool for mips ports.


# 1.36 18-Feb-2002 pk

* Add comments on all the directory build/install ordering goo.
* 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.


# 1.35 11-Feb-2002 pk

Revert part of previous; we need the install targets.


# 1.34 10-Feb-2002 pk

Use .ORDER targets to express the dependencies on subdir runs. This makes
the resulting tree complexity O(N) (N=# of subdirs), and it also makes it
easier to comprehend the Makefile logic.


# 1.33 08-Feb-2002 pk

Make sure to not go off installing in a directory before it's fully made.


# 1.32 31-Jan-2002 tv

Roll in fixes to permit cross-compiling from non-NetBSD hosts. This
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.


# 1.31 29-Jan-2002 tv

Make almost all tools compile and run properly on non-NetBSD hosts. (In
particular, most tools now run correctly on Solaris 7.)


# 1.30 25-Jan-2002 lukem

build pax as a host tool, for -N and to work around borken vendor paxes


# 1.29 10-Jan-2002 tv

Move host-mkdep to its own directory. Create and install it before
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.


# 1.28 10-Jan-2002 lukem

revert previous, and reenable tools/makefs now that it works on
netbsd-current and netbsd-1-5


# 1.27 09-Jan-2002 tv

Disable makefs in src/tools for the moment; it's very dependent on -current
NetBSD headers and sources right now. (Temporary workaround for PR 15175.)


# 1.26 05-Jan-2002 mrg

build zic as a host tool.


# 1.25 05-Jan-2002 mrg

build makefs, and, sparc-installboot if sparc||sparc64


# 1.24 31-Dec-2001 thorpej

We can't currently build a toolchain for x86-64 here, so don't
attempt to do so.


# 1.23 29-Dec-2001 wiz

Typo fix in error message.


# 1.22 11-Dec-2001 tv

Add the framework for autoconf-based src/tools/compat structure. This will
(after it is more fleshed out) allow the host tools to work more cleanly
on non-NetBSD hosts.


# 1.21 07-Dec-2001 jmc

Add pwd_mkdb as a toolchain bit for builds


# 1.20 29-Nov-2001 thorpej

Build makewhatis as a host tool, since it is used at the end of
the build.

XXX Needs a -lz hostlib.


# 1.19 22-Nov-2001 jmc

Oops. typo which can break things for non-new toolchain builds if MKTOOLS isn't
set


# 1.18 22-Nov-2001 jmc

Check for USETOOLS!=yes in addition to MKTOOLS==no to generate the empty rule
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


# 1.17 13-Nov-2001 tv

Re-add MKTOOLS as a "yes"/"no" only variable, which prevents recursion on "no"
into the src/tools subdirs on all/depend/dependall/install. Other recursive
targets are not affected.


# 1.16 12-Nov-2001 tv

Major overhaul of src/tools and host toolchain. Summary of changes:

* 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.


# 1.15 09-Nov-2001 thorpej

Build the cross-dbsym.


# 1.14 02-Nov-2001 tv

* Always use the makewrapper when starting a build phase.

* 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.


# 1.13 31-Oct-2001 tv

Don't actually delete the default tooldir on "cleandir"; else we'll nuke
the nbmake that is probably currently running.

Just leave the "cleantools" manual target as a shortcut for the user.


# 1.12 31-Oct-2001 tv

* Create a variable HOST_OSTYPE that represents the host build environment,
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.


# 1.11 31-Oct-2001 tv

* Always descend into "tools" regardless of USETOOLS setting. Instead,
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.


# 1.10 25-Oct-2001 thorpej

Add asn1_compile as a host tool.


# 1.9 21-Oct-2001 jmc

Pull in mdsetimage to the tools builds. (XXX - using libbfd here would
probably be preferrable long term).


# 1.8 20-Oct-2001 jmc

Add mklocale to cross-tools and turn it back on for the builds.


# 1.7 13-Oct-2001 jmc

Add crunchgen, msgc and menuc


# 1.6 09-Oct-2001 enami

Make mtree a host tool and use it when appropriate.


# 1.5 04-Oct-2001 tv

Recurse properly; just add "build" to TARGETS (fixes reported problem where
"make clean" doesn't work at the src/tools level).


# 1.4 22-Sep-2001 tv

Work around "make obj" lossage in tools/. Dunno why this is happening
just yet; will investigate this evening.


# 1.3 22-Sep-2001 tv

Add lorder to TOOLDIR host tools.

Only descend into directories if USE_NEW_TOOLCHAIN is set (allows top level
Makefile to use "-m ${.CURDIR}/share/mk" to get the "correct" <bsd.own.mk>
when descending into src/tools/Makefile).


# 1.2 21-Sep-2001 tv

- Create a real cpp binary.
- Set CC properly in environment for mkdep and lint.
- Add compile_et to TOOLDIR host tools.


# 1.1 14-Aug-2001 tv

Bootstrap toolchain framework, first pass.


# 1.190 06-Jun-2017 skrll

Disable dtc/libfdt for now


# 1.189 05-Jun-2017 christos

No need to set dtc twice.


# 1.188 05-Jun-2017 christos

Add dtc


Revision tags: netbsd-8-base prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1 pgoyette-localcount-20170320 bouyer-socketcan-base
# 1.187 11-Jan-2017 joerg

Sync tools build glue with LLVM pre-4.0.0.


Revision tags: pgoyette-localcount-20170107 pgoyette-localcount-20161104 localcount-20160914 pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base
# 1.186 24-Jan-2016 christos

branches: 1.186.2;
move cvslatest last


# 1.185 24-Jan-2016 christos

Tool version


# 1.184 19-Dec-2015 christos

move sortinfo after pax


# 1.183 18-Dec-2015 christos

Add sortinfo


# 1.182 23-Jul-2015 mrg

remove the xfree86 reachover makefiles and the vast majority of
the support in the rest of the source tree.

X11 sets could use some cleaning up perhaps (just deletion, as
we've never really marked the old X11R6 as obsolete for native
xorg using platforms so far either.)


# 1.181 24-Jun-2015 matt

Support building the xorg X11 libraries under MKCOMPAT.
Add XORG_MACHINE_ARCH to compat's bsd.*.mk
Turn xorg makekeys and makestrs into real host tools which are installed into
${TOOLSDIR}


# 1.180 07-Jan-2015 joerg

Reorganise the way xorg is build. Move build of makestrs into src/tools
as it is needed for the "includes" phase. Make it symlink all necessary
headers in obj to decouple it from "includes" itself, breaking the
dependency cycle. Move the do-x11 target between do-lib and do-build, so
that libraries can get the benefit of build_install (correct .WAIT
behavior) and everything else like "includes" uses the plain SUBDIR
entry in external/mit.


# 1.179 05-Dec-2014 pooka

build genassym for TOOLS_BUILDRUMP


# 1.178 30-Sep-2014 christos

add gpt


Revision tags: netbsd-7-1-RELEASE netbsd-7-1-RC2 netbsd-7-nhusb-base-20170116 netbsd-7-1-RC1 netbsd-7-0-2-RELEASE netbsd-7-nhusb-base netbsd-7-0-1-RELEASE netbsd-7-0-RELEASE netbsd-7-0-RC3 netbsd-7-0-RC2 netbsd-7-0-RC1 netbsd-7-base tls-maxphys-base
# 1.177 10-Aug-2014 matt

Changes to existing files to enable building AARCH64 userland.
evbarm64-el
This is clang only. While gcc4.8 supports aarch64, no netbsd support has
been written for aarch64 with gcc4.8.


Revision tags: tls-earlyentropy-base
# 1.176 15-Jul-2014 christos

descend to vgrind


# 1.175 15-Jun-2014 pooka

Add cat, rpcgen and stat to TOOLS_BUILDRUMP. They're useful for
installing headers for the app stack cases that need it done, and small
enough to not matter for the kernel-only cases that don't.


# 1.174 14-Jun-2014 mrg

remove remaining makefile support for GCC < 45 that i found.


Revision tags: yamt-pagecache-base9
# 1.173 03-Apr-2014 riastradh

branches: 1.173.2;
ctfconvert/ctfmerge need libdwarf &c., so build them if MKCTF=yes.


Revision tags: riastradh-xf86-video-intel-2-7-1-pre-2-21-15
# 1.172 25-Mar-2014 ozaki-r

Add MKCTF

This variable separates CTF stuffs from MKDTRACE; we can build DTrace
solely without building and using them. This allows us to use DTrace
even if CTF stuffs have problems (actually they have now).

This variable would be merged into MKDTRACE eventually, once CTF stuffs
work correctly again.


Revision tags: riastradh-drm2-base3
# 1.171 24-Feb-2014 skrll

Rename NetBSD/hp700 to NetBSD/hppa.

Unfortunately our VCS isn't very helpful here.


# 1.170 02-Sep-2013 joerg

Update LLVM/Clang snapshot to r189662. This includes many improvements
to the new SLP vectorizer, fast codegen support for PPC and using
terminfo for the color sequences. In addition, add (optional) build
infrastructure for lld to allow easier testing. This is controlled by
MKLLD.


Revision tags: riastradh-drm2-base2 riastradh-drm2-base1
# 1.169 19-Jul-2013 matt

Even if we aren't making a crossgdb still make the object dir for it.


Revision tags: riastradh-drm2-base agc-symver-base
# 1.168 27-Feb-2013 joerg

branches: 1.168.4;
Add infrastructure for building MCLinker.


# 1.167 05-Feb-2013 matt

There are other little endian arm machine_arches other than "arm"
Use MACHINE_CPU and TARGET_ENDIANNESS instead of MACHINE_ARCH


# 1.166 31-Jan-2013 pooka

Use TOOLS_BUILDRUMP=yes to restrict building of tools to those required
for building rump kernels. This cuts down the NetBSD source tree required
by buildrump.sh to a fraction and addresses a size/download time concern
from a person packaging rump kernels for Linux.

No change to the normal case (tested with several -j32/-j64 builds).

reviewed by apb


Revision tags: yamt-pagecache-base8 yamt-pagecache-base7
# 1.165 02-Dec-2012 apb

Make tools/Makefile build host-mkdep, compat, and binstall in that order,
before installing any of them. It installs them in any order relative
to each other. The .WAIT points that used to be between these three
tools are replaced by .ORDER and dependencies.

This is needed in preparation for making tools/compat install
some files into TOOLDIR.


# 1.164 02-Dec-2012 apb

TOOLDIR must be valid, unless MKTOOLS=no.
Add tests and .error directives to enforce this.


# 1.163 02-Dec-2012 apb

If tools are not wanted, then set SUBDIR= empty instead of
defining all the subdir-related targets to do nothing. This way,
the targets are not invoked at all, instead of being invoked but
doing nothing.


# 1.162 02-Dec-2012 apb

remove trailing white space


# 1.161 27-Nov-2012 jkunz

According to the i.MX23 Reference Manual section 3.1, Page 3-3:
"The i.MX23 always operates in litle-endian mode."
So build elftosb and bootloader for this processor only for evbarm(-el).


# 1.160 26-Nov-2012 pooka

Build gmake iff we're going to need it.


# 1.159 15-Nov-2012 joerg

Move the build_install logic from lib/Makefile into share/mk and re-use
it for tools. The existing logic broke for the LLVM build with the
recent .ORDER changes in make.


# 1.158 15-Nov-2012 jkunz

Add elftosb tools to evbarm userland and toolchain.
Elftosb is used to create a digitaly signed "secure boot" file.
This sb file can be booted by the first stage boot loader found in
Freescale i.MX23 and i.MX28 application processors.

Copyright (c) 2004-2010 Freescale Semiconductor, Inc.


Revision tags: yamt-pagecache-base6
# 1.157 20-Sep-2012 pooka

fix EXTERNAL_TOOLCHAIN build


# 1.156 10-Aug-2012 joerg

branches: 1.156.2;
Decouple binutils build from HAVE_GCC. Merge common fragments of
HAVE_GCC and HAVE_PCC.


Revision tags: netbsd-6-0-6-RELEASE netbsd-6-1-5-RELEASE netbsd-6-1-4-RELEASE netbsd-6-0-5-RELEASE netbsd-6-1-3-RELEASE netbsd-6-0-4-RELEASE netbsd-6-1-2-RELEASE netbsd-6-0-3-RELEASE netbsd-6-1-1-RELEASE netbsd-6-0-2-RELEASE netbsd-6-1-RELEASE netbsd-6-1-RC4 netbsd-6-1-RC3 netbsd-6-1-RC2 netbsd-6-1-RC1 netbsd-6-0-1-RELEASE matt-nb6-plus-nbase netbsd-6-0-RELEASE netbsd-6-0-RC2 matt-nb6-plus-base netbsd-6-0-RC1 yamt-pagecache-base5 yamt-pagecache-base4 netbsd-6-base yamt-pagecache-base3 yamt-pagecache-base2
# 1.155 03-Nov-2011 joerg

Revert .WAIT removal and add comment why it is needed between *tblgen.


# 1.154 02-Nov-2011 njoly

Do not build tic more than once


# 1.153 02-Nov-2011 christos

move tic later, after all the tools it needs are built.


# 1.152 02-Nov-2011 yamt

tweak dependencies for tic, which needs nbperf, awk, and sed.


Revision tags: yamt-pagecache-base
# 1.151 01-Nov-2011 joerg

branches: 1.151.2;
Remove an unnecessary .WAIT between llvm-tblgen and clang-tblgen.


# 1.150 01-Nov-2011 joerg

Hook up nbperf into the normal tool build.


# 1.149 11-Oct-2011 joerg

Update LLVM/Clang snapshot to r141658. This primarily fixes a regression
preventing Qt4 from building.


# 1.148 16-Jul-2011 tsutsui

Build nbm68k-elf2aout as a host tool on m68k targets
for an ancient PROM bootloader.
Mostly taken from nbmips-elf2ecoff.


# 1.147 10-Jul-2011 mrg

install elf2ecoff for all mips64 systems. it's needed for stand.


# 1.146 21-Jun-2011 mrg

always build gmake if HAVE_GCC.
build gmp, mpfr and then mpc if HAVE_GCC >= 45.


Revision tags: cherry-xenmp-base
# 1.145 15-Apr-2011 elric

branches: 1.145.2;
Upgrade Heimdal to 1.5pre1 by switching the build from crypto/dist/heimdal
to crypto/external/bsd/heimdal. The latter was just imported as the head
of the Heimdal tree as of a few days ago.


# 1.144 17-Mar-2011 riz

.WAIT for makefs, because in most builds, it's the first target
which includes Makefile.nbincludes, whose beforedepend: has
some race condition I don't fully understand, and which has been
causing many (but not all!) -j16 builds on the autobuild cluster
to fail in tools since sometime between 201103061600 and 201103070900.

With the proper voodoo, I was able to get 8 builds in a row to fail
without this change, and 16 in a row to succeed with it.

XXX a proper fix likely involves reworking the beforedepend: target
of Makefile.nbincludes, but this should get the build cluster back up
to full functionality in the meanwhile.


Revision tags: bouyer-quota2-nbase
# 1.143 25-Feb-2011 phx

mkubootimage is certainly useful for sandpoint


Revision tags: bouyer-quota2-base
# 1.142 06-Feb-2011 joerg

Add LLVM and clang build system. It is enabled by MKLLVM=yes.
Upstream sources can be fetched by running "make checkout" in
src/external/bsd/llvm, they will be properly imported once the
integration and missing features are sorted out.


# 1.141 31-Jan-2011 matt

Make mkubootimage for evbmips and evbppc too.


Revision tags: matt-mips64-premerge-20101231
# 1.140 15-Aug-2010 mrg

branches: 1.140.2;
add new option to build/use tools/pigz for compressing sets. for now
USE_PIGZGZIP defaults to "no". (it depends upon local <pthread.h> and -lz.)

you can set it to "yes" on most modern platforms just fine.


# 1.139 18-Jun-2010 jmcneill

hook mkubootimage into the build


# 1.138 04-Jun-2010 jmmv

Bye bye atf-compile, you won't be missed.


# 1.137 02-Mar-2010 darran

DTrace: add libelf, libdwarf, libctf, and CTF tools to the toolchain,
built when MKDTRACE=yes.


# 1.136 20-Feb-2010 joerg

Build mandoc unconditional if man pages are desirable. All
compatibility issues are supposed to be sorted out.
Build groff conditionally on MKGROFF. It is currently the only component
that requires C++.


# 1.135 03-Feb-2010 roy

Store our generated files in CVS and remove nbperf from the toolchain.
This allows us to build consistent libs without an ever changing hash.


# 1.134 03-Feb-2010 roy

Userland now builds and uses terminfo instead of termcap.

OK: core@, jdc@


# 1.133 29-Dec-2009 he

To unbreak the build, temporarily remove the build of libelf here,
since no other part of the build depends on this yet.

Suggested as a temporary workaround by thorpej@


# 1.132 23-Dec-2009 mrg

rework the main SUBDIR list here as suggested by enami. put .WAIT on
the same line as the target that needs to wait, but before the target,
rather than on the previous line, which led to confusion and an error
being introduced in the previous change.


# 1.131 21-Dec-2009 mrg

move the build of pax before libelf. fixes my build of tools/libelf,
though i didn't look to see why libelf needs pax.


# 1.130 21-Dec-2009 thorpej

Add support for building libelf in a host-tool environment.

XXX Makefile.disklabel is really mis-named, but I'm not going to tackle
that problem right now.


Revision tags: matt-premerge-20091211
# 1.129 29-Oct-2009 christos

Give m4 its own .WAIT. Fixes build issue on NetBSD-5.


# 1.128 23-Oct-2009 joerg

Add MKMANDOC option to trigger building cat pages and HTML pages with
mdocml. Add a lintmanpages target for developers to check man pages
with the strictest settings of mandoc.


Revision tags: jym-xensuspend-nbase jym-xensuspend-base
# 1.127 25-Feb-2009 sketch

Disable grep host tool and unbreak NetBSD build until I can come up with a
clean fix.


# 1.126 25-Feb-2009 sketch

Make grep a host tool.


# 1.125 14-Feb-2009 abs

Convert more MACHINE tests to MACHINE_ARCH


Revision tags: netbsd-5-2-3-RELEASE netbsd-5-1-5-RELEASE netbsd-5-2-2-RELEASE netbsd-5-1-4-RELEASE netbsd-5-2-1-RELEASE netbsd-5-1-3-RELEASE netbsd-5-2-RELEASE netbsd-5-2-RC1 netbsd-5-1-2-RELEASE netbsd-5-1-1-RELEASE matt-nb5-mips64-premerge-20101231 matt-nb5-pq3-base netbsd-5-1-RELEASE netbsd-5-1-RC4 matt-nb5-mips64-k15 netbsd-5-1-RC3 netbsd-5-1-RC2 netbsd-5-1-RC1 netbsd-5-0-2-RELEASE matt-nb5-mips64-premerge-20091211 matt-nb5-mips64-u2-k2-k4-k7-k8-k9 matt-nb4-mips64-k7-u2a-k9b matt-nb5-mips64-u1-k1-k5 netbsd-5-0-1-RELEASE netbsd-5-0-RELEASE netbsd-5-0-RC4 netbsd-5-0-RC3 netbsd-5-0-RC2 netbsd-5-0-RC1 netbsd-5-base
# 1.124 25-Oct-2008 apb

branches: 1.124.4; 1.124.8; 1.124.12;
Build sed earlier, just after mktemp. Note that sed and mktemp do not
depend on each other, but the .WAIT is needed to get them both installed
before the remainder of the tools build.


# 1.123 25-Oct-2008 apb

Remove the local handling of the NOSUBDIR variable. We can rely
on bsd.subdir.mk's handling of the NOSUBDIR variable.

Also add some comment to .if/.else/.endif and .for/.endfor lines.


Revision tags: matt-mips64-base2
# 1.122 19-Oct-2008 apb

Add awk as a host tool.


# 1.121 13-Oct-2008 dyoung

Per uwe@'s suggestion, build nbgroff under wider circumstances.
I choose to build it if MKDOC != no or if MKHTML != no. It used
to be built only when MKMAN != no.


# 1.120 05-Oct-2008 apb

Add a .WAIT to ensure that sed is installed early, so that TOOL_SED can
be used during the build of other tools.


# 1.119 26-Sep-2008 apb

Build strfile both as a host tool and as an installed program:
* in games/fortune/strfile/Makefile, build strfile as a
regular program instead of as a host tool;
* add tools/strfile directory to build strfile as a host tool;
* in tools/Makefile, add strfile to SUBDIR list;
* in BSD.*.mk, define TOOL_STRFILE variable;
* in games/fortune/datfiles/Makefile, use TOOL_STRFILE when creating
databases at build time;
* in distrib/sets/lists/games/mi, mention usr/games/strfile.


Revision tags: wrstuden-revivesa-base-3 wrstuden-revivesa-base-2
# 1.118 24-Aug-2008 gmcgarry

Build pcc as host tool if requested.


Revision tags: wrstuden-revivesa-base-1 yamt-pf42-base4 yamt-pf42-base3 wrstuden-revivesa-base
# 1.117 26-May-2008 he

Remove references to bebox-elf2pef and bebox-mkbootimage, now that they
have been integrated in common powerpc tools and subsequently removed.


Revision tags: hpcarm-cleanup-nbase yamt-pf42-base2
# 1.116 30-Apr-2008 garbled

branches: 1.116.2;
Build powerpc-mkbootimage for rs6000 and bebox too.


# 1.115 30-Apr-2008 garbled

Convert prep to use the new unified mkbootimage rather than it's own. This
mkbootimage can be shared by prep, rs6000, and bebox.

TODO: Convert bebox to use this. Needs someone to test.


Revision tags: yamt-pf42-baseX yamt-pf42-base keiichi-mipv6-nbase keiichi-mipv6-base matt-armv6-nbase cube-autoconf-base matt-armv6-base hpcarm-cleanup-base
# 1.114 12-Nov-2007 jmmv

branches: 1.114.6;
Add the atf host tools

This adds reachover Makefiles to build the atf tools required during a
cross-build.


Revision tags: matt-armv6-prevmlocking matt-mips64-base
# 1.113 14-Jan-2007 apb

branches: 1.113.4;
Build join(1) as a host tool.


# 1.112 20-Dec-2006 agc

A commit too far - don't try to build veriexecgen for just now


# 1.111 19-Dec-2006 agc

Build veriexecgen as a host tool


Revision tags: netbsd-4-0-1-RELEASE wrstuden-fixsa-newbase wrstuden-fixsa-base-1 netbsd-4-0-RELEASE netbsd-4-0-RC5 netbsd-4-0-RC4 netbsd-4-0-RC3 netbsd-4-0-RC2 netbsd-4-0-RC1 wrstuden-fixsa-base netbsd-4-base
# 1.110 22-Nov-2006 riz

Make sys/exec_elf.h and machine/elf_machdep.h available to host
tools, and allow paxctl to use them when compiled as a host
tool. This fixes the build on MacOS X (and perhaps other platforms)


# 1.109 17-Nov-2006 dsl

Add some notes about the bogosity of some of the .WAIT stuff.
Remove a 'never had a sane effect' .WAIT from a .ORDER line.
Don't add a (probably incorrect) dependency for 'make install' since
it contradicts a .ORDER line elsewhere when .ORDER applies recursively
to child nodes.
I also think that the stuff that tries to add dependencies between
the stuff that bsd.subdir.mk generates does not DTRT at all.
I suspect that build.sh builds things in an order that avoids issues here.


# 1.108 10-Nov-2006 christos

Add paxctl as a tool.


# 1.107 08-Oct-2006 apb

If PREVIOUSTOOLDIR was empty, then don't complain that it has moved.

Patch from Jukka Salmi in PR 33095.


Revision tags: abandoned-netbsd-4-base
# 1.106 03-Aug-2006 freza

* Fix parallel build race condition between real{all,depend} and
<bsd.subdir.mk> targets.
* No need to pass TOOLDIR to recursive cleandir in real{all,depend}.

With help from he@.
OK by tron@.


# 1.105 03-Aug-2006 tron

Another attempt to fix the race in parallel builds.


# 1.104 19-Jul-2006 tron

Invoking "make cleandir" with "PREVIOUSTOOLDIR" set to the previous
location will not stop recursive "make cleandir" calls. Pass the new
location instead.


# 1.103 18-Jul-2006 lukem

gettext should .WAIT for autoconf.
(The former still doesn't seem to work on read-only source; separate issue)


# 1.102 17-Jul-2006 tron

Avoid getting into a loop of "make cleandir" instances if the location
tool directory has been changed or wasn't recorded before.


# 1.101 17-Jul-2006 tron

Remove ".WAIT" again because it doesn't fix the problem.


# 1.100 12-Jul-2006 tron

Add an extra ".WAIT" to the "realall realdepend" target to make sure
it finished cleaning the tools directory in case of tool directory
mismatch before we try to rebuild the tools.


# 1.99 22-Jun-2006 mrg

only build lint and lint2 if MKLINT != "no".


# 1.98 18-Jun-2006 gdamore

Make TOOL_SED, to allow using our own sed in cases where the host's version
is busted in some way.

The TOOL_SED doesn't use TIOCGWINSIZE, and has some changes to include
nbtool_config.h in a cross build environment.

Combined with some other changes (not yet committed), this allows cross
compiling m68k code on Solaris 10/amd64.


# 1.97 02-Jun-2006 mrg

remove support for building (with) GCC 2.95. also:
- always install <stdbool.h>
- don't generate a fake one for vax / gettext.


# 1.96 11-May-2006 mrg

check HAVE_GCC == 4 not USE_GCC4.


# 1.95 01-Apr-2006 christos

Don't barf if USE_GCC4 is not defined.


# 1.94 29-Mar-2006 jmc

Turn on gmake builds if GCC4 is enabled (and force it's install before continuing


# 1.93 03-Feb-2006 dsl

The realall and realdepend bit that regenerates tools needs to be marked
.MAKE otherwise the 'make' it runs has its own list of jobs instead of
using the jobserver of the enclosing make.


# 1.92 04-Oct-2005 jmc

Make the tools using Makefile.disklabel wait so they don't stomp each other.
Also for now add a dependency to Makefile.disklabel so this doesn't run
3 times. (XXX this really should just be done differently)


# 1.91 12-Jun-2005 dyoung

.include Makefile.disklabel in installboot, so that the
nbinclude/ header files will be installed. Build installboot after
pax, since Makefile.disklabel uses pax to install the headers.


# 1.90 12-Jun-2005 dyoung

Make disklabel(8) and fdisk(8) into "host tools " last step: build
and install ${TOOLDIR}/bin/${MACHINE_GNU_PLATFORM}-disklabel,
${TOOLDIR}/bin/${MACHINE_GNU_PLATFORM}-fdisk by "reaching over" to
the sources in ${NETBSDSRCDIR}/sbin/{disklabel fdisk}/.

To avoid clashes with a build-host's header files, especially on
*BSD, the host-tools versions of fdisk and disklabel search for
#includes such as disklabel.h, disklabel_acorn.h, disklabel_gpt.h,
and bootinfo.h in a new #includes namespace, nbinclude/. That is,
they #include <nbinclude/sys/disklabel.h>, <nbinclude/machine/disklabel.h>,
<nbinclude/sparc64/disklabel.h>, instead of <sys/disklabel.h> and
such. I have also updated the system headers to #include from
nbinclude/-space when HAVE_NBTOOL_CONFIG_H is #defined.


# 1.89 30-May-2005 thorpej

Build genassym as a host tool. Part of PR toolchain/30350


Revision tags: netbsd-3-1-1-RELEASE netbsd-3-0-3-RELEASE netbsd-3-1-RELEASE netbsd-3-0-2-RELEASE netbsd-3-1-RC4 netbsd-3-1-RC3 netbsd-3-1-RC2 netbsd-3-1-RC1 netbsd-3-0-1-RELEASE netbsd-3-0-RELEASE netbsd-3-0-RC6 netbsd-3-0-RC5 netbsd-3-0-RC4 netbsd-3-0-RC3 netbsd-3-0-RC2 netbsd-3-0-RC1 netbsd-3-base
# 1.88 27-Jan-2005 is

We don't need aout2bb any longer.


# 1.87 09-Jan-2005 mycroft

Add some quotes to prevent a syntax error.


# 1.86 28-Nov-2004 jmc

Convert mkboot into a full cross tool. Last hurdle for hp300 to building on
non NetBSD/bsd hosts.


# 1.85 28-Nov-2004 jmc

Convert remaining host tools for amiga to correct cross tools. Now allows
complete amiga builds on non netbsd/bsd hosts


# 1.84 25-Nov-2004 jmc

Convert bebox's remaining host tools over to cross tools scheme. Builds to sets
w/o error now.


# 1.83 28-Jul-2004 skrll

Build hp700's mkboot as a host tool called nbhp700-mkboot. mkboot also
gets built and installed in a hp700 distribution.

TODO

- merge with hp300

- pick a preferred method for dealing with the elf headers.
hp700-mkboot and prep-mkbootimage (bintuils) vs mips-elf2ecoff and
tools/installboot


# 1.82 08-Jun-2004 abs

Add sparkcrc (used to generate checksums for acorn32 bootloader sparkive)
as a host tool.


Revision tags: netbsd-2-0-base
# 1.81 03-Jan-2004 lukem

branches: 1.81.2;
Consistently check ${TOOLCHAIN_MISSING} against "no".


# 1.80 11-Dec-2003 matt

Fix typo.


# 1.79 11-Dec-2003 matt

Add macppc-fixcoff tool.


# 1.78 10-Dec-2003 lukem

Use (cd ${.CURDIR} && ${MAKE} cleandir) instead of ${MAKE} cleandir
Suggested by Ross Harvey.


# 1.77 04-Dec-2003 mrg

always build tools/binutils now.


# 1.76 08-Nov-2003 sekiya

Build sgivol as a host tool when compiling for sgimips.


# 1.75 27-Oct-2003 lukem

add mknod as a host tool


# 1.74 26-Oct-2003 cl

add gdb53 as a host tool for use as a crossgdb
replaces gdb50 from toolchain on archs which use gcc3


# 1.73 21-Oct-2003 lukem

Rework how MAKEVERBOSE operates:

* Don't bother prefixing commands with a line of ${_MKCMD}\
and instead rely upon "make -s". This is less intrusive on
all the Makefiles than the former. Idea from David Laight.

* Rename the variables use to print messages. The scheme now is:
_MKMSG_FOO Run _MKMSG 'foo'
_MKTARGET_FOO Run _MKMSG_FOO ${.TARGET}
From discussion with Alistair Crooks.


# 1.72 19-Oct-2003 matt

Add host tool version of ncdcs


# 1.71 18-Oct-2003 lukem

MAKEVERBOSE support


# 1.70 25-Jul-2003 mrg

- build "binutils" and "gcc" separately if USE_TOOLS_TOOLCHAIN is not set
to "yes".
- adjust dbsym/mdsetimage to look in the correct place for libbfd.
- new mknative-gcc based in toolchain/mknative


# 1.69 24-Jul-2003 tron

Add missing "cleandir" rule.


# 1.68 20-Jul-2003 lukem

add stat(1) as a host tool


# 1.67 16-Jul-2003 lukem

also do the MKTOOLS and PREVIOUSTOOLDIR checks for "realdepend"


# 1.66 16-Jul-2003 lukem

* If a `PREVIOUSTOOLDIR' file doesn't exist, or its contents are not
the same as "$TOOLDIR", run "make cleandir" here first.
This should prevent various problems where $TOOLDIR is encoded into the
build process for various tools (lint, groff, texinfo, toolchain),
$TOOLDIR changes, and various programs don't get rebuilt correctly.
Should fix PR [toolchain/21988].

* Clean up how the `${MKTOOLS} == no' check is performed.

* Remove "cleantools"; it made a big assumption about the location of
TOOLDIR that won't be correct in many cases.


# 1.65 26-Jun-2003 tshiozak

Citrus iconv support(3)
add host tools : mkcsmapper and mkesdb
mkcsmapper - coded character set mapping table compiler
mkesdb - encoding scheme database compiler


# 1.64 18-May-2003 lukem

Add db(1) as a host tool


# 1.63 25-Mar-2003 pooka

build file(1) as a host tool (for compiling magic files)


# 1.62 07-Mar-2003 thorpej

Make hexdump a host tool.


Revision tags: fvdl_fs64_base
# 1.61 21-Dec-2002 lukem

enable sunlabel...


# 1.60 19-Sep-2002 thorpej

Change the TOOLCHAIN_MISSING from == "no" to != "yes", to be consistent
with the other tests of this variable.


# 1.59 19-Sep-2002 matt

Since TOOLCHAIN_MISSING is defined in bsd.own.mk, it can never be undefined.
Instead, make sure the value of it is "no"


# 1.58 17-Sep-2002 thorpej

* Eliminate the USE_NEW_TOOLCHAIN variable. Instead, split it into
two variables:

TOOLCHAIN_MISSING -- set to "yes" on platforms for which there is
no working in-tree toolchain (hppa, ns32k, sh5, x86_64).

EXTERNAL_TOOLCHAIN -- if defined by the user, points to the root of
an external toolchain (e.g. /usr/local/gnu). This enables the cross-build
framework even for TOOLCHAIN_MISSING platforms.

If TOOLCHAIN_MISSING is set to "yes", MKGDB, MKBFD, and MKGCC are all
unconditionally set to "no", since the bits are not there to build.

If EXTERNAL_TOOLCHAIN is set, MKGCC is unconditionally set to "no",
since the external toolchain's compiler is not in-sync with the
in-tree compiler support components (e.g. libgcc).

* Set MACHINE_CPU much earlier in bsd.own.mk, so that more tests in
that file can use it.


# 1.57 14-Sep-2002 chris

We need binstall to be installed, before attempting to use it to install mktemp.


# 1.56 14-Sep-2002 thorpej

Descend into mktemp.


# 1.55 12-Jun-2002 veego

The last commit wasn't tested. Add a missing \


# 1.54 12-Jun-2002 thorpej

Don't build toolchain bits for hppa, for now.


# 1.53 10-Jun-2002 mason

Add cat(1) as a host tool.


# 1.52 05-Jun-2002 thorpej

Don't try to build toolchain bits for ns32k.


# 1.51 28-May-2002 bjh21

Add fgen as a host tool, used for sys/arch/sparc/bootblk.


Revision tags: netbsd-1-6-base
# 1.50 18-May-2002 lukem

branches: 1.50.2;
gratuitious comment addition


# 1.49 07-May-2002 lukem

remove now-unnecessary sparc-installboot


# 1.48 03-May-2002 kleink

On prep, descend into prep-mkbootimage.


# 1.47 06-Apr-2002 bjh21

vax-installboot has been deleted, so don't recurse into it.


# 1.46 03-Apr-2002 lukem

enable installboot


# 1.45 01-Apr-2002 thorpej

Nuke NO_DBSYM; dbsym now uses BFD for everything.


# 1.44 01-Apr-2002 bjh21

On second thoughts, don't make mktemp a host tool. It's only used once, for
creating a temporary directory for maketars, and mkdir can do that safely
enough.


# 1.43 31-Mar-2002 bjh21

Add mktemp as a host tool.


# 1.42 31-Mar-2002 bjh21

Add cksum as a host tool.


# 1.41 29-Mar-2002 matt

Drop into vax-installboot on VAX machines.


# 1.40 07-Mar-2002 tv

Rework recursion to use the original logic again, in the structure cleaned
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".


# 1.39 07-Mar-2002 tv

Don't build groff if MKMAN=no. (groff does not build properly on some
platforms because of its completely insane Make structure; this allows it
to be disabled in a sane way.)


# 1.38 26-Feb-2002 tv

Add gettext to tools.

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.)


# 1.37 23-Feb-2002 gmcgarry

Add elf2ecoff as a build tool for mips ports.


# 1.36 18-Feb-2002 pk

* Add comments on all the directory build/install ordering goo.
* 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.


# 1.35 11-Feb-2002 pk

Revert part of previous; we need the install targets.


# 1.34 10-Feb-2002 pk

Use .ORDER targets to express the dependencies on subdir runs. This makes
the resulting tree complexity O(N) (N=# of subdirs), and it also makes it
easier to comprehend the Makefile logic.


# 1.33 08-Feb-2002 pk

Make sure to not go off installing in a directory before it's fully made.


# 1.32 31-Jan-2002 tv

Roll in fixes to permit cross-compiling from non-NetBSD hosts. This
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.


# 1.31 29-Jan-2002 tv

Make almost all tools compile and run properly on non-NetBSD hosts. (In
particular, most tools now run correctly on Solaris 7.)


# 1.30 25-Jan-2002 lukem

build pax as a host tool, for -N and to work around borken vendor paxes


# 1.29 10-Jan-2002 tv

Move host-mkdep to its own directory. Create and install it before
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.


# 1.28 10-Jan-2002 lukem

revert previous, and reenable tools/makefs now that it works on
netbsd-current and netbsd-1-5


# 1.27 09-Jan-2002 tv

Disable makefs in src/tools for the moment; it's very dependent on -current
NetBSD headers and sources right now. (Temporary workaround for PR 15175.)


# 1.26 05-Jan-2002 mrg

build zic as a host tool.


# 1.25 05-Jan-2002 mrg

build makefs, and, sparc-installboot if sparc||sparc64


# 1.24 31-Dec-2001 thorpej

We can't currently build a toolchain for x86-64 here, so don't
attempt to do so.


# 1.23 29-Dec-2001 wiz

Typo fix in error message.


# 1.22 11-Dec-2001 tv

Add the framework for autoconf-based src/tools/compat structure. This will
(after it is more fleshed out) allow the host tools to work more cleanly
on non-NetBSD hosts.


# 1.21 07-Dec-2001 jmc

Add pwd_mkdb as a toolchain bit for builds


# 1.20 29-Nov-2001 thorpej

Build makewhatis as a host tool, since it is used at the end of
the build.

XXX Needs a -lz hostlib.


# 1.19 22-Nov-2001 jmc

Oops. typo which can break things for non-new toolchain builds if MKTOOLS isn't
set


# 1.18 22-Nov-2001 jmc

Check for USETOOLS!=yes in addition to MKTOOLS==no to generate the empty rule
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


# 1.17 13-Nov-2001 tv

Re-add MKTOOLS as a "yes"/"no" only variable, which prevents recursion on "no"
into the src/tools subdirs on all/depend/dependall/install. Other recursive
targets are not affected.


# 1.16 12-Nov-2001 tv

Major overhaul of src/tools and host toolchain. Summary of changes:

* 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.


# 1.15 09-Nov-2001 thorpej

Build the cross-dbsym.


# 1.14 02-Nov-2001 tv

* Always use the makewrapper when starting a build phase.

* 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.


# 1.13 31-Oct-2001 tv

Don't actually delete the default tooldir on "cleandir"; else we'll nuke
the nbmake that is probably currently running.

Just leave the "cleantools" manual target as a shortcut for the user.


# 1.12 31-Oct-2001 tv

* Create a variable HOST_OSTYPE that represents the host build environment,
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.


# 1.11 31-Oct-2001 tv

* Always descend into "tools" regardless of USETOOLS setting. Instead,
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.


# 1.10 25-Oct-2001 thorpej

Add asn1_compile as a host tool.


# 1.9 21-Oct-2001 jmc

Pull in mdsetimage to the tools builds. (XXX - using libbfd here would
probably be preferrable long term).


# 1.8 20-Oct-2001 jmc

Add mklocale to cross-tools and turn it back on for the builds.


# 1.7 13-Oct-2001 jmc

Add crunchgen, msgc and menuc


# 1.6 09-Oct-2001 enami

Make mtree a host tool and use it when appropriate.


# 1.5 04-Oct-2001 tv

Recurse properly; just add "build" to TARGETS (fixes reported problem where
"make clean" doesn't work at the src/tools level).


# 1.4 22-Sep-2001 tv

Work around "make obj" lossage in tools/. Dunno why this is happening
just yet; will investigate this evening.


# 1.3 22-Sep-2001 tv

Add lorder to TOOLDIR host tools.

Only descend into directories if USE_NEW_TOOLCHAIN is set (allows top level
Makefile to use "-m ${.CURDIR}/share/mk" to get the "correct" <bsd.own.mk>
when descending into src/tools/Makefile).


# 1.2 21-Sep-2001 tv

- Create a real cpp binary.
- Set CC properly in environment for mkdep and lint.
- Add compile_et to TOOLDIR host tools.


# 1.1 14-Aug-2001 tv

Bootstrap toolchain framework, first pass.


# 1.187 11-Jan-2017 joerg

Sync tools build glue with LLVM pre-4.0.0.


Revision tags: pgoyette-localcount-20170107 pgoyette-localcount-20161104 localcount-20160914 pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base
# 1.186 24-Jan-2016 christos

move cvslatest last


# 1.185 24-Jan-2016 christos

Tool version


# 1.184 19-Dec-2015 christos

move sortinfo after pax


# 1.183 18-Dec-2015 christos

Add sortinfo


# 1.182 23-Jul-2015 mrg

remove the xfree86 reachover makefiles and the vast majority of
the support in the rest of the source tree.

X11 sets could use some cleaning up perhaps (just deletion, as
we've never really marked the old X11R6 as obsolete for native
xorg using platforms so far either.)


# 1.181 24-Jun-2015 matt

Support building the xorg X11 libraries under MKCOMPAT.
Add XORG_MACHINE_ARCH to compat's bsd.*.mk
Turn xorg makekeys and makestrs into real host tools which are installed into
${TOOLSDIR}


# 1.180 07-Jan-2015 joerg

Reorganise the way xorg is build. Move build of makestrs into src/tools
as it is needed for the "includes" phase. Make it symlink all necessary
headers in obj to decouple it from "includes" itself, breaking the
dependency cycle. Move the do-x11 target between do-lib and do-build, so
that libraries can get the benefit of build_install (correct .WAIT
behavior) and everything else like "includes" uses the plain SUBDIR
entry in external/mit.


# 1.179 05-Dec-2014 pooka

build genassym for TOOLS_BUILDRUMP


# 1.178 30-Sep-2014 christos

add gpt


Revision tags: netbsd-7-1-RC1 netbsd-7-0-2-RELEASE netbsd-7-nhusb-base netbsd-7-0-1-RELEASE netbsd-7-0-RELEASE netbsd-7-0-RC3 netbsd-7-0-RC2 netbsd-7-0-RC1 netbsd-7-base tls-maxphys-base
# 1.177 10-Aug-2014 matt

Changes to existing files to enable building AARCH64 userland.
evbarm64-el
This is clang only. While gcc4.8 supports aarch64, no netbsd support has
been written for aarch64 with gcc4.8.


Revision tags: tls-earlyentropy-base
# 1.176 15-Jul-2014 christos

descend to vgrind


# 1.175 15-Jun-2014 pooka

Add cat, rpcgen and stat to TOOLS_BUILDRUMP. They're useful for
installing headers for the app stack cases that need it done, and small
enough to not matter for the kernel-only cases that don't.


# 1.174 14-Jun-2014 mrg

remove remaining makefile support for GCC < 45 that i found.


Revision tags: yamt-pagecache-base9
# 1.173 03-Apr-2014 riastradh

branches: 1.173.2;
ctfconvert/ctfmerge need libdwarf &c., so build them if MKCTF=yes.


Revision tags: riastradh-xf86-video-intel-2-7-1-pre-2-21-15
# 1.172 25-Mar-2014 ozaki-r

Add MKCTF

This variable separates CTF stuffs from MKDTRACE; we can build DTrace
solely without building and using them. This allows us to use DTrace
even if CTF stuffs have problems (actually they have now).

This variable would be merged into MKDTRACE eventually, once CTF stuffs
work correctly again.


Revision tags: riastradh-drm2-base3
# 1.171 24-Feb-2014 skrll

Rename NetBSD/hp700 to NetBSD/hppa.

Unfortunately our VCS isn't very helpful here.


# 1.170 02-Sep-2013 joerg

Update LLVM/Clang snapshot to r189662. This includes many improvements
to the new SLP vectorizer, fast codegen support for PPC and using
terminfo for the color sequences. In addition, add (optional) build
infrastructure for lld to allow easier testing. This is controlled by
MKLLD.


Revision tags: riastradh-drm2-base2 riastradh-drm2-base1
# 1.169 19-Jul-2013 matt

Even if we aren't making a crossgdb still make the object dir for it.


Revision tags: riastradh-drm2-base agc-symver-base
# 1.168 27-Feb-2013 joerg

branches: 1.168.4;
Add infrastructure for building MCLinker.


# 1.167 05-Feb-2013 matt

There are other little endian arm machine_arches other than "arm"
Use MACHINE_CPU and TARGET_ENDIANNESS instead of MACHINE_ARCH


# 1.166 31-Jan-2013 pooka

Use TOOLS_BUILDRUMP=yes to restrict building of tools to those required
for building rump kernels. This cuts down the NetBSD source tree required
by buildrump.sh to a fraction and addresses a size/download time concern
from a person packaging rump kernels for Linux.

No change to the normal case (tested with several -j32/-j64 builds).

reviewed by apb


Revision tags: yamt-pagecache-base8 yamt-pagecache-base7
# 1.165 02-Dec-2012 apb

Make tools/Makefile build host-mkdep, compat, and binstall in that order,
before installing any of them. It installs them in any order relative
to each other. The .WAIT points that used to be between these three
tools are replaced by .ORDER and dependencies.

This is needed in preparation for making tools/compat install
some files into TOOLDIR.


# 1.164 02-Dec-2012 apb

TOOLDIR must be valid, unless MKTOOLS=no.
Add tests and .error directives to enforce this.


# 1.163 02-Dec-2012 apb

If tools are not wanted, then set SUBDIR= empty instead of
defining all the subdir-related targets to do nothing. This way,
the targets are not invoked at all, instead of being invoked but
doing nothing.


# 1.162 02-Dec-2012 apb

remove trailing white space


# 1.161 27-Nov-2012 jkunz

According to the i.MX23 Reference Manual section 3.1, Page 3-3:
"The i.MX23 always operates in litle-endian mode."
So build elftosb and bootloader for this processor only for evbarm(-el).


# 1.160 26-Nov-2012 pooka

Build gmake iff we're going to need it.


# 1.159 15-Nov-2012 joerg

Move the build_install logic from lib/Makefile into share/mk and re-use
it for tools. The existing logic broke for the LLVM build with the
recent .ORDER changes in make.


# 1.158 15-Nov-2012 jkunz

Add elftosb tools to evbarm userland and toolchain.
Elftosb is used to create a digitaly signed "secure boot" file.
This sb file can be booted by the first stage boot loader found in
Freescale i.MX23 and i.MX28 application processors.

Copyright (c) 2004-2010 Freescale Semiconductor, Inc.


Revision tags: yamt-pagecache-base6
# 1.157 20-Sep-2012 pooka

fix EXTERNAL_TOOLCHAIN build


# 1.156 10-Aug-2012 joerg

branches: 1.156.2;
Decouple binutils build from HAVE_GCC. Merge common fragments of
HAVE_GCC and HAVE_PCC.


Revision tags: netbsd-6-0-6-RELEASE netbsd-6-1-5-RELEASE netbsd-6-1-4-RELEASE netbsd-6-0-5-RELEASE netbsd-6-1-3-RELEASE netbsd-6-0-4-RELEASE netbsd-6-1-2-RELEASE netbsd-6-0-3-RELEASE netbsd-6-1-1-RELEASE netbsd-6-0-2-RELEASE netbsd-6-1-RELEASE netbsd-6-1-RC4 netbsd-6-1-RC3 netbsd-6-1-RC2 netbsd-6-1-RC1 netbsd-6-0-1-RELEASE matt-nb6-plus-nbase netbsd-6-0-RELEASE netbsd-6-0-RC2 matt-nb6-plus-base netbsd-6-0-RC1 yamt-pagecache-base5 yamt-pagecache-base4 netbsd-6-base yamt-pagecache-base3 yamt-pagecache-base2
# 1.155 03-Nov-2011 joerg

Revert .WAIT removal and add comment why it is needed between *tblgen.


# 1.154 02-Nov-2011 njoly

Do not build tic more than once


# 1.153 02-Nov-2011 christos

move tic later, after all the tools it needs are built.


# 1.152 02-Nov-2011 yamt

tweak dependencies for tic, which needs nbperf, awk, and sed.


Revision tags: yamt-pagecache-base
# 1.151 01-Nov-2011 joerg

branches: 1.151.2;
Remove an unnecessary .WAIT between llvm-tblgen and clang-tblgen.


# 1.150 01-Nov-2011 joerg

Hook up nbperf into the normal tool build.


# 1.149 11-Oct-2011 joerg

Update LLVM/Clang snapshot to r141658. This primarily fixes a regression
preventing Qt4 from building.


# 1.148 16-Jul-2011 tsutsui

Build nbm68k-elf2aout as a host tool on m68k targets
for an ancient PROM bootloader.
Mostly taken from nbmips-elf2ecoff.


# 1.147 10-Jul-2011 mrg

install elf2ecoff for all mips64 systems. it's needed for stand.


# 1.146 21-Jun-2011 mrg

always build gmake if HAVE_GCC.
build gmp, mpfr and then mpc if HAVE_GCC >= 45.


Revision tags: cherry-xenmp-base
# 1.145 15-Apr-2011 elric

branches: 1.145.2;
Upgrade Heimdal to 1.5pre1 by switching the build from crypto/dist/heimdal
to crypto/external/bsd/heimdal. The latter was just imported as the head
of the Heimdal tree as of a few days ago.


# 1.144 17-Mar-2011 riz

.WAIT for makefs, because in most builds, it's the first target
which includes Makefile.nbincludes, whose beforedepend: has
some race condition I don't fully understand, and which has been
causing many (but not all!) -j16 builds on the autobuild cluster
to fail in tools since sometime between 201103061600 and 201103070900.

With the proper voodoo, I was able to get 8 builds in a row to fail
without this change, and 16 in a row to succeed with it.

XXX a proper fix likely involves reworking the beforedepend: target
of Makefile.nbincludes, but this should get the build cluster back up
to full functionality in the meanwhile.


Revision tags: bouyer-quota2-nbase
# 1.143 25-Feb-2011 phx

mkubootimage is certainly useful for sandpoint


Revision tags: bouyer-quota2-base
# 1.142 06-Feb-2011 joerg

Add LLVM and clang build system. It is enabled by MKLLVM=yes.
Upstream sources can be fetched by running "make checkout" in
src/external/bsd/llvm, they will be properly imported once the
integration and missing features are sorted out.


# 1.141 31-Jan-2011 matt

Make mkubootimage for evbmips and evbppc too.


Revision tags: matt-mips64-premerge-20101231
# 1.140 15-Aug-2010 mrg

branches: 1.140.2;
add new option to build/use tools/pigz for compressing sets. for now
USE_PIGZGZIP defaults to "no". (it depends upon local <pthread.h> and -lz.)

you can set it to "yes" on most modern platforms just fine.


# 1.139 18-Jun-2010 jmcneill

hook mkubootimage into the build


# 1.138 04-Jun-2010 jmmv

Bye bye atf-compile, you won't be missed.


# 1.137 02-Mar-2010 darran

DTrace: add libelf, libdwarf, libctf, and CTF tools to the toolchain,
built when MKDTRACE=yes.


# 1.136 20-Feb-2010 joerg

Build mandoc unconditional if man pages are desirable. All
compatibility issues are supposed to be sorted out.
Build groff conditionally on MKGROFF. It is currently the only component
that requires C++.


# 1.135 03-Feb-2010 roy

Store our generated files in CVS and remove nbperf from the toolchain.
This allows us to build consistent libs without an ever changing hash.


# 1.134 03-Feb-2010 roy

Userland now builds and uses terminfo instead of termcap.

OK: core@, jdc@


# 1.133 29-Dec-2009 he

To unbreak the build, temporarily remove the build of libelf here,
since no other part of the build depends on this yet.

Suggested as a temporary workaround by thorpej@


# 1.132 23-Dec-2009 mrg

rework the main SUBDIR list here as suggested by enami. put .WAIT on
the same line as the target that needs to wait, but before the target,
rather than on the previous line, which led to confusion and an error
being introduced in the previous change.


# 1.131 21-Dec-2009 mrg

move the build of pax before libelf. fixes my build of tools/libelf,
though i didn't look to see why libelf needs pax.


# 1.130 21-Dec-2009 thorpej

Add support for building libelf in a host-tool environment.

XXX Makefile.disklabel is really mis-named, but I'm not going to tackle
that problem right now.


Revision tags: matt-premerge-20091211
# 1.129 29-Oct-2009 christos

Give m4 its own .WAIT. Fixes build issue on NetBSD-5.


# 1.128 23-Oct-2009 joerg

Add MKMANDOC option to trigger building cat pages and HTML pages with
mdocml. Add a lintmanpages target for developers to check man pages
with the strictest settings of mandoc.


Revision tags: jym-xensuspend-nbase jym-xensuspend-base
# 1.127 25-Feb-2009 sketch

Disable grep host tool and unbreak NetBSD build until I can come up with a
clean fix.


# 1.126 25-Feb-2009 sketch

Make grep a host tool.


# 1.125 14-Feb-2009 abs

Convert more MACHINE tests to MACHINE_ARCH


Revision tags: netbsd-5-2-3-RELEASE netbsd-5-1-5-RELEASE netbsd-5-2-2-RELEASE netbsd-5-1-4-RELEASE netbsd-5-2-1-RELEASE netbsd-5-1-3-RELEASE netbsd-5-2-RELEASE netbsd-5-2-RC1 netbsd-5-1-2-RELEASE netbsd-5-1-1-RELEASE matt-nb5-mips64-premerge-20101231 matt-nb5-pq3-base netbsd-5-1-RELEASE netbsd-5-1-RC4 matt-nb5-mips64-k15 netbsd-5-1-RC3 netbsd-5-1-RC2 netbsd-5-1-RC1 netbsd-5-0-2-RELEASE matt-nb5-mips64-premerge-20091211 matt-nb5-mips64-u2-k2-k4-k7-k8-k9 matt-nb4-mips64-k7-u2a-k9b matt-nb5-mips64-u1-k1-k5 netbsd-5-0-1-RELEASE netbsd-5-0-RELEASE netbsd-5-0-RC4 netbsd-5-0-RC3 netbsd-5-0-RC2 netbsd-5-0-RC1 netbsd-5-base
# 1.124 25-Oct-2008 apb

branches: 1.124.4; 1.124.8; 1.124.12;
Build sed earlier, just after mktemp. Note that sed and mktemp do not
depend on each other, but the .WAIT is needed to get them both installed
before the remainder of the tools build.


# 1.123 25-Oct-2008 apb

Remove the local handling of the NOSUBDIR variable. We can rely
on bsd.subdir.mk's handling of the NOSUBDIR variable.

Also add some comment to .if/.else/.endif and .for/.endfor lines.


Revision tags: matt-mips64-base2
# 1.122 19-Oct-2008 apb

Add awk as a host tool.


# 1.121 13-Oct-2008 dyoung

Per uwe@'s suggestion, build nbgroff under wider circumstances.
I choose to build it if MKDOC != no or if MKHTML != no. It used
to be built only when MKMAN != no.


# 1.120 05-Oct-2008 apb

Add a .WAIT to ensure that sed is installed early, so that TOOL_SED can
be used during the build of other tools.


# 1.119 26-Sep-2008 apb

Build strfile both as a host tool and as an installed program:
* in games/fortune/strfile/Makefile, build strfile as a
regular program instead of as a host tool;
* add tools/strfile directory to build strfile as a host tool;
* in tools/Makefile, add strfile to SUBDIR list;
* in BSD.*.mk, define TOOL_STRFILE variable;
* in games/fortune/datfiles/Makefile, use TOOL_STRFILE when creating
databases at build time;
* in distrib/sets/lists/games/mi, mention usr/games/strfile.


Revision tags: wrstuden-revivesa-base-3 wrstuden-revivesa-base-2
# 1.118 24-Aug-2008 gmcgarry

Build pcc as host tool if requested.


Revision tags: wrstuden-revivesa-base-1 yamt-pf42-base4 yamt-pf42-base3 wrstuden-revivesa-base
# 1.117 26-May-2008 he

Remove references to bebox-elf2pef and bebox-mkbootimage, now that they
have been integrated in common powerpc tools and subsequently removed.


Revision tags: hpcarm-cleanup-nbase yamt-pf42-base2
# 1.116 30-Apr-2008 garbled

branches: 1.116.2;
Build powerpc-mkbootimage for rs6000 and bebox too.


# 1.115 30-Apr-2008 garbled

Convert prep to use the new unified mkbootimage rather than it's own. This
mkbootimage can be shared by prep, rs6000, and bebox.

TODO: Convert bebox to use this. Needs someone to test.


Revision tags: yamt-pf42-baseX yamt-pf42-base keiichi-mipv6-nbase keiichi-mipv6-base matt-armv6-nbase cube-autoconf-base matt-armv6-base hpcarm-cleanup-base
# 1.114 12-Nov-2007 jmmv

branches: 1.114.6;
Add the atf host tools

This adds reachover Makefiles to build the atf tools required during a
cross-build.


Revision tags: matt-armv6-prevmlocking matt-mips64-base
# 1.113 14-Jan-2007 apb

branches: 1.113.4;
Build join(1) as a host tool.


# 1.112 20-Dec-2006 agc

A commit too far - don't try to build veriexecgen for just now


# 1.111 19-Dec-2006 agc

Build veriexecgen as a host tool


Revision tags: netbsd-4-0-1-RELEASE wrstuden-fixsa-newbase wrstuden-fixsa-base-1 netbsd-4-0-RELEASE netbsd-4-0-RC5 netbsd-4-0-RC4 netbsd-4-0-RC3 netbsd-4-0-RC2 netbsd-4-0-RC1 wrstuden-fixsa-base netbsd-4-base
# 1.110 22-Nov-2006 riz

Make sys/exec_elf.h and machine/elf_machdep.h available to host
tools, and allow paxctl to use them when compiled as a host
tool. This fixes the build on MacOS X (and perhaps other platforms)


# 1.109 17-Nov-2006 dsl

Add some notes about the bogosity of some of the .WAIT stuff.
Remove a 'never had a sane effect' .WAIT from a .ORDER line.
Don't add a (probably incorrect) dependency for 'make install' since
it contradicts a .ORDER line elsewhere when .ORDER applies recursively
to child nodes.
I also think that the stuff that tries to add dependencies between
the stuff that bsd.subdir.mk generates does not DTRT at all.
I suspect that build.sh builds things in an order that avoids issues here.


# 1.108 10-Nov-2006 christos

Add paxctl as a tool.


# 1.107 08-Oct-2006 apb

If PREVIOUSTOOLDIR was empty, then don't complain that it has moved.

Patch from Jukka Salmi in PR 33095.


Revision tags: abandoned-netbsd-4-base
# 1.106 03-Aug-2006 freza

* Fix parallel build race condition between real{all,depend} and
<bsd.subdir.mk> targets.
* No need to pass TOOLDIR to recursive cleandir in real{all,depend}.

With help from he@.
OK by tron@.


# 1.105 03-Aug-2006 tron

Another attempt to fix the race in parallel builds.


# 1.104 19-Jul-2006 tron

Invoking "make cleandir" with "PREVIOUSTOOLDIR" set to the previous
location will not stop recursive "make cleandir" calls. Pass the new
location instead.


# 1.103 18-Jul-2006 lukem

gettext should .WAIT for autoconf.
(The former still doesn't seem to work on read-only source; separate issue)


# 1.102 17-Jul-2006 tron

Avoid getting into a loop of "make cleandir" instances if the location
tool directory has been changed or wasn't recorded before.


# 1.101 17-Jul-2006 tron

Remove ".WAIT" again because it doesn't fix the problem.


# 1.100 12-Jul-2006 tron

Add an extra ".WAIT" to the "realall realdepend" target to make sure
it finished cleaning the tools directory in case of tool directory
mismatch before we try to rebuild the tools.


# 1.99 22-Jun-2006 mrg

only build lint and lint2 if MKLINT != "no".


# 1.98 18-Jun-2006 gdamore

Make TOOL_SED, to allow using our own sed in cases where the host's version
is busted in some way.

The TOOL_SED doesn't use TIOCGWINSIZE, and has some changes to include
nbtool_config.h in a cross build environment.

Combined with some other changes (not yet committed), this allows cross
compiling m68k code on Solaris 10/amd64.


# 1.97 02-Jun-2006 mrg

remove support for building (with) GCC 2.95. also:
- always install <stdbool.h>
- don't generate a fake one for vax / gettext.


# 1.96 11-May-2006 mrg

check HAVE_GCC == 4 not USE_GCC4.


# 1.95 01-Apr-2006 christos

Don't barf if USE_GCC4 is not defined.


# 1.94 29-Mar-2006 jmc

Turn on gmake builds if GCC4 is enabled (and force it's install before continuing


# 1.93 03-Feb-2006 dsl

The realall and realdepend bit that regenerates tools needs to be marked
.MAKE otherwise the 'make' it runs has its own list of jobs instead of
using the jobserver of the enclosing make.


# 1.92 04-Oct-2005 jmc

Make the tools using Makefile.disklabel wait so they don't stomp each other.
Also for now add a dependency to Makefile.disklabel so this doesn't run
3 times. (XXX this really should just be done differently)


# 1.91 12-Jun-2005 dyoung

.include Makefile.disklabel in installboot, so that the
nbinclude/ header files will be installed. Build installboot after
pax, since Makefile.disklabel uses pax to install the headers.


# 1.90 12-Jun-2005 dyoung

Make disklabel(8) and fdisk(8) into "host tools " last step: build
and install ${TOOLDIR}/bin/${MACHINE_GNU_PLATFORM}-disklabel,
${TOOLDIR}/bin/${MACHINE_GNU_PLATFORM}-fdisk by "reaching over" to
the sources in ${NETBSDSRCDIR}/sbin/{disklabel fdisk}/.

To avoid clashes with a build-host's header files, especially on
*BSD, the host-tools versions of fdisk and disklabel search for
#includes such as disklabel.h, disklabel_acorn.h, disklabel_gpt.h,
and bootinfo.h in a new #includes namespace, nbinclude/. That is,
they #include <nbinclude/sys/disklabel.h>, <nbinclude/machine/disklabel.h>,
<nbinclude/sparc64/disklabel.h>, instead of <sys/disklabel.h> and
such. I have also updated the system headers to #include from
nbinclude/-space when HAVE_NBTOOL_CONFIG_H is #defined.


# 1.89 30-May-2005 thorpej

Build genassym as a host tool. Part of PR toolchain/30350


Revision tags: netbsd-3-1-1-RELEASE netbsd-3-0-3-RELEASE netbsd-3-1-RELEASE netbsd-3-0-2-RELEASE netbsd-3-1-RC4 netbsd-3-1-RC3 netbsd-3-1-RC2 netbsd-3-1-RC1 netbsd-3-0-1-RELEASE netbsd-3-0-RELEASE netbsd-3-0-RC6 netbsd-3-0-RC5 netbsd-3-0-RC4 netbsd-3-0-RC3 netbsd-3-0-RC2 netbsd-3-0-RC1 netbsd-3-base
# 1.88 27-Jan-2005 is

We don't need aout2bb any longer.


# 1.87 09-Jan-2005 mycroft

Add some quotes to prevent a syntax error.


# 1.86 28-Nov-2004 jmc

Convert mkboot into a full cross tool. Last hurdle for hp300 to building on
non NetBSD/bsd hosts.


# 1.85 28-Nov-2004 jmc

Convert remaining host tools for amiga to correct cross tools. Now allows
complete amiga builds on non netbsd/bsd hosts


# 1.84 25-Nov-2004 jmc

Convert bebox's remaining host tools over to cross tools scheme. Builds to sets
w/o error now.


# 1.83 28-Jul-2004 skrll

Build hp700's mkboot as a host tool called nbhp700-mkboot. mkboot also
gets built and installed in a hp700 distribution.

TODO

- merge with hp300

- pick a preferred method for dealing with the elf headers.
hp700-mkboot and prep-mkbootimage (bintuils) vs mips-elf2ecoff and
tools/installboot


# 1.82 08-Jun-2004 abs

Add sparkcrc (used to generate checksums for acorn32 bootloader sparkive)
as a host tool.


Revision tags: netbsd-2-0-base
# 1.81 03-Jan-2004 lukem

branches: 1.81.2;
Consistently check ${TOOLCHAIN_MISSING} against "no".


# 1.80 11-Dec-2003 matt

Fix typo.


# 1.79 11-Dec-2003 matt

Add macppc-fixcoff tool.


# 1.78 10-Dec-2003 lukem

Use (cd ${.CURDIR} && ${MAKE} cleandir) instead of ${MAKE} cleandir
Suggested by Ross Harvey.


# 1.77 04-Dec-2003 mrg

always build tools/binutils now.


# 1.76 08-Nov-2003 sekiya

Build sgivol as a host tool when compiling for sgimips.


# 1.75 27-Oct-2003 lukem

add mknod as a host tool


# 1.74 26-Oct-2003 cl

add gdb53 as a host tool for use as a crossgdb
replaces gdb50 from toolchain on archs which use gcc3


# 1.73 21-Oct-2003 lukem

Rework how MAKEVERBOSE operates:

* Don't bother prefixing commands with a line of ${_MKCMD}\
and instead rely upon "make -s". This is less intrusive on
all the Makefiles than the former. Idea from David Laight.

* Rename the variables use to print messages. The scheme now is:
_MKMSG_FOO Run _MKMSG 'foo'
_MKTARGET_FOO Run _MKMSG_FOO ${.TARGET}
From discussion with Alistair Crooks.


# 1.72 19-Oct-2003 matt

Add host tool version of ncdcs


# 1.71 18-Oct-2003 lukem

MAKEVERBOSE support


# 1.70 25-Jul-2003 mrg

- build "binutils" and "gcc" separately if USE_TOOLS_TOOLCHAIN is not set
to "yes".
- adjust dbsym/mdsetimage to look in the correct place for libbfd.
- new mknative-gcc based in toolchain/mknative


# 1.69 24-Jul-2003 tron

Add missing "cleandir" rule.


# 1.68 20-Jul-2003 lukem

add stat(1) as a host tool


# 1.67 16-Jul-2003 lukem

also do the MKTOOLS and PREVIOUSTOOLDIR checks for "realdepend"


# 1.66 16-Jul-2003 lukem

* If a `PREVIOUSTOOLDIR' file doesn't exist, or its contents are not
the same as "$TOOLDIR", run "make cleandir" here first.
This should prevent various problems where $TOOLDIR is encoded into the
build process for various tools (lint, groff, texinfo, toolchain),
$TOOLDIR changes, and various programs don't get rebuilt correctly.
Should fix PR [toolchain/21988].

* Clean up how the `${MKTOOLS} == no' check is performed.

* Remove "cleantools"; it made a big assumption about the location of
TOOLDIR that won't be correct in many cases.


# 1.65 26-Jun-2003 tshiozak

Citrus iconv support(3)
add host tools : mkcsmapper and mkesdb
mkcsmapper - coded character set mapping table compiler
mkesdb - encoding scheme database compiler


# 1.64 18-May-2003 lukem

Add db(1) as a host tool


# 1.63 25-Mar-2003 pooka

build file(1) as a host tool (for compiling magic files)


# 1.62 07-Mar-2003 thorpej

Make hexdump a host tool.


Revision tags: fvdl_fs64_base
# 1.61 21-Dec-2002 lukem

enable sunlabel...


# 1.60 19-Sep-2002 thorpej

Change the TOOLCHAIN_MISSING from == "no" to != "yes", to be consistent
with the other tests of this variable.


# 1.59 19-Sep-2002 matt

Since TOOLCHAIN_MISSING is defined in bsd.own.mk, it can never be undefined.
Instead, make sure the value of it is "no"


# 1.58 17-Sep-2002 thorpej

* Eliminate the USE_NEW_TOOLCHAIN variable. Instead, split it into
two variables:

TOOLCHAIN_MISSING -- set to "yes" on platforms for which there is
no working in-tree toolchain (hppa, ns32k, sh5, x86_64).

EXTERNAL_TOOLCHAIN -- if defined by the user, points to the root of
an external toolchain (e.g. /usr/local/gnu). This enables the cross-build
framework even for TOOLCHAIN_MISSING platforms.

If TOOLCHAIN_MISSING is set to "yes", MKGDB, MKBFD, and MKGCC are all
unconditionally set to "no", since the bits are not there to build.

If EXTERNAL_TOOLCHAIN is set, MKGCC is unconditionally set to "no",
since the external toolchain's compiler is not in-sync with the
in-tree compiler support components (e.g. libgcc).

* Set MACHINE_CPU much earlier in bsd.own.mk, so that more tests in
that file can use it.


# 1.57 14-Sep-2002 chris

We need binstall to be installed, before attempting to use it to install mktemp.


# 1.56 14-Sep-2002 thorpej

Descend into mktemp.


# 1.55 12-Jun-2002 veego

The last commit wasn't tested. Add a missing \


# 1.54 12-Jun-2002 thorpej

Don't build toolchain bits for hppa, for now.


# 1.53 10-Jun-2002 mason

Add cat(1) as a host tool.


# 1.52 05-Jun-2002 thorpej

Don't try to build toolchain bits for ns32k.


# 1.51 28-May-2002 bjh21

Add fgen as a host tool, used for sys/arch/sparc/bootblk.


Revision tags: netbsd-1-6-base
# 1.50 18-May-2002 lukem

branches: 1.50.2;
gratuitious comment addition


# 1.49 07-May-2002 lukem

remove now-unnecessary sparc-installboot


# 1.48 03-May-2002 kleink

On prep, descend into prep-mkbootimage.


# 1.47 06-Apr-2002 bjh21

vax-installboot has been deleted, so don't recurse into it.


# 1.46 03-Apr-2002 lukem

enable installboot


# 1.45 01-Apr-2002 thorpej

Nuke NO_DBSYM; dbsym now uses BFD for everything.


# 1.44 01-Apr-2002 bjh21

On second thoughts, don't make mktemp a host tool. It's only used once, for
creating a temporary directory for maketars, and mkdir can do that safely
enough.


# 1.43 31-Mar-2002 bjh21

Add mktemp as a host tool.


# 1.42 31-Mar-2002 bjh21

Add cksum as a host tool.


# 1.41 29-Mar-2002 matt

Drop into vax-installboot on VAX machines.


# 1.40 07-Mar-2002 tv

Rework recursion to use the original logic again, in the structure cleaned
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".


# 1.39 07-Mar-2002 tv

Don't build groff if MKMAN=no. (groff does not build properly on some
platforms because of its completely insane Make structure; this allows it
to be disabled in a sane way.)


# 1.38 26-Feb-2002 tv

Add gettext to tools.

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.)


# 1.37 23-Feb-2002 gmcgarry

Add elf2ecoff as a build tool for mips ports.


# 1.36 18-Feb-2002 pk

* Add comments on all the directory build/install ordering goo.
* 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.


# 1.35 11-Feb-2002 pk

Revert part of previous; we need the install targets.


# 1.34 10-Feb-2002 pk

Use .ORDER targets to express the dependencies on subdir runs. This makes
the resulting tree complexity O(N) (N=# of subdirs), and it also makes it
easier to comprehend the Makefile logic.


# 1.33 08-Feb-2002 pk

Make sure to not go off installing in a directory before it's fully made.


# 1.32 31-Jan-2002 tv

Roll in fixes to permit cross-compiling from non-NetBSD hosts. This
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.


# 1.31 29-Jan-2002 tv

Make almost all tools compile and run properly on non-NetBSD hosts. (In
particular, most tools now run correctly on Solaris 7.)


# 1.30 25-Jan-2002 lukem

build pax as a host tool, for -N and to work around borken vendor paxes


# 1.29 10-Jan-2002 tv

Move host-mkdep to its own directory. Create and install it before
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.


# 1.28 10-Jan-2002 lukem

revert previous, and reenable tools/makefs now that it works on
netbsd-current and netbsd-1-5


# 1.27 09-Jan-2002 tv

Disable makefs in src/tools for the moment; it's very dependent on -current
NetBSD headers and sources right now. (Temporary workaround for PR 15175.)


# 1.26 05-Jan-2002 mrg

build zic as a host tool.


# 1.25 05-Jan-2002 mrg

build makefs, and, sparc-installboot if sparc||sparc64


# 1.24 31-Dec-2001 thorpej

We can't currently build a toolchain for x86-64 here, so don't
attempt to do so.


# 1.23 29-Dec-2001 wiz

Typo fix in error message.


# 1.22 11-Dec-2001 tv

Add the framework for autoconf-based src/tools/compat structure. This will
(after it is more fleshed out) allow the host tools to work more cleanly
on non-NetBSD hosts.


# 1.21 07-Dec-2001 jmc

Add pwd_mkdb as a toolchain bit for builds


# 1.20 29-Nov-2001 thorpej

Build makewhatis as a host tool, since it is used at the end of
the build.

XXX Needs a -lz hostlib.


# 1.19 22-Nov-2001 jmc

Oops. typo which can break things for non-new toolchain builds if MKTOOLS isn't
set


# 1.18 22-Nov-2001 jmc

Check for USETOOLS!=yes in addition to MKTOOLS==no to generate the empty rule
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


# 1.17 13-Nov-2001 tv

Re-add MKTOOLS as a "yes"/"no" only variable, which prevents recursion on "no"
into the src/tools subdirs on all/depend/dependall/install. Other recursive
targets are not affected.


# 1.16 12-Nov-2001 tv

Major overhaul of src/tools and host toolchain. Summary of changes:

* 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.


# 1.15 09-Nov-2001 thorpej

Build the cross-dbsym.


# 1.14 02-Nov-2001 tv

* Always use the makewrapper when starting a build phase.

* 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.


# 1.13 31-Oct-2001 tv

Don't actually delete the default tooldir on "cleandir"; else we'll nuke
the nbmake that is probably currently running.

Just leave the "cleantools" manual target as a shortcut for the user.


# 1.12 31-Oct-2001 tv

* Create a variable HOST_OSTYPE that represents the host build environment,
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.


# 1.11 31-Oct-2001 tv

* Always descend into "tools" regardless of USETOOLS setting. Instead,
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.


# 1.10 25-Oct-2001 thorpej

Add asn1_compile as a host tool.


# 1.9 21-Oct-2001 jmc

Pull in mdsetimage to the tools builds. (XXX - using libbfd here would
probably be preferrable long term).


# 1.8 20-Oct-2001 jmc

Add mklocale to cross-tools and turn it back on for the builds.


# 1.7 13-Oct-2001 jmc

Add crunchgen, msgc and menuc


# 1.6 09-Oct-2001 enami

Make mtree a host tool and use it when appropriate.


# 1.5 04-Oct-2001 tv

Recurse properly; just add "build" to TARGETS (fixes reported problem where
"make clean" doesn't work at the src/tools level).


# 1.4 22-Sep-2001 tv

Work around "make obj" lossage in tools/. Dunno why this is happening
just yet; will investigate this evening.


# 1.3 22-Sep-2001 tv

Add lorder to TOOLDIR host tools.

Only descend into directories if USE_NEW_TOOLCHAIN is set (allows top level
Makefile to use "-m ${.CURDIR}/share/mk" to get the "correct" <bsd.own.mk>
when descending into src/tools/Makefile).


# 1.2 21-Sep-2001 tv

- Create a real cpp binary.
- Set CC properly in environment for mkdep and lint.
- Add compile_et to TOOLDIR host tools.


# 1.1 14-Aug-2001 tv

Bootstrap toolchain framework, first pass.


Revision tags: pgoyette-localcount-20161104 localcount-20160914 pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base
# 1.186 24-Jan-2016 christos

move cvslatest last


# 1.185 24-Jan-2016 christos

Tool version


# 1.184 19-Dec-2015 christos

move sortinfo after pax


# 1.183 18-Dec-2015 christos

Add sortinfo


# 1.182 23-Jul-2015 mrg

remove the xfree86 reachover makefiles and the vast majority of
the support in the rest of the source tree.

X11 sets could use some cleaning up perhaps (just deletion, as
we've never really marked the old X11R6 as obsolete for native
xorg using platforms so far either.)


# 1.181 24-Jun-2015 matt

Support building the xorg X11 libraries under MKCOMPAT.
Add XORG_MACHINE_ARCH to compat's bsd.*.mk
Turn xorg makekeys and makestrs into real host tools which are installed into
${TOOLSDIR}


# 1.180 07-Jan-2015 joerg

Reorganise the way xorg is build. Move build of makestrs into src/tools
as it is needed for the "includes" phase. Make it symlink all necessary
headers in obj to decouple it from "includes" itself, breaking the
dependency cycle. Move the do-x11 target between do-lib and do-build, so
that libraries can get the benefit of build_install (correct .WAIT
behavior) and everything else like "includes" uses the plain SUBDIR
entry in external/mit.


# 1.179 05-Dec-2014 pooka

build genassym for TOOLS_BUILDRUMP


# 1.178 30-Sep-2014 christos

add gpt


Revision tags: netbsd-7-0-2-RELEASE netbsd-7-nhusb-base netbsd-7-0-1-RELEASE netbsd-7-0-RELEASE netbsd-7-0-RC3 netbsd-7-0-RC2 netbsd-7-0-RC1 netbsd-7-base tls-maxphys-base
# 1.177 10-Aug-2014 matt

Changes to existing files to enable building AARCH64 userland.
evbarm64-el
This is clang only. While gcc4.8 supports aarch64, no netbsd support has
been written for aarch64 with gcc4.8.


Revision tags: tls-earlyentropy-base
# 1.176 15-Jul-2014 christos

descend to vgrind


# 1.175 15-Jun-2014 pooka

Add cat, rpcgen and stat to TOOLS_BUILDRUMP. They're useful for
installing headers for the app stack cases that need it done, and small
enough to not matter for the kernel-only cases that don't.


# 1.174 14-Jun-2014 mrg

remove remaining makefile support for GCC < 45 that i found.


Revision tags: yamt-pagecache-base9
# 1.173 03-Apr-2014 riastradh

branches: 1.173.2;
ctfconvert/ctfmerge need libdwarf &c., so build them if MKCTF=yes.


Revision tags: riastradh-xf86-video-intel-2-7-1-pre-2-21-15
# 1.172 25-Mar-2014 ozaki-r

Add MKCTF

This variable separates CTF stuffs from MKDTRACE; we can build DTrace
solely without building and using them. This allows us to use DTrace
even if CTF stuffs have problems (actually they have now).

This variable would be merged into MKDTRACE eventually, once CTF stuffs
work correctly again.


Revision tags: riastradh-drm2-base3
# 1.171 24-Feb-2014 skrll

Rename NetBSD/hp700 to NetBSD/hppa.

Unfortunately our VCS isn't very helpful here.


# 1.170 02-Sep-2013 joerg

Update LLVM/Clang snapshot to r189662. This includes many improvements
to the new SLP vectorizer, fast codegen support for PPC and using
terminfo for the color sequences. In addition, add (optional) build
infrastructure for lld to allow easier testing. This is controlled by
MKLLD.


Revision tags: riastradh-drm2-base2 riastradh-drm2-base1
# 1.169 19-Jul-2013 matt

Even if we aren't making a crossgdb still make the object dir for it.


Revision tags: riastradh-drm2-base agc-symver-base
# 1.168 27-Feb-2013 joerg

branches: 1.168.4;
Add infrastructure for building MCLinker.


# 1.167 05-Feb-2013 matt

There are other little endian arm machine_arches other than "arm"
Use MACHINE_CPU and TARGET_ENDIANNESS instead of MACHINE_ARCH


# 1.166 31-Jan-2013 pooka

Use TOOLS_BUILDRUMP=yes to restrict building of tools to those required
for building rump kernels. This cuts down the NetBSD source tree required
by buildrump.sh to a fraction and addresses a size/download time concern
from a person packaging rump kernels for Linux.

No change to the normal case (tested with several -j32/-j64 builds).

reviewed by apb


Revision tags: yamt-pagecache-base8 yamt-pagecache-base7
# 1.165 02-Dec-2012 apb

Make tools/Makefile build host-mkdep, compat, and binstall in that order,
before installing any of them. It installs them in any order relative
to each other. The .WAIT points that used to be between these three
tools are replaced by .ORDER and dependencies.

This is needed in preparation for making tools/compat install
some files into TOOLDIR.


# 1.164 02-Dec-2012 apb

TOOLDIR must be valid, unless MKTOOLS=no.
Add tests and .error directives to enforce this.


# 1.163 02-Dec-2012 apb

If tools are not wanted, then set SUBDIR= empty instead of
defining all the subdir-related targets to do nothing. This way,
the targets are not invoked at all, instead of being invoked but
doing nothing.


# 1.162 02-Dec-2012 apb

remove trailing white space


# 1.161 27-Nov-2012 jkunz

According to the i.MX23 Reference Manual section 3.1, Page 3-3:
"The i.MX23 always operates in litle-endian mode."
So build elftosb and bootloader for this processor only for evbarm(-el).


# 1.160 26-Nov-2012 pooka

Build gmake iff we're going to need it.


# 1.159 15-Nov-2012 joerg

Move the build_install logic from lib/Makefile into share/mk and re-use
it for tools. The existing logic broke for the LLVM build with the
recent .ORDER changes in make.


# 1.158 15-Nov-2012 jkunz

Add elftosb tools to evbarm userland and toolchain.
Elftosb is used to create a digitaly signed "secure boot" file.
This sb file can be booted by the first stage boot loader found in
Freescale i.MX23 and i.MX28 application processors.

Copyright (c) 2004-2010 Freescale Semiconductor, Inc.


Revision tags: yamt-pagecache-base6
# 1.157 20-Sep-2012 pooka

fix EXTERNAL_TOOLCHAIN build


# 1.156 10-Aug-2012 joerg

branches: 1.156.2;
Decouple binutils build from HAVE_GCC. Merge common fragments of
HAVE_GCC and HAVE_PCC.


Revision tags: netbsd-6-0-6-RELEASE netbsd-6-1-5-RELEASE netbsd-6-1-4-RELEASE netbsd-6-0-5-RELEASE netbsd-6-1-3-RELEASE netbsd-6-0-4-RELEASE netbsd-6-1-2-RELEASE netbsd-6-0-3-RELEASE netbsd-6-1-1-RELEASE netbsd-6-0-2-RELEASE netbsd-6-1-RELEASE netbsd-6-1-RC4 netbsd-6-1-RC3 netbsd-6-1-RC2 netbsd-6-1-RC1 netbsd-6-0-1-RELEASE matt-nb6-plus-nbase netbsd-6-0-RELEASE netbsd-6-0-RC2 matt-nb6-plus-base netbsd-6-0-RC1 yamt-pagecache-base5 yamt-pagecache-base4 netbsd-6-base yamt-pagecache-base3 yamt-pagecache-base2
# 1.155 03-Nov-2011 joerg

Revert .WAIT removal and add comment why it is needed between *tblgen.


# 1.154 02-Nov-2011 njoly

Do not build tic more than once


# 1.153 02-Nov-2011 christos

move tic later, after all the tools it needs are built.


# 1.152 02-Nov-2011 yamt

tweak dependencies for tic, which needs nbperf, awk, and sed.


Revision tags: yamt-pagecache-base
# 1.151 01-Nov-2011 joerg

branches: 1.151.2;
Remove an unnecessary .WAIT between llvm-tblgen and clang-tblgen.


# 1.150 01-Nov-2011 joerg

Hook up nbperf into the normal tool build.


# 1.149 11-Oct-2011 joerg

Update LLVM/Clang snapshot to r141658. This primarily fixes a regression
preventing Qt4 from building.


# 1.148 16-Jul-2011 tsutsui

Build nbm68k-elf2aout as a host tool on m68k targets
for an ancient PROM bootloader.
Mostly taken from nbmips-elf2ecoff.


# 1.147 10-Jul-2011 mrg

install elf2ecoff for all mips64 systems. it's needed for stand.


# 1.146 21-Jun-2011 mrg

always build gmake if HAVE_GCC.
build gmp, mpfr and then mpc if HAVE_GCC >= 45.


Revision tags: cherry-xenmp-base
# 1.145 15-Apr-2011 elric

branches: 1.145.2;
Upgrade Heimdal to 1.5pre1 by switching the build from crypto/dist/heimdal
to crypto/external/bsd/heimdal. The latter was just imported as the head
of the Heimdal tree as of a few days ago.


# 1.144 17-Mar-2011 riz

.WAIT for makefs, because in most builds, it's the first target
which includes Makefile.nbincludes, whose beforedepend: has
some race condition I don't fully understand, and which has been
causing many (but not all!) -j16 builds on the autobuild cluster
to fail in tools since sometime between 201103061600 and 201103070900.

With the proper voodoo, I was able to get 8 builds in a row to fail
without this change, and 16 in a row to succeed with it.

XXX a proper fix likely involves reworking the beforedepend: target
of Makefile.nbincludes, but this should get the build cluster back up
to full functionality in the meanwhile.


Revision tags: bouyer-quota2-nbase
# 1.143 25-Feb-2011 phx

mkubootimage is certainly useful for sandpoint


Revision tags: bouyer-quota2-base
# 1.142 06-Feb-2011 joerg

Add LLVM and clang build system. It is enabled by MKLLVM=yes.
Upstream sources can be fetched by running "make checkout" in
src/external/bsd/llvm, they will be properly imported once the
integration and missing features are sorted out.


# 1.141 31-Jan-2011 matt

Make mkubootimage for evbmips and evbppc too.


Revision tags: matt-mips64-premerge-20101231
# 1.140 15-Aug-2010 mrg

branches: 1.140.2;
add new option to build/use tools/pigz for compressing sets. for now
USE_PIGZGZIP defaults to "no". (it depends upon local <pthread.h> and -lz.)

you can set it to "yes" on most modern platforms just fine.


# 1.139 18-Jun-2010 jmcneill

hook mkubootimage into the build


# 1.138 04-Jun-2010 jmmv

Bye bye atf-compile, you won't be missed.


# 1.137 02-Mar-2010 darran

DTrace: add libelf, libdwarf, libctf, and CTF tools to the toolchain,
built when MKDTRACE=yes.


# 1.136 20-Feb-2010 joerg

Build mandoc unconditional if man pages are desirable. All
compatibility issues are supposed to be sorted out.
Build groff conditionally on MKGROFF. It is currently the only component
that requires C++.


# 1.135 03-Feb-2010 roy

Store our generated files in CVS and remove nbperf from the toolchain.
This allows us to build consistent libs without an ever changing hash.


# 1.134 03-Feb-2010 roy

Userland now builds and uses terminfo instead of termcap.

OK: core@, jdc@


# 1.133 29-Dec-2009 he

To unbreak the build, temporarily remove the build of libelf here,
since no other part of the build depends on this yet.

Suggested as a temporary workaround by thorpej@


# 1.132 23-Dec-2009 mrg

rework the main SUBDIR list here as suggested by enami. put .WAIT on
the same line as the target that needs to wait, but before the target,
rather than on the previous line, which led to confusion and an error
being introduced in the previous change.


# 1.131 21-Dec-2009 mrg

move the build of pax before libelf. fixes my build of tools/libelf,
though i didn't look to see why libelf needs pax.


# 1.130 21-Dec-2009 thorpej

Add support for building libelf in a host-tool environment.

XXX Makefile.disklabel is really mis-named, but I'm not going to tackle
that problem right now.


Revision tags: matt-premerge-20091211
# 1.129 29-Oct-2009 christos

Give m4 its own .WAIT. Fixes build issue on NetBSD-5.


# 1.128 23-Oct-2009 joerg

Add MKMANDOC option to trigger building cat pages and HTML pages with
mdocml. Add a lintmanpages target for developers to check man pages
with the strictest settings of mandoc.


Revision tags: jym-xensuspend-nbase jym-xensuspend-base
# 1.127 25-Feb-2009 sketch

Disable grep host tool and unbreak NetBSD build until I can come up with a
clean fix.


# 1.126 25-Feb-2009 sketch

Make grep a host tool.


# 1.125 14-Feb-2009 abs

Convert more MACHINE tests to MACHINE_ARCH


Revision tags: netbsd-5-2-3-RELEASE netbsd-5-1-5-RELEASE netbsd-5-2-2-RELEASE netbsd-5-1-4-RELEASE netbsd-5-2-1-RELEASE netbsd-5-1-3-RELEASE netbsd-5-2-RELEASE netbsd-5-2-RC1 netbsd-5-1-2-RELEASE netbsd-5-1-1-RELEASE matt-nb5-mips64-premerge-20101231 matt-nb5-pq3-base netbsd-5-1-RELEASE netbsd-5-1-RC4 matt-nb5-mips64-k15 netbsd-5-1-RC3 netbsd-5-1-RC2 netbsd-5-1-RC1 netbsd-5-0-2-RELEASE matt-nb5-mips64-premerge-20091211 matt-nb5-mips64-u2-k2-k4-k7-k8-k9 matt-nb4-mips64-k7-u2a-k9b matt-nb5-mips64-u1-k1-k5 netbsd-5-0-1-RELEASE netbsd-5-0-RELEASE netbsd-5-0-RC4 netbsd-5-0-RC3 netbsd-5-0-RC2 netbsd-5-0-RC1 netbsd-5-base
# 1.124 25-Oct-2008 apb

branches: 1.124.4; 1.124.8; 1.124.12;
Build sed earlier, just after mktemp. Note that sed and mktemp do not
depend on each other, but the .WAIT is needed to get them both installed
before the remainder of the tools build.


# 1.123 25-Oct-2008 apb

Remove the local handling of the NOSUBDIR variable. We can rely
on bsd.subdir.mk's handling of the NOSUBDIR variable.

Also add some comment to .if/.else/.endif and .for/.endfor lines.


Revision tags: matt-mips64-base2
# 1.122 19-Oct-2008 apb

Add awk as a host tool.


# 1.121 13-Oct-2008 dyoung

Per uwe@'s suggestion, build nbgroff under wider circumstances.
I choose to build it if MKDOC != no or if MKHTML != no. It used
to be built only when MKMAN != no.


# 1.120 05-Oct-2008 apb

Add a .WAIT to ensure that sed is installed early, so that TOOL_SED can
be used during the build of other tools.


# 1.119 26-Sep-2008 apb

Build strfile both as a host tool and as an installed program:
* in games/fortune/strfile/Makefile, build strfile as a
regular program instead of as a host tool;
* add tools/strfile directory to build strfile as a host tool;
* in tools/Makefile, add strfile to SUBDIR list;
* in BSD.*.mk, define TOOL_STRFILE variable;
* in games/fortune/datfiles/Makefile, use TOOL_STRFILE when creating
databases at build time;
* in distrib/sets/lists/games/mi, mention usr/games/strfile.


Revision tags: wrstuden-revivesa-base-3 wrstuden-revivesa-base-2
# 1.118 24-Aug-2008 gmcgarry

Build pcc as host tool if requested.


Revision tags: wrstuden-revivesa-base-1 yamt-pf42-base4 yamt-pf42-base3 wrstuden-revivesa-base
# 1.117 26-May-2008 he

Remove references to bebox-elf2pef and bebox-mkbootimage, now that they
have been integrated in common powerpc tools and subsequently removed.


Revision tags: hpcarm-cleanup-nbase yamt-pf42-base2
# 1.116 30-Apr-2008 garbled

branches: 1.116.2;
Build powerpc-mkbootimage for rs6000 and bebox too.


# 1.115 30-Apr-2008 garbled

Convert prep to use the new unified mkbootimage rather than it's own. This
mkbootimage can be shared by prep, rs6000, and bebox.

TODO: Convert bebox to use this. Needs someone to test.


Revision tags: yamt-pf42-baseX yamt-pf42-base keiichi-mipv6-nbase keiichi-mipv6-base matt-armv6-nbase cube-autoconf-base matt-armv6-base hpcarm-cleanup-base
# 1.114 12-Nov-2007 jmmv

branches: 1.114.6;
Add the atf host tools

This adds reachover Makefiles to build the atf tools required during a
cross-build.


Revision tags: matt-armv6-prevmlocking matt-mips64-base
# 1.113 14-Jan-2007 apb

branches: 1.113.4;
Build join(1) as a host tool.


# 1.112 20-Dec-2006 agc

A commit too far - don't try to build veriexecgen for just now


# 1.111 19-Dec-2006 agc

Build veriexecgen as a host tool


Revision tags: netbsd-4-0-1-RELEASE wrstuden-fixsa-newbase wrstuden-fixsa-base-1 netbsd-4-0-RELEASE netbsd-4-0-RC5 netbsd-4-0-RC4 netbsd-4-0-RC3 netbsd-4-0-RC2 netbsd-4-0-RC1 wrstuden-fixsa-base netbsd-4-base
# 1.110 22-Nov-2006 riz

Make sys/exec_elf.h and machine/elf_machdep.h available to host
tools, and allow paxctl to use them when compiled as a host
tool. This fixes the build on MacOS X (and perhaps other platforms)


# 1.109 17-Nov-2006 dsl

Add some notes about the bogosity of some of the .WAIT stuff.
Remove a 'never had a sane effect' .WAIT from a .ORDER line.
Don't add a (probably incorrect) dependency for 'make install' since
it contradicts a .ORDER line elsewhere when .ORDER applies recursively
to child nodes.
I also think that the stuff that tries to add dependencies between
the stuff that bsd.subdir.mk generates does not DTRT at all.
I suspect that build.sh builds things in an order that avoids issues here.


# 1.108 10-Nov-2006 christos

Add paxctl as a tool.


# 1.107 08-Oct-2006 apb

If PREVIOUSTOOLDIR was empty, then don't complain that it has moved.

Patch from Jukka Salmi in PR 33095.


Revision tags: abandoned-netbsd-4-base
# 1.106 03-Aug-2006 freza

* Fix parallel build race condition between real{all,depend} and
<bsd.subdir.mk> targets.
* No need to pass TOOLDIR to recursive cleandir in real{all,depend}.

With help from he@.
OK by tron@.


# 1.105 03-Aug-2006 tron

Another attempt to fix the race in parallel builds.


# 1.104 19-Jul-2006 tron

Invoking "make cleandir" with "PREVIOUSTOOLDIR" set to the previous
location will not stop recursive "make cleandir" calls. Pass the new
location instead.


# 1.103 18-Jul-2006 lukem

gettext should .WAIT for autoconf.
(The former still doesn't seem to work on read-only source; separate issue)


# 1.102 17-Jul-2006 tron

Avoid getting into a loop of "make cleandir" instances if the location
tool directory has been changed or wasn't recorded before.


# 1.101 17-Jul-2006 tron

Remove ".WAIT" again because it doesn't fix the problem.


# 1.100 12-Jul-2006 tron

Add an extra ".WAIT" to the "realall realdepend" target to make sure
it finished cleaning the tools directory in case of tool directory
mismatch before we try to rebuild the tools.


# 1.99 22-Jun-2006 mrg

only build lint and lint2 if MKLINT != "no".


# 1.98 18-Jun-2006 gdamore

Make TOOL_SED, to allow using our own sed in cases where the host's version
is busted in some way.

The TOOL_SED doesn't use TIOCGWINSIZE, and has some changes to include
nbtool_config.h in a cross build environment.

Combined with some other changes (not yet committed), this allows cross
compiling m68k code on Solaris 10/amd64.


# 1.97 02-Jun-2006 mrg

remove support for building (with) GCC 2.95. also:
- always install <stdbool.h>
- don't generate a fake one for vax / gettext.


# 1.96 11-May-2006 mrg

check HAVE_GCC == 4 not USE_GCC4.


# 1.95 01-Apr-2006 christos

Don't barf if USE_GCC4 is not defined.


# 1.94 29-Mar-2006 jmc

Turn on gmake builds if GCC4 is enabled (and force it's install before continuing


# 1.93 03-Feb-2006 dsl

The realall and realdepend bit that regenerates tools needs to be marked
.MAKE otherwise the 'make' it runs has its own list of jobs instead of
using the jobserver of the enclosing make.


# 1.92 04-Oct-2005 jmc

Make the tools using Makefile.disklabel wait so they don't stomp each other.
Also for now add a dependency to Makefile.disklabel so this doesn't run
3 times. (XXX this really should just be done differently)


# 1.91 12-Jun-2005 dyoung

.include Makefile.disklabel in installboot, so that the
nbinclude/ header files will be installed. Build installboot after
pax, since Makefile.disklabel uses pax to install the headers.


# 1.90 12-Jun-2005 dyoung

Make disklabel(8) and fdisk(8) into "host tools " last step: build
and install ${TOOLDIR}/bin/${MACHINE_GNU_PLATFORM}-disklabel,
${TOOLDIR}/bin/${MACHINE_GNU_PLATFORM}-fdisk by "reaching over" to
the sources in ${NETBSDSRCDIR}/sbin/{disklabel fdisk}/.

To avoid clashes with a build-host's header files, especially on
*BSD, the host-tools versions of fdisk and disklabel search for
#includes such as disklabel.h, disklabel_acorn.h, disklabel_gpt.h,
and bootinfo.h in a new #includes namespace, nbinclude/. That is,
they #include <nbinclude/sys/disklabel.h>, <nbinclude/machine/disklabel.h>,
<nbinclude/sparc64/disklabel.h>, instead of <sys/disklabel.h> and
such. I have also updated the system headers to #include from
nbinclude/-space when HAVE_NBTOOL_CONFIG_H is #defined.


# 1.89 30-May-2005 thorpej

Build genassym as a host tool. Part of PR toolchain/30350


Revision tags: netbsd-3-1-1-RELEASE netbsd-3-0-3-RELEASE netbsd-3-1-RELEASE netbsd-3-0-2-RELEASE netbsd-3-1-RC4 netbsd-3-1-RC3 netbsd-3-1-RC2 netbsd-3-1-RC1 netbsd-3-0-1-RELEASE netbsd-3-0-RELEASE netbsd-3-0-RC6 netbsd-3-0-RC5 netbsd-3-0-RC4 netbsd-3-0-RC3 netbsd-3-0-RC2 netbsd-3-0-RC1 netbsd-3-base
# 1.88 27-Jan-2005 is

We don't need aout2bb any longer.


# 1.87 09-Jan-2005 mycroft

Add some quotes to prevent a syntax error.


# 1.86 28-Nov-2004 jmc

Convert mkboot into a full cross tool. Last hurdle for hp300 to building on
non NetBSD/bsd hosts.


# 1.85 28-Nov-2004 jmc

Convert remaining host tools for amiga to correct cross tools. Now allows
complete amiga builds on non netbsd/bsd hosts


# 1.84 25-Nov-2004 jmc

Convert bebox's remaining host tools over to cross tools scheme. Builds to sets
w/o error now.


# 1.83 28-Jul-2004 skrll

Build hp700's mkboot as a host tool called nbhp700-mkboot. mkboot also
gets built and installed in a hp700 distribution.

TODO

- merge with hp300

- pick a preferred method for dealing with the elf headers.
hp700-mkboot and prep-mkbootimage (bintuils) vs mips-elf2ecoff and
tools/installboot


# 1.82 08-Jun-2004 abs

Add sparkcrc (used to generate checksums for acorn32 bootloader sparkive)
as a host tool.


Revision tags: netbsd-2-0-base
# 1.81 03-Jan-2004 lukem

branches: 1.81.2;
Consistently check ${TOOLCHAIN_MISSING} against "no".


# 1.80 11-Dec-2003 matt

Fix typo.


# 1.79 11-Dec-2003 matt

Add macppc-fixcoff tool.


# 1.78 10-Dec-2003 lukem

Use (cd ${.CURDIR} && ${MAKE} cleandir) instead of ${MAKE} cleandir
Suggested by Ross Harvey.


# 1.77 04-Dec-2003 mrg

always build tools/binutils now.


# 1.76 08-Nov-2003 sekiya

Build sgivol as a host tool when compiling for sgimips.


# 1.75 27-Oct-2003 lukem

add mknod as a host tool


# 1.74 26-Oct-2003 cl

add gdb53 as a host tool for use as a crossgdb
replaces gdb50 from toolchain on archs which use gcc3


# 1.73 21-Oct-2003 lukem

Rework how MAKEVERBOSE operates:

* Don't bother prefixing commands with a line of ${_MKCMD}\
and instead rely upon "make -s". This is less intrusive on
all the Makefiles than the former. Idea from David Laight.

* Rename the variables use to print messages. The scheme now is:
_MKMSG_FOO Run _MKMSG 'foo'
_MKTARGET_FOO Run _MKMSG_FOO ${.TARGET}
From discussion with Alistair Crooks.


# 1.72 19-Oct-2003 matt

Add host tool version of ncdcs


# 1.71 18-Oct-2003 lukem

MAKEVERBOSE support


# 1.70 25-Jul-2003 mrg

- build "binutils" and "gcc" separately if USE_TOOLS_TOOLCHAIN is not set
to "yes".
- adjust dbsym/mdsetimage to look in the correct place for libbfd.
- new mknative-gcc based in toolchain/mknative


# 1.69 24-Jul-2003 tron

Add missing "cleandir" rule.


# 1.68 20-Jul-2003 lukem

add stat(1) as a host tool


# 1.67 16-Jul-2003 lukem

also do the MKTOOLS and PREVIOUSTOOLDIR checks for "realdepend"


# 1.66 16-Jul-2003 lukem

* If a `PREVIOUSTOOLDIR' file doesn't exist, or its contents are not
the same as "$TOOLDIR", run "make cleandir" here first.
This should prevent various problems where $TOOLDIR is encoded into the
build process for various tools (lint, groff, texinfo, toolchain),
$TOOLDIR changes, and various programs don't get rebuilt correctly.
Should fix PR [toolchain/21988].

* Clean up how the `${MKTOOLS} == no' check is performed.

* Remove "cleantools"; it made a big assumption about the location of
TOOLDIR that won't be correct in many cases.


# 1.65 26-Jun-2003 tshiozak

Citrus iconv support(3)
add host tools : mkcsmapper and mkesdb
mkcsmapper - coded character set mapping table compiler
mkesdb - encoding scheme database compiler


# 1.64 18-May-2003 lukem

Add db(1) as a host tool


# 1.63 25-Mar-2003 pooka

build file(1) as a host tool (for compiling magic files)


# 1.62 07-Mar-2003 thorpej

Make hexdump a host tool.


Revision tags: fvdl_fs64_base
# 1.61 21-Dec-2002 lukem

enable sunlabel...


# 1.60 19-Sep-2002 thorpej

Change the TOOLCHAIN_MISSING from == "no" to != "yes", to be consistent
with the other tests of this variable.


# 1.59 19-Sep-2002 matt

Since TOOLCHAIN_MISSING is defined in bsd.own.mk, it can never be undefined.
Instead, make sure the value of it is "no"


# 1.58 17-Sep-2002 thorpej

* Eliminate the USE_NEW_TOOLCHAIN variable. Instead, split it into
two variables:

TOOLCHAIN_MISSING -- set to "yes" on platforms for which there is
no working in-tree toolchain (hppa, ns32k, sh5, x86_64).

EXTERNAL_TOOLCHAIN -- if defined by the user, points to the root of
an external toolchain (e.g. /usr/local/gnu). This enables the cross-build
framework even for TOOLCHAIN_MISSING platforms.

If TOOLCHAIN_MISSING is set to "yes", MKGDB, MKBFD, and MKGCC are all
unconditionally set to "no", since the bits are not there to build.

If EXTERNAL_TOOLCHAIN is set, MKGCC is unconditionally set to "no",
since the external toolchain's compiler is not in-sync with the
in-tree compiler support components (e.g. libgcc).

* Set MACHINE_CPU much earlier in bsd.own.mk, so that more tests in
that file can use it.


# 1.57 14-Sep-2002 chris

We need binstall to be installed, before attempting to use it to install mktemp.


# 1.56 14-Sep-2002 thorpej

Descend into mktemp.


# 1.55 12-Jun-2002 veego

The last commit wasn't tested. Add a missing \


# 1.54 12-Jun-2002 thorpej

Don't build toolchain bits for hppa, for now.


# 1.53 10-Jun-2002 mason

Add cat(1) as a host tool.


# 1.52 05-Jun-2002 thorpej

Don't try to build toolchain bits for ns32k.


# 1.51 28-May-2002 bjh21

Add fgen as a host tool, used for sys/arch/sparc/bootblk.


Revision tags: netbsd-1-6-base
# 1.50 18-May-2002 lukem

branches: 1.50.2;
gratuitious comment addition


# 1.49 07-May-2002 lukem

remove now-unnecessary sparc-installboot


# 1.48 03-May-2002 kleink

On prep, descend into prep-mkbootimage.


# 1.47 06-Apr-2002 bjh21

vax-installboot has been deleted, so don't recurse into it.


# 1.46 03-Apr-2002 lukem

enable installboot


# 1.45 01-Apr-2002 thorpej

Nuke NO_DBSYM; dbsym now uses BFD for everything.


# 1.44 01-Apr-2002 bjh21

On second thoughts, don't make mktemp a host tool. It's only used once, for
creating a temporary directory for maketars, and mkdir can do that safely
enough.


# 1.43 31-Mar-2002 bjh21

Add mktemp as a host tool.


# 1.42 31-Mar-2002 bjh21

Add cksum as a host tool.


# 1.41 29-Mar-2002 matt

Drop into vax-installboot on VAX machines.


# 1.40 07-Mar-2002 tv

Rework recursion to use the original logic again, in the structure cleaned
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".


# 1.39 07-Mar-2002 tv

Don't build groff if MKMAN=no. (groff does not build properly on some
platforms because of its completely insane Make structure; this allows it
to be disabled in a sane way.)


# 1.38 26-Feb-2002 tv

Add gettext to tools.

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.)


# 1.37 23-Feb-2002 gmcgarry

Add elf2ecoff as a build tool for mips ports.


# 1.36 18-Feb-2002 pk

* Add comments on all the directory build/install ordering goo.
* 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.


# 1.35 11-Feb-2002 pk

Revert part of previous; we need the install targets.


# 1.34 10-Feb-2002 pk

Use .ORDER targets to express the dependencies on subdir runs. This makes
the resulting tree complexity O(N) (N=# of subdirs), and it also makes it
easier to comprehend the Makefile logic.


# 1.33 08-Feb-2002 pk

Make sure to not go off installing in a directory before it's fully made.


# 1.32 31-Jan-2002 tv

Roll in fixes to permit cross-compiling from non-NetBSD hosts. This
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.


# 1.31 29-Jan-2002 tv

Make almost all tools compile and run properly on non-NetBSD hosts. (In
particular, most tools now run correctly on Solaris 7.)


# 1.30 25-Jan-2002 lukem

build pax as a host tool, for -N and to work around borken vendor paxes


# 1.29 10-Jan-2002 tv

Move host-mkdep to its own directory. Create and install it before
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.


# 1.28 10-Jan-2002 lukem

revert previous, and reenable tools/makefs now that it works on
netbsd-current and netbsd-1-5


# 1.27 09-Jan-2002 tv

Disable makefs in src/tools for the moment; it's very dependent on -current
NetBSD headers and sources right now. (Temporary workaround for PR 15175.)


# 1.26 05-Jan-2002 mrg

build zic as a host tool.


# 1.25 05-Jan-2002 mrg

build makefs, and, sparc-installboot if sparc||sparc64


# 1.24 31-Dec-2001 thorpej

We can't currently build a toolchain for x86-64 here, so don't
attempt to do so.


# 1.23 29-Dec-2001 wiz

Typo fix in error message.


# 1.22 11-Dec-2001 tv

Add the framework for autoconf-based src/tools/compat structure. This will
(after it is more fleshed out) allow the host tools to work more cleanly
on non-NetBSD hosts.


# 1.21 07-Dec-2001 jmc

Add pwd_mkdb as a toolchain bit for builds


# 1.20 29-Nov-2001 thorpej

Build makewhatis as a host tool, since it is used at the end of
the build.

XXX Needs a -lz hostlib.


# 1.19 22-Nov-2001 jmc

Oops. typo which can break things for non-new toolchain builds if MKTOOLS isn't
set


# 1.18 22-Nov-2001 jmc

Check for USETOOLS!=yes in addition to MKTOOLS==no to generate the empty rule
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


# 1.17 13-Nov-2001 tv

Re-add MKTOOLS as a "yes"/"no" only variable, which prevents recursion on "no"
into the src/tools subdirs on all/depend/dependall/install. Other recursive
targets are not affected.


# 1.16 12-Nov-2001 tv

Major overhaul of src/tools and host toolchain. Summary of changes:

* 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.


# 1.15 09-Nov-2001 thorpej

Build the cross-dbsym.


# 1.14 02-Nov-2001 tv

* Always use the makewrapper when starting a build phase.

* 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.


# 1.13 31-Oct-2001 tv

Don't actually delete the default tooldir on "cleandir"; else we'll nuke
the nbmake that is probably currently running.

Just leave the "cleantools" manual target as a shortcut for the user.


# 1.12 31-Oct-2001 tv

* Create a variable HOST_OSTYPE that represents the host build environment,
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.


# 1.11 31-Oct-2001 tv

* Always descend into "tools" regardless of USETOOLS setting. Instead,
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.


# 1.10 25-Oct-2001 thorpej

Add asn1_compile as a host tool.


# 1.9 21-Oct-2001 jmc

Pull in mdsetimage to the tools builds. (XXX - using libbfd here would
probably be preferrable long term).


# 1.8 20-Oct-2001 jmc

Add mklocale to cross-tools and turn it back on for the builds.


# 1.7 13-Oct-2001 jmc

Add crunchgen, msgc and menuc


# 1.6 09-Oct-2001 enami

Make mtree a host tool and use it when appropriate.


# 1.5 04-Oct-2001 tv

Recurse properly; just add "build" to TARGETS (fixes reported problem where
"make clean" doesn't work at the src/tools level).


# 1.4 22-Sep-2001 tv

Work around "make obj" lossage in tools/. Dunno why this is happening
just yet; will investigate this evening.


# 1.3 22-Sep-2001 tv

Add lorder to TOOLDIR host tools.

Only descend into directories if USE_NEW_TOOLCHAIN is set (allows top level
Makefile to use "-m ${.CURDIR}/share/mk" to get the "correct" <bsd.own.mk>
when descending into src/tools/Makefile).


# 1.2 21-Sep-2001 tv

- Create a real cpp binary.
- Set CC properly in environment for mkdep and lint.
- Add compile_et to TOOLDIR host tools.


# 1.1 14-Aug-2001 tv

Bootstrap toolchain framework, first pass.