.Dd June 1, 2015
.Dt CONFIG 8
.Os RetroBSD
.Sh NAME
.Nm kconfig
.Nd build kernel configuration files
.Sh SYNOPSIS
.Nm kconfig
.Op Fl g
.Ar system_name
.Sh DESCRIPTION
.Pp
.Nm Kconfig
builds a set of kernel configuration files from the file
.Ar SYSTEM_NAME
which describes the kernel to configure.
A second file tells
.Nm kconfig
what files are needed to generate a kernel and
can be augmented by configuration specific set of files
that give alternate files for a specific architecture.
(see the
.Sx FILES
section below)
.Pp
Available option and operand:
.Pp
.Bl -tag -width SYSTEM_NAME
.It Fl g
If the
.Fl p
option is supplied,
.Nm kconfig
will configure a kernel for debugging.
.It Ar SYSTEM_NAME
specifies the name of the kernel configuration file
containing device specifications, configuration options
and other system parameters for one kernel configuration.
.El
.Pp
.Nm Kconfig
should be run from the architecture and board specific
subdirectory of the system source (like
.Pa sys/pic32/max32 ) .
.Nm Kconfig
places all output files in the current directory.
The output of
.Nm kconfig
consists of a number of files:
.Pa ioconf.c ,
a description
of what I/O devices are attached to the system;
.Pa Makefile ,
used by
.Xr make 1
in building the kernel;
header files, definitions of
the number of various devices that will be compiled into the kernel;
swap configuration files, definitions for
the disk areas to be used for swapping, the root file system,
argument processing, and kernel dumps.
.Pp
After running
.Nm kconfig ,
it is necessary to run
.Dq Li make depend
in the directory where the new makefile
was created (current directory).
.Nm Kconfig
prints a reminder of this when it completes.
.Pp
If any other error messages are produced by
.Nm kconfig ,
the problems in the configuration file should be corrected and
.Nm kconfig
should be run again.
Attempts to compile a kernel that had configuration errors
are likely to fail.
.Sh FILES
.Bl -tag -width ../Makefile.kconf -compact
.It Pa ../Makefile.kconf
generic makefile for the platform
.It Pa ../files.kconf
list of files kernel is built from
.It Pa ../devices.kconf
name to major device mapping file
.El
.Sh SEE ALSO
The SYNOPSIS portion of each device in section 4.
.Rs
.%T "Building RetroBSD Kernel with kconfig"
.Re
.Sh BUGS
The line numbers reported in error messages are usually off by one.
.Sh HISTORY
The
.Nm
command appeared in
.Bx 4.1 .
