2 # Makefile for the kernel USB device drivers.
8 MOD_SUB_DIRS
:= $(SUB_DIRS
)
9 ALL_SUB_DIRS
:= $(SUB_DIRS
)
11 # The target object and module list name.
16 MOD_LIST_NAME
:= USB_MODULES
18 # Objects that export symbols.
20 export-objs
:= usb.o input.o
24 list-multi
:= usbcore.o
25 usbcore-objs
:= usb.o usb-debug.o usb-core.o hub.o
27 # Optional parts of multipart objects.
29 ifeq ($(CONFIG_USB_DEVICEFS
),y
)
30 usbcore-objs
+= devio.o inode.o drivers.o devices.o
40 # Each configuration option enables a list of files.
42 obj-
$(CONFIG_USB
) += usbcore.o
43 obj-
$(CONFIG_USB_UHCI
) += usb-uhci.o
44 obj-
$(CONFIG_USB_UHCI_ALT
) += uhci.o
45 obj-
$(CONFIG_USB_OHCI
) += usb-ohci.o
47 obj-
$(CONFIG_USB_MOUSE
) += usbmouse.o input.o
48 obj-
$(CONFIG_USB_HID
) += hid.o input.o
49 obj-
$(CONFIG_USB_KBD
) += usbkbd.o input.o
50 obj-
$(CONFIG_USB_WACOM
) += wacom.o input.o
51 obj-
$(CONFIG_USB_WMFORCE
) += wmforce.o input.o
52 obj-
$(CONFIG_INPUT_KEYBDEV
) += keybdev.o input.o
53 obj-
$(CONFIG_INPUT_MOUSEDEV
) += mousedev.o input.o
54 obj-
$(CONFIG_INPUT_JOYDEV
) += joydev.o input.o
55 obj-
$(CONFIG_INPUT_EVDEV
) += evdev.o input.o
57 obj-
$(CONFIG_USB_SCANNER
) += scanner.o
58 obj-
$(CONFIG_USB_ACM
) += acm.o
59 obj-
$(CONFIG_USB_PRINTER
) += printer.o
60 obj-
$(CONFIG_USB_SERIAL
) += usb-serial.o
61 obj-
$(CONFIG_USB_AUDIO
) += audio.o
62 obj-
$(CONFIG_USB_CPIA
) += cpia.o
63 obj-
$(CONFIG_USB_IBMCAM
) += ibmcam.o
64 obj-
$(CONFIG_USB_DC2XX
) += dc2xx.o
65 obj-
$(CONFIG_USB_STORAGE
) += usb-storage.o
66 obj-
$(CONFIG_USB_USS720
) += uss720.o
67 obj-
$(CONFIG_USB_DABUSB
) += dabusb.o
68 obj-
$(CONFIG_USB_PLUSB
) += plusb.o
69 obj-
$(CONFIG_USB_OV511
) += ov511.o
70 obj-
$(CONFIG_USB_PEGASUS
) += pegasus.o
72 # Extract lists of the multi-part drivers.
73 # The 'int-*' lists are the intermediate files used to build the multi's.
75 multi-y
:= $(filter $(list-multi
), $(obj-y
))
76 multi-m
:= $(filter $(list-multi
), $(obj-m
))
77 int-y
:= $(sort $(foreach m
, $(multi-y
), $($(basename $(m
))-objs
)))
78 int-m
:= $(sort $(foreach m
, $(multi-m
), $($(basename $(m
))-objs
)))
80 # Files that are both resident and modular: remove from modular.
82 obj-m
:= $(filter-out $(obj-y
), $(obj-m
))
83 int-m
:= $(filter-out $(int-y
), $(int-m
))
85 # Take multi-part drivers out of obj-y and put components in.
87 obj-y
:= $(filter-out $(list-multi
), $(obj-y
)) $(int-y
)
89 # Translate to Rules.make lists.
91 O_OBJS
:= $(sort $(filter-out $(export-objs
), $(obj-y
)))
92 OX_OBJS
:= $(sort $(filter $(export-objs
), $(obj-y
)))
93 M_OBJS
:= $(sort $(filter-out $(export-objs
), $(obj-m
)))
94 MX_OBJS
:= $(sort $(filter $(export-objs
), $(obj-m
)))
95 MI_OBJS
:= $(sort $(filter-out $(export-objs
), $(int-m
)))
96 MIX_OBJS
:= $(sort $(filter $(export-objs
), $(int-m
)))
98 # The global Rules.make.
100 include $(TOPDIR
)/Rules.make
102 # Link rules for multi-part drivers.
104 usbcore.o
: $(usbcore-objs
)
105 $(LD
) -r
-o
$@
$(usbcore-objs
)