linux/README

107 lines
4.0 KiB
Plaintext

Config files
------------
All the config files live in the arch subdirectory. The config
file for a particular subarch is constructed by concatenating
the following files (any of them can be missing):
arch/config.common - architecture-independent config file
arch/<arch>/config.common - subarch-independent config file
for a particular architecture
arch<arch>/config.<subarch> - subarch-specific config file.
It is possible to avoid the inclusion of the arch-independent
config file (handy for the transitional period) by setting the
include_common_config variable to 'no' in arch/<arch>/Makefile.inc.
Control file
------------
The master control file debian/control must be generated before
the package is uploaded. debian/rules contains the debian/control
target, which generates the control file by concatenating the
common debian/control.in and all the arch/<arch>/control.in
files, and performing the variable substitution. Currently the
following variables are going to be substituted:
@karch@ Replaced by the architecture string, identical to
DEB_HOST_ARCH, as returned by dpkg-architecture.
@version@ Upstream kernel version, for example 2.6.11.
@ktver@ Minor version of kernel-tree to build-depend on.
@abiname@ Abiname value for this set of packages.
@kbpkg@ Current name and version of the kernel-build
package to build-depend on. Typical value may
be 'kernel-build-2.6-3', for example.
After variable substitution the resulting file is formatted to
ensure that the only blank lines are the ones separating the
entries (i.e. before the next Package: line).
Makefile.inc
------------
Each architecture subdirectory in arch may contain a Makefile.inc
file, which is included by debian/rules after definining all the
variables. It may be used to override the standard variables on
per-architecture basis and other evil things. So far the valid uses of
this file include the setting of the following variables:
include_common_config
Setting it to 'no' will prevent the common kernel config from being
included for this particular architecture. Typical usage:
include_common_config := no
headers_dirs
This variable is substituted into the headers-install script,
controlling which asm-* directories are included into the
kernel-headers package. By default it is set to karch (see
above). See header-install.in file for detail. Typical usage:
headers_dirs := sparc | sparc64
headers_subarch
The subarch to pass to the --subarch option for the make-kpkg
call to build the kernel-headers. Typical usage:
headers_subarch := sparc64
added_patches
Setting this variable to non-empty value will cause an option
--added_patches to be added to the make-kpkg 'build' and
'kernel-image' calls. The value of the variable will be
given as an argument for the --added-patchs option. The value
of this variable may contain a special string @uver@ which
is going to be expanded into the upstream kernel's version
with dots replaced by underscores (for example, 2_6_11 for the
kernel version 2.6.11). Typical usage:
added_patches := debian,hppa-@uver@
build_subarch
Setting this variable to non-empty value will cause an option
--subarch to be added to 'build' and 'kernel-image' make-kpkg
calls, followed by the flavour for which the kernel is built.
In general, if you wish to add subarch support for your
architecture, you should contact kernel-package maintainer
to ensure that the flavour name correctly maps onto a kernel
subarch name. Currently only mips and sparc are using this
facility, and both of them should be fine. Typical usage:
build_subarch := yes
Note that the value of this variable is ignored.
build_makeflags
This variable may contain the make flags settings for the
make-kpkg invocation in the 'build' target. Currently it is
only used by amd64, where it should be set to something like
build_makeflags := 'CC=amd64-linux-gcc V=1'
The value of the variable must be properly quoted.