source: freewrt/mk/kernel-build.mk@ 3c9c4fc

Last change on this file since 3c9c4fc was 3c9c4fc, checked in by Thorsten Glaser <tg@…>, 18 years ago

building linux cross from !linux surely isn't trivial

git-svn-id: svn://www.freewrt.org/trunk/freewrt@3082 afb5a338-a214-0410-bd46-81f09a774fd1

  • Property mode set to 100644
File size: 4.7 KB
RevLine 
[6ace9ed]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
[b9492d5]5# or at http://www.freewrt.org/licence for details.
[6ace9ed]6
[99cbe83]7DISTFILES:= linux-$(LINUX_VERSION).tar.bz2
8MASTER_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)/
12PKG_MD5SUM:= ${LINUX_KERNEL_MD5SUM}
[6ace9ed]13
[62bd0eb]14include ${TOPDIR}/mk/buildhlp.mk
[6ace9ed]15
[99cbe83]16KERNEL_IDIR:=$(LINUX_BUILD_DIR)/kernel-ipkg
[6ace9ed]17
[5aa46f7]18$(LINUX_BUILD_DIR)/.extract: ${_CHECKSUM_COOKIE}
[510240c]19 $(TRACE) target/linux/$(BOARD)-$(KERNEL)-kernel-prepare
[d1eeabf]20 test ! -e ${LINUX_BUILD_DIR}/linux-${LINUX_VERSION}/Rules.make || \
21 rm -rf ${LINUX_BUILD_DIR}
[6ace9ed]22 -mkdir -p $(LINUX_BUILD_DIR)
[99cbe83]23 bzcat ${FULLDISTFILES} | (cd $(LINUX_BUILD_DIR); tar xf - )
[6ace9ed]24 rm -f $(BUILD_DIR)/linux
25 ln -s $(LINUX_BUILD_DIR)/linux-$(LINUX_VERSION) $(BUILD_DIR)/linux
[510240c]26 $(TRACE) target/linux/$(BOARD)-$(KERNEL)-kernel-patch
[6ace9ed]27 -[ -d ../generic-$(KERNEL)/patches ] && $(PATCH) $(LINUX_DIR) ../generic-$(KERNEL)/patches $(MAKE_TRACE)
[0c00ee6]28 -[ -d ../generic-${UNAME_R}/patches ] && $(PATCH) $(LINUX_DIR) ../generic-${UNAME_R}/patches $(MAKE_TRACE)
[6ace9ed]29 -[ -d ./patches ] && $(PATCH) $(LINUX_DIR) ./patches $(MAKE_TRACE)
30 -[ -d ./$(DEVICE)/patches ] && $(PATCH) $(LINUX_DIR) ./$(DEVICE)/patches $(MAKE_TRACE)
31 touch $@
32
[510240c]33$(LINUX_DIR)/.config: $(LINUX_BUILD_DIR)/.extract $(BUILD_DIR)/.fwrtkernelconfig
34 $(TRACE) target/linux/$(BOARD)-$(KERNEL)-kernel-configure
35 $(CP) $(BUILD_DIR)/.fwrtkernelconfig $(LINUX_DIR)/.config
[081877a]36ifeq ($(KERNEL),2.4)
37 $(SED) "s,^CROSS_COMPILE.*,CROSS_COMPILE=$(KERNEL_CROSS),g;" \
38 $(LINUX_DIR)/Makefile \
39 $(LINUX_DIR)/arch/*/Makefile
[f8dbec3]40 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)
41 env GCC_HONOUR_COPTS=s $(MAKE) -C $(LINUX_DIR) CROSS_COMPILE="$(KERNEL_CROSS)" ARCH=$(LINUX_KARCH) CC="$(TARGET_CC)" dep $(MAKE_TRACE)
[6ace9ed]42else
[f8dbec3]43 echo N | env GCC_HONOUR_COPTS=s $(MAKE) -C $(LINUX_DIR) CROSS_COMPILE="$(KERNEL_CROSS)" ARCH=$(LINUX_KARCH) CC="$(TARGET_CC)" oldconfig $(MAKE_TRACE)
[3c9c4fc]44 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'
[6ace9ed]45endif
[510240c]46 touch -c $(LINUX_DIR)/.config
[6ace9ed]47
[081877a]48$(LINUX_DIR)/vmlinux: $(LINUX_DIR)/.config
[510240c]49 $(TRACE) target/linux/$(BOARD)-$(KERNEL)-kernel-compile
[3c9c4fc]50 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'
[510240c]51 $(TRACE) target/linux/$(BOARD)-$(KERNEL)-modules-compile
[3c9c4fc]52 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'
[510240c]53 $(TRACE) target/linux/$(BOARD)-$(KERNEL)-modules-install
54 rm -rf $(LINUX_BUILD_DIR)/modules
[3c9c4fc]55 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'
[510240c]56 $(TRACE) target/linux/$(BOARD)-$(KERNEL)-create-packages
57 -mkdir $(BUILD_DIR)/kmod-control
[f8dbec3]58 env GCC_HONOUR_COPTS=s $(MAKE) $(KERNEL_IPKG) $(TARGETS) $(MAKE_TRACE)
[510240c]59 touch -c $(LINUX_DIR)/vmlinux
[6ace9ed]60
61$(LINUX_KERNEL): $(LINUX_DIR)/vmlinux
[510240c]62 $(TRACE) target/linux/$(BOARD)-$(KERNEL)-kernel-strip
[f868108]63ifeq ($(KERNEL),2.4)
[535233d]64ifeq ($(BOARD),brcm)
[fc2c86d]65ifneq ($(FS),nfs)
[6ace9ed]66 $(TARGET_CROSS)objcopy -O binary -R .reginfo -R .note -R .comment -R .mdebug -S $< $@ $(MAKE_TRACE)
[916fd5d]67else
68 $(TARGET_CROSS)objcopy -R .reginfo -R .note -R .comment -R .mdebug -S $< $@ $(MAKE_TRACE)
69endif
[fc2c86d]70else
71 $(TARGET_CROSS)objcopy -R .reginfo -R .note -R .comment -R .mdebug -S $< $@ $(MAKE_TRACE)
72endif
[f868108]73endif
[6ace9ed]74
75$(KERNEL_IPKG):
[510240c]76 $(TRACE) target/linux/$(BOARD)-$(KERNEL)-$(DEVICE)-$(FS)-create-kernel-package
[6ace9ed]77 rm -rf $(KERNEL_IDIR)
78 mkdir -p $(KERNEL_IDIR)/etc
[533854e]79 ${MBSH} ${SCRIPT_DIR}/make-ipkg-dir.sh ${KERNEL_IDIR} \
[510240c]80 ../kernel.control ${BOARD}-${KERNEL}-${LINUX_VERSION} ${ARCH}
[6ace9ed]81 $(IPKG_BUILD) $(KERNEL_IDIR) $(PACKAGE_DIR) $(MAKE_TRACE)
82
[2cba1e1]83prepare:
[510240c]84compile: $(LINUX_KERNEL)
[6ace9ed]85
86install: compile
[f8dbec3]87 env GCC_HONOUR_COPTS=s $(MAKE) $(KPKG_MAKEOPTS) $(LINUX_KERNEL) $(MAKE_TRACE)
[510240c]88 $(TRACE) target/linux/$(BOARD)-$(KERNEL)-modules-install
[e4d7631e]89 rm -rf ${LINUX_BUILD_DIR}/root*
90 cd ${BUILD_DIR} && pax -rw -pe root ${LINUX_BUILD_DIR}/
[91430b6]91 printf '%s\n%s\n' 'dest root /' \
92 'option offline_root $(LINUX_BUILD_DIR)/root' \
93 >$(LINUX_BUILD_DIR)/ipkg.conf
[6ace9ed]94ifneq ($(strip $(INSTALL_TARGETS)),)
95 $(IPKG_KERNEL) install $(INSTALL_TARGETS) $(MAKE_TRACE)
96endif
97
98clean:
99 rm -rf $(LINUX_BUILD_DIR)
100 rm -f $(TARGETS)
Note: See TracBrowser for help on using the repository browser.