English Language flag
// Log In
// CVSweb
Project: FreeWRT
// Summary // Activity // Search // Tracker // Lists // News // SCM // Wiki

SCM Repository

ViewVC logotype

Contents of /branches/freewrt_1_0/target/linux/brcm-2.4/Makefile

Parent Directory Parent Directory | Revision Log Revision Log


Revision 3821 - (show annotations) (download)
Thu Nov 13 13:22:27 2008 UTC (5 years, 3 months ago) by dnehring
File size: 8518 byte(s)
Update kernel to 2.4.36.9
1 # $FreeWRT$
2 #-
3 # This file is part of the FreeWRT project. FreeWRT is copyrighted
4 # material, please see the LICENCE file in the top-level directory
5 # or at http://www.freewrt.org/license for details.
6
7 include $(TOPDIR)/rules.mk
8
9 LINUX_VERSION:=2.4.36.9
10 LINUX_RELEASE:=1
11 LINUX_KERNEL_MD5SUM:=731e98b693f86b91b8603cc3f117187f
12
13 KERNEL:=unknown
14 ifneq (,$(findstring 2.4.,$(LINUX_VERSION)))
15 KERNEL:=2.4
16 endif
17 ifneq (,$(findstring 2.6.,$(LINUX_VERSION)))
18 KERNEL:=2.6
19 endif
20
21 ifeq ($(KERNEL),2.6)
22 LINUX_KMOD_SUFFIX=ko
23 else
24 LINUX_KMOD_SUFFIX=o
25 endif
26
27 MODULES_SUBDIR := lib/modules/$(LINUX_VERSION)
28 LINUX_BUILD_DIR := $(BUILD_DIR)/linux-$(KERNEL)-$(BOARD)
29 LINUX_DIR := $(LINUX_BUILD_DIR)/linux-$(LINUX_VERSION)
30 LINUX_KERNEL := $(LINUX_BUILD_DIR)/vmlinux
31 LINUX_TARGET_DIR := $(LINUX_BUILD_DIR)/root
32
33 IPKG_KERNEL := IPKG_TMP=$(BUILD_DIR)/tmp IPKG_INSTROOT=$(LINUX_TARGET_DIR) IPKG_CONF_DIR=$(LINUX_BUILD_DIR) $(SCRIPT_DIR)/ipkg -force-defaults -force-depends
34
35 LINUX_KARCH:=$(shell echo $(ARCH) | sed -e 's/i[3-9]86/i386/' \
36 -e 's/mipsel/mips/' \
37 -e 's/mipseb/mips/' \
38 -e 's/powerpc/ppc/' \
39 -e 's/sh[234]/sh/' \
40 -e 's/armeb/arm/' \
41 )
42
43 KPKG_MAKEOPTS := IPKG="$(IPKG_KERNEL)" \
44 BOARD="$(BOARD)" \
45 KERNEL="$(KERNEL)" \
46 TARGET_DIR="$(LINUX_TARGET_DIR)" \
47 LINUX_BUILD_DIR="$(LINUX_BUILD_DIR)" \
48 LINUX_DIR="$(LINUX_DIR)" \
49 LINUX_VERSION="$(LINUX_VERSION)" \
50 LINUX_RELEASE="$(LINUX_RELEASE)"
51
52 KMOD_BUILD_DIR := $(LINUX_BUILD_DIR)/linux-modules
53 MODULES_DIR := $(LINUX_BUILD_DIR)/modules/$(MODULES_SUBDIR)
54 TARGET_MODULES_DIR := $(LINUX_TARGET_DIR)/$(MODULES_SUBDIR)
55
56 KERNEL_IPKG:=$(LINUX_BUILD_DIR)/kernel_$(BOARD)-$(KERNEL)-$(LINUX_VERSION)_$(ARCH).ipk
57 INSTALL_TARGETS:=
58 TARGETS:=
59
60 define KMOD_template
61 ifeq ($$(strip $(4)),)
62 KDEPEND_$(1):=m
63 else
64 KDEPEND_$(1):=$($(4))
65 endif
66
67 IDEPEND_$(1):=kernel ($(BOARD)-$(KERNEL)-$(LINUX_VERSION)) $(foreach pkg,$(5),", $(pkg)")
68
69 PKG_$(1) := $(PACKAGE_DIR)/kmod-$(2)_$(LINUX_VERSION)-$(BOARD)-$(LINUX_RELEASE)_$(ARCH).ipk
70 I_$(1) := $(KMOD_BUILD_DIR)/ipkg/$(2)
71
72 ifeq ($$(KDEPEND_$(1)),m)
73 ifneq ($$(FWRT_PACKAGE_KMOD_$(1)),)
74 TARGETS+=$$(PKG_$(1))
75 endif
76 ifeq ($$(FWRT_PACKAGE_KMOD_$(1)),y)
77 INSTALL_TARGETS+=$$(PKG_$(1))
78 endif
79 endif
80
81 $$(PKG_$(1)): $(LINUX_DIR)/.modules-install
82 rm -rf $$(I_$(1))
83 $(SCRIPT_DIR)/make-ipkg-dir.sh $$(I_$(1)) ../control/kmod-$(2).control $(LINUX_VERSION)-$(BOARD)-$(LINUX_RELEASE) $(ARCH)
84 echo "Depends: $$(IDEPEND_$(1))" >> $$(I_$(1))/CONTROL/control
85 ifneq ($(strip $(3)),)
86 mkdir -p $$(I_$(1))/lib/modules/$(LINUX_VERSION)
87 $(CP) $(3) $$(I_$(1))/lib/modules/$(LINUX_VERSION)
88 endif
89 ifneq ($(6),)
90 mkdir -p $$(I_$(1))/etc/modules.d
91 for module in $(7); do \
92 echo $$$$module >> $$(I_$(1))/etc/modules.d/$(6)-$(2); \
93 done
94 echo "#!/bin/sh" >> $$(I_$(1))/CONTROL/postinst
95 echo "if [ -z \"\$$$${IPKG_INSTROOT}\" ]; then" >> $$(I_$(1))/CONTROL/postinst
96 echo ". /etc/functions.sh" >> $$(I_$(1))/CONTROL/postinst
97 echo "load_modules /etc/modules.d/$(6)-$(2)" >> $$(I_$(1))/CONTROL/postinst
98 echo "fi" >> $$(I_$(1))/CONTROL/postinst
99 chmod 0755 $$(I_$(1))/CONTROL/postinst
100 endif
101 $(8)
102 $(IPKG_BUILD) $$(I_$(1)) $(PACKAGE_DIR) $(MAKE_TRACE)
103 endef
104
105 # include kernel configuration, first try model specific if exist
106 # otherwise use generic root filesystem specific for this board
107
108 # squashfs with mini-fo overlay
109 ifeq ($(FS),squashfs-overlay)
110 MODELCONFIG:=$(shell test -f $(MODEL)/config/config.squashfs_overlay && echo y 2>/dev/null)
111 ifneq ($(strip $(MODELCONFIG)),)
112 include $(MODEL)/config/config.squashfs_overlay
113 else
114 include $(FS)/config/config.squashfs_overlay
115 endif
116 endif
117 # jffs2
118 ifeq ($(FS),jffs2)
119 MODELCONFIG:=$(shell test -f $(MODEL)/config/config.jffs2 && echo y 2>/dev/null)
120 ifneq ($(strip $(MODELCONFIG)),)
121 include $(MODEL)/config/config.jffs2
122 else
123 include $(FS)/config/config.jffs2
124 endif
125 endif
126
127
128 include $(TOPDIR)/mk/netfilter.mk
129 include $(TOPDIR)/mk/modules-$(KERNEL).mk
130
131 LINUX_SOURCE:=linux-$(LINUX_VERSION).tar.bz2
132 LINUX_SITE=http://www.us.kernel.org/pub/linux/kernel/v$(KERNEL) \
133 http://www.us.kernel.org/pub/linux/kernel/v$(KERNEL) \
134 http://www.kernel.org/pub/linux/kernel/v$(KERNEL) \
135 http://www.de.kernel.org/pub/linux/kernel/v$(KERNEL)
136
137 KERNEL_IDIR:=$(LINUX_BUILD_DIR)/kernel-ipkg
138
139 $(TARGETS): $(PACKAGE_DIR)
140
141 $(PACKAGE_DIR):
142 @mkdir -p $(PACKAGE_DIR)
143
144 $(DL_DIR)/$(LINUX_SOURCE):
145 -mkdir -p $(DL_DIR)
146 @$(TRACE) target/linux/$(BOARD)-$(KERNEL)-kernel-download
147 $(SCRIPT_DIR)/download.pl $(DL_DIR) $(LINUX_SOURCE) $(LINUX_KERNEL_MD5SUM) $(LINUX_SITE) $(MAKE_TRACE)
148
149 $(LINUX_DIR)/.unpacked: $(DL_DIR)/$(LINUX_SOURCE)
150 @$(TRACE) target/linux/$(BOARD)-$(KERNEL)-kernel-prepare
151 -mkdir -p $(LINUX_BUILD_DIR)
152 bzcat $(DL_DIR)/$(LINUX_SOURCE) | (cd $(LINUX_BUILD_DIR); tar xf - )
153 rm -f $(BUILD_DIR)/linux
154 ln -s $(LINUX_BUILD_DIR)/linux-$(LINUX_VERSION) $(BUILD_DIR)/linux
155 touch $@
156
157 $(LINUX_DIR)/.patched: $(LINUX_DIR)/.unpacked
158 @$(TRACE) target/linux/$(BOARD)-$(KERNEL)-kernel-patch
159 -[ -d ../generic-$(KERNEL)/patches ] && $(PATCH) $(LINUX_DIR) ../generic-$(KERNEL)/patches $(MAKE_TRACE)
160 -[ -d ./patches ] && $(PATCH) $(LINUX_DIR) ./patches $(MAKE_TRACE)
161 -[ -d ./$(MODEL)/patches ] && $(PATCH) $(LINUX_DIR) ./$(MODEL)/patches $(MAKE_TRACE)
162 ifeq ($(FS),squashfs-overlay)
163 ifneq ($(strip $(MODELCONFIG)),)
164 $(CP) $(MODEL)/config/config.squashfs_overlay $(LINUX_DIR)/.config
165 else
166 $(CP) $(FS)/config/config.squashfs_overlay $(LINUX_DIR)/.config
167 endif
168 endif
169 ifeq ($(FS),jffs2)
170 ifneq ($(strip $(MODELCONFIG)),)
171 $(CP) $(MODEL)/config/config.jffs2 $(LINUX_DIR)/.config
172 else
173 $(CP) $(FS)/config/config.jffs2 $(LINUX_DIR)/.config
174 endif
175 endif
176 touch $@
177
178 ifeq ($(KERNEL),2.4)
179 $(LINUX_DIR)/.configured: $(LINUX_DIR)/.patched
180 @$(TRACE) target/linux/$(BOARD)-$(KERNEL)-kernel-configure
181 $(SED) "s,^CROSS_COMPILE.*,CROSS_COMPILE=$(KERNEL_CROSS),g;" \
182 $(LINUX_DIR)/Makefile \
183 $(LINUX_DIR)/arch/*/Makefile
184 $(MAKE) -C $(LINUX_DIR) ARCH=$(LINUX_KARCH) oldconfig include/linux/compile.h include/linux/version.h $(MAKE_TRACE)
185 $(MAKE) -C $(LINUX_DIR) CROSS_COMPILE="$(KERNEL_CROSS)" ARCH=$(LINUX_KARCH) dep $(MAKE_TRACE)
186 touch $@
187 else
188 $(LINUX_DIR)/.configured: $(LINUX_DIR)/.patched
189 @$(TRACE) target/linux/$(BOARD)-$(KERNEL)-kernel-configure
190 $(MAKE) -C $(LINUX_DIR) CROSS_COMPILE="$(KERNEL_CROSS)" ARCH=$(LINUX_KARCH) oldconfig prepare scripts $(MAKE_TRACE)
191 touch $@
192 endif
193
194 $(LINUX_DIR)/vmlinux: $(LINUX_DIR)/.configured
195 @$(TRACE) target/linux/$(BOARD)-$(KERNEL)-kernel-compile
196 $(MAKE) -C $(LINUX_DIR) CROSS_COMPILE="$(KERNEL_CROSS)" ARCH=$(LINUX_KARCH) PATH=$(TARGET_PATH) $(MAKE_TRACE)
197
198 $(LINUX_KERNEL): $(LINUX_DIR)/vmlinux
199 @$(TRACE) target/linux/$(BOARD)-$(KERNEL)-kernel-strip
200 $(TARGET_CROSS)objcopy -O binary -R .reginfo -R .note -R .comment -R .mdebug -S $< $@ $(MAKE_TRACE)
201 touch -c $(LINUX_KERNEL)
202
203 $(LINUX_DIR)/.modules-compile:
204 @$(TRACE) target/linux/$(BOARD)-$(KERNEL)-modules-compile
205 $(MAKE) -C "$(LINUX_DIR)" CROSS_COMPILE="$(KERNEL_CROSS)" ARCH=$(LINUX_KARCH) PATH="$(TARGET_PATH)" modules $(MAKE_TRACE)
206 touch $@
207
208 $(LINUX_DIR)/.modules-install: $(LINUX_DIR)/.modules-compile
209 @$(TRACE) target/linux/$(BOARD)-$(KERNEL)-modules-install
210 rm -rf $(LINUX_BUILD_DIR)/modules
211 $(MAKE) -C "$(LINUX_DIR)" CROSS_COMPILE="$(KERNEL_CROSS)" DEPMOD=true INSTALL_MOD_PATH=$(LINUX_BUILD_DIR)/modules modules_install $(MAKE_TRACE)
212 touch $@
213
214 $(LINUX_DIR)/.linux-compile: $(LINUX_KERNEL) $(LINUX_DIR)/.modules-install
215 @$(TRACE) target/linux/$(BOARD)-$(KERNEL)-create-packages
216 @$(MAKE) $(KERNEL_IPKG) $(TARGETS) $(MAKE_TRACE)
217 touch $@
218
219 $(KERNEL_IPKG):
220 @$(TRACE) target/linux/$(BOARD)-$(KERNEL)-$(MODEL)-$(FS)-create-kernel-package
221 rm -rf $(KERNEL_IDIR)
222 mkdir -p $(KERNEL_IDIR)/etc
223 $(SCRIPT_DIR)/make-ipkg-dir.sh $(KERNEL_IDIR) ../control/kernel.control $(BOARD)-$(KERNEL)-$(LINUX_VERSION) $(ARCH)
224 $(IPKG_BUILD) $(KERNEL_IDIR) $(PACKAGE_DIR) $(MAKE_TRACE)
225
226 prepare:
227 -mkdir -p $(PACKAGE_DIR)
228
229 compile: prepare $(LINUX_DIR)/.linux-compile
230 compile-kernel: prepare $(LINUX_KERNEL)
231
232 install: compile
233 $(MAKE) $(KPKG_MAKEOPTS) $(LINUX_KERNEL) $(MAKE_TRACE)
234 @$(TRACE) target/linux/$(BOARD)-$(KERNEL)-modules-install
235 @rm -rf $(LINUX_BUILD_DIR)/root*
236 @$(CP) $(BUILD_DIR)/root $(LINUX_BUILD_DIR)/
237 echo -e 'dest root /\noption offline_root $(LINUX_BUILD_DIR)/root' > $(LINUX_BUILD_DIR)/ipkg.conf
238 ifneq ($(strip $(INSTALL_TARGETS)),)
239 $(IPKG_KERNEL) install $(INSTALL_TARGETS) $(MAKE_TRACE)
240 endif
241
242 rebuild:
243 @$(TRACE) target/linux/$(BOARD)-$(KERNEL)-rebuild
244 rm -rf $(LINUX_BUILD_DIR)/linux-$(LINUX_VERSION)
245 rm -f $(TARGETS)
246 $(MAKE) compile $(MAKE_TRACE)
247
248 clean:
249 rm -rf $(LINUX_BUILD_DIR)
250 rm -f $(TARGETS)

root@freewrt.org:443
ViewVC Help
Powered by ViewVC 1.1.20