History log of /src/distrib/sets/sets.subr
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
Revision tags: perseant-exfatfs-base-20250801 netbsd-11-base
# 1.212 21-Jul-2025 dholland

distrib/sets/sets.subr: clear MAKEFLAGS for all submakes, not just some.

Should silence warnings about invalid -J options.


# 1.211 13-May-2025 nia

x11: Separate concepts of having EGL and having glamor/DRMKMS

EGL is becoming an increasingly popular API and it makes sense to
offer it as standard - the package builds suffer otherwise.
It seems to work fine on sparc64 and other ports that don't use
DRMKMS.


# 1.210 24-Feb-2025 martin

Provide a new attribute, efi_rt, derived from HAVE_EFI_RT, and use
that to mark sbin/efi.


# 1.209 11-Jul-2024 riastradh

sets.subr: Ensure compat32arches is defined too.

We don't run with `set -eu', but maybe we should and this will reduce
the effort to flip that on.


# 1.208 11-Jul-2024 riastradh

sets.subr: riscv 32-bit ABI is called `rv32', not `riscv32'.


# 1.207 11-Jul-2024 riastradh

Revert the duplication of compat set lists; do it another way.

1. Restore the compatdir and compatfile tags in base and debug.

=> compatdir marks directories that should have per-ABI compat
subdirectories, like /usr/lib having /usr/lib/o32 and
/usr/lib/64 on mips64.

=> compatfile marks files that have per-ABI versions in the
nearest compatdir, like /usr/lib/o32/libc.so.12.221.

This is the mechanism we use to avoid duplicating every library
that has a compat version in multiple set lists.

2. Teach sets.subr to split the compatdir and compatfile entries out
into separate sets for base and debug.

The mechanism is to internally use:

- a new tag `omitcompat' when processing base and debug, so we
don't generate the per-ABI compat directories or per-ABI compat
files under them;

- a new tag `takecompat=${ABI}' when processing base32/64 and
debug32/64, so we _do_ generate the per-ABI compat directories
for ${ABI}.

=> On, e.g., mips64, base32 uses `takecompat=o32' and base64
uses `takecompat=64'.

=> On, e.g., aarch64, base32 uses
`takecompat=eabi,takecompat=eabihf', and there is no base64.

3. Record in sets.subr the list of `32' and `64' architectures for
each port.

This is maybe not the right place to put it, but it's also not
clear that we want to keep exactly this division -- maybe it would
be more sensible to just have per-ABI , e.g.:

(aarch64) base-eabi, base-eabihf
(amd64) base-i386
(mips64) base-o32, base-64
(mipsn64) base-o32, base-n32

But I'll leave cleaning that up for another day.

4. Adjust some sets. Mostly this commit shouldn't change what file
go in what sets, but, e.g., on mips64, the following move from
base32 to base64 as part of this change, which I think is
appropriate:

- /lib/64
- /libexec/ld.elf_so-64
- /usr/lib/64
- /usr/libdata/debug/lib/64
- /usr/libdata/debug/usr/lib/64
- /usr/libexec/ld.elf_so-64

TBD: Remove ./lib and ./usr/lib from debug/mi; they're already in
base/mi. Maybe move ./usr/libdata/debug to from base/mi to debug/mi.

This reverts most of the set list changes in:

https://mail-index.netbsd.org/source-changes/2024/04/09/msg150763.html

PR misc/58365


Revision tags: perseant-exfatfs-base-20240630 perseant-exfatfs-base
# 1.206 22-Apr-2024 nia

branches: 1.206.2;
Move MIPS N64 compat out of {base,debug}32 into {base,debug}64

martin requested separation by ABI and it doesn't make much sense
to have 64-bit binaries in a set called 32.


# 1.205 09-Apr-2024 nia

Add new sets: base32, debug32, manhtml

- base32 contains (when MKCOMPAT=yes) shared libraries for 32-bit
compatibility, previously included in base

- debug32 contains (when MKCOMPAT=yes) debug symbols and static libraries
containing debug symbols for 32-bit compatiblity, previously included
in debug

- manhtml contains (when MKHTML=yes) the HTML files previously included
in 'man', which are of limited utility without third-party software.

The motivation for this change is to be able to easily exclude sets
from CD-ROM images that go over the size limit without xz compression
(which many NetBSD platforms struggle to extract at acceptable speeds).


Revision tags: netbsd-10-1-RELEASE 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.204 10-Sep-2022 rillig

distrib/sets/sets.subr: fix typo in comment


# 1.203 08-Sep-2022 rillig

distrib/sets/sets.subr: remove trailing whitespace


# 1.202 21-Aug-2022 lukem

Deprecate extsrc/, EXTSRCSRCDIR, MKEXTSRC

Remove support for building extsrc/:
1. Makefile: remove do-extsrc target.
2. build.sh: remove options -y and -Y extsrcdir.
3. distrib/sets: remove support for extsrc in various tools
including the options -L ext and -y, and the extsrc sets.
4. doc/BUILDING.mdoc: remove docs for extsrc/, EXTSRCSRCDIR, MKEXTSRC (etc)
5. bsd.own.mk and various Makefiles: remove support for extsrc/,
EXTSRCSRCDIR, MKEXTSRC.

As proposed on tech-kern and tech-userlevel on 2022-01-07
and followed up on 2022-08-21.


# 1.201 31-Dec-2021 christos

forgot one @CONFIG@


# 1.200 31-Dec-2021 christos

change CONFIG to @CONFIG@ to indicate substitution is going to happen.


# 1.199 30-Dec-2021 christos

don't match the empty pattern


# 1.198 29-Dec-2021 christos

Enable split-debug files for kernels. Enabled by default with MKDEBUG=yes.


# 1.197 25-Sep-2021 maya

Restore MKNOUVEAUFIRMWARE and MKRADEONFIRMWARE and make gpufw set unconditional

Simplifies logic.
Restoring MK* requested by mrg on tech-kern discussion
https://mail-index.netbsd.org/tech-kern/2021/09/25/msg027695.html


# 1.196 25-Sep-2021 maya

Move DRM-driver firmware from base to its own set, gpufw

This set is only installed on amd64,i386,evbarm.
This set is installed on minimal installs and on install media, in
case someone needs it for basic driver functionality.

Comments:
Switched to a single MK tunable for it - that is probably unneeded.

An upcoming DRM update will include even fatter firmware, and we'd
like to minimize the impact of it.


Revision tags: cjep_sun2x-base1 cjep_sun2x-base cjep_staticlib_x-base1 cjep_staticlib_x-base
# 1.195 10-Nov-2020 kamil

Reintroduce the support of MKCATPAGES

Requested by <mrg>


# 1.194 08-Nov-2020 kamil

Remove the support for MKCATPAGES

It was optional since 1999 and disabled by default since 2012.

Proposed on tech-userlevel@.


# 1.193 26-Sep-2020 jmcneill

Add HAVE_NVMM and use it to control the build of NVMM related components.
Defined to "yes" on amd64, "no" everywhere else.


# 1.192 12-Sep-2020 jmcneill

Add HAVE_ACPI and HAVE_UEFI flags to bsd.own.mk and use them to
conditionally include ACPI and UEFI bits instead of relying on adhoc
MACHINE_ARCH tests.


# 1.191 18-May-2020 jmcneill

Separate devicetree .dts -> .dtb building from kernel builds. They are now
part of a separate set, "dtb.tgz", and only built when MKDTB=yes. This
defaults to yes for earmv[67]* and aarch64, and no everywhere else.


# 1.190 02-May-2020 christos

Add support for debugging modules for multi-arch (xen etc.)


# 1.189 01-May-2020 christos

add more module sets.


Revision tags: phil-wifi-20200421 phil-wifi-20200411 phil-wifi-20200406
# 1.188 04-Apr-2020 christos

Infrastructure for putting kernel+modules in /netbsd/kernel and
/netbsd/modules respectively instead of /netbsd and
/stand/<arch>/<version>/modules. This is only supported for x86,
and is turned off by default. To try it, add KERNEL_DIR=yes in your
/mk.conf and install a system from that build.


Revision tags: is-mlppp-base phil-wifi-20191119
# 1.187 02-Oct-2019 maya

Split out /rescue to its own set and adapt installers/images to add it.

This is meant to make updates safer: if something goes wrong with updating
base, we still have the old, standalone /rescue to recover from.


Revision tags: netbsd-9-base phil-wifi-20190609
# 1.186 16-Apr-2019 mrg

branches: 1.186.2;
enable EGL and glamor. partly from maya@.

for x86 and evbarm:
- install headers and libEGL
- install xorg-server glamoregl component
- link xorg drivers against gbm/egl

bonus fix:
- fix some wrongly marked compatx11file files


build tested on shark, sgimips, evbarm64-el, amd64 and i386.
run tested on radeon, intel and nvidia on amd64, including
'modesetting' driver on amd64. however, my systems disable
it due to llvmpipe so i'm not sure what is happening.


# 1.185 10-Mar-2019 mrg

convert make's HAVE_MESA_VER into mesa_ver for set lists


Revision tags: pgoyette-compat-20190127 pgoyette-compat-20190118 pgoyette-compat-1226 pgoyette-compat-1126 pgoyette-compat-1020 pgoyette-compat-0930 pgoyette-compat-0906 pgoyette-compat-0728 phil-wifi-base pgoyette-compat-0625 pgoyette-compat-0521 pgoyette-compat-0502 pgoyette-compat-0422 pgoyette-compat-0415
# 1.184 12-Apr-2018 nakayama

branches: 1.184.2;
Handle compatdir first whether making obsolete lists or not, to
make obsolete lists including compat directory (eg. ./usr/lib/i386)
properly.


Revision tags: pgoyette-compat-0407 pgoyette-compat-0330 pgoyette-compat-0322 pgoyette-compat-0315 pgoyette-compat-base
# 1.183 08-Feb-2018 christos

branches: 1.183.2;
add openssl to the list of selectable variables for sets and fix the sets.


# 1.182 10-Jan-2018 uwe

When we ask make about MACHINE_CPU and TARGET_ENDIANNESS make sure we
use the right bsd.*.mk files.


# 1.181 22-Nov-2017 kre

Ignore MAKEFLAGS for snippet makefiles.
(more important than MAKEVERBOSE probably.)


# 1.180 22-Nov-2017 christos

Ignore MAKEVERBOSE for snippet makefiles.


Revision tags: matt-nb8-mediatek-base perseant-stdc-iso10646-base netbsd-8-base prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1 pgoyette-localcount-20170320
# 1.179 08-Feb-2017 christos

branches: 1.179.4;
Document sets programmatically instead of keeping a list that constantly is
out of date.


Revision tags: bouyer-socketcan-base pgoyette-localcount-20170107 pgoyette-localcount-20161104 localcount-20160914
# 1.178 19-Aug-2016 mrg

branches: 1.178.2;
xorg_server_ver doesn't depend upon xorg_server though it probably could.
fixes build isses with header files being missing.

XXX: with no server, they shouldn't be useful, so fix this properly by
not installing them once it is verified to work properly.


# 1.177 16-Aug-2016 mrg

support xorg_server_ver define, currently settable to 110 (1.10.x)
or 118 (1.18.x).


Revision tags: pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base
# 1.176 25-May-2016 christos

branches: 1.176.2;
Give up and use TOOL_SED again.


# 1.175 25-May-2016 christos

Fix SED issue differently.


# 1.174 21-Feb-2016 christos

document CTF


# 1.173 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.172 09-Jul-2015 matt

Add nocompatmodules keyword to stop the expanding of a kmod to compatmodules.
Use for compat_netbsd32 on mips


# 1.171 28-Jun-2015 matt

Need debug sets if ${MKDEBUGLIB} != "no"


# 1.170 27-Jun-2015 matt

Add MKCOMPATX11 knob for making X11 compat libraries.


# 1.169 27-Jun-2015 matt

add pigzgzip to comment


# 1.168 25-Jun-2015 matt

Don't add duplicate compat paths


# 1.167 23-Jun-2015 matt

Fix spurious wantedness of compat, compattests, kmod, and compatmodules
keywords. Be more consistent in names.


# 1.166 22-Jun-2015 matt

Rework a little. test MKCOMPATMODULES for KMOD entry autogeneration.


# 1.165 22-Jun-2015 matt

Using archdirs.mk in compat, automagically generate compat entries for
files tagged with compatfile relative to directories tagged with compatdir.
This also applies to compattestsdirs and compattestsfile when
MKCOMPAT != "no" and MKCOMPATTESTS != "no".
Using archdirs.mk in sys/modules/arch, set list entries are automatically
create for all the other defined variants in ARCHDIR_SUBDIR (if any).
This should cut down on set lists getting out-of-sync a lot.


# 1.164 28-May-2015 rjs

Build both xf86-video-radeon drivers for amd64 and i386, just build the
old one for other ports.


# 1.163 01-Mar-2015 mrg

add build framework to choose between xf86-video-ati 6.x (UMS/KMS)
and 7.x (KMS only), and switch x86 to the latest (KMS only) version.

(if someone can make x86 install both radeon_drv.so.[67] and leave
the default symlink to .7, that would be nice. renaming it so that
it's easier to choose via xorg.conf is a little more tricky..)


# 1.162 05-Jan-2015 mrg

sets.subr:
support machine=<xxx>, machine_arch=<xxx>, machine_cpu=<xxx> tags.

dri7: build Mesa 7 r300_dri.so for x86 platforms.


# 1.161 12-Nov-2014 enami

List missing compatmodules keyword in the comment.


Revision tags: netbsd-7-base yamt-pagecache-base9 tls-earlyentropy-base riastradh-xf86-video-intel-2-7-1-pre-2-21-15 riastradh-drm2-base3 tls-maxphys-base
# 1.160 29-Jan-2014 joerg

branches: 1.160.4;
Update for libgcc->libgcc_eh change.


# 1.159 28-Jan-2014 matt

HAVE_GDB can trigger a false positive if MKGDB=no so add a check for it
like we do for HAVE_GCC.


# 1.158 26-Jan-2014 joerg

Adjust trigger variable for unwind.h to follow changes in libc.


# 1.157 02-Jan-2014 tho

Mark all _pic.a archive files with the 'picinstall' flag.

This fixes checkflist with MKPICINSTALL=no.

ok christos@.


# 1.156 14-Oct-2013 joerg

Rename USE_LIBGCC to HAVE_LIBGCC and retry using it as flag on unwind.h.


# 1.155 14-Oct-2013 joerg

Invert logic to try to fix the !clang case.


# 1.154 14-Oct-2013 joerg

Include compiler-rt and libunwind in libc for Clang/x86 builds.


# 1.153 29-Sep-2013 joerg

Hook up initial build infrastructure for LLDB. Update LLVM/Clang
snapshot to r191390 for some required changed. Re-enable static analyzer
in Clang.


# 1.152 09-Sep-2013 joerg

Add conditional entry for lld.


Revision tags: riastradh-drm2-base2 riastradh-drm2-base1 riastradh-drm2-base
# 1.151 12-Jun-2013 mrg

rename (new) xorg_drivers to xorg_server -- platforms that build the
actual Xorg server (aka "xfree86 server").

move the list of these platforms from xorg-server/Makefile.common to
bsd.own.mk, so that we can access it easily in distrib.

this should fix most of the current build failures.


# 1.150 10-Jun-2013 mrg

add support for MKXORG_DRIVERS/xorg_drivers keyword, and use it to
mark the xf86-input-mouse files not all platforms use.


# 1.149 06-May-2013 joerg

The "gcc" keyword in the set lists is used both as boolean and as list
filter. Skip the HAVE_GCC variables when adding it as boolean, so that
MKGCC=no actually skips the "gcc" entries.


# 1.148 30-Apr-2013 matt

Explicitly make MKSOFTFLOAT a mkvar.
Add support for endian={1234,4321}
Add EABI flag for ARM.


# 1.147 28-Apr-2013 joerg

Introduce MKLIBSTDCXX, defaulting to yes.


# 1.146 27-Apr-2013 joerg

Add build glue for libc++.


Revision tags: agc-symver-base
# 1.145 27-Feb-2013 joerg

Add infrastructure for building MCLinker.


# 1.144 15-Feb-2013 jmmv

Add the MKKYUA knob.

MKKYUA defaults to no and will remain as such until the import is complete
and validated.

This knob does not currently have any effects on the build as nothing relies
on it yet. Upcoming imports and changes in this area will all be guarded by
this flag.


# 1.143 28-Jan-2013 nakayama

Follow the change from HAS_SSP to HAVE_SSP.


Revision tags: yamt-pagecache-base8
# 1.142 16-Jan-2013 christos

- add xdebug set
- document debug better
- fix previous debug fallout.


# 1.141 16-Jan-2013 christos

Add a new "debug" set that gets built when ${MKDEBUG} is set. On evbarm:
-rw-r--r-- 1 root src 35806068 Jan 16 10:47 base.tgz
-rw-r--r-- 1 root src 57374069 Jan 16 10:48 comp.tgz
-rw-r--r-- 1 root src 101286193 Jan 16 10:49 debug.tgz
...
This allows always building the debugging code and libraries but not
installing it (although now it is placed in the default sets if ${MKDEBUG}
is set


Revision tags: yamt-pagecache-base7
# 1.140 11-Nov-2012 alnsn

Document sljit.


# 1.139 04-Nov-2012 christos

add TPM sets.


Revision tags: yamt-pagecache-base6
# 1.138 08-Aug-2012 christos

branches: 1.138.2;
adjust for MKRUMP = no


# 1.137 14-Jul-2012 spz

more MKCRYPTO_IDEA and MKCRYPTO_MDC2 removal (resp, adjustment to IDEA and
MBC2 now always being included)
MKCRYPTO_RC5 now builds shared libs, add the missing files to sets


Revision tags: yamt-pagecache-base5 yamt-pagecache-base4
# 1.136 17-Feb-2012 christos

use osrelease.sh -k instead of hand-rolled logic.


Revision tags: netbsd-6-base
# 1.135 07-Feb-2012 joerg

branches: 1.135.2;
Import the new apropos/whatis.

This code has been developed by Abhinav Upadhyay as part of Google's Summer
of Code 2011. It uses libmandoc to parse man pages and builds a Full
Text Index in a SQLite database. The combination of indexing the full
manual page, filtering out stop words and ranking individual matches
based on the section gives a much improved user experience.

The old makewhatis and friends are kept under MKMAKEMANDB=no for now.


# 1.134 03-Feb-2012 joerg

Fix support for negative keywords: the keyword is prefixed directly with
! without space, so that the splitting works as expected. Adjust entries
for bsdgrep.


Revision tags: yamt-pagecache-base3 yamt-pagecache-base2 yamt-pagecache-base
# 1.133 22-Oct-2011 jmcneill

branches: 1.133.2;
try to match sys/kern/kern_module.c module path logic: for release branches,
use X.Y version (instead of eg. X.Y.0_PATCH or X.Y_STABLE) and for -current use X.Y.Z.
ok zafer@


Revision tags: cherry-xenmp-base
# 1.132 20-May-2011 plunky

simplify PCC inclusion; MKPCCDMDS is not really required


# 1.131 09-May-2011 haad

Mention MKPERFUSE keyword here, too. I have forgot to commit this file before.


# 1.130 21-Apr-2011 joerg

Replace gnugrep keyword with ! bsdgrep


# 1.129 21-Apr-2011 joerg

Add MKBSDGREP switch for easy testing of the GNU grep
replacement/alternative.


Revision tags: bouyer-quota2-nbase bouyer-quota2-base
# 1.128 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.127 28-Jan-2011 matt

Add a method to a whiteout an entry thereby allowing a md/ad file to remove
a file from the set lists.

Use this for md.evbppc which doesn't build some module tests.


Revision tags: matt-mips64-premerge-20101231
# 1.126 28-Dec-2010 he

branches: 1.126.2;
Introduce the "ssp" attribute derived from HAS_SSP from <bsd.sys.mk>.
Use it to flag entries which should only be included if the target platform
supports SSP. Fixes the build for a bunch of architectures.


# 1.125 08-Dec-2010 njoly

Make tests set generation optional, skipped for MKATF=no build.


# 1.124 19-Jun-2010 mrg

- always install pigz. hooary!
- kill MKPIGZ.
- add MKPIGZGZIP. if it is "no", then only install pigz as pigz. if it is
not "no", don't install mrgzip, install pigz as gzip.

in all cases, the z* scripts.


i don't like the name MKPIGZGZIP so if anyone has a better name, feel free
to replace it. i don't care enough since killing the ugly name is just
more incentive to get pigz doing .bz2, .Z and .z.


# 1.123 18-Jun-2010 mrg

add some infrastructure to build pigz instead of gzip. you can test
this out if you set MKPIGZ=yes, but you'll end up with a /usr/bin/gzip
that doesn't support bzip2, compress or pack.


# 1.122 03-Mar-2010 tron

"dtrace,zfs" means "MKDTRACE=yes" *and* "MKZFS=yes" which is not what
we want. Invent a flag "solaris" which is the or of those two flags.


# 1.121 21-Feb-2010 darran

Add DTrace to sets.


# 1.120 04-Feb-2010 plunky

add note of "pcc" and "pcccmds" attributes


# 1.119 14-Jan-2010 he

In addition to setting module=no if ${MKKMOD} is "no", also
set kmod=no. This should get evbppc building correctly again.


# 1.118 21-Dec-2009 uebayasi

s/sed/${SED}/; s/xargs/${XARGS}/


# 1.117 15-Dec-2009 uebayasi

Clean up debug knobs.


# 1.116 15-Dec-2009 uebayasi

Factor out print_set_files() printing raw set list entries out of
list_set_files(). While here kill a useless-use-of-cat.


# 1.115 15-Dec-2009 uebayasi

We don't need to check ${MACHINE_ARCH} == "m68000" if we use shlib or not.
Because such a knowledge is concentrated in bsd.own.mk and passed to as
${MKPIC}. Tested by build.sh -m sun2 distribution sets.


Revision tags: matt-premerge-20091211
# 1.114 11-Dec-2009 he

Move the test for evbppc out of sets.subr and into bsd.own.mk, to
decide whether to make kernel modules: set MKKMOD to no for evbppc.
Use this in etc/Makefile to decide whether to do the "modules"
obsolete sets. Move the ./var/db/obsolete/modules entry from the
"mi" to the "module.mi" file set.

Fixes the build for evbppc.

Discussed with uebayasi@


# 1.113 11-Dec-2009 uebayasi

list_set_lists() - Share code of handling *.ad.* set lists.


# 1.112 11-Dec-2009 uebayasi

Indent.


# 1.111 11-Dec-2009 uebayasi

Refactor list_set_lists using more functions.


# 1.110 11-Dec-2009 uebayasi

Replace many "if [ -f $x ]; then echo $x; fi" instances with function.


# 1.109 11-Dec-2009 he

Prefix mkvars.mk with ${rundir}/, so that the scripts from this
dir using sets.subr can be run from another directory, as is done
e.g. during "make release" via the mksums script.

OK'ed by uebayasi@


# 1.108 10-Dec-2009 uebayasi

Move make variable extraction & conversion logic from here-documented make
-f- command to an isolated makefile. The list of non-_MKVARS.* variables
are concentrated there.

No functional changes.


# 1.107 10-Dec-2009 uebayasi

Move the list of non-_MKVARS.* make variables from .for code to MKEXTRAVARS.
List one variable in one line for readability. No functional changes.


# 1.106 10-Dec-2009 uebayasi

Put MKMANZ back and unbreak its installation.


# 1.105 10-Dec-2009 uebayasi

Add print_mkvars make target for debug.


# 1.104 10-Dec-2009 uebayasi

MKZFS is properly set in bsd.own.mk now; remove it from MKEXTRAVARS.


# 1.103 03-Dec-2009 uebayasi

Add MKZFS to MKEXTRAVARS just to make sure.


# 1.102 03-Dec-2009 uebayasi

Put ${MKXORG} back to MKVARS. It doesn't exist in bsd.own.mk but used here
to generate th set list keywork "xorg" in list_set_files(). Hopefully fix
some of reported build failures.


# 1.101 02-Dec-2009 uebayasi

Oops. Remove debug echo again.


# 1.100 02-Dec-2009 uebayasi

Convert make variables ${_MKVARS.yes} / ${_MKVARS.no} to environments
${_MKVARS_yes} / ${_MKVARS_no} to make sure assignments done right both in
make and shell.

Extract important make variables not listed in ${_MKVARS.*}.


# 1.99 02-Dec-2009 apb

Patches from Lloyd Parkes in PR 41684, plus my changes:
* ${HOSTNAME} is special to bash, so rename the variable to HOSTNAME_CMD.
* Don't use "cd -".
* Don't use only comments in the else part of an if statement.


# 1.98 02-Dec-2009 uebayasi

Add EXTSRCS to the list of syspkgs aware variables. Remove debug code.


# 1.97 02-Dec-2009 uebayasi

Pass the correct ${MKVARS} equivalent value to list_set_files().

XXX list_set_files() needs to be rewritten.


# 1.96 02-Dec-2009 uebayasi

Quote variable values from make in case it has spaces. Remove debug print.


# 1.95 02-Dec-2009 uebayasi

Fix previous; don't forget extra vars other than MK*.


# 1.94 02-Dec-2009 uebayasi

Don't hardcode the list of MK* variables but use ${_MKVARS.yes} and
${_MKVARS.no} provided by bsd.own.mk.


# 1.93 01-Dec-2009 apb

There's no point in adding _PKGTOOLS_VER=$(${PKG_CREATE} -V)
to any syspkg +BUILD_INFO files, since we don't use the pkg_* tools
to create syspkgs. Also remove the definition of PKG_CREATE
from sets.subr, since nothing uses it now.


# 1.92 30-Nov-2009 uebayasi

Support "extsrc", externally added programs and libraries. Users can write
their own reach-overs, cross-build, install, and get set files just like base
and X11 / X.org. (These sets are not included as TNF releases.)


# 1.91 05-Nov-2009 dyoung

Fix MKKMOD=no builds: in sets.subr, if $MKKMOD == no, leave the
modules set out of the list of NetBSD set lists, nlists. If
$MKKMOD == no, do not install modules tests.


# 1.90 03-Nov-2009 dyoung

Always respect MKBINUTILS=no, MKGCC=no, and MKGDB=no by filtering
entries binutils=N, gcc=N, or gdb=N from the set list.


# 1.89 07-Oct-2009 haad

Add MKZFS file so building a release works for others, too.


# 1.88 29-Sep-2009 tsarna

Multicast DNS ("Bonjour") support, based on Apple's mDNSResponder.


# 1.87 08-Sep-2009 skrll

Rename MKBFD to MKBINUTILS and support HAVE_BINUTILS for set lists. This
makes {MK,HAVE_}BINUTILS consistent with {MK,HAVE_}{GCC,GDB}.

Allow MKBFD to defines MKBINUTILS as a backwards compatibility hook.

Update the sets lists and add conditionals for lib{bfd,opcodes}.


# 1.86 07-Sep-2009 jnemeth

Create a modules.tgz set and move kernel modules into it.


# 1.85 30-Aug-2009 dyoung

Let us use MKKMOD=yes to leave the kernel modules out of the
distribution.


# 1.84 18-Jun-2009 mrg

fix the prior change to add MKX11FONTS support.


Revision tags: jym-xensuspend-nbase jym-xensuspend-base
# 1.83 07-Apr-2009 apb

Print debug messages only when MAKEVERBOSE >= 3, not when
it is >= 2. MAKEVERBOSE=2 is teh default, and the messages
are too noisy.


# 1.82 04-Apr-2009 apb

All non-error messages printed to stderr by makeplist must begin with
"DEBUG:", or else regpkg assumes that they are error messages. Make the
verbose messages printed by the list_set_files function follow that
convention. Fixes PR 41077 from Lloyd Parkes.


# 1.81 24-Jan-2009 rmind

branches: 1.81.2;
Revert path of modules back to "/stand".


# 1.80 24-Jan-2009 rmind

Change path to kernel modules from "/stand" to "/kernel".
Needs to go in before 5.0. Proposed on <tech-kern>.


# 1.79 19-Jan-2009 minskim

MKSENDMAIL is no longer used.


# 1.78 23-Dec-2008 agc

Put the lvm/MKLVM glue into the sets subroutines


# 1.77 29-Nov-2008 tsutsui

Reorganize lists for MD modules:
- move MD module files from md.* into separate module.* lists
- make those module lists per MACHINE_CPU or MACHINE_ARCH,
rather than per MACHINE

Tested on several ports.

XXX maybe we should also move usr/tests/modules/k_helper/k_helper.kmod
XXX from lists/tests/mi to lists/tests/module.mi and disable it on evbppc.


# 1.76 26-Nov-2008 tsutsui

- rename set list lkm.mi -> module.mi
- move obsolete lists of usr/lkm files to mi


# 1.75 12-Nov-2008 pooka

Now that MKPUFFS is default, kill it as advertised.
While there, give puffs and refuse files sensible syspkg entries.


# 1.74 12-Nov-2008 ad

Remove LKMs and switch to the module framework, pass 1.

Proposed on tech-kern@.


# 1.73 09-Nov-2008 mrg

fix a couple of minor errors picked up by he@. thanks!


# 1.72 09-Nov-2008 mrg

- retire MKXORG from public use
- introduce X11FLAVOUR to choose src/x11 vs src/external/mit/xorg
for the X11 to build if MKX11=yes is set. it takes the values
of either Xorg or XFree86.
- default to Xorg on alpha, i386, macppc, shark, sparc and sparc64
- remove MKXORG_WITH_XSRC_XSERVER, unused and never useful


Revision tags: netbsd-5-base
# 1.71 26-Oct-2008 mrg

branches: 1.71.2;
support MKCRYPTO.


Revision tags: matt-mips64-base2 wrstuden-revivesa-base-3 wrstuden-revivesa-base-2 mjf-devfs2-base
# 1.70 31-Aug-2008 lukem

Remove set lists for the non-cross-compiled ("vendor provided") build of
XFree86; we've used our src/x11 framework for four years.


# 1.69 28-Aug-2008 lukem

add debuglib keyword. per rtr


# 1.68 28-Aug-2008 lukem

Add support for MKHTML and MKXORG enabling "html" and "xorg" keywords
(respectively).

MKXORG also sets x11_version as per MKX11.
(Eventually we'll deprecate the non cross-build X11 sets and remove
the need for the x11_version variable here)


# 1.67 25-Aug-2008 lukem

Support dynamicroot keyword, keyed off MKDYNAMICROOT!=no.
Sort some entries.
Document some keywords.


# 1.66 22-Jul-2008 dyoung

Per discussion on tech-userlevel@, do not compile and install nvi
if MKNVI=no.

The default is MKNVI=yes, so that this amounts to no change for
most users, but the default may change.


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

When MAKEVERBOSE >= 2 (or if unset, by default), let list_set_files()
echo all the set list component file names to stderr, so they end
up in the build log. This is to make it slightly easier to find
a suitable file to fix when the set lists need fixing.

Discussed with lukem.


# 1.64 22-May-2008 he

Export NETBSDSRCDIR from make, and use it to point at
sys/conf/osrelease.sh, so that the script is found when building
with -O is given to build.sh.

Discussed with lukem.


# 1.63 22-May-2008 lukem

OpenLDAP client libraries, utilities, and relevant manual pages.


# 1.62 20-May-2008 ad

Install kernel modules into the proper locations, taking machine and
kernel version into account.


# 1.61 20-May-2008 ad

Use HOST_SH.


# 1.60 20-May-2008 ad

Recognise @MODULEDIR@ as a keyword in setlists.


Revision tags: hpcarm-cleanup-nbase yamt-pf42-baseX yamt-pf42-base2 yamt-pf42-base keiichi-mipv6-base mjf-devfs-base matt-armv6-nbase hpcarm-cleanup-base
# 1.59 09-Feb-2008 jmmv

branches: 1.59.2; 1.59.6; 1.59.8; 1.59.10;
Support negated build-time options in the lists. I need this to disable
some files when the modular option (not yet committed) is enabled.


Revision tags: cube-autoconf-base matt-armv6-base
# 1.58 01-Dec-2007 minskim

Remove MKUUCP from MKVARS; uucp is not in src any longer.


# 1.57 12-Nov-2007 jmmv

Add the tests.tgz set

This adds a new tests.tgz set to releases which includes all the tests
for the system. It is important to note that this set does not rely on
comp.tgz: a user of the system can run the tests without having the
development tools installed, which can be useful in a production machine.


Revision tags: matt-armv6-prevmlocking matt-mips64-base
# 1.56 05-Feb-2007 apb

branches: 1.56.4;
Whenever we try to parse the output from make, run make with the -B
flag. This ensures that -j<N> isn't accidentally inherited from the
environment, because the "--- foo ---" headers printed with -j<N> would
interfere with parsing the output.


# 1.55 29-Dec-2006 pooka

if MKPUFFS=yes is given, build & install mount_psshfs (default: no)


Revision tags: netbsd-4-base
# 1.54 12-Nov-2006 christos

branches: 1.54.2;
more uucp removal


Revision tags: abandoned-netbsd-4-base
# 1.53 23-Jul-2006 lukem

Implement MKDEBUG:
If "no", don't build and install separate debugging symbols
into /usr/libdata/debug.
Default: no


# 1.52 12-Jul-2006 lukem

* Provide new keywords:
gcc=<n> <n> = value of ${HAVE_GCC}
gdb=<n> <n> = value of ${HAVE_GDB}

* Support extra keywords on lines with "obsolete" keywords to allow
keyword-specific obsolete files.
(Primarily intended for use with gcc=<n> and gdb=<n>, although
it could be use for other items).

* Use the above features to collapse the gcc.* and gcc4.* lists into
the appropriate set lists.

* Deprecate the tc.* lists as all platforms are either HAVE_GCC=3 or HAVE_GCC=4.

* Update set lists for HAVE_GDB=6.


# 1.51 24-Jun-2006 mrg

add support for MKISCSI=no.


# 1.50 09-Jun-2006 dogcow

As pointed out by Izumi and Tsutsui and Valeriy Ushakov, these should
properly be .ad. files, not .md. files.


# 1.49 19-May-2006 dogcow

Use the gcc4 md list.


# 1.48 07-Apr-2006 mrg

retire HAVE_GCC3/HAVE_GCC4 and introduce HAVE_GCC that is set to 2, 3 or 4.


# 1.47 20-Mar-2006 christos

Goodbye KerberosIV


# 1.46 08-Jan-2006 apb

Use TARGET_ENDIANNESS (from bsd.endian.mk) to decide whether
to add "-E B" or "-E L" options to ${db_opts}.

Approved by christos.


# 1.45 04-Jan-2006 apb

Add cheap implementations of basename and dirname,
using builtin printf, or using echo if printf is not a
shell builtin.

Reviewed by agc


# 1.44 04-Jan-2006 apb

Add shell variables for several additional host tools,
required by the new versions of regpkgset and regpkg.


# 1.43 03-Jan-2006 apb

Add shell variables defined in sets.subr for almost all commands used
by scripts in distrib/sets/*. This is intended to be useful when cross
building. Only trivial commands like echo, cat, and rm are excluded
from this treatment.

While I am here, make ${MTREE} and ${DB} follow the pattern used by most
other such variables.

Reviewed by agc.


# 1.42 03-Jan-2006 apb

Move default values for several shell variables into sets.subr.

Reviewed by agc


# 1.41 01-May-2005 lukem

Add support for following keywords in sets lists, based on mk.conf(5) vars:
use_inet6 ${USE_INET6} != no
use_kerberos ${USE_KERBEROS} != no
use_yp ${USE_YP} != no


# 1.40 22-Mar-2005 tron

Add "MKX11" flag. We need it for the X11 obsolete lists in the "base" set.


Revision tags: netbsd-3-base
# 1.39 22-Feb-2005 peter

branches: 1.39.2;
Add MKIPFILTER; if set to no, don't build and install the ipf(4) programs,
headers and LKM.

Add MKPF; if set to no, don't build and install the pf(4) programs,
headers, LKM and spamd.

Both options default to yes, so nothing changed in the default build.

Reviewed by lukem.


# 1.38 10-Jan-2005 lukem

Support ${MKINET6} == "no".


# 1.37 10-Jan-2005 he

Don't build libpam and associated bits if the target platform doesn't
support shared libraries (sun2 and evbsh5 at it would seem), or if the
user has specified MKPIC=no. Also introduce a new tag to the set lists
("pam"), so that the non-shlib ports can once again complete a release
build.

Discussed with christos and lukem.


# 1.36 09-Jan-2005 matt

Add MKGCCCMDS/gcccmds


# 1.35 07-Jan-2005 tron

EOL of XFree86 3.3.6, approved by core@NetBSD.org


# 1.34 23-Jul-2004 erh

Make all the sets scripts work even when not run from the directory that
they reside in.
Change any uses of dirname to use shell variable substitution instead.


# 1.33 13-Jun-2004 jmc

Add support for building/install just cat pages (via MANINSTALL=catpages) in
the sets. Originally from PR#24949. Tested w. all combinations of MANINSTALL


Revision tags: netbsd-2-0-3-RELEASE netbsd-2-1-RELEASE netbsd-2-1-RC6 netbsd-2-1-RC5 netbsd-2-1-RC4 netbsd-2-1-RC3 netbsd-2-1-RC2 netbsd-2-1-RC1 netbsd-2-0-2-RELEASE netbsd-2-0-1-RELEASE netbsd-2-base netbsd-2-0-RELEASE netbsd-2-0-RC5 netbsd-2-0-RC4 netbsd-2-0-RC3 netbsd-2-0-RC2 netbsd-2-0-RC1 netbsd-2-0-base
# 1.32 17-Mar-2004 scw

Allow MKGDB=no to override inclusion of records with the 'gdb' keyword.


# 1.31 05-Mar-2004 jmc

Restructure MKPIC tests so that stlib always gets set first based on
OBJECT_FMT and then MKPIC/arch tests can set shlib=no if they need to.


# 1.30 28-Feb-2004 matt

Recognize when MKPIC=no and then set shlib=no


# 1.29 22-Feb-2004 uwe

sh3 ports have shlibs now in the gcc3 world.


# 1.28 23-Jan-2004 lukem

Implement `xetc' set to contain configuration that may be changed by
the end-user that we don't want to overwrite when extracting the
other X sets.


# 1.27 17-Jan-2004 lukem

Merge xmisc into xbase; xmisc only contained "ssh-askpass", and the other
stuff from xsrc/local/programs was already in xbase.


# 1.26 17-Jan-2004 lukem

Merge "xcontrib" into "xbase".
It was already merged in the XFree86 4.x source anyway, and it doesn't
make senses to keep some programs in a separate set just because they
used to be built from a separate directory in XFree86 3.x.


# 1.25 12-Jan-2004 lukem

Support MKUUCP=no.
Fix the syspkgs for cu (now in uucp) and tip (now in util)


# 1.24 12-Jan-2004 lukem

Support MKSHARE=no


# 1.23 11-Jan-2004 lukem

Support MKDOC=no MKINFO=no MKNLS=no


# 1.22 11-Jan-2004 lukem

Add support for:
MKCATPAGES=no
MKMAN=no
MKMANZ=yes

Add ".man" (from "man") and ".cat" (from "catpages") to indicate files
that will automatically be treated as having a ".gz" extension if
MKMANZ != no. (This simplifies the MKMANZ!=no support...)


# 1.21 11-Jan-2004 lukem

support MKBFD=no


# 1.20 08-Jan-2004 lukem

If MKX11 != no, set x11_version="" and ignore USE_XF86_4.


# 1.19 04-Jan-2004 lukem

support MKCVS=no


# 1.18 04-Jan-2004 lukem

Support MKCRYPTO=no


# 1.17 03-Jan-2004 lukem

Support MKPROFILE=no


# 1.16 03-Jan-2004 lukem

Support MKSKEY=no.


# 1.15 03-Jan-2004 lukem

support MKYP=no


# 1.14 03-Jan-2004 lukem

support MKHESIOD=no


# 1.13 03-Jan-2004 lukem

Support MKCRYPTO_IDEA=yes, MKCRYPTO_MDC2=yes, MKCRYPTO_RC5=yes.
Resolves [install/18136].


# 1.12 03-Jan-2004 lukem

support postfix keyword (${MKPOSTFIX} != no).
tweak code to make it easier to add new keywords based on MKxxx vars.


# 1.11 03-Jan-2004 lukem

rename all the <bsd.own.mk> derived variables to uppercase, and export
them to the environment.


# 1.10 29-Dec-2003 jmc

Add support for rescue.ad.<cpu>.shl which appears to have been missed


# 1.9 29-Dec-2003 lukem

Significant overhaul of how the sets are used:

* Add an optional third field to the sets file which is a list of
comma separated keywords that control if the line is printed.
Currently supported keywords
kerberos4 ${MKKERBEROS4} != no
kerberos ${MKKERBEROS} != no
lint ${MKLINT} != no
obsolete ${obsolete} != 0.
In this case, non obsolete files are not printed.
(This will allow future support for builds with variables such as
MKHESIOD and MKYP set to "no".)

* Use sh(1)'s getopts where appropriate, and otherwise cleanup the
various scripts.

* Move defaults for sets.subr from sets.defaults into sets.subr.
Move replicated code for determining stuff such as shlibs type
from various scripts into sets.subr.

* Merge the obsolete.*, krb.*, krb4.* and lint.* into the appropriate
main lists with the relevant third field keyword(s).


# 1.8 26-Dec-2003 lukem

minor sh KNF


# 1.7 11-Dec-2003 dyoung

Fix the checkflist for builds without Kerberos 4 (MKKERBEROS4=no)
and without Kerberos 4 & 5 (MKKERBEROS=no). Previously checkflist
complained of missing files.

* move kerberos- and kerberos 4-only files into new flists,
distrib/sets/lists/*/krb.*

* make the flist generators grok MKKERBEROS{,4} variables

* fix Makefiles which treat MKKERBEROS=no as MKKERBEROS5=no.
9 out of 10 experts agree that it is ludicrous to build w/
KERBEROS4 and w/o KERBEROS5.

* fix header files, also, which treat MKKERBEROS=no as MKKERBEROS5=no.

* omit some Kerberos-only subdirectories from the build as
MKKERBEROS{,4} indicate

(I acknowledge the sentiment that flists are the wrong way to go,
and that the makefiles should produce the metalog directly. That
sounds to me like the right way to go, but I am not prepared to do
revamp all the makefiles. While my approach is expedient, it fits
painlessly within the current build architecture until we are
delivered from flist purgatory, and it does not postpone our
delivery. Fair enough?)


# 1.6 09-Dec-2003 tsutsui

Use $have_gcc3 rather than $use_tools_toolchain,
which isn't set by sets.defaults.


# 1.5 25-Nov-2003 dyoung

Factor duplicated code for setting variables such as machine_cpu
and machine_arch to their defaults into sets.defaults, and source
it at the top of each script.

Also, to be consistent with variable naming, s/arch/machine_arch/.

sets.defaults introduces two new variables, krb and krb4, which
will affect whether Kerberos- or Kerberos IV-only files are put
into the set lists.


# 1.4 29-Oct-2003 dyoung

Alphabetize environment, again.


# 1.3 29-Oct-2003 dyoung

Alphabetize environment docs.


# 1.2 04-Aug-2003 mrg

add initial support for gcc3


# 1.1 23-Jun-2003 dyoung

For System Packages, two new utilities, a subroutine library, and
a new list:

sets.subr -- The set-listing code that is common to makeplist,
makeflist, and regpkg has moved here.

syspkgdeps -- Compute naive dependencies for system packages based
on directory containment. I.e., if package A contains
path /p/q, and package B contains path /p, then B is
considered a dependency of A. As Jim Wise remarks,
this is not quite right: system-package dependencies
should indicate a functional dependency. Nevertheless,
these naive dependencies protect us from orphaning
files when pkg_delete'ing system packages.

culldeps -- Helper for syspkgdeps. Removes redundant dependencies
from a dependencies table. Essentially does the opposite
of a transitive closure on a dependencies table: if
the table contains A depends-on B, B depends-on C, and
A depends-on C, then A depends-on C is removed because
it can be derived from the prior two dependencies.

deps -- Dependencies computed by syspkgdeps.