# $Id: Makefile,v 1.38 2005/10/15 09:16:46 chibis Exp $

# [Not for 4.x] Uncomment line below to build emu10kx with NEWMIDI MIDI I/O
#EMU10KX_WITH_MIDI=yes
# [Not for 4.x] Uncomment line below to build emu10kx with midi2 MIDI I/O 
# from Mathew Kanner (from midi2-...tar.gz archive)
#EMU10KX_WITH_MIDI2MODULE=yes
# [Not for 4.x] Uncomment line below to build emu10kx with midi2 MIDI I/O 
# from Mathew Kanner (inside your kernel)
#EMU10KX_WITH_MIDI2KERNEL=yes

DEBUG_FLAGS=-g
WARNS?=6
NO_WERROR?=1
WERROR=
SUBDIR=emuctrl rc.d

# Volume control function. Look into emu10kx-vol.h for list, 
# EXP_SCALE is default volume scale.
# CFLAGS+=-DEXP_SCALE

# [4.x Only] If you have another device with same major device number, change
# definition of E10KX_MAJOR below (valid numbers are 200-252 except 248)
KXMAJOR=201
CFLAGS+=-DEMU10KX_MAJOR=${KXMAJOR}
CFLAGS+=-I${.CURDIR} -I.

.ifdef EMU10KX_WITH_MIDI
CFLAGS+=-DBUILD_MIDI
.undef EMU10KX_WITH_MIDI2
.endif

.ifdef EMU10KX_WITH_MIDI2MODULE
CFLAGS+=-DBUILD_MIDI
EMU10KX_WITH_MIDI2=yes
# [5.x Only] Change line below to point to your installation of Mathew 
# Kanner code
MIDI2SRC=${.CURDIR}/../midi2
MIDI2INCLUDES=${MIDI2SRC}/includes
CFLAGS+= -I${MIDI2INCLUDES}

mpufoi_if.h: ${MIDI2INCLUDES}/mpufoi_if.m
	awk -f @/tools/makeobjops.awk ${MIDI2INCLUDES}/mpufoi_if.m -h
.endif

.ifdef EMU10KX_WITH_MIDI2KERNEL
CFLAGS+=-DBUILD_MIDI -DMIDI2_KERNEL -I@/dev/sound/midi
EMU10KX_WITH_MIDI2=yes
.endif

KMOD=	snd_emu10kx

SRCS=	device_if.h bus_if.h pci_if.h
SRCS+=	isa_if.h channel_if.h ac97_if.h mixer_if.h
SRCS+=	vnode_if.h
# Master device
SRCS+=	emu10kx.c 
# Common sources
SRCS+=	emu10kx-fx.c
SRCS+=	emu10kx-dev.c
SRCS+=	emu10kx-rm.c
SRCS+=	emu10kx-mixer.c
SRCS+=	emu10kx-vol-exp.h emu10kx-vol-lin.h emu10kx-vol-sq.h

emu10kx-vol-exp.h: scripts/mixer-l2l
	bc -l ${.CURDIR}/scripts/mixer-l2l >emu10kx-vol-exp.h
emu10kx-vol-lin.h: scripts/mixer-lin
	bc -l ${.CURDIR}/scripts/mixer-lin >emu10kx-vol-lin.h
emu10kx-vol-sq.h: scripts/mixer-sq
	bc -l ${.CURDIR}/scripts/mixer-sq >emu10kx-vol-sq.h

.ifdef EMU10KX_WITH_MIDI
# MIDI I/O device.
SRCS+=	emu10kx-midi.c 
.endif

.ifdef EMU10KX_WITH_MIDI2
# MIDI I/O device.
SRCS+=	emu10kx-midi-mk.c 
SRCS+=	mpufoi_if.h
.endif

# PCM device
SRCS+=	emu10kx-pcm.c

# Joystick device
.ifdef I_NEED_TO_SILENT_JOYSTICK_THAT_DOES_NOT_WORK_ANYWAY
SRCS+=	emu10k1-joy.c
.endif

CLEANFILES+=	mpufoi_if.h emu10kx-midi-mk.o emu10kx-midi.o
CLEANFILES+=	emu10kx-vol-exp.h emu10kx-vol-lin.h emu10kx-vol-sq.h

save:
	@sh ${.CURDIR}/rc.d/emuctrl.sh stop

restore:
	@sh ${.CURDIR}/rc.d/emuctrl.sh start

afterinstall:
	@case `mount|grep devfs|head -c 5` in \
	devfs) \
		;; \
	*) \
		echo "You run FreeBSD 4.x and don't use devfs. You should run "; \
		echo "mknod /dev/emu10kx0 c ${KXMAJOR} 0 "; \
		echo "to create emu10kx device file"; \
		;; \
	esac

.include <bsd.kmod.mk>
