#
# Makefile for the input core drivers.
#

# Each configuration option enables a list of files.

obj-$(CONFIG_JOYSTICK_A3D)		+= a3d.o
obj-$(CONFIG_JOYSTICK_ADI)		+= adi.o
obj-$(CONFIG_JOYSTICK_AMIGA)		+= amijoy.o
obj-$(CONFIG_JOYSTICK_AS5011)		+= as5011.o
obj-$(CONFIG_JOYSTICK_ANALOG)		+= analog.o
obj-$(CONFIG_JOYSTICK_COBRA)		+= cobra.o
obj-$(CONFIG_JOYSTICK_DB9)		+= db9.o
obj-$(CONFIG_JOYSTICK_GAMECON)		+= gamecon.o
obj-$(CONFIG_JOYSTICK_GF2K)		+= gf2k.o
obj-$(CONFIG_JOYSTICK_GRIP)		+= grip.o
obj-$(CONFIG_JOYSTICK_GRIP_MP)		+= grip_mp.o
obj-$(CONFIG_JOYSTICK_GUILLEMOT)	+= guillemot.o
obj-$(CONFIG_JOYSTICK_IFORCE)		+= iforce/
obj-$(CONFIG_JOYSTICK_INTERACT)		+= interact.o
obj-$(CONFIG_JOYSTICK_JOYDUMP)		+= joydump.o
obj-$(CONFIG_JOYSTICK_MAGELLAN)		+= magellan.o
obj-$(CONFIG_JOYSTICK_MAPLE)		+= maplecontrol.o
obj-$(CONFIG_JOYSTICK_SIDEWINDER)	+= sidewinder.o
obj-$(CONFIG_JOYSTICK_SPACEBALL)	+= spaceball.o
obj-$(CONFIG_JOYSTICK_SPACEORB)		+= spaceorb.o
obj-$(CONFIG_JOYSTICK_STINGER)		+= stinger.o
obj-$(CONFIG_JOYSTICK_TMDC)		+= tmdc.o
obj-$(CONFIG_JOYSTICK_TURBOGRAFX)	+= turbografx.o
obj-$(CONFIG_JOYSTICK_TWIDJOY)		+= twidjoy.o
obj-$(CONFIG_JOYSTICK_WARRIOR)		+= warrior.o
obj-$(CONFIG_JOYSTICK_XPAD)		+= xpad.o
obj-$(CONFIG_JOYSTICK_ZHENHUA)		+= zhenhua.o
obj-$(CONFIG_JOYSTICK_WALKERA0701)	+= walkera0701.o

