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