From: Roman Zippel <zippel@linux-m68k.org>
To: linux-kernel <linux-kernel@vger.kernel.org>,
kbuild-devel <kbuild-devel@lists.sourceforge.net>
Subject: linux kernel conf 0.4
Date: Thu, 05 Sep 2002 02:11:43 +0200 [thread overview]
Message-ID: <3D76A13F.8BDC8E8C@linux-m68k.org> (raw)
Hi,
At http://www.xs4all.nl/~zippel/lc/lkc-0.4.tar.gz you can find the
latest version of my config system. It slowly is becoming completely
usable, so it's time for a new release.
A lot has changed since the last official release, so here only some
highlights:
- correct dependencies for the config files are now generated, "make
oldconfig" isn't needed anymore in many cases (you should try it before
making any comments about it).
- config rulebase is with some small (known) exceptions the same in the
old and new syntax, even comments are now preserved.
- menuconfig is working again. Except of xconfig the user interface is
almost as before, anything you could do before, you still can do.
- it's much faster in the common case.
- clean separation between frontends and backend.
Installation is very simple with "make install KERNELSRC=<..>", where
KERNELSRC points to a 2.5.33 kernel tree. "make uninstall
KERNELSRC=<..>" will deinstall everything.
I think the new system is ready for wider testing, so any feedback is
very much appreciated. Most important is probably the new syntax, until
it it's integrated I can easily change the converter to generate
whatever syntax. I still have to update the documentation, but the
syntax should be easily understandable even without it. For the lazy
guys out there, here is an (already advanced) example:
choice
prompt "Adaptec AIC7xxx support"
optional
depends SCSI
config SCSI_AIC7XXX
tristate "New driver"
help
...
config AIC7XXX_CMDS_PER_DEVICE
int "Maximum number of TCQ commands per device"
depends SCSI_AIC7XXX
default "253"
help
...
config AIC7XXX_RESET_DELAY_MS
int "Initial bus reset delay in milli-seconds"
depends SCSI_AIC7XXX
default "15000"
help
...
config AIC7XXX_BUILD_FIRMWARE
boolean "Build Adapter Firmware with Kernel Build"
depends SCSI_AIC7XXX
config SCSI_AIC7XXX_OLD
tristate "Old driver"
help
...
config AIC7XXX_OLD_TCQ_ON_BY_DEFAULT
boolean "Enable Tagged Command Queueing (TCQ) by default"
depends SCSI_AIC7XXX_OLD
help
...
config AIC7XXX_OLD_CMDS_PER_DEVICE
int "Maximum number of TCQ commands per device"
depends SCSI_AIC7XXX_OLD
default "8"
help
...
config AIC7XXX_OLD_PROC_STATS
boolean "Collect statistics to report in /proc"
depends SCSI_AIC7XXX_OLD
help
...
endchoice
This new syntax basically fixes the recursive dependencies in the old
syntax:
if [ "$CONFIG_SCSI_AIC7XXX_OLD" != "y" ]; then
dep_tristate 'Adaptec AIC7xxx support' CONFIG_SCSI_AIC7XXX
$CONFIG_SCSI
if [ "$CONFIG_SCSI_AIC7XXX" != "n" ]; then
...
fi
fi
if [ "$CONFIG_SCSI_AIC7XXX" != "y" ]; then
dep_tristate 'Old Adaptec AIC7xxx support' CONFIG_SCSI_AIC7XXX_OLD
$CONFIG_SCSI
if [ "$CONFIG_SCSI_AIC7XXX_OLD" != "n" ]; then
...
fi
fi
The most important thing here is that you now always see that there is a
choice between two drivers. For example in menuconfig you had to know
that you have to disable one option to see the other option or if you
have an old .config, which doesn't contain CONFIG_SCSI_AIC7XXX_OLD, but
has CONFIG_SCSI_AIC7XXX set to 'y', "make oldconfig" won't tell you
about the new option.
Anyway, back to the new syntax. One thing I'm not yet completely sure
about is indention, as it might help to make above more easily readable.
The parser automatically recognizes the suboptions (by analyzing the
dependencies) and the frontends present them accordingly (how exactly
you should try yourself :) ). The problem here are the help texts, they
should be easily editable, but on the other hand the parser has to find
where it ends (and possibly reformat it a bit). Right now the help text
simply ends at the first line that doesn't start with a white-space. So
I'm toying with various ideas to make the suboption more easily
recognizable, e.g. they could also be put within an "if FOO" ... "endif"
block.
Something else above example demonstrates is the default value, first,
bool and tristate symbols can have default values as well and second,
something like this is possible:
config FOO
bool 'bar' if BAR
default y
The default value has two meanings here, first it's used as default
value for the prompt and if the prompt isn't visible, FOO is set to it.
This is quite useful for some of the advanced config options.
That's it for now, so have fun and complain _now_, not when it's too
late. :)
bye, Roman
next reply other threads:[~2002-09-05 0:08 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2002-09-05 0:11 Roman Zippel [this message]
2002-09-05 8:49 ` linux kernel conf 0.4 DervishD
2002-09-05 9:03 ` Roman Zippel
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=3D76A13F.8BDC8E8C@linux-m68k.org \
--to=zippel@linux-m68k.org \
--cc=kbuild-devel@lists.sourceforge.net \
--cc=linux-kernel@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.