summaryrefslogtreecommitdiffstats
path: root/drivers/usb/Makefile
blob: 3598dc269ffa1237f0037516008d6ba44e921412 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
#
# Makefile for the kernel USB device drivers.
#

# Subdirs.

SUB_DIRS	:=
MOD_SUB_DIRS	:= $(SUB_DIRS)
MOD_IN_SUB_DIRS	:= $(SUB_DIRS)
ALL_SUB_DIRS	:= $(SUB_DIRS) serial storage

# The target object and module list name.

O_TARGET	:= usbdrv.o
M_OBJS		:=
O_OBJS		:=
MOD_LIST_NAME	:= USB_MODULES

# Objects that export symbols.

export-objs		:= usb.o input.o

# Multipart objects.

list-multi		:= usbcore.o
usbcore-objs		:= usb.o usb-debug.o usb-core.o hub.o

# Optional parts of multipart objects.

ifeq ($(CONFIG_USB_DEVICEFS),y)
	usbcore-objs	+= devio.o inode.o drivers.o devices.o
endif

# Object file lists.

obj-y	:=
obj-m	:=
obj-n	:=
obj-	:=

# Object files in subdirectories

ifeq ($(CONFIG_USB_SERIAL),y)
	SUB_DIRS += serial
	obj-y += serial/usb-serial.o
else
	ifeq ($(CONFIG_USB_SERIAL),m)
		MOD_IN_SUB_DIRS += serial
	endif
endif

ifeq ($(CONFIG_USB_STORAGE),y)
	SUB_DIRS += storage
	obj-y += storage/usb-storage.o
else
	ifeq ($(CONFIG_USB_STORAGE),m)
		MOD_IN_SUB_DIRS += storage
	endif
endif


# Each configuration option enables a list of files.

obj-$(CONFIG_USB)		+= usbcore.o
obj-$(CONFIG_USB_UHCI)		+= usb-uhci.o
obj-$(CONFIG_USB_UHCI_ALT)	+= uhci.o
obj-$(CONFIG_USB_OHCI)		+= usb-ohci.o

obj-$(CONFIG_USB_MOUSE)		+= usbmouse.o input.o
obj-$(CONFIG_USB_HID)		+= hid.o input.o
obj-$(CONFIG_USB_KBD)		+= usbkbd.o input.o
obj-$(CONFIG_USB_WACOM)		+= wacom.o input.o
obj-$(CONFIG_INPUT_IFORCE)	+= iforce.o input.o
obj-$(CONFIG_INPUT_KEYBDEV)	+= keybdev.o input.o
obj-$(CONFIG_INPUT_MOUSEDEV)	+= mousedev.o input.o
obj-$(CONFIG_INPUT_JOYDEV)	+= joydev.o input.o
obj-$(CONFIG_INPUT_EVDEV)	+= evdev.o input.o

obj-$(CONFIG_USB_SCANNER)	+= scanner.o
obj-$(CONFIG_USB_ACM)		+= acm.o
obj-$(CONFIG_USB_PRINTER)	+= printer.o
obj-$(CONFIG_USB_AUDIO)		+= audio.o
obj-$(CONFIG_USB_IBMCAM)	+= ibmcam.o
obj-$(CONFIG_USB_DC2XX)		+= dc2xx.o
obj-$(CONFIG_USB_MDC800)	+= mdc800.o
obj-$(CONFIG_USB_USS720)	+= uss720.o
obj-$(CONFIG_USB_DABUSB)	+= dabusb.o
obj-$(CONFIG_USB_PLUSB)		+= plusb.o
obj-$(CONFIG_USB_OV511)		+= ov511.o
obj-$(CONFIG_USB_PEGASUS)	+= pegasus.o
obj-$(CONFIG_USB_RIO500)	+= rio500.o
obj-$(CONFIG_USB_DSBR)		+= dsbr100.o
obj-$(CONFIG_USB_MICROTEK)	+= microtek.o
obj-$(CONFIG_USB_BLUETOOTH)	+= bluetooth.o

# Extract lists of the multi-part drivers.
# The 'int-*' lists are the intermediate files used to build the multi's.

multi-y		:= $(filter $(list-multi), $(obj-y))
multi-m		:= $(filter $(list-multi), $(obj-m))
int-y		:= $(sort $(foreach m, $(multi-y), $($(basename $(m))-objs)))
int-m		:= $(sort $(foreach m, $(multi-m), $($(basename $(m))-objs)))

# Files that are both resident and modular: remove from modular.

obj-m		:= $(filter-out $(obj-y), $(obj-m))
int-m		:= $(filter-out $(int-y), $(int-m))

# Take multi-part drivers out of obj-y and put components in.

obj-y		:= $(filter-out $(list-multi), $(obj-y)) $(int-y)

# Translate to Rules.make lists.

O_OBJS		:= $(sort $(filter-out $(export-objs), $(obj-y)))
OX_OBJS		:= $(sort $(filter     $(export-objs), $(obj-y)))
M_OBJS		:= $(sort $(filter-out $(export-objs), $(obj-m)))
MX_OBJS		:= $(sort $(filter     $(export-objs), $(obj-m)))
MI_OBJS		:= $(sort $(filter-out $(export-objs), $(int-m)))
MIX_OBJS	:= $(sort $(filter     $(export-objs), $(int-m)))

# The global Rules.make.

include $(TOPDIR)/Rules.make

# Link rules for multi-part drivers.

usbcore.o: $(usbcore-objs)
	$(LD) -r -o $@ $(usbcore-objs)