mmotm 2010-05-19 - Kconfig dependency list from hell...

From: Valdis . Kletnieks
Date: Thu May 20 2010 - 11:22:17 EST


On Wed, 19 May 2010 16:13:09 PDT, akpm@xxxxxxxxxxxxxxxxxxxx said:
> The mm-of-the-moment snapshot 2010-05-19-16-12 has been uploaded to
>
> http://userweb.kernel.org/~akpm/mmotm/

Looks like some code to sort the dependency list and eliminate duplicates is
called for. I hit '?' on a new prompt, and saw this:

CONFIG_COMEDI_FC:

Enable support for shared functions for low-level drivers.
This module is not used directly by end-users. Rather, it
is used by many other comedi drivers.

To compile this driver as a module, choose M here: the module will be
called comedi_fc.

Symbol: COMEDI_FC [=n]
Prompt: Comedi shared functions for low-level driver support
Defined at drivers/staging/comedi/Kconfig:1294
Depends on: STAGING [=y] && !STAGING_EXCLUDE_BUILD [=n]
Location:
-> Device Drivers
-> Staging drivers (STAGING [=y])
-> Exclude Staging drivers from being built (STAGING_EXCLUDE_BUILD [=n])

Selected by: COMEDI_TEST [=n] && STAGING [=y] && !STAGING_EXCLUDE_BUILD [=n]
&& COMEDI_MISC_DRIVERS [=n] || COMEDI_DAS16M1 [=n] && STAGING [=y] &&
!STAGING_EXCLUDE_BUILD [=n] && COMEDI_ISA_DRIVERS [=n] && ISA [=n] ||
COMEDI_DAS16 [=n] && STAGING [=y] && !STAGING_EXCLUDE_BUILD [=n] &&
COMEDI_ISA_DRIVERS [=n] && ISA [=n] || COMEDI_DAS800 [=n] && STAGING [=y] &&
!STAGING_EXCLUDE_BUILD [=n] && COMEDI_ISA_DRIVERS [=n] && ISA [=n] ||
COMEDI_DAS1800 [=n] && STAGING [=y] && !STAGING_EXCLUDE_BUILD [=n] &&
COMEDI_ISA_DRIVERS [=n] && ISA [=n] || COMEDI_DT282X [=n] && STAGING [=y] &&
!STAGING_EXCLUDE_BUILD [=n] && COMEDI_ISA_DRIVERS [=n] && ISA [=n] ||
COMEDI_ADDI_APCI_3001 [=n] && STAGING [=y] && !STAGING_EXCLUDE_BUILD [=n] &&
COMEDI_PCI_DRIVERS [=n] && PCI [=y] || COMEDI_ADDI_APCI_3120 [=n] && STAGING
[=y] && !STAGING_EXCLUDE_BUILD [=n] && COMEDI_PCI_DRIVERS [=n] && PCI [=y] ||
COMEDI_ADL_PCI9111 [=n] && STAGING [=y] && !STAGING_EXCLUDE_BUILD [=n] &&
COMEDI_PCI_DRIVERS [=n] && PCI [=y] || COMEDI_ADL_PCI9118 [=n] && STAGING [=y]
&& !STAGING_EXCLUDE_BUILD [=n] && COMEDI_PCI_DRIVERS [=n] && PCI [=y] ||
COMEDI_AMPLC_PCI224 [=n] && STAGING [=y] && !STAGING_EXCLUDE_BUILD [=n] &&
COMEDI_PCI_DRIVERS [=n] && PCI [=y] || COMEDI_GSC_HPDI [=n] && STAGING [=y] &&
!STAGING_EXCLUDE_BUILD [=n] && COMEDI_PCI_DRIVERS [=n] && PCI [=y] ||
COMEDI_CB_PCIDAS64 [=n] && STAGING [=y] && !STAGING_EXCLUDE_BUILD [=n] &&
COMEDI_PCI_DRIVERS [=n] && PCI [=y] || COMEDI_CB_PCIDAS [=n] && STAGING [=y] &&
!STAGING_EXCLUDE_BUILD [=n] && COMEDI_PCI_DRIVERS [=n] && PCI [=y] ||
COMEDI_S626 [=n] && STAGING [=y] && !STAGING_EXCLUDE_BUILD [=n] &&
COMEDI_PCI_DRIVERS [=n] && PCI [=y] || COMEDI_NI_MIO_CS [=n] && STAGING [=y] &&
!STAGING_EXCLUDE_BUILD [=n] && COMEDI_PCMCIA_DRIVERS [=n] && PCMCIA [=y] &&
COMEDI_NI_TIO [=n] && COMEDI_NI_COMMON [=n] || COMEDI_USBDUXFAST [=n] &&
STAGING [=y] && !STAGING_EXCLUDE_BUILD [=n] && COMEDI_USB_DRIVERS [=n] && USB
[=y] || COMEDI_NI_LABPC [=n] && STAGING [=y] && !STAGING_EXCLUDE_BUILD [=n] &&
COMEDI_NI_COMMON [=n]

(Last line wrapped for readability). That includes these dups:

19 !STAGING_EXCLUDE_BUILD [=n]
18 STAGING [=y]
9 COMEDI_PCI_DRIVERS [=n]
5 COMEDI_ISA_DRIVERS [=n]

It would probably be harder to reduce these:

1 PCI [=y] || COMEDI_S626 [=n]
1 PCI [=y] || COMEDI_NI_MIO_CS [=n]
1 PCI [=y] || COMEDI_GSC_HPDI [=n]
1 PCI [=y] || COMEDI_CB_PCIDAS64 [=n]
1 PCI [=y] || COMEDI_CB_PCIDAS [=n]
1 PCI [=y] || COMEDI_AMPLC_PCI224 [=n]
1 PCI [=y] || COMEDI_ADL_PCI9118 [=n]
1 PCI [=y] || COMEDI_ADL_PCI9111 [=n]
1 PCI [=y] || COMEDI_ADDI_APCI_3120 [=n]
1 ISA [=n] || COMEDI_DT282X [=n]
1 ISA [=n] || COMEDI_DAS800 [=n]
1 ISA [=n] || COMEDI_DAS1800 [=n]
1 ISA [=n] || COMEDI_DAS16 [=n]
1 ISA [=n] || COMEDI_ADDI_APCI_3001 [=n]

(Is there a reason these don't print with () around them? It looks like it
needs them to enforce proper semantics...)




Attachment: pgp00000.pgp
Description: PGP signature