Re: State of the new config & build system

Linus Torvalds
2001-12-28T22:30:22Z

On Fri, 28 Dec 2001, Eric S. Raymond wrote:
> Legacy Fishtank <garzik@havoc.gtf.org>:
> > Note I am specifically NOT talking about MAINTAINERS and CREDITS.
> > -PLEASE- don't obscure my point by mentioning them.
>
> It's the same problem, Jeff. Same solution, too.

It's not.

We already have pre-file credits information - people can put stuff in
there for their own (C) messages etc. The MAINTAINERS file is a much
higher-level thing which is there to be human-readable.

Note that I do _not_ want to mess up source files with magic comments. I
absolutely detest those. They only detract from the real job of coding,
and do not make anybody happier.

We have a hierarchical filesystem. Most drivers already have

driver.c
driver.h

(in fact _very_ few drivers are single-file) and some have a subdirectory
of their own. So why not just have

driver.conf

and be done with it. No point in messing up the C file with stuff that
doesn't add any information to either the programmer _or_ the compiler.

Then you can make the config file _truly_ readable, and make the format
something like

define tristate
CONFIG_SCSI_AIC7XXX: Adaptec AIC7xxx support

This driver supports all of Adaptec's PCI based SCSI controllers
(not the hardware RAID controllers though) as well as the aic7770
based EISA and VLB SCSI controllers (the 274x and 284x series).
This is an Adaptec sponsored driver written by Justin Gibbs. It is
intended to replace the previous aic7xxx driver maintained by Doug
Ledford since Doug is no longer maintaining that driver.

depends on CONFIG_SCSI
depends on CONFIG_PCI
depends on ...

define integer
CONFIG_AIC7XXX_CMDS_PER_DEVICE: Maximum number of TCQ commands per device

depends on CONFIG_SCSI_AIC7XXX
default value 253

define integer
CONFIG_AIC7XXX_RESET_DELAY_MS: Initial bus reset delay in milli-seconds

depends on CONFIG_SCSI_AIC7XXX
default value 15000

....

and it's readable and probably trivially parseable into both the existing
format (ie some "find . -name '*.conf'" plus sed-scripts) and into cml2 or
whatever.

Linus