4be1ade37264ecc7ddcc91a4456001ce7c0ae704
[openwrt/staging/dedeckeh.git] / openwrt / package / linux / Makefile
1 include $(TOPDIR)/rules.mk
2 include ./linux.mk
3
4 PKG_BUILD_DIR := $(BUILD_DIR)/linux-modules
5 PKG_RELEASE := 1
6
7 TARGETS :=
8 INSTALL_TARGETS :=
9
10 define KMOD_template
11 PKG_$(1) := $(PACKAGE_DIR)/kmod-$(2)_$(LINUX_VERSION)-$(PKG_RELEASE)_$(ARCH).ipk
12 I_$(1) := $(PKG_BUILD_DIR)/ipkg/$(2)
13 ifneq ($(BR2_PACKAGE_KMOD_$(1)),)
14 TARGETS += $$(PKG_$(1))
15 endif
16 ifeq ($(BR2_PACKAGE_KMOD_$(1)),y)
17 INSTALL_TARGETS += $$(PKG_$(1))
18 endif
19
20 $$(PKG_$(1)): $(LINUX_DIR)/.modules_done
21 mkdir -p $$(I_$(1))/lib/modules/$(LINUX_VERSION)
22 $(SCRIPT_DIR)/make-ipkg-dir.sh $$(I_$(1)) control/kmod-$(2).control $(LINUX_VERSION)-$(PKG_RELEASE) $(ARCH)
23 cp $(3) $$(I_$(1))/lib/modules/$(LINUX_VERSION)
24 $(IPKG_BUILD) $$(I_$(1)) $(PACKAGE_DIR)
25
26 endef
27
28 $(eval $(call KMOD_template,ARPT,arptables,\
29 $(MODULES_DIR)/kernel/net/ipv4/netfilter/arp*.o \
30 ))
31 $(eval $(call KMOD_template,EBT,ebtables,\
32 $(MODULES_DIR)/kernel/net/bridge/netfilter/*.o \
33 ))
34 $(eval $(call KMOD_template,IPT4,iptables-extra,\
35 $(MODULES_DIR)/kernel/net/ipv4/netfilter/ip*.o \
36 ))
37 $(eval $(call KMOD_template,IPT6,ip6tables,\
38 $(MODULES_DIR)/kernel/net/ipv6/netfilter/ip*.o \
39 ))
40 $(eval $(call KMOD_template,IPV6,ipv6,\
41 $(MODULES_DIR)/kernel/net/ipv6/ipv6.o \
42 ))
43 $(eval $(call KMOD_template,SMBFS,smbfs,\
44 $(MODULES_DIR)/kernel/fs/smbfs/smbfs.o \
45 ))
46 $(eval $(call KMOD_template,NFS,nfs,\
47 $(MODULES_DIR)/kernel/fs/lockd/*.o \
48 $(MODULES_DIR)/kernel/fs/nfs/*.o \
49 $(MODULES_DIR)/kernel/net/sunrpc/*.o \
50 ))
51 $(eval $(call KMOD_template,USB,usb,\
52 $(MODULES_DIR)/kernel/drivers/scsi/*.o \
53 $(MODULES_DIR)/kernel/drivers/usb/*.o \
54 $(MODULES_DIR)/kernel/drivers/usb/*/*.o \
55 ))
56 $(eval $(call KMOD_template,LP,lp,\
57 $(MODULES_DIR)/kernel/drivers/parport/parport.o \
58 $(MODULES_DIR)/kernel/drivers/char/lp.o \
59 ))
60 $(eval $(call KMOD_template,VFAT,vfat,\
61 $(MODULES_DIR)/kernel/fs/vfat/vfat.o \
62 $(MODULES_DIR)/kernel/fs/fat/fat.o \
63 $(MODULES_DIR)/kernel/fs/msdos/msdos.o \
64 ))
65 $(eval $(call KMOD_template,CRYPTO,crypto,\
66 $(MODULES_DIR)/kernel/crypto/*.o \
67 ))
68 $(eval $(call KMOD_template,PPP,ppp,\
69 $(MODULES_DIR)/kernel/drivers/net/ppp_generic.o \
70 $(MODULES_DIR)/kernel/drivers/net/slhc.o \
71 ))
72 $(eval $(call KMOD_template,MPPE,mppe,\
73 $(MODULES_DIR)/kernel/drivers/net/ppp_mppe_mppc.o \
74 ))
75 $(eval $(call KMOD_template,TUN,tun,\
76 $(MODULES_DIR)/kernel/drivers/net/tun.o \
77 ))
78 $(eval $(call KMOD_template,GRE,gre,\
79 $(MODULES_DIR)/kernel/net/ipv4/ip_gre.o \
80 ))
81 $(eval $(call KMOD_template,SCHED,sched,\
82 $(MODULES_DIR)/kernel/net/sched/*.o \
83 ))
84
85 $(TARGETS): $(PACKAGE_DIR)
86
87 $(PACKAGE_DIR):
88 mkdir -p $(PACKAGE_DIR)
89
90 source: linux-source
91 prepare: $(LINUX_DIR)/.configured
92 compile: $(LINUX_DIR)/.modules_done $(TARGETS)
93
94 install: compile $(TARGET_MODULES_DIR)
95 @[ "$(INSTALL_TARGETS)" != "" ] && $(IPKG) install $(INSTALL_TARGETS) || true
96
97 clean: linux-dirclean
98 rm -f $(TARGETS)