# Makefile for the Linux sound card driver
#
# Note 2! The CFLAGS definitions are now inherited from the
# parent makes. (hopefully)
#
#

VERSION		= 1.99.7
TARGET_OS	= linux
USRINCDIR	= /usr/include

.c.s:
	$(CC) $(CFLAGS) -S $<
.s.o:
	$(AS) -c -o $*.o $<
.c.o:
	$(CC) $(CFLAGS) -c $<

OBJS   = soundcard.o dsp.o audio.o dmabuf.o sb_dsp.o dev_table.o \
	 opl3.o sequencer.o midibuf.o sb_card.o pas2_card.o adlib_card.o \
	 pas2_pcm.o pas2_mixer.o pas2_midi.o gus_card.o gus_wave.o mpu401.o \
	 gus_midi.o gus_vol.o

all:	local.h sound.a

os.h:
	@$(MAKE) setup-$(TARGET_OS)
	@$(MAKE) config
	@$(MAKE) dep

sound.a: $(OBJS) 
	-rm -f sound.a
	$(AR) rcs sound.a $(OBJS)
	sync

clean:
	rm -f core *.o *.a tmp_make *~
	rm -f configure Makefile sound_stub.c
	for i in *.c;do rm -f `basename $$i .c`.s;done

indent:
	for n in *.c;do echo indent $$n;indent $$n;done

local.h:
	$(MAKE) clean
	$(MAKE) setup-$(TARGET_OS)
	$(MAKE) config
	$(MAKE) dep

soundcard.c: $(TARGET_OS)/soundcard.c
	ln -sf $(TARGET_OS)/soundcard.c soundcard.c

config: configure
	@$(MAKE) setup-$(TARGET_OS)
	@./configure > local.h
	@echo \#define SOUND_VERSION_STRING \"$(VERSION)\" >> local.h
	@echo \#define SOUND_CONFIG_DATE \"`date`\" >> local.h
	@echo \#define SOUND_CONFIG_BY \"`whoami`\" >> local.h
	@echo \#define SOUND_CONFIG_HOST \"`hostname`\" >> local.h
	@echo \#define SOUND_CONFIG_DOMAIN \"`domainname`\" >> local.h

clrconf:
	rm -f local.h .depend os.h soundcard.c

configure: configure.c
	$(HOSTCC) -o configure configure.c
	@cat .blurb

dep:
	$(CPP) -M *.c > .depend

setup-linux:
	@echo Compiling Sound Driver v $(VERSION) for Linux
	@ln -sf linux/soundcard.c soundcard.c
	@ln -sf linux/os.h os.h

setup-isc:
	@echo Compiling Sound Driver v $(VERSION) for ISC
	@ln -sf isc/soundcard.c soundcard.c
	@ln -sf isc/os.h os.h

setup-386bsd:
	@echo Compiling Sound Driver v $(VERSION) for 386bsd 
	@ln -sf 386bsd/soundcard.c soundcard.c
	@ln -sf 386bsd/os.h os.h
#
# include a dependency file if one exists
#
ifeq (.depend,$(wildcard .depend))
include .depend
endif
