ALSA: seq: Reorganize kconfig and build
authorTakashi Iwai <tiwai@suse.de>
Fri, 9 Jun 2017 12:40:18 +0000 (14:40 +0200)
committerTakashi Iwai <tiwai@suse.de>
Fri, 9 Jun 2017 20:10:06 +0000 (22:10 +0200)
This is a slightly intensive rewrite of Kconfig and Makefile about
ALSA sequencer stuff.

The first major change is that the kconfig items for the sequencer are
moved to sound/core/seq/Kconfig.  OK, that's easy.

The substantial change is that, instead of hackish top-level module
selection in Makefile, we define a Kconfig item for each sequencer
module.  The driver that requires such sequencer components select
exclusively the kconfig items.  This is more straightforward and
standard way.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
sound/core/Kconfig
sound/core/seq/Kconfig
sound/core/seq/Makefile
sound/drivers/Kconfig
sound/isa/Kconfig
sound/pci/Kconfig

index d64dbee36986132fad548b35d4995cccb6adcc64..90990eb1d2502c30be43cae3d0ab32e875d87c5f 100644 (file)
@@ -33,31 +33,6 @@ config SND_JACK_INPUT_DEV
        depends on SND_JACK
        default y if INPUT=y || INPUT=SND
 
-config SND_SEQUENCER
-       tristate "Sequencer support"
-       select SND_TIMER
-       help
-         Say Y or M to enable MIDI sequencer and router support.  This
-         feature allows routing and enqueueing of MIDI events.  Events
-         can be processed at a given time.
-
-         Many programs require this feature, so you should enable it
-         unless you know what you're doing.
-
-config SND_SEQ_DUMMY
-       tristate "Sequencer dummy client"
-       depends on SND_SEQUENCER
-       help
-         Say Y here to enable the dummy sequencer client.  This client
-         is a simple MIDI-through client: all normal input events are
-         redirected to the output port immediately.
-
-         You don't need this unless you want to connect many MIDI
-         devices or applications together.
-
-         To compile this driver as a module, choose M here: the module
-         will be called snd-seq-dummy.
-
 config SND_OSSEMUL
        bool "Enable OSS Emulation"
        select SOUND_OSS_CORE
@@ -109,20 +84,6 @@ config SND_PCM_TIMER
          For some embedded devices, we may disable it to reduce memory
          footprint, about 20KB on x86_64 platform.
 
-config SND_SEQUENCER_OSS
-       tristate "OSS Sequencer API"
-       depends on SND_SEQUENCER
-       depends on SND_OSSEMUL
-       help
-         Say Y here to enable OSS sequencer emulation (both
-         /dev/sequencer and /dev/music interfaces).
-
-         Many programs still use the OSS API, so say Y.
-
-         If you choose M in "Sequencer support" (SND_SEQUENCER),
-         this will be compiled as a module. The module will be called
-         snd-seq-oss.
-
 config SND_HRTIMER
        tristate "HR-timer backend support"
        depends on HIGH_RES_TIMERS
@@ -135,14 +96,6 @@ config SND_HRTIMER
          To compile this driver as a module, choose M here: the module
          will be called snd-hrtimer.
 
-config SND_SEQ_HRTIMER_DEFAULT
-       bool "Use HR-timer as default sequencer timer"
-       depends on SND_HRTIMER && SND_SEQUENCER
-       default y
-       help
-         Say Y here to use the HR-timer backend as the default sequencer
-         timer.
-
 config SND_DYNAMIC_MINORS
        bool "Dynamic device file minor numbers"
        help
index b851fd890a896c450360b2fa7f50458662b9da11..140e640e62a615ae6685d6061405d997da61d53f 100644 (file)
@@ -1,16 +1,62 @@
-# define SND_XXX_SEQ to min(SND_SEQUENCER,SND_XXX)
+config SND_SEQUENCER
+       tristate "Sequencer support"
+       select SND_TIMER
+       help
+         Say Y or M to enable MIDI sequencer and router support.  This
+         feature allows routing and enqueueing of MIDI events.  Events
+         can be processed at a given time.
 
-config SND_RAWMIDI_SEQ
-       def_tristate SND_SEQUENCER && SND_RAWMIDI
+         Many programs require this feature, so you should enable it
+         unless you know what you're doing.
 
-config SND_OPL3_LIB_SEQ
-       def_tristate SND_SEQUENCER && SND_OPL3_LIB
+if SND_SEQUENCER
 
-config SND_OPL4_LIB_SEQ
-       def_tristate SND_SEQUENCER && SND_OPL4_LIB
+config SND_SEQ_DUMMY
+       tristate "Sequencer dummy client"
+       help
+         Say Y here to enable the dummy sequencer client.  This client
+         is a simple MIDI-through client: all normal input events are
+         redirected to the output port immediately.
 
-config SND_SBAWE_SEQ
-       def_tristate SND_SEQUENCER && SND_SBAWE
+         You don't need this unless you want to connect many MIDI
+         devices or applications together.
+
+         To compile this driver as a module, choose M here: the module
+         will be called snd-seq-dummy.
+
+config SND_SEQUENCER_OSS
+       tristate "OSS Sequencer API"
+       depends on SND_OSSEMUL
+       select SND_SEQ_MIDI_EVENT
+       help
+         Say Y here to enable OSS sequencer emulation (both
+         /dev/sequencer and /dev/music interfaces).
+
+         Many programs still use the OSS API, so say Y.
+
+         To compile this driver as a module, choose M here: the module
+         will be called snd-seq-oss.
+
+config SND_SEQ_HRTIMER_DEFAULT
+       bool "Use HR-timer as default sequencer timer"
+       depends on SND_HRTIMER
+       default y
+       help
+         Say Y here to use the HR-timer backend as the default sequencer
+         timer.
+
+config SND_SEQ_MIDI_EVENT
+       def_tristate SND_RAWMIDI
+
+config SND_SEQ_MIDI
+       tristate
+       select SND_SEQ_MIDI_EVENT
+
+config SND_SEQ_MIDI_EMUL
+       tristate
+
+config SND_SEQ_VIRMIDI
+       tristate
+
+endif # SND_SEQUENCER
 
-config SND_EMU10K1_SEQ
-       def_tristate SND_SEQUENCER && SND_EMU10K1
index 3283b055e5fff744080ac62f3d74dfa83a1e84f3..81a8ea5372094b6bc09f65a15bc365ac97db1b71 100644 (file)
@@ -15,15 +15,10 @@ snd-seq-dummy-objs := seq_dummy.o
 snd-seq-virmidi-objs := seq_virmidi.o
 
 obj-$(CONFIG_SND_SEQUENCER) += snd-seq.o snd-seq-device.o
-obj-$(CONFIG_SND_SEQUENCER_OSS) += snd-seq-midi-event.o
 obj-$(CONFIG_SND_SEQUENCER_OSS) += oss/
 
 obj-$(CONFIG_SND_SEQ_DUMMY) += snd-seq-dummy.o
-
-# Toplevel Module Dependency
-obj-$(CONFIG_SND_VIRMIDI) += snd-seq-virmidi.o snd-seq-midi-event.o
-obj-$(CONFIG_SND_RAWMIDI_SEQ) += snd-seq-midi.o snd-seq-midi-event.o
-obj-$(CONFIG_SND_OPL3_LIB_SEQ) += snd-seq-midi-event.o snd-seq-midi-emul.o
-obj-$(CONFIG_SND_OPL4_LIB_SEQ) += snd-seq-midi-event.o snd-seq-midi-emul.o
-obj-$(CONFIG_SND_SBAWE_SEQ) += snd-seq-midi-emul.o snd-seq-virmidi.o
-obj-$(CONFIG_SND_EMU10K1_SEQ) += snd-seq-midi-emul.o snd-seq-virmidi.o
+obj-$(CONFIG_SND_SEQ_MIDI) += snd-seq-midi.o
+obj-$(CONFIG_SND_SEQ_MIDI_EMUL) += snd-seq-midi-emul.o
+obj-$(CONFIG_SND_SEQ_MIDI_EVENT) += snd-seq-midi-event.o
+obj-$(CONFIG_SND_SEQ_VIRMIDI) += snd-seq-virmidi.o
index 8545da99b183bf4d56d713700d309a3a5972c4bd..0e3dc80a7262ed02ad729564972a66752bf63c45 100644 (file)
@@ -12,6 +12,17 @@ config SND_OPL4_LIB
        select SND_TIMER
        select SND_HWDEP
 
+# select SEQ stuff to min(SND_SEQUENCER,SND_XXX)
+config SND_OPL3_LIB_SEQ
+       def_tristate SND_SEQUENCER && SND_OPL3_LIB
+       select SND_SEQ_MIDI_EMUL
+       select SND_SEQ_MIDI_EVENT
+
+config SND_OPL4_LIB_SEQ
+       def_tristate SND_SEQUENCER && SND_OPL4_LIB
+       select SND_SEQ_MIDI_EMUL
+       select SND_SEQ_MIDI_EVENT
+
 config SND_VX_LIB
        tristate
        select FW_LOADER
@@ -99,6 +110,8 @@ config SND_VIRMIDI
        depends on SND_SEQUENCER
        select SND_TIMER
        select SND_RAWMIDI
+       select SND_SEQ_VIRMIDI
+       select SND_SEQ_MIDI_EVENT
        help
          Say Y here to include the virtual MIDI driver.  This driver
          allows to connect applications using raw MIDI devices to
index 37adcc6cbe6bd852a290cc95ea58cc05863e88ba..bf1ab340e2a76cfc9eb62eab56daceb3478896b8 100644 (file)
@@ -384,6 +384,12 @@ config SND_SBAWE
          To compile this driver as a module, choose M here: the module
          will be called snd-sbawe.
 
+# select SEQ stuff to min(SND_SEQUENCER,SND_XXX)
+config SND_SBAWE_SEQ
+       def_tristate SND_SEQUENCER && SND_SBAWE
+       select SND_SEQ_MIDI_EMUL
+       select SND_SEQ_VIRMIDI
+
 config SND_SB16_CSP
        bool "Sound Blaster 16/AWE CSP support"
        depends on (SND_SB16 || SND_SBAWE) && (BROKEN || !PPC)
index 32151d8c6bb8677b5a6f3b11b0a52eb9af35e80b..bc7acb489a43de531344d3a0c86c3ad21c424f2e 100644 (file)
@@ -477,6 +477,12 @@ config SND_EMU10K1
          To compile this driver as a module, choose M here: the module
          will be called snd-emu10k1.
 
+# select SEQ stuff to min(SND_SEQUENCER,SND_XXX)
+config SND_EMU10K1_SEQ
+       def_tristate SND_SEQUENCER && SND_EMU10K1
+       select SND_SEQ_MIDI_EMUL
+       select SND_SEQ_VIRMIDI
+
 config SND_EMU10K1X
        tristate "Emu10k1X (Dell OEM Version)"
        select SND_AC97_CODEC