1#
2# Makefile for the kernel USB device drivers.
3#
4
5# Subdirs.
6
7# The target object and module list name.
8
9O_TARGET	:= usbdrv.o
10
11# Objects that export symbols.
12
13export-objs		:= hcd.o usb.o ov511.o pwc-uncompress.o
14
15# Multipart objects.
16
17list-multi		:= usbcore.o hid.o pwc.o
18usbcore-objs		:= usb.o usb-debug.o hub.o
19hid-objs		:= hid-core.o
20pwc-objs		:= pwc-if.o pwc-misc.o pwc-ctrl.o pwc-uncompress.o
21auerswald-objs		:= auerbuf.o auerchain.o auerchar.o auermain.o
22
23# Optional parts of multipart objects.
24
25ifeq ($(CONFIG_USB_DEVICEFS),y)
26	usbcore-objs	+= devio.o inode.o drivers.o devices.o
27endif
28
29ifeq ($(CONFIG_USB_HIDDEV),y)
30	hid-objs	+= hiddev.o
31endif
32
33ifeq ($(CONFIG_USB_HIDINPUT),y)
34	hid-objs	+= hid-input.o
35endif
36
37ifdef CONFIG_USB_AUERISDN
38ifneq ($(CONFIG_USB_AUERISDN),n)
39	auerswald-objs	+= auerisdn.o auerisdn_b.o
40endif
41endif
42
43# Object file lists.
44
45obj-y	:=
46obj-m	:=
47obj-n	:=
48obj-	:=
49
50# Each configuration option enables a list of files.
51
52obj-$(CONFIG_USB)		+= usbcore.o
53
54# EHCI should initialize/link before the other HCDs
55ifeq ($(CONFIG_USB_EHCI_HCD),y)
56	obj-y += host/ehci-hcd.o
57endif
58
59ifneq ($(CONFIG_USB_EHCI_HCD),n)
60	usbcore-objs		+= hcd.o
61endif
62
63subdir-$(CONFIG_USB_EHCI_HCD)	+= host
64
65subdir-$(CONFIG_USB_UHCI_ALT)	+= host
66ifeq ($(CONFIG_USB_UHCI_ALT),y)
67	obj-y += host/uhci.o
68endif
69
70subdir-$(CONFIG_USB_UHCI)	+= host
71ifeq ($(CONFIG_USB_UHCI),y)
72	obj-y += host/usb-uhci.o
73endif
74
75subdir-$(CONFIG_USB_OHCI)	+= host
76ifeq ($(CONFIG_USB_OHCI),y)
77	obj-y += host/usb-ohci.o
78endif
79
80subdir-$(CONFIG_USB_SL811HS_ALT)	+= host
81subdir-$(CONFIG_USB_SL811HS)	+= host
82
83obj-$(CONFIG_USB_MOUSE)		+= usbmouse.o
84obj-$(CONFIG_USB_HID)		+= hid.o
85obj-$(CONFIG_USB_KBD)		+= usbkbd.o
86obj-$(CONFIG_USB_AIPTEK)	+= aiptek.o
87obj-$(CONFIG_USB_WACOM)		+= wacom.o
88obj-$(CONFIG_USB_KBTAB)		+= kbtab.o
89obj-$(CONFIG_USB_POWERMATE)	+= powermate.o
90
91obj-$(CONFIG_USB_SCANNER)	+= scanner.o
92obj-$(CONFIG_USB_ACM)		+= acm.o
93obj-$(CONFIG_USB_PRINTER)	+= printer.o
94obj-$(CONFIG_USB_AUDIO)		+= audio.o
95obj-$(CONFIG_USB_EMI26)		+= emi26.o
96obj-$(CONFIG_USB_MIDI)		+= usb-midi.o
97obj-$(CONFIG_USB_IBMCAM)	+= ibmcam.o usbvideo.o ultracam.o
98obj-$(CONFIG_USB_KONICAWC)	+= konicawc.o usbvideo.o
99obj-$(CONFIG_USB_PWC)		+= pwc.o
100obj-$(CONFIG_USB_DC2XX)		+= dc2xx.o
101obj-$(CONFIG_USB_MDC800)	+= mdc800.o
102obj-$(CONFIG_USB_USS720)	+= uss720.o
103obj-$(CONFIG_USB_DABUSB)	+= dabusb.o
104obj-$(CONFIG_USB_VICAM)		+= vicam.o usbvideo.o
105obj-$(CONFIG_USB_OV511)		+= ov511.o
106obj-$(CONFIG_USB_W9968CF)	+= w9968cf.o
107obj-$(CONFIG_USB_SE401)		+= se401.o
108obj-$(CONFIG_USB_STV680)	+= stv680.o
109obj-$(CONFIG_USB_PEGASUS)	+= pegasus.o
110obj-$(CONFIG_USB_RTL8150)	+= rtl8150.o
111obj-$(CONFIG_USB_CATC)		+= catc.o
112obj-$(CONFIG_USB_KAWETH)        += kaweth.o
113obj-$(CONFIG_USB_CDCETHER)	+= CDCEther.o
114obj-$(CONFIG_USB_RIO500)	+= rio500.o
115obj-$(CONFIG_USB_TIGL)          += tiglusb.o
116obj-$(CONFIG_USB_DSBR)		+= dsbr100.o
117obj-$(CONFIG_USB_MICROTEK)	+= microtek.o
118obj-$(CONFIG_USB_HPUSBSCSI)	+= hpusbscsi.o
119obj-$(CONFIG_USB_BLUETOOTH)	+= bluetooth.o
120obj-$(CONFIG_USB_USBNET)	+= usbnet.o
121obj-$(CONFIG_USB_AUERSWALD)	+= auerswald.o
122obj-$(CONFIG_USB_BRLVGER)	+= brlvger.o
123obj-$(CONFIG_USB_LCD)		+= usblcd.o
124obj-$(CONFIG_USB_SPEEDTOUCH)	+= speedtch.o
125
126# Object files in subdirectories
127mod-subdirs	:= serial host
128
129subdir-$(CONFIG_USB_SERIAL)	+= serial
130subdir-$(CONFIG_USB_STORAGE)	+= storage
131
132ifeq ($(CONFIG_USB_SERIAL),y)
133	obj-y += serial/usb-serial.o
134endif
135
136ifeq ($(CONFIG_USB_STORAGE),y)
137	obj-y += storage/storage.o
138endif
139
140include $(TOPDIR)/Rules.make
141
142# Link rules for multi-part drivers.
143
144usbcore.o: $(usbcore-objs)
145	$(LD) -r -o $@ $(usbcore-objs)
146
147hid.o: $(hid-objs)
148	$(LD) -r -o $@ $(hid-objs)
149
150pwc.o: $(pwc-objs)
151	$(LD) -r -o $@ $(pwc-objs)
152
153auerswald.o: $(auerswald-objs)
154	$(LD) -r -o $@ $(auerswald-objs)
155