#
# Makefile for ALSA low level driver (Linux version)
# Copyright (c) 1994-98 by Jaroslav Kysela <perex@suse.cz>
#

TOPDIR  = ..

include $(TOPDIR)/Makefile.conf
include $(TOPDIR)/cards.config

SUBDIRS =
ifeq (1,$(CONFIG_SND_SEQUENCER))
SUBDIRS += seq
endif
TARGETS = $(SNDVERSIONS)
ifeq (1,$(CONFIG_SND))
TARGETS += $(TOPDIR)/modules/snd.o
EXPORTS += sound.o
endif
ifeq (1,$(CONFIG_SND_MIXER))
TARGETS += $(TOPDIR)/modules/snd-mixer.o
EXPORTS += mixer.o
endif
ifeq (1,$(CONFIG_SND_PCM))
TARGETS += $(TOPDIR)/modules/snd-pcm.o
EXPORTS += pcm.o pcm_lib.o
ifeq (1,$(CONFIG_SND_OSSEMUL))
TARGETS += $(TOPDIR)/modules/snd-pcm-oss.o
SUBDIRS += plugin
endif
endif
ifeq (1,$(CONFIG_SND_RAWMIDI))
TARGETS += $(TOPDIR)/modules/snd-rawmidi.o
EXPORTS += rawmidi.o
endif
ifeq (1,$(CONFIG_SND_TIMER))
TARGETS += $(TOPDIR)/modules/snd-timer.o
EXPORTS += timer.o
endif
ifeq (1,$(CONFIG_SND_HWDEP))
TARGETS += $(TOPDIR)/modules/snd-hwdep.o
EXPORTS += hwdep.o
endif
ifeq (1,$(CONFIG_SND_OSSEMUL))
TARGETS += $(TOPDIR)/modules/snd-mixer-oss.o
EXPORTS += mixer_oss.o
endif

OBJECTS = sound.o init.o memory.o vma.o isadma.o \
          info.o switch.o control.o device.o misc.o
ifeq (1,$(CONFIG_SND_OSSEMUL))
OBJECTS += sound_oss.o info_oss.o
endif
MIXER   = mixer.o mixer_lib.o
OMIXER	= mixer_oss.o
PCM	= pcm.o pcm_native.o pcm_lib.o pcm_misc.o pcm_timer.o pcm_proc.o
OPCM	= pcm_oss.o pcm_oss_plugin.o
RAWMIDI = rawmidi.o
TIMER	= timer.o
HWDEP   = hwdep.o

include $(TOPDIR)/Rules.make

all: $(TARGETS)
	@for d in $(SUBDIRS); do if ! $(MAKE) -C $$d; then exit 1; fi; done

include $(TOPDIR)/Rules1.make

$(TOPDIR)/modules/snd.o: .depend $(SNDVERSIONS) $(OBJECTS)
	$(LINKER) -o $@ $(OBJECTS)

$(TOPDIR)/modules/snd-control.o: .depend $(SNDVERSIONS) $(CONTROL)
	$(LINKER) -o $@ $(CONTROL)

$(TOPDIR)/modules/snd-mixer.o: .depend $(SNDVERSIONS) $(MIXER)
	$(LINKER) -o $@ $(MIXER)

$(TOPDIR)/modules/snd-mixer-oss.o: .depend $(SNDVERSIONS) $(OMIXER)
	$(LINKER) -o $@ $(OMIXER)

$(TOPDIR)/modules/snd-pcm.o: .depend $(SNDVERSIONS) $(PCM)
	$(LINKER) -o $@ $(PCM)

$(TOPDIR)/modules/snd-pcm-oss.o: .depend $(SNDVERSIONS) $(OPCM)
	$(LINKER) -o $@ $(OPCM)

$(TOPDIR)/modules/snd-rawmidi.o: .depend $(SNDVERSIONS) $(RAWMIDI)
	$(LINKER) -o $@ $(RAWMIDI)

$(TOPDIR)/modules/snd-timer.o: .depend $(SNDVERSIONS) $(TIMER)
	$(LINKER) -o $@ $(TIMER)

$(TOPDIR)/modules/snd-hwdep.o: .depend $(SNDVERSIONS) $(HWDEP)
	$(LINKER) -o $@ $(HWDEP)

gcompile: $(TARGETS)

clean:
	@for d in $(SUBDIRS); do if ! $(MAKE) -C $$d clean; then exit 1; fi; done
	rm -f .depend *.o *.orig snd.map snd.map? *.old *~
	rm -f core $(SNDVERSIONS) $(SYMFILES)

.depend: $(SYMFILES)
	$(CPP) $(COPTS) $(INCLUDE) *.c > .depend

dep:	.depend

dummy:

#
# include a dependency file if one exists
#
ifeq (.depend,$(wildcard .depend))
include .depend
endif
