| 1 |
|
|---|
| 2 |
|
|---|
| 3 |
|
|---|
| 4 |
|
|---|
| 5 |
|
|---|
| 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 |
|
|---|
| 19 |
|
|---|
| 20 |
|
|---|
| 21 |
|
|---|
| 22 |
|
|---|
| 23 |
|
|---|
| 24 |
|
|---|
| 25 |
|
|---|
| 26 |
|
|---|
| 27 |
$(LINUX_BUILD_DIR)/.extract: ${_CHECKSUM_COOKIE} |
|---|
| 28 |
$(TRACE) target/linux/$(BOARD)-$(KERNEL)-kernel-prepare |
|---|
| 29 |
test ! -e ${LINUX_BUILD_DIR}/linux-${LINUX_VERSION}/Rules.make || \ |
|---|
| 30 |
rm -rf ${LINUX_BUILD_DIR} |
|---|
| 31 |
-mkdir -p $(LINUX_BUILD_DIR) |
|---|
| 32 |
bzcat ${FULLDISTFILES} | (cd $(LINUX_BUILD_DIR); tar xf - ) |
|---|
| 33 |
rm -f $(BUILD_DIR)/linux |
|---|
| 34 |
ln -s $(LINUX_BUILD_DIR)/linux-$(LINUX_VERSION) $(BUILD_DIR)/linux |
|---|
| 35 |
$(TRACE) target/linux/$(BOARD)-$(KERNEL)-kernel-patch |
|---|
| 36 |
-[[ -d extra ]] && cd extra && mirpax -rw . ${LINUX_DIR}/ |
|---|
| 37 |
-[ -d ../generic-$(KERNEL)/patches ] && $(PATCH) $(LINUX_DIR) ../generic-$(KERNEL)/patches $(MAKE_TRACE) |
|---|
| 38 |
-[ -d ../generic-${UNAME_R}/patches ] && $(PATCH) $(LINUX_DIR) ../generic-${UNAME_R}/patches $(MAKE_TRACE) |
|---|
| 39 |
-[ -d ./patches ] && $(PATCH) $(LINUX_DIR) ./patches $(MAKE_TRACE) |
|---|
| 40 |
-[ -d ./$(DEVICE)/patches ] && $(PATCH) $(LINUX_DIR) ./$(DEVICE)/patches $(MAKE_TRACE) |
|---|
| 41 |
touch $@ |
|---|
| 42 |
|
|---|
| 43 |
MAKEJOBS:= |
|---|
| 44 |
ifneq (${FWRT_MAKE_PARALLEL_KERNEL},) |
|---|
| 45 |
MAKEJOBS:= -j${FWRT_MAKE_JOBS} |
|---|
| 46 |
endif |
|---|
| 47 |
|
|---|
| 48 |
$(LINUX_DIR)/.config: $(LINUX_BUILD_DIR)/.extract $(BUILD_DIR)/.fwrtkernelconfig |
|---|
| 49 |
$(TRACE) target/linux/$(BOARD)-$(KERNEL)-kernel-configure |
|---|
| 50 |
$(CP) $(BUILD_DIR)/.fwrtkernelconfig $(LINUX_DIR)/.config |
|---|
| 51 |
ifneq ($(strip ${FWRT_INITRAMFS_SOURCE}),) |
|---|
| 52 |
cd ${TOPDIR} && zcat -f $(strip ${FWRT_INITRAMFS_SOURCE}) \ |
|---|
| 53 |
>${LINUX_DIR}/fwrt-initramfs.cpio |
|---|
| 54 |
echo 'CONFIG_INITRAMFS_SOURCE="${LINUX_DIR}/fwrt-initramfs.cpio"' >>$@ |
|---|
| 55 |
else |
|---|
| 56 |
echo 'CONFIG_INITRAMFS_SOURCE=""' >>$@ |
|---|
| 57 |
endif |
|---|
| 58 |
ifeq ($(KERNEL),2.4) |
|---|
| 59 |
$(SED) "s,^CROSS_COMPILE.*,CROSS_COMPILE=$(KERNEL_CROSS),g;" \ |
|---|
| 60 |
$(LINUX_DIR)/Makefile \ |
|---|
| 61 |
$(LINUX_DIR)/arch/*/Makefile |
|---|
| 62 |
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) |
|---|
| 63 |
env GCC_HONOUR_COPTS=s $(MAKE) -C $(LINUX_DIR) CROSS_COMPILE="$(KERNEL_CROSS)" ARCH=$(LINUX_KARCH) CC="$(TARGET_CC)" dep $(MAKE_TRACE) |
|---|
| 64 |
else |
|---|
| 65 |
echo N | env GCC_HONOUR_COPTS=s $(MAKE) -C $(LINUX_DIR) CROSS_COMPILE="$(KERNEL_CROSS)" ARCH=$(LINUX_KARCH) CC="$(TARGET_CC)" oldconfig $(MAKE_TRACE) |
|---|
| 66 |
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' |
|---|
| 67 |
endif |
|---|
| 68 |
touch -c $(LINUX_DIR)/.config |
|---|
| 69 |
|
|---|
| 70 |
$(LINUX_DIR)/vmlinux: $(LINUX_DIR)/.config |
|---|
| 71 |
$(TRACE) target/linux/$(BOARD)-$(KERNEL)-kernel-compile |
|---|
| 72 |
env GCC_HONOUR_COPTS=s $(MAKE) -C $(LINUX_DIR) V=1 ${MAKEJOBS} CROSS_COMPILE="$(KERNEL_CROSS)" ARCH=$(LINUX_KARCH) CC="$(TARGET_CC)" $(MAKE_TRACE) HOSTCFLAGS='-O2 -idirafter ${TOPDIR}/scripts' |
|---|
| 73 |
$(TRACE) target/linux/$(BOARD)-$(KERNEL)-modules-compile |
|---|
| 74 |
env GCC_HONOUR_COPTS=s $(MAKE) -C "$(LINUX_DIR)" V=1 ${MAKEJOBS} CROSS_COMPILE="$(KERNEL_CROSS)" ARCH=$(LINUX_KARCH) CC="$(TARGET_CC)" modules $(MAKE_TRACE) HOSTCFLAGS='-O2 -idirafter ${TOPDIR}/scripts' |
|---|
| 75 |
$(TRACE) target/linux/$(BOARD)-$(KERNEL)-modules-install |
|---|
| 76 |
rm -rf $(LINUX_BUILD_DIR)/modules |
|---|
| 77 |
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' |
|---|
| 78 |
$(TRACE) target/linux/$(BOARD)-$(KERNEL)-create-packages |
|---|
| 79 |
-mkdir $(BUILD_DIR)/kmod-control |
|---|
| 80 |
env GCC_HONOUR_COPTS=s $(MAKE) $(KERNEL_IPKG) $(TARGETS) $(MAKE_TRACE) |
|---|
| 81 |
touch -c $(LINUX_DIR)/vmlinux |
|---|
| 82 |
|
|---|
| 83 |
$(LINUX_KERNEL): $(LINUX_DIR)/vmlinux |
|---|
| 84 |
$(TRACE) target/linux/$(BOARD)-$(KERNEL)-kernel-strip |
|---|
| 85 |
ifeq ($(KERNEL),2.4) |
|---|
| 86 |
ifeq ($(BOARD),brcm) |
|---|
| 87 |
ifneq ($(FS),nfs) |
|---|
| 88 |
$(TARGET_CROSS)objcopy -O binary -R .reginfo -R .note -R .comment -R .mdebug -S $< $@ $(MAKE_TRACE) |
|---|
| 89 |
else |
|---|
| 90 |
$(TARGET_CROSS)objcopy -R .reginfo -R .note -R .comment -R .mdebug -S $< $@ $(MAKE_TRACE) |
|---|
| 91 |
endif |
|---|
| 92 |
else |
|---|
| 93 |
$(TARGET_CROSS)objcopy -R .reginfo -R .note -R .comment -R .mdebug -S $< $@ $(MAKE_TRACE) |
|---|
| 94 |
endif |
|---|
| 95 |
else |
|---|
| 96 |
ifeq ($(BOARD),brcm) |
|---|
| 97 |
$(TARGET_CROSS)objcopy -O binary -R .reginfo -R .note -R .comment -R .mdebug -S $< $@ $(MAKE_TRACE) |
|---|
| 98 |
else |
|---|
| 99 |
ifeq ($(BOARD),atheros) |
|---|
| 100 |
$(TARGET_CROSS)objcopy -O binary -R .reginfo -R .note -R .comment -R .mdebug -S $< $@ $(MAKE_TRACE) |
|---|
| 101 |
else |
|---|
| 102 |
$(TARGET_CROSS)objcopy -R .reginfo -R .note -R .comment -R .mdebug -S $< $@ $(MAKE_TRACE) |
|---|
| 103 |
endif |
|---|
| 104 |
endif |
|---|
| 105 |
endif |
|---|
| 106 |
|
|---|
| 107 |
$(KERNEL_IPKG): |
|---|
| 108 |
$(TRACE) target/linux/$(BOARD)-$(KERNEL)-$(DEVICE)-$(FS)-create-kernel-package |
|---|
| 109 |
rm -rf $(KERNEL_IDIR) |
|---|
| 110 |
mkdir -p $(KERNEL_IDIR)/etc |
|---|
| 111 |
${MBSH} ${SCRIPT_DIR}/make-ipkg-dir.sh ${KERNEL_IDIR} \ |
|---|
| 112 |
../kernel.control ${BOARD}-${KERNEL}-${LINUX_VERSION} ${ARCH} |
|---|
| 113 |
$(IPKG_BUILD) $(KERNEL_IDIR) $(PACKAGE_DIR) $(MAKE_TRACE) |
|---|
| 114 |
|
|---|
| 115 |
prepare: |
|---|
| 116 |
compile: $(LINUX_KERNEL) |
|---|
| 117 |
|
|---|
| 118 |
install: compile |
|---|
| 119 |
env GCC_HONOUR_COPTS=s $(MAKE) $(KPKG_MAKEOPTS) $(LINUX_KERNEL) $(MAKE_TRACE) |
|---|
| 120 |
$(TRACE) target/linux/$(BOARD)-$(KERNEL)-modules-install |
|---|
| 121 |
rm -rf ${LINUX_BUILD_DIR}/root* |
|---|
| 122 |
cd ${BUILD_DIR} && mirpax -rw -pe root ${LINUX_BUILD_DIR}/ |
|---|
| 123 |
printf '%s\n%s\n' 'dest root /' \ |
|---|
| 124 |
'option offline_root $(LINUX_BUILD_DIR)/root' \ |
|---|
| 125 |
>$(LINUX_BUILD_DIR)/ipkg.conf |
|---|
| 126 |
ifneq ($(strip $(INSTALL_TARGETS)),) |
|---|
| 127 |
$(IPKG_KERNEL) install $(INSTALL_TARGETS) $(MAKE_TRACE) |
|---|
| 128 |
endif |
|---|
| 129 |
|
|---|
| 130 |
noinstall: compile |
|---|
| 131 |
env GCC_HONOUR_COPTS=s $(MAKE) $(KPKG_MAKEOPTS) $(LINUX_KERNEL) $(MAKE_TRACE) |
|---|
| 132 |
rm -rf ${LINUX_BUILD_DIR}/root* |
|---|
| 133 |
cd ${BUILD_DIR} && mirpax -rw -pe root ${LINUX_BUILD_DIR}/ |
|---|
| 134 |
printf '%s\n%s\n' 'dest root /' \ |
|---|
| 135 |
'option offline_root $(LINUX_BUILD_DIR)/root' \ |
|---|
| 136 |
>$(LINUX_BUILD_DIR)/ipkg.conf |
|---|
| 137 |
ifneq ($(strip ${NOINSTALL_TARGETS}),) |
|---|
| 138 |
${IPKG_KERNEL} install ${NOINSTALL_TARGETS} ${MAKE_TRACE} |
|---|
| 139 |
endif |
|---|
| 140 |
|
|---|
| 141 |
clean: |
|---|
| 142 |
rm -rf $(LINUX_BUILD_DIR) |
|---|
| 143 |
rm -f $(TARGETS) |
|---|