History log of /freebsd-current/usr.sbin/config/Makefile
Revision Date Author Comments
# 8a7b6120 23-Nov-2023 Warner Losh <imp@FreeBSD.org>

usr.sbin: Remove ancient SCCS tags.

Remove ancient SCCS tags from the tree, automated scripting, with two
minor fixup to keep things compiling. All the common forms in the tree
were removed with a perl script.

Sponsored by: Netflix


# d0b2dbfa 16-Aug-2023 Warner Losh <imp@FreeBSD.org>

Remove $FreeBSD$: one-line sh pattern

Remove /^\s*#[#!]?\s*\$FreeBSD\$.*$\n/


# 83d7ed8a 08-Feb-2023 Kyle Evans <kevans@FreeBSD.org>

config: drop dependency on libsbuf

Use an std::stringstream instead. get_word() and get_quoted_word() both
return a buffer that's presumed to not need release, so solve this by
returning a new special configword type that holds a string or eof/eol
state. This cleans up caller checking for EOF/EOL to make it more
explicit what they're doing, at least in the EOL cases which previously
checked for NULL.

Sponsored by: Klara, Inc.
Sponsored by: NetApp, Inc.
Differential Revision: https://reviews.freebsd.org/D38276


# 29c5f8bf 07-Feb-2023 Kyle Evans <kevans@FreeBSD.org>

config: drop dependency on libnv

Compile mkmakefile.c as C++ instead and use an std::unordered_map to
accomplish the same goal.

Reviewed by: imp
Sponsored by: Klara, Inc.
Sponsored by: NetApp, Inc.
Differential Revision: https://reviews.freebsd.org/D38275


# ef5312c3 10-Sep-2019 Baptiste Daroussin <bapt@FreeBSD.org>

config: do not link against libl, it is not needed

MFC after: 3 days


# 3cafc9a6 06-Jul-2018 Kyle Evans <kevans@FreeBSD.org>

config(8): Fix broken ABI

r336019 introduced ${SRCTOP}/sys to the include paths in order to pull in a
new sys/{c,}nv.h. This is wrong, because the build tree's ABI isn't
guaranteed to match what's running on the host system.

Fix instead by removing -I${SRCTOP}/sys and installing the libnv headers
with `make -C lib/libnv includes`... this may or may not get re-worked in
the future so that a userland lib isn't installing includes from sys/.

Reported by: bdrewery


# 88171893 05-Jul-2018 Kyle Evans <kevans@FreeBSD.org>

config(8): De-dupe hint/env vars within a single file

r335653 flipped the order in which hints/env files are concatenated to match
the order in which vars are processed by the kernel. This is the other
hammer to drop.

Use nv(9) to de-dupe entries within a single `hint` or `env` file, using the
latest value specified for a key. This leaves some duplicates if a variable
is specified in multiple hint/env files or via `envvar` in a kernel config,
but the reversed order of concatenation (from r335653) makes this a
non-issue as the latest-specified version will be seen first.

This change also silently rewrote hint bits to use the same sanitization
process that ian@ wrote for r335642. To the kernel, hints and env vars are
basically the same thing through early boot, then get merged into the
dynamic environment once kmem becomes available and the dynamic environment
is created. They should be subjected to the same restrictions.

libnv has been added to -legacy for the time being to support the build of
config(8) with the new cnvlist API.

Tested with: universe (11 host & 12 host)
MFC after: 1 month


# 417d105f 05-Jul-2018 Kyle Evans <kevans@FreeBSD.org>

Revert r336011,r336012 until I can competently test


# f1e0a986 05-Jul-2018 Kyle Evans <kevans@FreeBSD.org>

Fix build after r336011

Add libnv to bootstrap-tools, use ${SRCTOP}/sys headers.


# 51c854f0 05-Jul-2018 Kyle Evans <kevans@FreeBSD.org>

config(8): De-dupe hint/env vars within a single file

r335653 flipped the order in which hints/env files are concatenated to match
the order in which vars are processed by the kernel. This is the other
hammer to drop.

Use nv(9) to de-dupe entries within a single `hint` or `env` file, using the
latest value specified for a key. This leaves some duplicates if a variable
is specified in multiple hint/env files or via `envvar` in a kernel config,
but the reversed order of concatenation (from r335653) makes this a
non-issue as the latest-specified version will be seen first.

This change also silently rewrote hint bits to use the same sanitization
process that ian@ wrote for r335642. To the kernel, hints and env vars are
basically the same thing through early boot, then get merged into the
dynamic environment once kmem becomes available and the dynamic environment
is created. They should be subjected to the same restrictions.

MFC after: 1 month


# 5bdda834 26-Oct-2016 Marcel Moolenaar <marcel@FreeBSD.org>

Allow config to be compiled from another source directory, such as one
for building tools. This boils down to replacing ${.CURDIR} with
${SRCDIR}, where the latter is the directory in which this makefile
lives.

Also allow overriding where file2c comes from using ${FILE2C}.


# c6db8143 25-Nov-2014 Baptiste Daroussin <bapt@FreeBSD.org>

Convert usr.sbin to LIBADD
Reduce overlinking


# 7e659f94 19-Apr-2013 Ed Schouten <ed@FreeBSD.org>

Add the Clang specific -Wmissing-variable-declarations to WARNS=6.

This compiler flag enforces that that people either mark variables
static or use an external declarations for the variable, similar to how
-Wmissing-prototypes works for functions.

Due to the fact that Yacc/Lex generate code that cannot trivially be
changed to not warn because of this (lots of yy* variables), add a
NO_WMISSING_VARIABLE_DECLARATIONS that can be used to turn off this
specific compiler warning.

Announced on: toolchain@


# a7d5f7eb 19-Oct-2010 Jamie Gritton <jamie@FreeBSD.org>

A new jail(8) with a configuration file, to replace the work currently done
by /etc/rc.d/jail.


# fe0506d7 09-Mar-2010 Marcel Moolenaar <marcel@FreeBSD.org>

Create the altix project branch. The altix project will add support
for the SGI Altix 350 to FreeBSD/ia64. The hardware used for porting
is a two-module system, consisting of a base compute module and a
CPU expansion module. SGI's NUMAFlex architecture can be an excellent
platform to test CPU affinity and NUMA-aware features in FreeBSD.


# 71ccf092 02-Jan-2010 Ed Schouten <ed@FreeBSD.org>

The last big commit: let usr.sbin/ use WARNS=6 by default.


# d7f03759 19-Oct-2008 Ulf Lilleengen <lulf@FreeBSD.org>

- Import the HEAD csup code which is the basis for the cvsmode work.


# 71ce49ae 01-Oct-2007 Ruslan Ermilov <ru@FreeBSD.org>

Fixed "make checkdpadd" (missing library dependencies).

Approved by: re (kensmith)


# c21a9d0c 12-May-2007 Wojciech A. Koszek <wkoszek@FreeBSD.org>

Add ${.CURDIR} before kernconf.tmpl in order to let the build see newly
added kernconft.tmpl file.

Approved by: cognet (mentor)


# 744b947e 12-May-2007 Wojciech A. Koszek <wkoszek@FreeBSD.org>

Improve INCLUDE_CONFIG_FILE support.

This change will let us to have full configuration of a running kernel
available in sysctl:

sysctl -b kern.conftxt

The same configuration is also contained within the kernel image. It can be
obtained with:

config -x <kernelfile>

Current functionality lets you to quickly recover kernel configuration, by
simply redirecting output from commands presented above and starting kernel
build procedure. "include" statements are also honored, which means options
and devices from included files are also included.

Please note that comments from configuration files are not preserved by
default. In order to preserve them, you can use -C flag for config(8). This
will bring configuration file and included files literally; however,
redirection to a file no longer works directly.

This commit was followed by discussion, that took place on freebsd-current@.
For more details, look here:

http://lists.freebsd.org/pipermail/freebsd-current/2007-March/069994.html
http://lists.freebsd.org/pipermail/freebsd-current/2007-May/071844.html

Development of this patch took place in Perforce, hierarchy:

//depot/user/wkoszek/wkoszek_kconftxt/

Support from: freebsd-current@ (links above)
Reviewed by: imp@
Approved by: imp@


# f99d3b7b 08-Dec-2005 Ruslan Ermilov <ru@FreeBSD.org>

config.5 was repocopied from share/man/man5/ to usr.sbin/config/.

Repocopied by: peter


# dd472ec6 11-May-2004 Olivier Houchard <cognet@FreeBSD.org>

Fix a few glitches in my previous commit.
This makes config(8) WARNS?=6 compliant.


# 70be60d3 11-Jun-2003 David E. O'Brien <obrien@FreeBSD.org>

Best we can do is WARNS=1 due to lex.


# 9cad751d 11-Jun-2003 David E. O'Brien <obrien@FreeBSD.org>

Do not refer to the non-existant BDECFLAGS.


# 90e655ea 20-Jul-2001 David E. O'Brien <obrien@FreeBSD.org>

Perform a major cleanup of the usr.sbin Makefiles.
These are not perfectly in agreement with each other style-wise, but they
are orders of orders of magnitude more consistent style-wise than before.


# 345e52e7 26-Mar-2001 Ruslan Ermilov <ru@FreeBSD.org>

- Backout botched attempt to introduce MANSECT feature.
- MAN[1-9] -> MAN.


# c73e22c3 20-Mar-2001 Ruslan Ermilov <ru@FreeBSD.org>

Set the default manual section for usr.sbin/ to 8.


# 68f4fced 18-Feb-2001 Peter Wemm <peter@FreeBSD.org>

${BDECFLAGS} work. And fix a real error in the process. A "MAXUSERS"
string could have been passed to free(); There are some warnings here
I am not sure how to fix as they are in the lex scanner code, etc.


# f71c01cc 13-Jun-2000 Peter Wemm <peter@FreeBSD.org>

Borrow phk's axe and apply the next stage of config(8)'s evolution.

Use Warner Losh's "hint" driver to decode ascii strings to fill the
resource table at boot time.

config(8) no longer generates an ioconf.c table - ie: the configuration
no longer has to be compiled into the kernel. You can reconfigure your
isa devices with the likes of this at loader(8) time:
set hint.ed.0.port=0x320

userconfig will be rewritten to use this style interface one day and will
move to /boot/userconfig.4th or something like that.

It is still possible to statically compile in a set of hints into a kernel
if you do not wish to use loader(8). See the "hints" directive in GENERIC
as an example.

All device wiring has been moved out of config(8). There is a set of
helper scripts (see i386/conf/gethints.pl, and the same for alpha and pc98)
that extract the 'at isa? port foo irq bar' from the old files and produces
a hints file. If you install this file as /boot/device.hints (and update
/boot/defaults/loader.conf - You can do a build/install in sys/boot) then
loader will load it automatically for you. You can also compile in the
hints directly with: hints "device.hints" as well.

There are a few things that I'm not too happy with yet. Under this scheme,
things like LINT would no longer be useful as "documentation" of settings.
I have renamed this file to 'NOTES' and stored the example hints strings
in it. However... this is not something that config(8) understands, so
there is a script that extracts the build-specific data from the
documentation file (NOTES) to produce a LINT that can be config'ed and
built. A stack of man4 pages will need updating. :-/

Also, since there is no longer a difference between 'device' and
'pseudo-device' I collapsed the two together, and the resulting 'device'
takes a 'number of units' for devices that still have it statically
allocated. eg: 'device fe 4' will compile the fe driver with NFE set
to 4. You can then set hints for 4 units (0 - 3). Also note that
'device fe0' will be interpreted as "zero units of 'fe'" which would be
bad, so there is a config warning for this. This is only needed for
old drivers that still have static limits on numbers of units.
All the statically limited drivers that I could find were marked.

Please exercise EXTREME CAUTION when transitioning!

Moral support by: phk, msmith, dfr, asmodai, imp, and others


# 1c56dc36 10-Oct-1999 Peter Wemm <peter@FreeBSD.org>

Further cleanup. Also remove the following unused or defunct tokens:
and, bio, cam, master, minor, net, priority, sequential, size, slave, trace


# 97d92980 27-Aug-1999 Peter Wemm <peter@FreeBSD.org>

$Id$ -> $FreeBSD$


# 3e624da0 09-May-1999 Peter Wemm <peter@FreeBSD.org>

Put on my viking helmet from the closet, and get out the war axe and
"retire" some more stuff.


# e6fbbbe4 18-Apr-1999 Peter Wemm <peter@FreeBSD.org>

Further cleanups. i386_ioconf.c and alpha_ioconf.c were essentially the
same and were merged into a single newbus_ioconf.c. CG'd some more unused
code.


# 188334f6 17-Apr-1999 Peter Wemm <peter@FreeBSD.org>

Get out the blow torch and hack away all the unused stuff. Note that
I zapped the MACHINE_MIPS stuff, it isn't likely to be useful apart from
recognition of the machine name. It would be reasonable to expect new
ports would look something like the alpha/i386 from a config perspective.


# b282e6c1 13-Apr-1999 Peter Wemm <peter@FreeBSD.org>

Clean up the -g/DEBUG handling. This logic can go in the Makefile
so that config -g can work the same as: makeoptions DEBUG="-g"


# 34a4b6b4 06-May-1998 Bruce Evans <bde@FreeBSD.org>

Backed out previous backout. Put y.tab.h back in SRCS.


# e43e36af 05-May-1998 Bruce Evans <bde@FreeBSD.org>

Backed out previous commit. It was tested, but not for the case where
a separate object tree doesn't exist. Crufty makefiles will have to
put y.tab.h in SRCS so that we know not to create foo.h from foo.y.


# b681d906 04-May-1998 Bruce Evans <bde@FreeBSD.org>

Fixed races in `make -jN' using new yacc rules.


# 073065dc 06-Mar-1998 Bruce Evans <bde@FreeBSD.org>

Fixed `make -jN' for large N, as usual.


# 65437774 18-Feb-1998 Eivind Eklund <eivind@FreeBSD.org>

Style police service brought to you by: bde


# 0c90be32 21-Oct-1997 Peter Wemm <peter@FreeBSD.org>

For safety's sake, explicitly depend all objects on the configvers.h header
to make sure that it's all recompiled even if there is no 'make depend'.
This is overkill, but should be one less thing that someone can do wrong.


# 511dfc2c 06-Sep-1997 Bruce Evans <bde@FreeBSD.org>

Oops, the previous commit shouldn't have touch the Makefile.


# 3ec03428 07-Sep-1997 Bruce Evans <bde@FreeBSD.org>

Don't say that swapping is configured by config.


# 1d95dc91 02-Jun-1996 Poul-Henning Kamp <phk@FreeBSD.org>

Backout yacc changes.


# 829bde8e 30-May-1996 Poul-Henning Kamp <phk@FreeBSD.org>

yacc rule changes.


# 6d41b96f 11-Dec-1995 Peter Wemm <peter@FreeBSD.org>

Implement support for conf/options and i386/conf/options.i386
Note that this code is dormant unless the options files exist.
Also, parsing of quoted options in the config files is improved.

What this allows, is all the options in LINT to be specified to be
configured as #defines in a file rather than on the CC command line at
kernel build time. This means that 'make depend' will catch dependencies
on actual *options*, meaning that you can run 'config' and 'make depend'
in complete safety WITHOUT removing the compile directory each time.

Unfortunately, this requires a pass over the source to get the individual
files to #include the new .h files that would be generated by config.
This has a small compile time penalty (appears up to about 2% slower)
from a "fresh" build. Of course, you should not be needing to do complete
rebuilds very often once this was completed, so it would be an overall
win for most people.

Since this code is dormant and we've got a lot of other things happening
on the kernel tree at the moment (prototypes, devfs, static declarations
etc) I am not planning on doing any changes to activate this feature just
yet.


# 8e7fbe02 28-Nov-1995 Garrett Wollman <wollman@FreeBSD.org>

If CONFIG_NO_CLOBBER_EVER is defined (e.g., in /etc/make.conf), don't make
it possible for config to ever blow away a work directory. Default behavior
remains broken.


# 8f160768 28-Sep-1995 Bruce Evans <bde@FreeBSD.org>

Fix CLEANFILES. Some temporary files were missing.


# b5909509 22-Feb-1995 Jordan K. Hubbard <jkh@FreeBSD.org>

Make good on my promise to finally clean up the config clobbering.
If you invoke config with the `-n' flag or have NO_CONFIG_CLOBBER in
your environment, config will behave the same way it used to. This is
now _documented_ as well. Rip out all the CONFIG_DONT_CLOBBER cruft;
some of it wasn't even correct anyway.


# fb5960ef 27-Nov-1994 Bruce Evans <bde@FreeBSD.org>

Remove ifdef for STATCLOCK. STATCLOCK is standard.


# c33f3535 06-Sep-1994 Garrett Wollman <wollman@FreeBSD.org>

Revert back to old config behavior if compiled with -DCONFIG_DONT_CLOBBER.


# c62cd43c 17-Aug-1994 David Greenman <dg@FreeBSD.org>

Oops...forgot to list the changes....

/usr/src/usr.sbin.config:
o -DSTATCLOCK gives kludges to support the rtc non-device as well as
old kludges to support the clk non-device.

/usr/src/usr.sbin/config.8:
o Document the trivialness of the new vector.h.

/usr/src/usr.sbin/mkglue.c:
o Only print DEVICE_NAMES and NR_DEVICES in vector.h. These are
only required to support vmstat. The vmstat interface will need
to be improved for dynamic loading.

/usr/src/usr.sbin/mkioconf.c:
o Print device ids to be used as indexes into DEVICE_NAMES.
o Print secondary interrupt handler entry points (xxxintr()) instead
of primary ones (VdevU()). Primary ones are now XintrI() and
XfastintrI() and are independent of the config so they are not
handled here.
o Minor cleanups.

Submitted by: Bruce Evans


# 5ced58e4 17-Aug-1994 David Greenman <dg@FreeBSD.org>

Support for Bruce Evans' new dynamic interrupt support.

Submitted by: Bruce Evans


# 4eaaddb7 26-May-1994 Rodney W. Grimes <rgrimes@FreeBSD.org>

Upgrade config to be compatible with our i386 port, pull in 95% of the
changes that have been made in FreeBSD 1.x, except for possibly the nfs
diskless support this is a completed config.


# dea673e9 25-May-1994 Rodney W. Grimes <rgrimes@FreeBSD.org>

BSD 4.4 Lite usr.sbin Sources