Fix module dependency on ipw21,2200, bcm43xx
[lede.git] / package / kernel / modules.mk
1
2 # Copyright (C) 2006 OpenWrt.org
3 #
4 # This is free software, licensed under the GNU General Public License v2.
5 # See /LICENSE for more information.
6 #
7 # $Id$
8
9
10 define KernelPackage/crypto
11   TITLE:=CryptoAPI modules
12   KCONFIG:= \
13         $(CONFIG_CRYPTO_HMAC) \
14         $(CONFIG_CRYPTO_NULL) \
15         $(CONFIG_CRYPTO_MD4) \
16         $(CONFIG_CRYPTO_MD5) \
17         $(CONFIG_CRYPTO_SHA1) \
18         $(CONFIG_CRYPTO_SHA256) \
19         $(CONFIG_CRYPTO_SHA512) \
20         $(CONFIG_CRYPTO_WP512) \
21         $(CONFIG_CRYPTO_TGR192) \
22         $(CONFIG_CRYPTO_DES) \
23         $(CONFIG_CRYPTO_BLOWFISH) \
24         $(CONFIG_CRYPTO_TWOFISH) \
25         $(CONFIG_CRYPTO_SERPENT) \
26         $(CONFIG_CRYPTO_AES) \
27         $(CONFIG_CRYPTO_CAST5) \
28         $(CONFIG_CRYPTO_CAST6) \
29         $(CONFIG_CRYPTO_TEA) \
30         $(CONFIG_CRYPTO_ARC4) \
31         $(CONFIG_CRYPTO_KHAZAD) \
32         $(CONFIG_CRYPTO_ANUBIS) \
33         $(CONFIG_CRYPTO_DEFLATE) \
34         $(CONFIG_CRYPTO_MICHAEL_MIC) \
35         $(CONFIG_CRYPTO_CRC32C)
36   FILES:=$(MODULES_DIR)/kernel/crypto/*.$(LINUX_KMOD_SUFFIX)
37 endef
38 $(eval $(call KernelPackage,crypto))
39
40 define KernelPackage/ide-core
41   TITLE:=Kernel support for IDE
42   DESCRIPTION:=\
43         Useful for usb mass storage devices (e.g. on WL-HDD)\\\
44         \\\
45         Includes: \\\
46         - ide-core \\\
47         - ide-detect \\\
48         - ide-disk
49   KCONFIG:=$(CONFIG_IDE)
50   FILES:=$(MODULES_DIR)/kernel/drivers/ide/*.$(LINUX_KMOD_SUFFIX)
51   AUTOLOAD:=$(call AutoLoad,20,ide-core) $(call AutoLoad,90,ide-detect ide-disk)
52 endef
53 $(eval $(call KernelPackage,ide-core))
54
55 define KernelPackage/ide-pdc202xx
56   TITLE:=PDC202xx IDE driver
57   KCONFIG:=$(CONFIG_BLK_DEV_PDC202XX_OLD)
58   FILES:=$(MODULES_DIR)/kernel/drivers/ide/pci/pdc202xx_old.$(LINUX_KMOD_SUFFIX)
59   AUTOLOAD:=$(call AutoLoad,30,pdc202xx_old)
60 endef
61 $(eval $(call KernelPackage,ide-pdc202xx))
62
63
64 define KernelPackage/lp
65   TITLE:=Parallel port and line printer support
66   KCONFIG:=$(CONFIG_PARPORT)
67   FILES:= \
68         $(MODULES_DIR)/kernel/drivers/parport/parport.o \
69         $(MODULES_DIR)/kernel/drivers/parport/parport_splink.o \
70         $(MODULES_DIR)/kernel/drivers/char/lp.o \
71         $(MODULES_DIR)/kernel/drivers/char/ppdev.o
72   AUTOLOAD:=$(call AutoLoad,50, \
73         parport \
74         parport_splink \
75         lp \
76   )
77 endef
78 $(eval $(call KernelPackage,lp))
79
80
81 define KernelPackage/ieee80211softmac
82   TITLE:=802.11 Networking stack
83   DESCRIPTION:=\\\
84         \\\
85         Includes: \\\
86         - ieee80211_crypt \\\
87         - ieee80211 \\\
88         - ieee80211_crypt_wep \\\
89         - ieee80211_crypt_tkip \\\
90         - ieee80211_crytp_ccmp \\\
91         - ieee80211softmac
92   KCONFIG:=$(CONFIG_IEEE80211_SOFTMAC)
93   FILES:=$(MODULES_DIR)/kernel/net/ieee80211/*.$(LINUX_KMOD_SUFFIX) $(MODULES_DIR)/kernel/net/ieee80211/softmac/*.$(LINUX_KMOD_SUFFIX)
94   AUTOLOAD:=$(call AutoLoad,10, \
95         ieee80211_crypt \
96         ieee80211 \
97         ieee80211_crypt_wep \
98         ieee80211_crypt_tkip \
99         ieee80211_crypt_ccmp \
100         ieee80211softmac \
101   )
102 endef
103 $(eval $(call KernelPackage,ieee80211softmac))
104
105
106 WIMENU:=Wireless drivers
107
108 define KernelPackage/bcm43xx
109   TITLE:=Broadcom BCM43xx driver
110   DESCRIPTION:=\\\
111         \\\
112         Includes: \\\
113         - bcm43xx
114   DEPENDS:=kmod-ieee80211softmac
115   KCONFIG:=$(CONFIG_BCM43XX)
116   FILES:=$(MODULES_DIR)/kernel/drivers/net/wireless/bcm43xx/bcm43xx.$(LINUX_KMOD_SUFFIX)
117   AUTOLOAD:=$(call Autoload,50,bcm43xx)
118   SUBMENU:=$(WIMENU)
119 endef
120 $(eval $(call KernelPackage,bcm43xx))
121
122 define KernelPackage/ipw2100
123   TITLE:=Intel IPw2100 driver
124   DESCRIPTION:=\\\
125         \\\
126         Includes: \\\
127         - ipw2100
128   DEPENDS:=kmod-ieee80211softmac
129   KCONFIG:=$(CONFIG_IPW2100)
130   FILES:=$(MODULES_DIR)/kernel/drivers/net/wireless/ipw2100.$(LINUX_KMOD_SUFFIX)
131   AUTOLOAD:=$(call Autoload,50,ipw2100)
132   SUBMENU:=$(WIMENU)
133 endef
134 $(eval $(call KernelPackage,ipw2100))
135
136 define KernelPackage/ipw2200
137   TITLE:=Intel IPw2200 driver
138   DESCRIPTION:=\\\
139         \\\
140         Includes: \\\
141         - ipw2200
142   DEPENDS:=kmod-ieee80211softmac
143   KCONFIG:=$(CONFIG_IPW2200)
144   FILES:=$(MODULES_DIR)/kernel/drivers/net/wireless/ipw2200.$(LINUX_KMOD_SUFFIX)
145   AUTOLOAD:=$(call Autoload,50,ipw2200)
146   SUBMENU:=$(WIMENU)
147 endef
148 $(eval $(call KernelPackage,ipw2200))
149
150
151 NFMENU:=Netfilter Extensions
152
153 define KernelPackage/ipt-conntrack
154   TITLE:=Modules for connection tracking
155   DESCRIPTION:=\
156         Netfilter (IPv4) kernel modules for connection tracking\\\
157         \\\
158         Includes: \\\
159         - ipt_conntrack \\\
160         - ipt_helper \\\
161         - ipt_connmark/CONNMARK
162   FILES:=$(foreach mod,$(IPT_CONNTRACK-m),$(MODULES_DIR)/kernel/net/$(mod).$(LINUX_KMOD_SUFFIX))
163   SUBMENU:=$(NFMENU)
164 endef
165 $(eval $(call KernelPackage,ipt-conntrack))
166
167 define KernelPackage/ipt-filter
168   TITLE:=Modules for packet content inspection
169   DESCRIPTION:=\
170         Netfilter (IPv4) kernel modules for packet content inspection \\\
171         \\\
172         Includes: \\\
173         - ipt_ipp2p \\\
174         - ipt_layer7
175   FILES:=$(foreach mod,$(IPT_FILTER-m),$(MODULES_DIR)/kernel/net/$(mod).$(LINUX_KMOD_SUFFIX))
176   SUBMENU:=$(NFMENU)
177 endef
178 $(eval $(call KernelPackage,ipt-filter))
179
180 define KernelPackage/ipt-ipopt
181   TITLE:=Modules for matching/changing IP packet options
182   DESCRIPTION:=\
183         Netfilter (IPv4) modules for matching/changing IP packet options \\\
184         \\\
185         Includes: \\\
186         - ipt_dscp/DSCP \\\
187         - ipt_ecn/ECN \\\
188         - ipt_length \\\
189         - ipt_mac \\\
190         - ipt_tos/TOS \\\
191         - ipt_tcpmms \\\
192         - ipt_ttl/TTL \\\
193         - ipt_unclean
194   FILES:=$(foreach mod,$(IPT_IPOPT-m),$(MODULES_DIR)/kernel/net/$(mod).$(LINUX_KMOD_SUFFIX))
195   SUBMENU:=$(NFMENU)
196 endef
197 $(eval $(call KernelPackage,ipt-ipopt))
198
199 define KernelPackage/ipt-ipsec
200   TITLE:=Modules for matching IPSec packets
201   DESCRIPTION:=\
202         Netfilter (IPv4) modules for matching IPSec packets \\\
203         \\\
204         Includes: \\\
205         - ipt_ah \\\
206         - ipt_esp
207   FILES:=$(foreach mod,$(IPT_IPSEC-m),$(MODULES_DIR)/kernel/net/$(mod).$(LINUX_KMOD_SUFFIX))
208   SUBMENU:=$(NFMENU)
209 endef
210 $(eval $(call KernelPackage,ipt-ipsec))
211
212 define KernelPackage/ipt-nat
213   TITLE:=Modules for extra NAT targets
214   DESCRIPTION:=\
215         Netfilter (IPv4) modules for extra NAT targets \\\
216         \\\
217         Includes: \\\
218         - ipt_REDIRECT \\\
219         - ipt_NETMAP
220   FILES:=$(foreach mod,$(IPT_NAT-m),$(MODULES_DIR)/kernel/net/$(mod).$(LINUX_KMOD_SUFFIX))
221   SUBMENU:=$(NFMENU)
222 endef
223 $(eval $(call KernelPackage,ipt-nat))
224
225 define KernelPackage/ipt-nathelper
226   TITLE:=Extra Conntrack and NAT helpers
227   DESCRIPTION:=\
228         Extra Netfilter (IPv4) Conntrack and NAT helpers \\\
229         \\\
230         Includes: \\\
231         - ip_conntrack_amanda \\\
232         - ip_conntrack_proto_gre \\\
233         - ip_nat_proto_gre \\\
234         - ip_conntrack_pptp \\\
235         - ip_nat_pptp \\\
236         - ip_conntrack_sip \\\
237         - ip_nat_sip \\\
238         - ip_nat_snmp_basic \\\
239         - ip_conntrack_tftp
240   FILES:=$(foreach mod,$(IPT_NAT_EXTRA-m),$(MODULES_DIR)/kernel/net/$(mod).$(LINUX_KMOD_SUFFIX))
241   SUBMENU:=$(NFMENU)
242 endef
243 $(eval $(call KernelPackage,ipt-nathelper))
244
245 define KernelPackage/ipt-imq
246   TITLE:=Intermediate Queueing support
247   DESCRIPTION:=\
248         Kernel support for Intermediate Queueing devices
249   KCONFIG:=$(CONFIG_IP_NF_TARGET_IMQ)
250   FILES:=$(MODULES_DIR)/kernel/net/ipv4/netfilter/*IMQ*.$(LINUX_KMOD_SUFFIX) $(MODULES_DIR)/kernel/drivers/net/imq.$(LINUX_KMOD_SUFFIX)
251   SUBMENU:=$(NFMENU)
252 endef
253 $(eval $(call KernelPackage,ipt-imq))
254
255
256 define KernelPackage/ipt-queue
257   TITLE:=Module for user-space packet queueing
258   DESCRIPTION:=\
259         Netfilter (IPv4) module for user-space packet queueing \\\
260         \\\
261         Includes: \\\
262         - ipt_QUEUE
263   FILES:=$(foreach mod,$(IPT_QUEUE-m),$(MODULES_DIR)/kernel/net/$(mod).$(LINUX_KMOD_SUFFIX))
264   SUBMENU:=$(NFMENU)
265 endef
266 $(eval $(call KernelPackage,ipt-queue))
267
268 define KernelPackage/ipt-ulog
269   TITLE:=Module for user-space packet logging
270   DESCRIPTION:=\
271         Netfilter (IPv4) module for user-space packet logging \\\
272         \\\
273         Includes: \\\
274         - ipt_ULOG
275   FILES:=$(foreach mod,$(IPT_ULOG-m),$(MODULES_DIR)/kernel/net/$(mod).$(LINUX_KMOD_SUFFIX))
276   SUBMENU:=$(NFMENU)
277 endef
278 $(eval $(call KernelPackage,ipt-ulog))
279
280 define KernelPackage/ipt-extra
281   TITLE:=Extra modules
282   DESCRIPTION:=\
283         Other Netfilter (IPv4) kernel modules\\\
284         Includes: \\\
285         - ipt_limit \\\
286         - ipt_owner \\\
287         - ipt_physdev \\\
288         - ipt_pkttype \\\
289         - ipt_recent
290   FILES:=$(foreach mod,$(IPT_EXTRA-m),$(MODULES_DIR)/kernel/net/$(mod).$(LINUX_KMOD_SUFFIX))
291   SUBMENU:=$(NFMENU)
292 endef
293 $(eval $(call KernelPackage,ipt-extra))
294
295 define KernelPackage/ip6tables
296   TITLE:=IPv6 modules
297   DESCRIPTION:=\
298         Netfilter IPv6 firewalling support
299   KCONFIG:=$(CONFIG_IP6_NF_IPTABLES)
300   FILES:=$(MODULES_DIR)/kernel/net/ipv6/netfilter/ip*.$(LINUX_KMOD_SUFFIX)
301   SUBMENU:=$(NFMENU)
302 endef
303 $(eval $(call KernelPackage,ip6tables))
304
305
306 define KernelPackage/arptables
307   TITLE:=ARP firewalling modules
308   DESCRIPTION:=\
309         Kernel modules for ARP firewalling
310   FILES:=$(MODULES_DIR)/kernel/net/ipv4/netfilter/arp*.$(LINUX_KMOD_SUFFIX)
311   KCONFIG:=$(CONFIG_IP_NF_ARPTABLES)
312   SUBMENU:=$(NFMENU)
313 endef
314 $(eval $(call KernelPackage,arptables))
315
316
317 define KernelPackage/ebtables
318   TITLE:=Bridge firewalling modules
319   DESCRIPTION:=\
320         Kernel modules for Ethernet Bridge firewalling
321   FILES:=$(MODULES_DIR)/kernel/net/bridge/netfilter/*.$(LINUX_KMOD_SUFFIX)
322   KCONFIG:=$(CONFIG_BRIDGE_NF_EBTABLES)
323   SUBMENU:=$(NFMENU)
324 endef
325 $(eval $(call KernelPackage,ebtables))
326
327 define KernelPackage/ipip
328   TITLE:=IP in IP encapsulation support
329   DESCRIPTION:=\
330         Kernel modules for IP in IP encapsulation
331   FILES:=$(MODULES_DIR)/kernel/net/ipv4/ipip.$(LINUX_KMOD_SUFFIX)
332   KCONFIG:=$(CONFIG_NET_IPIP)
333 endef
334 $(eval $(call KernelPackage,ipip))
335
336
337 define KernelPackage/ipv6
338   TITLE:=IPv6 support
339   DESCRIPTION:=\
340         Kernel modules for IPv6 support
341   KCONFIG:=$(CONFIG_IPV6)
342   FILES:=$(MODULES_DIR)/kernel/net/ipv6/ipv6.$(LINUX_KMOD_SUFFIX)
343 endef
344 $(eval $(call KernelPackage,ipv6))
345
346
347 define KernelPackage/gre
348   TITLE:=GRE support
349   DESCRIPTION:=\
350         Generic Routing Encapsulation support
351   KCONFIG=$(CONFIG_NET_IPGRE)
352   FILES=$(MODULES_DIR)/kernel/net/ipv4/ip_gre.$(LINUX_KMOD_SUFFIX)
353 endef
354 $(eval $(call KernelPackage,gre))
355
356
357 define KernelPackage/tun
358   TITLE:=Universal TUN/TAP driver
359   DESCRIPTION:=\
360         Kernel support for the TUN/TAP tunneling device
361   KCONFIG:=$(CONFIG_TUN)
362   FILES:=$(MODULES_DIR)/kernel/drivers/net/tun.$(LINUX_KMOD_SUFFIX)
363 endef
364 $(eval $(call KernelPackage,tun))
365
366
367 define KernelPackage/ppp
368   TITLE:=PPP modules
369   DESCRIPTION:=\
370         Kernel modules for PPP support
371   KCONFIG:=$(CONFIG_PPP)
372 endef
373
374 define KernelPackage/ppp/2.6
375   FILES:=$(MODULES_DIR)/kernel/drivers/net/ppp_async.ko $(MODULES_DIR)/kernel/drivers/net/ppp_generic.ko $(MODULES_DIR)/kernel/drivers/net/slhc.ko $(MODULES_DIR)/kernel/lib/crc-ccitt.ko
376   AUTOLOAD:=$(call AutoLoad,30,crc-ccitt)
377 endef
378
379 define KernelPackage/ppp/2.4
380   FILES:=$(MODULES_DIR)/kernel/drivers/net/ppp_async.o $(MODULES_DIR)/kernel/drivers/net/ppp_generic.o $(MODULES_DIR)/kernel/drivers/net/slhc.o
381 endef
382 $(eval $(call KernelPackage,ppp))
383
384
385 define KernelPackage/pppoe
386   TITLE:=PPPoE support
387   DESCRIPTION:=\
388         Kernel modules for PPPoE (PPP over Ethernet) support
389   DEPENDS:=kmod-ppp
390   KCONFIG:=$(CONFIG_PPPOE)
391   FILES:=$(MODULES_DIR)/kernel/drivers/net/pppoe.$(LINUX_KMOD_SUFFIX) $(MODULES_DIR)/kernel/drivers/net/pppox.$(LINUX_KMOD_SUFFIX)
392 endef
393 $(eval $(call KernelPackage,pppoe))
394
395
396 define KernelPackage/pppoa
397   TITLE:=PPPoA support
398   DESCRIPTION:=\
399         Kernel modules for PPPoA (PPP over ATM) support
400   DEPENDS:=kmod-ppp
401   KCONFIG:=$(CONFIG_PPPOATM)
402   FILES:=$(MODULES_DIR)/kernel/net/atm/pppoatm.$(LINUX_KMOD_SUFFIX)
403 endef
404 $(eval $(call KernelPackage,pppoa))
405
406
407 define KernelPackage/mppe
408   TITLE:=Microsoft PPP compression/encryption
409   DESCRIPTION:=Kernel modules for Microsoft PPP compression/encryption
410   DEPENDS:=kmod-ppp
411   KCONFIG:=$(CONFIG_PPP_MPPE)
412 endef
413
414 define KernelPackage/mppe/2.4
415   FILES:=$(MODULES_DIR)/kernel/drivers/net/ppp_mppe_mppc.$(LINUX_KMOD_SUFFIX)
416 endef
417
418 define KernelPackage/mppe/2.6
419   FILES:=$(MODULES_DIR)/kernel/drivers/net/ppp_mppe.$(LINUX_KMOD_SUFFIX)
420 endef
421 $(eval $(call KernelPackage,mppe))
422
423
424 define KernelPackage/sched
425   TITLE:=Traffic schedulers
426   DESCRIPTION:=\
427         Kernel schedulers for IP traffic
428   FILES:=$(MODULES_DIR)/kernel/net/sched/*.$(LINUX_KMOD_SUFFIX)
429 endef
430 $(eval $(call KernelPackage,sched))
431
432
433
434 NDMENU:=Network Devices
435
436 define KernelPackage/natsemi
437   TITLE:=National Semiconductor DP8381x series 
438   DESCRIPTION:=\
439         Kernel modules for National Semiconductor DP8381x series PCI Ethernet \\\
440         adapters.
441   FILES:=$(MODULES_DIR)/kernel/drivers/net/natsemi.$(LINUX_KMOD_SUFFIX)
442   KCONFIG:=$(CONFIG_NATSEMI)
443   DEPENDS:=@LINUX_2_6_X86
444   DEFAULT:=y
445   SUBMENU:=$(NDMENU)
446   AUTOLOAD:=$(call AutoLoad,20,natsemi)
447 endef
448 $(eval $(call KernelPackage,natsemi))
449
450 define KernelPackage/sis900
451   TITLE:=SiS 900 Ethernet support
452   DESCRIPTION:=\
453         Kernel modules for Sis 900 Ethernet adapters.
454   FILES:=$(MODULES_DIR)/kernel/drivers/net/sis900.$(LINUX_KMOD_SUFFIX)
455   KCONFIG:=$(CONFIG_SIS900)
456   DEPENDS:=@LINUX_2_6_X86||LINUX_2_4_X86
457   SUBMENU:=$(NDMENU)
458 endef
459 $(eval $(call KernelPackage,sis900))
460
461 define KernelPackage/via-rhine
462   TITLE:=Via Rhine ethernet support
463   DESCRIPTION:=\
464         Kernel modules for Via Rhine Ethernet chipsets.
465   FILES:=$(MODULES_DIR)/kernel/drivers/net/via-rhine.$(LINUX_KMOD_SUFFIX)
466   KCONFIG:=$(CONFIG_VIA_RHINE)
467   DEPENDS:=@LINUX_2_6_X86||LINUX_2_4_X86
468   SUBMENU:=$(NDMENU)
469 endef
470 $(eval $(call KernelPackage,via-rhine))
471
472 define KernelPackage/8139too
473   TITLE:=RealTek RTL-8139 PCI Fast Ethernet Adapter kernel support
474   DESCRIPTION:=\
475         Kernel modules for RealTek RTL-8139 PCI Fast Ethernet adapters.
476   FILES:=$(MODULES_DIR)/kernel/drivers/net/8139too.$(LINUX_KMOD_SUFFIX)
477   KCONFIG:=$(CONFIG_8139TOO)
478   DEPENDS:=@LINUX_2_6_X86||LINUX_2_4_X86
479   SUBMENU:=$(NDMENU)
480 endef
481 $(eval $(call KernelPackage,8139too))
482
483 define KernelPackage/e100
484   TITLE:=Intel(R) PRO/100+ cards kernel support
485   DESCRIPTION:=\
486         Kernel modules for Intel(R) PRO/100+ Ethernet adapters.
487   FILES:=$(MODULES_DIR)/kernel/drivers/net/e100.$(LINUX_KMOD_SUFFIX)
488   KCONFIG:=$(CONFIG_E100)
489   DEPENDS:=@LINUX_2_6_X86||LINUX_2_4_X86
490   SUBMENU:=$(NDMENU)
491 endef
492 $(eval $(call KernelPackage,e100))
493
494 define KernelPackage/3c59x
495   TITLE:=3Com 3c590/3c900 series (592/595/597) Vortex/Boomerang
496   DESCRIPTION:=\
497         This option enables driver support for a large number of 10mbps and \\\
498         10/100mbps EISA, PCI and PCMCIA 3Com Ethernet adapters: \\\
499         - "Vortex"    (Fast EtherLink 3c590/3c592/3c595/3c597) EISA and PCI \\\
500         - "Boomerang" (EtherLink XL 3c900 or 3c905)            PCI \\\
501         - "Cyclone"   (3c540/3c900/3c905/3c980/3c575/3c656)    PCI and Cardbus \\\
502         - "Tornado"   (3c905)                                  PCI  \\\
503         - "Hurricane" (3c555/3cSOHO)                           PCI 
504   FILES:=$(MODULES_DIR)/kernel/drivers/net/3c59x.$(LINUX_KMOD_SUFFIX)
505   KCONFIG:=$(CONFIG_3C59X)
506   DEPENDS:=@LINUX_2_6_X86||LINUX_2_4_X86
507   SUBMENU:=$(NDMENU)
508 endef
509 $(eval $(call KernelPackage,3c59x))