source: trunk/openwrt/target/linux/linux-2.6/Makefile @ 2034

Last change on this file since 2034 was 2034, checked in by wbx, 11 years ago

fix name of ohci modul

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 9.2 KB
Line 
1# $Id$
2# Linux 2.6 kernel target for the OpenWRT project
3
4include $(TOPDIR)/rules.mk
5include ../rules.mk
6
7KERNEL:=2.6
8LINUX_VERSION:=2.6.12.5
9LINUX_KERNEL_MD5SUM:=076f0dc714112c764c790fbaef19e228
10LINUX_SITE=http://www.fi.kernel.org/pub/linux/kernel/v2.6 \
11           http://www.fr.kernel.org/pub/linux/kernel/v2.6 \
12           http://www.kernel.org/pub/linux/kernel/v2.6 \
13           http://www.de.kernel.org/pub/linux/kernel/v2.6
14MODULES_SUBDIR:=lib/modules/$(LINUX_VERSION)
15LINUX_KCONFIG:=./config/$(BOARD)
16LINUX_BUILD_DIR:=$(BUILD_DIR)/linux-2.6-$(BOARD)
17LINUX_TARGET_DIR:=$(LINUX_BUILD_DIR)/root
18LINUX_KERNEL:=$(LINUX_BUILD_DIR)/vmlinux
19LINUX_KARCH:=$(shell echo $(ARCH) | sed -e 's/i[3-9]86/i386/' \
20        -e 's/mipsel/mips/' \
21        -e 's/powerpc/ppc/' \
22        -e 's/sh[234]/sh/' \
23        )
24
25LINUX_SOURCE := linux-$(LINUX_VERSION).tar.bz2
26LINUX_SOURCE_DIR := $(LINUX_BUILD_DIR)/linux-$(LINUX_VERSION)
27MODULES_DIR := $(LINUX_BUILD_DIR)/modules/$(MODULES_SUBDIR)
28TARGET_MODULES_DIR := $(TARGET_DIR)/lib/modules/$(LINUX_VERSION)
29IPKG_KERNEL:=IPKG_TMP=$(BUILD_DIR)/tmp IPKG_INSTROOT=$(LINUX_TARGET_DIR) IPKG_CONF_DIR=$(LINUX_BUILD_DIR) $(SCRIPT_DIR)/ipkg -force-defaults -force-depends
30
31PKG_BUILD_DIR := $(LINUX_BUILD_DIR)/linux-modules
32PKG_RELEASE := 1
33
34KERNEL_IPKG:=$(LINUX_BUILD_DIR)/kernel-$(LINUX_VERSION)-$(BOARD)_$(PKG_RELEASE)_$(ARCH).ipk
35KERNEL_IDIR:=$(LINUX_BUILD_DIR)/kernel-ipkg
36
37KPKG_MAKEOPTS:= IPKG="$(IPKG_KERNEL)" \
38                BOARD="$(BOARD)" \
39                TARGET_DIR="$(LINUX_TARGET_DIR)" \
40                BUILD_DIR="$(LINUX_BUILD_DIR)" \
41                KERNEL_DIR="$(LINUX_SOURCE_DIR)" \
42                LINUX_VERSION="$(LINUX_VERSION)" \
43                KERNEL_RELEASE="$(PKG_RELEASE)"
44
45include $(LINUX_KCONFIG)
46
47INSTALL_TARGETS := $(KERNEL_IPKG)
48TARGETS := 
49
50ifeq ($(BOARD),brcm)
51include ./broadcom.mk
52endif
53
54$(eval $(call KMOD_template,ATM,atm,\
55        $(MODULES_DIR)/kernel/net/atm/atm.ko \
56        $(MODULES_DIR)/kernel/net/atm/br2684.ko \
57,CONFIG_ATM,,50,atm))
58$(eval $(call KMOD_template,PPPOATM,pppoatm,\
59        $(MODULES_DIR)/kernel/net/atm/pppoatm.ko \
60,CONFIG_PPPOATM))
61$(eval $(call KMOD_template,USB_ACM,usb-acm,\
62        $(MODULES_DIR)/kernel/drivers/usb/class/cdc-acm.ko \
63,CONFIG_USB_ACM))
64$(eval $(call KMOD_template,B44,b44,\
65        $(MODULES_DIR)/kernel/drivers/net/b44.ko \
66,CONFIG_B44))
67$(eval $(call KMOD_template,BLUETOOTH,bluetooth,\
68        $(MODULES_DIR)/kernel/net/bluetooth/*.ko \
69        $(MODULES_DIR)/kernel/net/bluetooth/rfcomm/*.ko \
70        $(MODULES_DIR)/kernel/drivers/bluetooth/*.ko \
71,CONFIG_BLUEZ))
72$(eval $(call KMOD_template,ARPT,arptables,\
73        $(MODULES_DIR)/kernel/net/ipv4/netfilter/arp*.ko \
74,CONFIG_IP_NF_ARPTABLES))
75$(eval $(call KMOD_template,EBT,ebtables,\
76        $(MODULES_DIR)/kernel/net/bridge/netfilter/*.ko \
77,CONFIG_BRIDGE_NF_EBTABLES))
78$(eval $(call KMOD_template,IPTABLES_V4_EXTRA,iptables-extra,\
79        $(MODULES_DIR)/kernel/net/ipv4/netfilter/ip*.ko \
80))
81$(eval $(call KMOD_template,IPTABLES_V6,ip6tables,\
82        $(MODULES_DIR)/kernel/net/ipv6/netfilter/ip*.ko \
83,CONFIG_IP6_NF_IPTABLES,kmod-ipv6))
84$(eval $(call KMOD_template,IPV6,ipv6,\
85        $(MODULES_DIR)/kernel/net/ipv6/ipv6.ko \
86,CONFIG_IPV6,,20,ipv6))
87$(eval $(call KMOD_template,CIFS,cifs,\
88        $(MODULES_DIR)/kernel/fs/cifs/cifs.ko \
89,CONFIG_CIFS,,30,cifs))
90$(eval $(call KMOD_template,NFS,nfs,\
91        $(MODULES_DIR)/kernel/fs/lockd/*.ko \
92        $(MODULES_DIR)/kernel/fs/nfs/*.ko \
93        $(MODULES_DIR)/kernel/net/sunrpc/*.ko \
94,CONFIG_NFS_FS,,30,sunrpc lockd nfs))
95$(eval $(call KMOD_template,USB,usb-core,\
96        $(MODULES_DIR)/kernel/drivers/usb/core/usbcore.ko \
97,CONFIG_USB,,50,usbcore))
98$(eval $(call KMOD_template,USB_UHCI,usb-uhci,\
99        $(MODULES_DIR)/kernel/drivers/usb/host/uhci.ko \
100,CONFIG_USB_UHCI_ALT,kmod-usb-core,60,uhci))
101$(eval $(call KMOD_template,USB_OHCI,usb-ohci,\
102        $(MODULES_DIR)/kernel/drivers/usb/host/ohci-hcd.ko \
103,CONFIG_USB_OHCI_HCD,kmod-usb-core,60,ohci-hcd))
104$(eval $(call KMOD_template,USB2,usb2,\
105        $(MODULES_DIR)/kernel/drivers/usb/host/ehci-hcd.ko \
106,CONFIG_USB_EHCI_HCD,kmod-usb-core,60,ehci-hcd))
107$(eval $(call KMOD_template,USB_STORAGE,usb-storage,\
108        $(MODULES_DIR)/kernel/drivers/scsi/*.ko \
109        $(MODULES_DIR)/kernel/drivers/usb/storage/*.ko \
110,CONFIG_USB_STORAGE,kmod-usb-core,60,scsi_mod sd_mod usb-storage))
111$(eval $(call KMOD_template,USB_PRINTER,usb-printer,\
112        $(MODULES_DIR)/kernel/drivers/usb/class/usblp.ko \
113,CONFIG_USB_PRINTER,kmod-usb-core,60,usblp))
114$(eval $(call KMOD_template,IDE,ide,\
115        $(MODULES_DIR)/kernel/drivers/ide/*.ko \
116        $(MODULES_DIR)/kernel/drivers/ide/*/*.ko \
117,CONFIG_IDE))
118$(eval $(call KMOD_template,LOOP,loop,\
119    $(MODULES_DIR)/kernel/drivers/block/loop.ko \
120,CONFIG_BLK_DEV_LOOP,,20,loop))
121$(eval $(call KMOD_template,EXT2,ext2,\
122        $(MODULES_DIR)/kernel/fs/ext2/*.ko \
123,CONFIG_EXT2_FS,,30,ext2))
124$(eval $(call KMOD_template,EXT3,ext3,\
125        $(MODULES_DIR)/kernel/fs/ext3/*.ko \
126        $(MODULES_DIR)/kernel/fs/jbd/*.ko \
127,CONFIG_EXT3_FS,,30,jbd ext3))
128$(eval $(call KMOD_template,XFS,xfs,\
129        $(MODULES_DIR)/kernel/fs/xfs/*.ko \
130,CONFIG_XFS_FS,,30,xfs))
131$(eval $(call KMOD_template,HFSPLUS,hfsplus,\
132        $(MODULES_DIR)/kernel/fs/hfsplus/*.ko \
133,CONFIG_HFSPLUS_FS,,30,hfsplus))
134$(eval $(call KMOD_template,VFAT,vfat,\
135        $(MODULES_DIR)/kernel/fs/vfat/vfat.ko \
136        $(MODULES_DIR)/kernel/fs/fat/fat.ko \
137        $(MODULES_DIR)/kernel/fs/nls/nls_base.ko \
138,CONFIG_VFAT_FS,,30,nls_base fat vfat))
139$(eval $(call KMOD_template,CRYPTO,crypto,\
140        $(MODULES_DIR)/kernel/crypto/*.ko \
141))
142$(eval $(call KMOD_template,PPP,ppp,\
143        $(MODULES_DIR)/kernel/drivers/net/ppp_async.ko \
144        $(MODULES_DIR)/kernel/drivers/net/ppp_generic.ko \
145        $(MODULES_DIR)/kernel/drivers/net/slhc.ko \
146,CONFIG_PPP))
147$(eval $(call KMOD_template,MPPE,mppe,\
148        $(MODULES_DIR)/kernel/drivers/net/ppp_mppe_mppc.ko \
149,CONFIG_PPP_MPPE_MPPC))
150$(eval $(call KMOD_template,PPPOE,pppoe,\
151        $(MODULES_DIR)/kernel/drivers/net/pppoe.ko \
152        $(MODULES_DIR)/kernel/drivers/net/pppox.ko \
153,CONFIG_PPPOE))
154$(eval $(call KMOD_template,TUN,tun,\
155        $(MODULES_DIR)/kernel/drivers/net/tun.ko \
156,CONFIG_TUN,,20,tun))
157$(eval $(call KMOD_template,GRE,gre,\
158        $(MODULES_DIR)/kernel/net/ipv4/ip_gre.ko \
159,CONFIG_NET_IPGRE))
160$(eval $(call KMOD_template,SCHED,sched,\
161        $(MODULES_DIR)/kernel/net/sched/*.ko \
162))
163
164$(TARGETS): $(PACKAGE_DIR)
165
166$(PACKAGE_DIR):
167        mkdir -p $(PACKAGE_DIR)
168
169$(DL_DIR)/$(LINUX_SOURCE):
170        -mkdir -p $(DL_DIR)
171        $(SCRIPT_DIR)/download.pl $(DL_DIR) $(LINUX_SOURCE) $(LINUX_KERNEL_MD5SUM) $(LINUX_SITE)
172
173$(LINUX_DIR)/.unpacked: $(DL_DIR)/$(LINUX_SOURCE)
174        -mkdir -p $(LINUX_BUILD_DIR)
175        bzcat $(DL_DIR)/$(LINUX_SOURCE) | tar -C $(LINUX_BUILD_DIR) $(TAR_OPTIONS) -
176        rm -f $(LINUX_DIR)
177        ln -s $(LINUX_BUILD_DIR)/linux-$(LINUX_VERSION) $(LINUX_DIR)
178        touch $(LINUX_DIR)/.unpacked
179
180$(LINUX_DIR)/.patched: $(LINUX_DIR)/.unpacked
181        $(PATCH) $(LINUX_DIR) ./patches/generic
182        [ -d ./patches/$(BOARD) ] && $(PATCH) $(LINUX_DIR) ./patches/$(BOARD)
183        touch $(LINUX_DIR)/.patched
184
185$(LINUX_DIR)/.configured: $(LINUX_DIR)/.patched
186        -cp $(LINUX_KCONFIG) $(LINUX_DIR)/.config
187        $(MAKE) -C $(LINUX_DIR) ARCH=$(LINUX_KARCH) oldconfig
188        touch $(LINUX_DIR)/.configured
189
190$(LINUX_DIR)/vmlinux: $(LINUX_DIR)/.configured
191        $(MAKE) -C $(LINUX_DIR) CROSS_COMPILE=$(TARGET_CROSS) ARCH=$(LINUX_KARCH) PATH=$(TARGET_PATH)
192
193$(LINUX_KERNEL): $(LINUX_DIR)/vmlinux
194        $(TARGET_CROSS)objcopy -O binary -R .reginfo -R .note -R .comment -R .mdebug -S $< $@ 
195        touch -c $(LINUX_KERNEL)
196       
197$(LINUX_DIR)/.modules_done: $(LINUX_KERNEL) $(LINUX_IMAGE)
198        rm -rf $(LINUX_BUILD_DIR)/modules
199        $(MAKE) -C $(LINUX_DIR) CROSS_COMPILE=$(TARGET_CROSS) ARCH=$(LINUX_KARCH) PATH=$(TARGET_PATH) modules
200        $(MAKE) -C $(LINUX_DIR) CROSS_COMPILE=$(TARGET_CROSS) ARCH=$(LINUX_KARCH) PATH=$(TARGET_PATH) DEPMOD=true INSTALL_MOD_PATH=$(LINUX_BUILD_DIR)/modules modules_install
201        touch $(LINUX_DIR)/.modules_done
202
203$(STAGING_DIR)/include/linux/version.h: $(LINUX_DIR)/.configured
204        mkdir -p $(STAGING_DIR)/include
205        tar -ch -C $(LINUX_DIR)/include -f - linux | tar -xf - -C $(STAGING_DIR)/include/
206        tar -ch -C $(LINUX_DIR)/include -f - asm | tar -xf - -C $(STAGING_DIR)/include/
207
208$(TARGET_MODULES_DIR):
209        -mkdir -p $(TARGET_MODULES_DIR)
210
211$(KERNEL_IPKG):
212        rm -rf $(KERNEL_IDIR)
213        mkdir -p $(KERNEL_IDIR)/etc
214        $(SCRIPT_DIR)/make-ipkg-dir.sh $(KERNEL_IDIR) ../control/kernel.control $(PKG_RELEASE) $(ARCH)
215        echo 'Package: kernel-$(LINUX_VERSION)-$(BOARD)' >> $(KERNEL_IDIR)/CONTROL/control
216        if [ -f ./config/$(BOARD).modules ]; then \
217                cp ./config/$(BOARD).modules $(KERNEL_IDIR)/etc/modules; \
218        fi
219        $(IPKG_BUILD) $(KERNEL_IDIR) $(LINUX_BUILD_DIR)
220
221
222source: $(DL_DIR)/$(LINUX_SOURCE)
223prepare: $(LINUX_DIR)/.configured
224compile: $(LINUX_DIR)/.modules_done $(TARGETS)
225        ln -sf $(LINUX_BUILD_DIR)/linux-$(LINUX_VERSION) $(LINUX_DIR)
226        $(MAKE) -C $(TOPDIR)/target/linux/package \
227                $(KPKG_MAKEOPTS) \
228                compile
229
230install: compile $(TARGET_MODULES_DIR) $(KERNEL_IPKG)
231        rm -rf $(LINUX_BUILD_DIR)/root*
232        echo -e 'dest root /\noption offline_root $(LINUX_BUILD_DIR)/root' > $(LINUX_BUILD_DIR)/ipkg.conf
233        $(MAKE) -C $(TOPDIR)/package \
234                TARGET_DIR="$(LINUX_TARGET_DIR)" \
235                IPKG_CONF="$(LINUX_BUILD_DIR)" \
236                BOARD="$(BOARD)" \
237                install
238        $(MAKE) -C $(TOPDIR)/target/linux/package \
239                $(KPKG_MAKEOPTS) \
240                install
241        [ "$(INSTALL_TARGETS)" != "" ] && $(IPKG_KERNEL) install $(INSTALL_TARGETS) || true
242
243mostlyclean:
244        rm -f $(LINUX_BUILD_DIR)/linux-$(LINUX_VERSION)/.modules_done
245        rm -f $(LINUX_BUILD_DIR)/linux-$(LINUX_VERSION)/.drivers-unpacked
246        $(MAKE) -C $(LINUX_BUILD_DIR)/linux-$(LINUX_VERSION) clean
247        rm -f $(LINUX_KERNEL) $(LINUX_IMAGE)
248
249rebuild:
250        -$(MAKE) mostlyclean
251        if [ -f $(LINUX_KERNEL) ]; then \
252                $(MAKE) clean; \
253        fi
254        $(MAKE) compile
255
256clean:
257        rm -rf $(LINUX_BUILD_DIR)
258        rm -f $(TARGETS)
Note: See TracBrowser for help on using the repository browser.