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

SCM Repository

ViewVC logotype

Contents of /branches/common-nfo/mk/kernel-build.mk

Parent Directory Parent Directory | Revision Log Revision Log


Revision 3427 - (show annotations) (download)
Wed Aug 8 11:08:41 2007 UTC (6 years, 6 months ago) by tg
File size: 5468 byte(s)
merge in trunk rev. 3426
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/licence for details.
6
7 DISTFILES:= linux-$(LINUX_VERSION).tar.bz2
8 MASTER_SITES= http://www.us.kernel.org/pub/linux/kernel/v$(KERNEL)/ \
9 http://www.us.kernel.org/pub/linux/kernel/v$(KERNEL)/ \
10 http://www.kernel.org/pub/linux/kernel/v$(KERNEL)/ \
11 http://www.de.kernel.org/pub/linux/kernel/v$(KERNEL)/
12 PKG_MD5SUM:= ${LINUX_KERNEL_MD5SUM}
13
14 include ${TOPDIR}/mk/buildhlp.mk
15
16 KERNEL_IDIR:=$(LINUX_BUILD_DIR)/kernel-ipkg
17
18 $(LINUX_BUILD_DIR)/.extract: ${_CHECKSUM_COOKIE}
19 $(TRACE) target/linux/$(BOARD)-$(KERNEL)-kernel-prepare
20 test ! -e ${LINUX_BUILD_DIR}/linux-${LINUX_VERSION}/Rules.make || \
21 rm -rf ${LINUX_BUILD_DIR}
22 -mkdir -p $(LINUX_BUILD_DIR)
23 bzcat ${FULLDISTFILES} | (cd $(LINUX_BUILD_DIR); tar xf - )
24 rm -f $(BUILD_DIR)/linux
25 ln -s $(LINUX_BUILD_DIR)/linux-$(LINUX_VERSION) $(BUILD_DIR)/linux
26 $(TRACE) target/linux/$(BOARD)-$(KERNEL)-kernel-patch
27 -[[ -d extra ]] && cd extra && pax -rw . ${LINUX_DIR}/
28 -[ -d ../generic-$(KERNEL)/patches ] && $(PATCH) $(LINUX_DIR) ../generic-$(KERNEL)/patches $(MAKE_TRACE)
29 -[ -d ../generic-${UNAME_R}/patches ] && $(PATCH) $(LINUX_DIR) ../generic-${UNAME_R}/patches $(MAKE_TRACE)
30 -[ -d ./patches ] && $(PATCH) $(LINUX_DIR) ./patches $(MAKE_TRACE)
31 -[ -d ./$(DEVICE)/patches ] && $(PATCH) $(LINUX_DIR) ./$(DEVICE)/patches $(MAKE_TRACE)
32 touch $@
33
34 $(LINUX_DIR)/.config: $(LINUX_BUILD_DIR)/.extract $(BUILD_DIR)/.fwrtkernelconfig
35 $(TRACE) target/linux/$(BOARD)-$(KERNEL)-kernel-configure
36 $(CP) $(BUILD_DIR)/.fwrtkernelconfig $(LINUX_DIR)/.config
37 ifeq ($(KERNEL),2.4)
38 $(SED) "s,^CROSS_COMPILE.*,CROSS_COMPILE=$(KERNEL_CROSS),g;" \
39 $(LINUX_DIR)/Makefile \
40 $(LINUX_DIR)/arch/*/Makefile
41 env GCC_HONOUR_COPTS=s $(MAKE) -C $(LINUX_DIR) ARCH=$(LINUX_KARCH) CC="$(TARGET_CC)" oldconfig include/linux/compile.h include/linux/version.h $(MAKE_TRACE)
42 env GCC_HONOUR_COPTS=s $(MAKE) -C $(LINUX_DIR) CROSS_COMPILE="$(KERNEL_CROSS)" ARCH=$(LINUX_KARCH) CC="$(TARGET_CC)" dep $(MAKE_TRACE)
43 else
44 echo N | env GCC_HONOUR_COPTS=s $(MAKE) -C $(LINUX_DIR) CROSS_COMPILE="$(KERNEL_CROSS)" ARCH=$(LINUX_KARCH) CC="$(TARGET_CC)" oldconfig $(MAKE_TRACE)
45 env GCC_HONOUR_COPTS=s $(MAKE) -C $(LINUX_DIR) V=1 CROSS_COMPILE="$(KERNEL_CROSS)" ARCH=$(LINUX_KARCH) CC="$(TARGET_CC)" prepare scripts $(MAKE_TRACE) HOSTCFLAGS='-O2 -idirafter ${TOPDIR}/scripts'
46 endif
47 touch -c $(LINUX_DIR)/.config
48
49 $(LINUX_DIR)/vmlinux: $(LINUX_DIR)/.config
50 ifneq ($(strip ${FWRT_INITRAMFS_SOURCE}),)
51 cd ${TOPDIR} && cp $(strip ${FWRT_INITRAMFS_SOURCE}) \
52 ${LINUX_DIR}/usr/initramfs_data.cpio.gz && \
53 touch ${LINUX_DIR}/usr/initramfs_data.cpio.gz
54 endif
55 $(TRACE) target/linux/$(BOARD)-$(KERNEL)-kernel-compile
56 env GCC_HONOUR_COPTS=s $(MAKE) -C $(LINUX_DIR) V=1 CROSS_COMPILE="$(KERNEL_CROSS)" ARCH=$(LINUX_KARCH) CC="$(TARGET_CC)" $(MAKE_TRACE) HOSTCFLAGS='-O2 -idirafter ${TOPDIR}/scripts'
57 $(TRACE) target/linux/$(BOARD)-$(KERNEL)-modules-compile
58 env GCC_HONOUR_COPTS=s $(MAKE) -C "$(LINUX_DIR)" V=1 CROSS_COMPILE="$(KERNEL_CROSS)" ARCH=$(LINUX_KARCH) CC="$(TARGET_CC)" modules $(MAKE_TRACE) HOSTCFLAGS='-O2 -idirafter ${TOPDIR}/scripts'
59 $(TRACE) target/linux/$(BOARD)-$(KERNEL)-modules-install
60 rm -rf $(LINUX_BUILD_DIR)/modules
61 env GCC_HONOUR_COPTS=s $(MAKE) -C "$(LINUX_DIR)" V=1 CROSS_COMPILE="$(KERNEL_CROSS)" DEPMOD=true INSTALL_MOD_PATH=$(LINUX_BUILD_DIR)/modules modules_install $(MAKE_TRACE) HOSTCFLAGS='-O2 -idirafter ${TOPDIR}/scripts'
62 $(TRACE) target/linux/$(BOARD)-$(KERNEL)-create-packages
63 -mkdir $(BUILD_DIR)/kmod-control
64 env GCC_HONOUR_COPTS=s $(MAKE) $(KERNEL_IPKG) $(TARGETS) $(MAKE_TRACE)
65 touch -c $(LINUX_DIR)/vmlinux
66
67 $(LINUX_KERNEL): $(LINUX_DIR)/vmlinux
68 $(TRACE) target/linux/$(BOARD)-$(KERNEL)-kernel-strip
69 ifeq ($(KERNEL),2.4)
70 ifeq ($(BOARD),brcm)
71 ifneq ($(FS),nfs)
72 $(TARGET_CROSS)objcopy -O binary -R .reginfo -R .note -R .comment -R .mdebug -S $< $@ $(MAKE_TRACE)
73 else
74 $(TARGET_CROSS)objcopy -R .reginfo -R .note -R .comment -R .mdebug -S $< $@ $(MAKE_TRACE)
75 endif
76 else
77 $(TARGET_CROSS)objcopy -R .reginfo -R .note -R .comment -R .mdebug -S $< $@ $(MAKE_TRACE)
78 endif
79 else
80 ifeq ($(BOARD),brcm)
81 $(TARGET_CROSS)objcopy -O binary -R .reginfo -R .note -R .comment -R .mdebug -S $< $@ $(MAKE_TRACE)
82 endif
83 endif
84
85 $(KERNEL_IPKG):
86 $(TRACE) target/linux/$(BOARD)-$(KERNEL)-$(DEVICE)-$(FS)-create-kernel-package
87 rm -rf $(KERNEL_IDIR)
88 mkdir -p $(KERNEL_IDIR)/etc
89 ${MBSH} ${SCRIPT_DIR}/make-ipkg-dir.sh ${KERNEL_IDIR} \
90 ../kernel.control ${BOARD}-${KERNEL}-${LINUX_VERSION} ${ARCH}
91 $(IPKG_BUILD) $(KERNEL_IDIR) $(PACKAGE_DIR) $(MAKE_TRACE)
92
93 prepare:
94 compile: $(LINUX_KERNEL)
95
96 install: compile
97 env GCC_HONOUR_COPTS=s $(MAKE) $(KPKG_MAKEOPTS) $(LINUX_KERNEL) $(MAKE_TRACE)
98 $(TRACE) target/linux/$(BOARD)-$(KERNEL)-modules-install
99 rm -rf ${LINUX_BUILD_DIR}/root*
100 cd ${BUILD_DIR} && pax -rw -pe root ${LINUX_BUILD_DIR}/
101 printf '%s\n%s\n' 'dest root /' \
102 'option offline_root $(LINUX_BUILD_DIR)/root' \
103 >$(LINUX_BUILD_DIR)/ipkg.conf
104 ifneq ($(strip $(INSTALL_TARGETS)),)
105 $(IPKG_KERNEL) install $(INSTALL_TARGETS) $(MAKE_TRACE)
106 endif
107
108 noinstall:
109 rm -rf ${LINUX_BUILD_DIR}/root*
110 cd ${BUILD_DIR} && pax -rw -pe root ${LINUX_BUILD_DIR}/
111 printf '%s\n%s\n' 'dest root /' \
112 'option offline_root $(LINUX_BUILD_DIR)/root' \
113 >$(LINUX_BUILD_DIR)/ipkg.conf
114
115 clean:
116 rm -rf $(LINUX_BUILD_DIR)
117 rm -f $(TARGETS)

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