Merge with Linux 2.4.0-test6-pre4.
[linux-2.6/linux-mips.git] / drivers / sound / Makefile
blob399148c74129efd08ce87f9bf2b8d15bbcfd0e38
1 # Makefile for the Linux sound card driver
3 # 18 Apr 1998, Michael Elizabeth Chastain, <mailto:mec@shout.net>
4 # Rewritten to use lists instead of if-statements.
8 # My subdirectories.
10 SUB_DIRS :=
11 MOD_SUB_DIRS :=
12 MOD_IN_SUB_DIRS :=
13 ALL_SUB_DIRS := $(SUB_DIRS) emu10k1
15 # All of the (potential) objects that export symbols.
16 # This list comes from 'grep -l EXPORT_SYMBOL *.[hc]'.
18 export-objs := ad1848.o audio_syms.o midi_syms.o mpu401.o \
19 msnd.o opl3.o sb_common.o sequencer_syms.o \
20 sound_core.o sound_syms.o uart401.o \
21 nm256_audio.o ac97.o ac97_codec.o
25 # Object file lists.
27 obj-y :=
28 obj-m :=
29 obj-n :=
30 obj- :=
34 # Each configuration option enables a list of files.
36 obj-$(CONFIG_SOUND) += soundcore.o
37 obj-$(CONFIG_SOUND_OSS) += sound.o
38 obj-$(CONFIG_SOUND_CS4232) += cs4232.o ad1848.o
40 # Please leave it as is, cause the link order is significant !
42 obj-$(CONFIG_SOUND_AEDSP16) += aedsp16.o
43 obj-$(CONFIG_SOUND_PSS) += pss.o ad1848.o mpu401.o
44 obj-$(CONFIG_SOUND_TRIX) += trix.o ad1848.o sb_lib.o uart401.o
45 obj-$(CONFIG_SOUND_OPL3SA1) += opl3sa.o ad1848.o uart401.o
46 obj-$(CONFIG_SOUND_SOFTOSS) += softoss2.o
47 obj-$(CONFIG_SOUND_SSCAPE) += sscape.o ad1848.o mpu401.o
48 obj-$(CONFIG_SOUND_MAD16) += mad16.o ad1848.o sb_lib.o uart401.o
49 obj-$(CONFIG_SOUND_CS4232) += cs4232.o uart401.o
50 obj-$(CONFIG_SOUND_OPL3SA2) += opl3sa2.o ad1848.o mpu401.o
51 obj-$(CONFIG_SOUND_MSS) += ad1848.o
52 obj-$(CONFIG_SOUND_PAS) += pas2.o sb_lib.o uart401.o
53 obj-$(CONFIG_SOUND_SB) += sb.o sb_lib.o uart401.o
54 obj-$(CONFIG_SOUND_WAVEFRONT) += wavefront.o
55 obj-$(CONFIG_SOUND_MAUI) += maui.o mpu401.o
56 obj-$(CONFIG_SOUND_MPU401) += mpu401.o
57 obj-$(CONFIG_SOUND_UART6850) += uart6850.o
58 obj-$(CONFIG_SOUND_GUS) += gus.o ad1848.o
59 obj-$(CONFIG_SOUND_ADLIB) += adlib_card.o opl3.o
60 obj-$(CONFIG_SOUND_YM3812) += opl3.o
61 obj-$(CONFIG_SOUND_VMIDI) += v_midi.o
62 obj-$(CONFIG_SOUND_VIDC) += vidc_mod.o
63 obj-$(CONFIG_SOUND_WAVEARTIST) += waveartist.o
64 obj-$(CONFIG_SOUND_SGALAXY) += sgalaxy.o ad1848.o
65 obj-$(CONFIG_SOUND_AD1816) += ad1816.o
66 obj-$(CONFIG_SOUND_ACI_MIXER) += aci.o
67 obj-$(CONFIG_SOUND_AWE32_SYNTH) += awe_wave.o
69 obj-$(CONFIG_SOUND_VIA82CXXX) += via82cxxx_audio.o ac97_codec.o
70 obj-$(CONFIG_SOUND_YMPCI) += ymf_sb.o sb_lib.o uart401.o
71 obj-$(CONFIG_SOUND_MSNDCLAS) += msnd.o msnd_classic.o
72 obj-$(CONFIG_SOUND_MSNDPIN) += msnd.o msnd_pinnacle.o
73 obj-$(CONFIG_SOUND_VWSND) += vwsnd.o
74 obj-$(CONFIG_SOUND_NM256) += nm256_audio.o ac97.o
75 obj-$(CONFIG_SOUND_ICH) += i810_audio.o ac97_codec.o
76 obj-$(CONFIG_SOUND_SONICVIBES) += sonicvibes.o
77 obj-$(CONFIG_SOUND_CMPCI) += cmpci.o
78 obj-$(CONFIG_SOUND_ES1370) += es1370.o
79 obj-$(CONFIG_SOUND_ES1371) += es1371.o ac97_codec.o
80 obj-$(CONFIG_SOUND_ESSSOLO1) += esssolo1.o
81 obj-$(CONFIG_SOUND_MAESTRO) += maestro.o
82 obj-$(CONFIG_SOUND_TRIDENT) += trident.o ac97_codec.o
84 ifeq ($(CONFIG_SOUND_EMU10K1),y)
85 SUB_DIRS += emu10k1
86 obj-y += emu10k1/emu10k1.o
87 else
88 ifeq ($(CONFIG_SOUND_EMU10K1),m)
89 MOD_SUB_DIRS += emu10k1
90 endif
91 endif
93 ifeq ($(CONFIG_DMASOUND),y)
94 SUB_DIRS += dmasound
95 MOD_SUB_DIRS += dmasound
96 obj-y += dmasound/dmasound.o
97 else
98 ifeq ($(CONFIG_DMASOUND),m)
99 MOD_SUB_DIRS += dmasound
100 endif
101 endif
104 # Declare multi-part drivers.
106 list-multi := sound.o gus.o pas2.o sb.o sb_lib.o softoss2.o vidc_mod.o \
107 soundcore.o wavefront.o
109 sound-objs := \
110 dev_table.o soundcard.o sound_syms.o \
111 audio.o audio_syms.o dmabuf.o \
112 midi_syms.o midi_synth.o midibuf.o \
113 sequencer.o sequencer_syms.o sound_timer.o sys_timer.o
115 soundcore-objs := sound_core.o sound_firmware.o
117 gus-objs := gus_card.o gus_midi.o gus_vol.o gus_wave.o ics2101.o
118 pas2-objs := pas2_card.o pas2_midi.o pas2_mixer.o pas2_pcm.o
119 sb-objs := sb_card.o
120 sb_lib-objs := sb_common.o sb_audio.o sb_midi.o sb_mixer.o sb_ess.o
121 softoss2-objs := softoss.o softoss_rs.o
122 vidc_mod-objs := vidc.o vidc_fill.o
123 wavefront-objs := wavfront.o wf_midi.o yss225.o
126 # Extract lists of the multi-part drivers.
127 # The 'int-*' lists are the intermediate files used to build the multi's.
129 multi-y := $(filter $(list-multi), $(obj-y))
130 multi-m := $(filter $(list-multi), $(obj-m))
131 int-y := $(sort $(foreach m, $(multi-y), $($(basename $(m))-objs)))
132 int-m := $(sort $(foreach m, $(multi-m), $($(basename $(m))-objs)))
136 # Files that are both resident and modular: remove from modular.
138 obj-m := $(filter-out $(obj-y), $(obj-m))
139 int-m := $(filter-out $(int-y), $(int-m))
142 # Take multi-part drivers out of obj-y and put components in.
144 obj-y := $(filter-out $(list-multi), $(obj-y)) $(int-y)
148 # Translate to Rules.make lists.
150 O_TARGET := sounddrivers.o
151 MOD_LIST_NAME := SOUND_MODULES
153 O_OBJS := $(filter-out $(export-objs), $(obj-y))
154 OX_OBJS := $(filter $(export-objs), $(obj-y))
155 M_OBJS := $(sort $(filter-out $(export-objs), $(obj-m)))
156 MX_OBJS := $(sort $(filter $(export-objs), $(obj-m)))
157 MI_OBJS := $(sort $(filter-out $(export-objs), $(int-m)))
158 MIX_OBJS := $(sort $(filter $(export-objs), $(int-m)))
160 include $(TOPDIR)/Rules.make
164 # Link rules for multi-part drivers.
166 sound.o: $(sound-objs)
167 $(LD) -r -o $@ $(sound-objs)
169 soundcore.o: $(soundcore-objs)
170 $(LD) -r -o $@ $(soundcore-objs)
172 gus.o: $(gus-objs)
173 $(LD) -r -o $@ $(gus-objs)
175 pas2.o: $(pas2-objs)
176 $(LD) -r -o $@ $(pas2-objs)
178 sb.o: $(sb-objs)
179 $(LD) -r -o $@ $(sb-objs)
181 sb_lib.o: $(sb_lib-objs)
182 $(LD) -r -o $@ $(sb_lib-objs)
184 softoss2.o: $(softoss2-objs)
185 $(LD) -r -o $@ $(softoss2-objs)
187 vidc_mod.o: $(vidc_mod-objs)
188 $(LD) -r -o $@ $(vidc_mod-objs)
190 wavefront.o: $(wavefront-objs)
191 $(LD) -r -o $@ $(wavefront-objs)
193 # Firmware files that need translation
195 # The translated files are protected by a file that keeps track
196 # of what name was used to build them. If the name changes, they
197 # will be forced to be remade.
199 # First make the utilities.
201 bin2hex: bin2hex.c
202 $(HOSTCC) $(HOSTCFLAGS) -o bin2hex bin2hex.c
204 hex2hex: hex2hex.c
205 $(HOSTCC) $(HOSTCFLAGS) -o hex2hex hex2hex.c
210 # Turtle Beach Maui / Tropez
212 maui.o: maui_boot.h
214 ifeq ($(CONFIG_MAUI_HAVE_BOOT),y)
215 maui_boot.h: $(patsubst "%", %, $(CONFIG_MAUI_BOOT_FILE)) bin2hex
216 ./bin2hex -i maui_os < $(CONFIG_MAUI_BOOT_FILE) > $@
217 else
218 maui_boot.h:
220 echo 'static unsigned char * maui_os = NULL;'; \
221 echo 'static int maui_osLen = 0;'; \
222 ) > $@
223 endif
224 @ ( \
225 echo 'ifeq ($(strip $(CONFIG_MAUI_HAVE_BOOT) $(CONFIG_MAUI_BOOT_FILE)),$$(strip $$(CONFIG_MAUI_HAVE_BOOT) $$(CONFIG_MAUI_BOOT_FILE)))'; \
226 echo 'FILES_BOOT_UP_TO_DATE += $@'; \
227 echo 'endif' \
228 ) > .$@.boot
232 # Turtle Beach MultiSound
234 ifeq ($(CONFIG_MSNDCLAS_HAVE_BOOT),y)
235 msnd_classic.o: msndperm.c msndinit.c
237 msndperm.c: $(patsubst "%", %, $(CONFIG_MSNDCLAS_PERM_FILE)) bin2hex
238 ./bin2hex msndperm < $(CONFIG_MSNDCLAS_PERM_FILE) > $@
239 @ ( \
240 echo 'ifeq ($(strip $(CONFIG_MSNDCLAS_HAVE_BOOT) $(CONFIG_MSNDCLAS_PERM_FILE)),$$(strip $$(CONFIG_MSNDCLAS_HAVE_BOOT) $$(CONFIG_MSNDCLAS_PERM_FILE)))'; \
241 echo 'FILES_BOOT_UP_TO_DATE += $@'; \
242 echo 'endif' \
243 ) > .$@.boot
245 msndinit.c: $(patsubst "%", %, $(CONFIG_MSNDCLAS_INIT_FILE)) bin2hex
246 ./bin2hex msndinit < $(CONFIG_MSNDCLAS_INIT_FILE) > $@
247 @ ( \
248 echo 'ifeq ($(strip $(CONFIG_MSNDCLAS_HAVE_BOOT) $(CONFIG_MSNDCLAS_INIT_FILE)),$$(strip $$(CONFIG_MSNDCLAS_HAVE_BOOT) $$(CONFIG_MSNDCLAS_INIT_FILE)))'; \
249 echo 'FILES_BOOT_UP_TO_DATE += $@'; \
250 echo 'endif' \
251 ) > .$@.boot
252 endif
254 ifeq ($(CONFIG_MSNDPIN_HAVE_BOOT),y)
255 msnd_pinnacle.o: pndsperm.c pndspini.c
257 pndsperm.c: $(patsubst "%", %, $(CONFIG_MSNDPIN_PERM_FILE)) bin2hex
258 ./bin2hex pndsperm < $(CONFIG_MSNDPIN_PERM_FILE) > $@
259 @ ( \
260 echo 'ifeq ($(strip $(CONFIG_MSNDPIN_HAVE_BOOT) $(CONFIG_MSNDPIN_PERM_FILE)),$$(strip $$(CONFIG_MSNDPIN_HAVE_BOOT) $$(CONFIG_MSNDPIN_PERM_FILE)))'; \
261 echo 'FILES_BOOT_UP_TO_DATE += $@'; \
262 echo 'endif' \
263 ) > .$@.boot
265 pndspini.c: $(patsubst "%", %, $(CONFIG_MSNDPIN_INIT_FILE)) bin2hex
266 ./bin2hex pndspini < $(CONFIG_MSNDPIN_INIT_FILE) > $@
267 @ ( \
268 echo 'ifeq ($(strip $(CONFIG_MSNDPIN_HAVE_BOOT) $(CONFIG_MSNDPIN_INIT_FILE)),$$(strip $$(CONFIG_MSNDPIN_HAVE_BOOT) $$(CONFIG_MSNDPIN_INIT_FILE)))'; \
269 echo 'FILES_BOOT_UP_TO_DATE += $@'; \
270 echo 'endif' \
271 ) > .$@.boot
272 endif
276 # PSS (ECHO-ADI2111)
278 pss.o: pss_boot.h
280 ifeq ($(CONFIG_PSS_HAVE_BOOT),y)
281 pss_boot.h: $(patsubst "%", %, $(CONFIG_PSS_BOOT_FILE)) bin2hex
282 ./bin2hex pss_synth < $(CONFIG_PSS_BOOT_FILE) > $@
283 else
284 pss_boot.h:
286 echo 'static unsigned char * pss_synth = NULL;'; \
287 echo 'static int pss_synthLen = 0;'; \
288 ) > $@
289 endif
290 @ ( \
291 echo 'ifeq ($(strip $(CONFIG_PSS_HAVE_BOOT) $(CONFIG_PSS_BOOT_FILE)),$$(strip $$(CONFIG_PSS_HAVE_BOOT) $$(CONFIG_PSS_BOOT_FILE)))'; \
292 echo 'FILES_BOOT_UP_TO_DATE += $@'; \
293 echo 'endif' \
294 ) > .$@.boot
298 # MediaTrix AudioTrix Pro
300 trix.o: trix_boot.h
302 ifeq ($(CONFIG_TRIX_HAVE_BOOT),y)
303 trix_boot.h: $(patsubst "%", %, $(CONFIG_TRIX_BOOT_FILE)) hex2hex
304 ./hex2hex -i trix_boot < $(CONFIG_TRIX_BOOT_FILE) > $@
305 else
306 trix_boot.h:
308 echo 'static unsigned char * trix_boot = NULL;'; \
309 echo 'static int trix_boot_len = 0;'; \
310 ) > $@
311 endif
312 @ ( \
313 echo 'ifeq ($(strip $(CONFIG_TRIX_HAVE_BOOT) $(CONFIG_TRIX_BOOT_FILE)),$$(strip $$(CONFIG_TRIX_HAVE_BOOT) $$(CONFIG_TRIX_BOOT_FILE)))'; \
314 echo 'FILES_BOOT_UP_TO_DATE += $@'; \
315 echo 'endif' \
316 ) > .$@.boot
320 # Find boot files whose source file names have changed and force rebuild.
322 FILES_BOOT_UP_TO_DATE :=
324 FILES_BOOT_EXIST := $(wildcard .*.boot)
325 ifneq ($(FILES_BOOT_EXIST),)
326 include $(FILES_BOOT_EXIST)
327 endif
329 FILES_BOOT_CHANGED := $(strip \
330 $(filter-out $(FILES_BOOT_UP_TO_DATE), \
331 maui_boot.h pss_boot.h trix_boot.h))
333 ifneq ($(FILES_BOOT_CHANGED),)
334 $(FILES_BOOT_CHANGED): dummy
335 endif