Changeset 946

Show
Ignore:
Timestamp:
10/17/06 02:10:39 (5 years ago)
Author:
wbx
Message:

mv target/linux/board-kernel/Makefile to mk/, add nfrastructure for brcm2.4s

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/freewrt/Config.in

    r943 r946  
    9292config FWRT_LINUX_2_4_BRCM 
    9393        bool 
     94config FWRT_LINUX_2_6_BRCM 
     95        bool 
    9496config FWRT_LINUX_2_4_RB 
    9597        bool 
  • trunk/freewrt/mk/targets.mk

    r943 r946  
    3232# netgear models 
    3333$(eval $(call target_template,2.4,brcm,netgear-wgt634u,2_4_BRCM_NETGEAR_WGT634U)) 
     34$(eval $(call target_template,2.6,brcm,netgear-wgt634u,2_6_BRCM_NETGEAR_WGT634U)) 
    3435# routerboard models made by mikrotik 
    3536$(eval $(call target_template,2.4,rb,rb532,2_4_RB_RB532)) 
     
    5556endif 
    5657ifeq ($(KERNEL),2.6) 
    57 KERNEL_VERSION=2.6.17 
     58KERNEL_VERSION=2.6.18 
    5859KERNEL_RELEASE=1 
    5960KERNEL_MOD_SUFFIX=ko 
  • trunk/freewrt/target/Config.in

    r943 r946  
    1212prompt "Embedded Device" 
    1313source "target/linux/brcm-2.4/Config.in" 
     14source "target/linux/brcm-2.6/Config.in" 
    1415source "target/linux/rb-2.4/Config.in" 
    1516endchoice 
     
    2324        select FWRT_PACKAGE_FWCF 
    2425        select FWRT_PACKAGE_JFFS2ROOT 
    25         depends on FWRT_LINUX_2_4_BRCM 
     26        depends on FWRT_LINUX_2_4_BRCM || FWRT_LINUX_2_6_BRCM 
    2627        help 
    2728          Build firmware images with a writable jffs2 root filesystem. 
     
    3233        select FWRT_PACKAGE_FWCF 
    3334        select FWRT_PACKAGE_JFFS2ROOT 
    34         depends on FWRT_LINUX_2_4_BRCM 
     35        depends on FWRT_LINUX_2_4_BRCM || FWRT_LINUX_2_6_BRCM 
    3536        help 
    3637          Build firmware images with a read-only and highly compressed 
     
    4546        select FWRT_PACKAGE_FWCF 
    4647        select FWRT_PACKAGE_JFFS2ROOT 
    47         depends on FWRT_LINUX_2_4_BRCM 
     48        depends on FWRT_LINUX_2_4_BRCM || FWRT_LINUX_2_6_BRCM 
    4849        help 
    4950          Build firmware images with a read-only and highly compressed 
     
    5455config FWRT_TARGET_ROOTFS_NFS 
    5556        bool "root filesystem via NFS" 
    56         depends on FWRT_LINUX_2_4_RB || FWRT_LINUX_2_4_BRCM_NETGEAR_WGT634U 
     57        depends on FWRT_LINUX_2_4_RB || \ 
     58                   FWRT_LINUX_2_4_BRCM_NETGEAR_WGT634U || \ 
     59                   FWRT_LINUX_2_6_BRCM_NETGEAR_WGT634U 
    5760        help 
    5861          Use this option if you want to use a nfs-mounted root filesystem. 
  • trunk/freewrt/target/linux/Makefile

    r934 r946  
    6969# netgear models 
    7070$(eval $(call kernel_template,2.4,brcm,netgear-wgt634u,2_4_BRCM_NETGEAR_WGT634U)) 
     71$(eval $(call kernel_template,2.6,brcm,netgear-wgt634u,2_6_BRCM_NETGEAR_WGT634U)) 
    7172# routerboard models made by mikrotik 
    7273$(eval $(call kernel_template,2.4,rb,rb532,2_4_RB_RB532)) 
  • trunk/freewrt/target/linux/brcm-2.4/Makefile

    r904 r946  
    1111LINUX_KERNEL_MD5SUM:=ab5940e952c3e337128b9f97c51eab94 
    1212 
    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 DEVICECONFIG:=$(shell test -f $(DEVICE)/config/config.squashfs_overlay && echo y 2>/dev/null) 
    111 ifneq ($(strip $(DEVICECONFIG)),) 
    112 include $(DEVICE)/config/config.squashfs_overlay 
    113 else 
    114 include $(FS)/config/config.squashfs_overlay 
    115 endif 
    116 endif 
    117  
    118 # squashfs with symlinks in a jffs2 partition 
    119 ifeq ($(FS),squashfs-symlinks) 
    120 DEVICECONFIG:=$(shell test -f $(DEVICE)/config/config.squashfs_symlinks && echo y 2>/dev/null) 
    121 ifneq ($(strip $(DEVICECONFIG)),) 
    122 include $(DEVICE)/config/config.squashfs_symlinks 
    123 else 
    124 include $(FS)/config/config.squashfs_symlinks 
    125 endif 
    126 endif 
    127  
    128 # jffs2 
    129 ifeq ($(FS),jffs2) 
    130 DEVICECONFIG:=$(shell test -f $(DEVICE)/config/config.jffs2 && echo y 2>/dev/null) 
    131 ifneq ($(strip $(DEVICECONFIG)),) 
    132 include $(DEVICE)/config/config.jffs2  
    133 else 
    134 include $(FS)/config/config.jffs2 
    135 endif 
    136 endif 
    137  
    138  
     13include $(TOPDIR)/mk/kernel.mk 
    13914include $(TOPDIR)/mk/netfilter.mk 
    14015include $(TOPDIR)/mk/modules-$(KERNEL).mk 
    141  
    142 LINUX_SOURCE:=linux-$(LINUX_VERSION).tar.bz2 
    143 LINUX_SITE=http://www.us.kernel.org/pub/linux/kernel/v$(KERNEL) \ 
    144            http://www.us.kernel.org/pub/linux/kernel/v$(KERNEL) \ 
    145            http://www.kernel.org/pub/linux/kernel/v$(KERNEL) \ 
    146            http://www.de.kernel.org/pub/linux/kernel/v$(KERNEL) 
    147  
    148 KERNEL_IDIR:=$(LINUX_BUILD_DIR)/kernel-ipkg 
    149  
    150 $(TARGETS): $(PACKAGE_DIR) 
    151  
    152 $(PACKAGE_DIR): 
    153         @mkdir -p $(PACKAGE_DIR) 
    154          
    155 $(DL_DIR)/$(LINUX_SOURCE): 
    156         -mkdir -p $(DL_DIR) 
    157         @$(TRACE) target/linux/$(BOARD)-$(KERNEL)-kernel-download 
    158         $(SCRIPT_DIR)/download.pl $(DL_DIR) $(LINUX_SOURCE) $(LINUX_KERNEL_MD5SUM) $(LINUX_SITE) $(MAKE_TRACE) 
    159  
    160 $(LINUX_DIR)/.unpacked: $(DL_DIR)/$(LINUX_SOURCE) 
    161         @$(TRACE) target/linux/$(BOARD)-$(KERNEL)-kernel-prepare 
    162         -mkdir -p $(LINUX_BUILD_DIR) 
    163         bzcat $(DL_DIR)/$(LINUX_SOURCE) | (cd $(LINUX_BUILD_DIR); tar xf - ) 
    164         rm -f $(BUILD_DIR)/linux 
    165         ln -s $(LINUX_BUILD_DIR)/linux-$(LINUX_VERSION) $(BUILD_DIR)/linux 
    166         touch $@ 
    167  
    168 $(LINUX_DIR)/.patched: $(LINUX_DIR)/.unpacked 
    169         @$(TRACE) target/linux/$(BOARD)-$(KERNEL)-kernel-patch 
    170         -[ -d ../generic-$(KERNEL)/patches ] && $(PATCH) $(LINUX_DIR) ../generic-$(KERNEL)/patches $(MAKE_TRACE) 
    171         -[ -d ./patches ] && $(PATCH) $(LINUX_DIR) ./patches $(MAKE_TRACE) 
    172         -[ -d ./$(DEVICE)/patches ] && $(PATCH) $(LINUX_DIR) ./$(DEVICE)/patches $(MAKE_TRACE) 
    173 ifeq ($(FS),squashfs-overlay) 
    174 ifneq ($(strip $(DEVICECONFIG)),) 
    175         $(CP) $(DEVICE)/config/config.squashfs_overlay $(LINUX_DIR)/.config 
    176 else 
    177         $(CP) $(FS)/config/config.squashfs_overlay $(LINUX_DIR)/.config 
    178 endif 
    179 endif 
    180 ifeq ($(FS),squashfs-symlinks) 
    181 ifneq ($(strip $(DEVICECONFIG)),) 
    182         $(CP) $(DEVICE)/config/config.squashfs_symlinks $(LINUX_DIR)/.config 
    183 else 
    184         $(CP) $(FS)/config/config.squashfs_symlinks $(LINUX_DIR)/.config 
    185 endif 
    186 endif 
    187 ifeq ($(FS),jffs2) 
    188 ifneq ($(strip $(DEVICECONFIG)),) 
    189         $(CP) $(DEVICE)/config/config.jffs2 $(LINUX_DIR)/.config 
    190 else 
    191         $(CP) $(FS)/config/config.jffs2 $(LINUX_DIR)/.config 
    192 endif 
    193 endif 
    194         touch $@ 
    195  
    196 ifeq ($(KERNEL),2.4) 
    197 $(LINUX_DIR)/.configured: $(LINUX_DIR)/.patched 
    198         @$(TRACE) target/linux/$(BOARD)-$(KERNEL)-kernel-configure 
    199         $(SED) "s,^CROSS_COMPILE.*,CROSS_COMPILE=$(KERNEL_CROSS),g;" \ 
    200           $(LINUX_DIR)/Makefile  \ 
    201           $(LINUX_DIR)/arch/*/Makefile 
    202         $(MAKE) -C $(LINUX_DIR) ARCH=$(LINUX_KARCH) oldconfig include/linux/compile.h include/linux/version.h $(MAKE_TRACE) 
    203         $(MAKE) -C $(LINUX_DIR) CROSS_COMPILE="$(KERNEL_CROSS)" ARCH=$(LINUX_KARCH) dep $(MAKE_TRACE) 
    204         touch $@ 
    205 else 
    206 $(LINUX_DIR)/.configured: $(LINUX_DIR)/.patched 
    207         @$(TRACE) target/linux/$(BOARD)-$(KERNEL)-kernel-configure 
    208         $(MAKE) -C $(LINUX_DIR) CROSS_COMPILE="$(KERNEL_CROSS)" ARCH=$(LINUX_KARCH) oldconfig prepare scripts $(MAKE_TRACE) 
    209         touch $@ 
    210 endif 
    211  
    212 $(LINUX_DIR)/vmlinux: $(LINUX_DIR)/.configured 
    213         @$(TRACE) target/linux/$(BOARD)-$(KERNEL)-kernel-compile 
    214         $(MAKE) -C $(LINUX_DIR) CROSS_COMPILE="$(KERNEL_CROSS)" ARCH=$(LINUX_KARCH) PATH=$(TARGET_PATH) $(MAKE_TRACE) 
    215  
    216 $(LINUX_KERNEL): $(LINUX_DIR)/vmlinux 
    217         @$(TRACE) target/linux/$(BOARD)-$(KERNEL)-kernel-strip 
    218         $(TARGET_CROSS)objcopy -O binary -R .reginfo -R .note -R .comment -R .mdebug -S $< $@ $(MAKE_TRACE) 
    219         touch -c $(LINUX_KERNEL) 
    220  
    221 $(LINUX_DIR)/.modules-compile: 
    222         @$(TRACE) target/linux/$(BOARD)-$(KERNEL)-modules-compile 
    223         $(MAKE) -C "$(LINUX_DIR)" CROSS_COMPILE="$(KERNEL_CROSS)" ARCH=$(LINUX_KARCH) PATH="$(TARGET_PATH)" modules $(MAKE_TRACE) 
    224         touch $@ 
    225  
    226 $(LINUX_DIR)/.modules-install: $(LINUX_DIR)/.modules-compile 
    227         @$(TRACE) target/linux/$(BOARD)-$(KERNEL)-modules-install 
    228         rm -rf $(LINUX_BUILD_DIR)/modules 
    229         $(MAKE) -C "$(LINUX_DIR)" CROSS_COMPILE="$(KERNEL_CROSS)" DEPMOD=true INSTALL_MOD_PATH=$(LINUX_BUILD_DIR)/modules modules_install $(MAKE_TRACE) 
    230         touch $@ 
    231  
    232 $(LINUX_DIR)/.linux-compile: $(LINUX_KERNEL) $(LINUX_DIR)/.modules-install 
    233         @$(TRACE) target/linux/$(BOARD)-$(KERNEL)-create-packages 
    234         @$(MAKE) $(KERNEL_IPKG) $(TARGETS) $(MAKE_TRACE) 
    235         touch $@ 
    236  
    237 $(KERNEL_IPKG): 
    238         @$(TRACE) target/linux/$(BOARD)-$(KERNEL)-$(DEVICE)-$(FS)-create-kernel-package 
    239         rm -rf $(KERNEL_IDIR) 
    240         mkdir -p $(KERNEL_IDIR)/etc 
    241         $(SCRIPT_DIR)/make-ipkg-dir.sh $(KERNEL_IDIR) ../control/kernel.control $(BOARD)-$(KERNEL)-$(LINUX_VERSION) $(ARCH) 
    242         $(IPKG_BUILD) $(KERNEL_IDIR) $(PACKAGE_DIR) $(MAKE_TRACE) 
    243  
    244  
    245 prepare:  
    246         -mkdir -p $(PACKAGE_DIR) 
    247  
    248 compile: prepare $(LINUX_DIR)/.linux-compile 
    249 compile-kernel: prepare $(LINUX_KERNEL) 
    250  
    251 install: compile 
    252         $(MAKE) $(KPKG_MAKEOPTS) $(LINUX_KERNEL) $(MAKE_TRACE) 
    253         @$(TRACE) target/linux/$(BOARD)-$(KERNEL)-modules-install 
    254         @rm -rf $(LINUX_BUILD_DIR)/root* 
    255         @$(CP) $(BUILD_DIR)/root $(LINUX_BUILD_DIR)/ 
    256         echo -e 'dest root /\noption offline_root $(LINUX_BUILD_DIR)/root' > $(LINUX_BUILD_DIR)/ipkg.conf 
    257 ifneq ($(strip $(INSTALL_TARGETS)),) 
    258         $(IPKG_KERNEL) install $(INSTALL_TARGETS) $(MAKE_TRACE) 
    259 endif 
    260  
    261 rebuild: 
    262         @$(TRACE) target/linux/$(BOARD)-$(KERNEL)-rebuild 
    263         rm -rf $(LINUX_BUILD_DIR)/linux-$(LINUX_VERSION) 
    264         rm -f $(TARGETS) 
    265         $(MAKE) compile $(MAKE_TRACE) 
    266  
    267 clean: 
    268         rm -rf $(LINUX_BUILD_DIR) 
    269         rm -f $(TARGETS) 
     16include $(TOPDIR)/mk/kernel-build.mk 
  • trunk/freewrt/target/linux/brcm-2.6/Makefile

    r1 r946  
     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 
    17include $(TOPDIR)/rules.mk 
    2  
    3 LINUX_VERSION:=2.6.16.7 
    4 LINUX_RELEASE:=1 
    5 LINUX_KERNEL_MD5SUM:=9682b2bd6e02f3087982d7c3f5ba824e 
    6  
    7 include ../rules.mk 
    8 include ./config 
    9  
    10 include ../generic-$(KERNEL)/modules.mk 
    11 include ../kernel.mk 
    12  
    13  
    14 $(LINUX_DIR)/.patched: $(LINUX_DIR)/.unpacked 
    15         [ -d ../generic-$(KERNEL)/patches ] && $(PATCH) $(LINUX_DIR) ../generic-$(KERNEL)/patches $(MAKE_TRACE) 
    16         [ -d ./patches ] && $(PATCH) $(LINUX_DIR) ./patches $(MAKE_TRACE) 
    17         @$(CP) config $(LINUX_DIR)/.config 
    18         touch $@ 
    19  
     8include $(TOPDIR)/mk/kernel.mk 
     9include $(TOPDIR)/mk/netfilter.mk 
     10include $(TOPDIR)/mk/modules-$(KERNEL).mk 
     11include $(TOPDIR)/mk/kernel-build.mk 
  • trunk/freewrt/target/linux/rb-2.4/Makefile

    r934 r946  
    1111LINUX_KERNEL_MD5SUM:=ab5940e952c3e337128b9f97c51eab94 
    1212 
    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)-$(MODEL)-$(FS)-$(LINUX_VERSION)-$(LINUX_RELEASE)_$(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 ($(LINUX_VERSION)-$(BOARD)-$(LINUX_RELEASE)) $(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  
    118 # squashfs with symlinks in a jffs2 partition 
    119 ifeq ($(FS),squashfs-symlinks) 
    120 MODELCONFIG:=$(shell test -f $(MODEL)/config/config.squashfs_symlinks && echo y 2>/dev/null) 
    121 ifneq ($(strip $(MODELCONFIG)),) 
    122 include $(MODEL)/config/config.squashfs_symlinks 
    123 else 
    124 include $(FS)/config/config.squashfs_symlinks 
    125 endif 
    126 endif 
    127  
    128 # jffs2 
    129 ifeq ($(FS),jffs2) 
    130 MODELCONFIG:=$(shell test -f $(MODEL)/config/config.jffs2 && echo y 2>/dev/null) 
    131 ifneq ($(strip $(MODELCONFIG)),) 
    132 include $(MODEL)/config/config.jffs2  
    133 else 
    134 include $(FS)/config/config.jffs2 
    135 endif 
    136 endif 
    137  
    138 # nfs root 
    139 ifeq ($(FS),nfs) 
    140 MODELCONFIG:=$(shell test -f $(MODEL)/config/config.nfs && echo y 2>/dev/null) 
    141 ifneq ($(strip $(MODELCONFIG)),) 
    142 include $(MODEL)/config/config.nfs 
    143 else 
    144 include $(FS)/config/config.nfs 
    145 endif 
    146 endif 
    147  
    148 # ext2 for booting from cf-disk 
    149 ifeq ($(FS),ext2) 
    150 MODELCONFIG:=$(shell test -f $(MODEL)/config/config.ext2 && echo y 2>/dev/null) 
    151 ifneq ($(strip $(MODELCONFIG)),) 
    152 include $(MODEL)/config/config.ext2 
    153 else 
    154 include $(FS)/config/config.ext2 
    155 endif 
    156 endif 
    157  
     13include $(TOPDIR)/mk/kernel.mk 
    15814include $(TOPDIR)/mk/netfilter.mk 
    15915include $(TOPDIR)/mk/modules-$(KERNEL).mk 
    160  
    161 LINUX_SOURCE:=linux-$(LINUX_VERSION).tar.bz2 
    162 LINUX_SITE=http://www.us.kernel.org/pub/linux/kernel/v$(KERNEL) \ 
    163            http://www.us.kernel.org/pub/linux/kernel/v$(KERNEL) \ 
    164            http://www.kernel.org/pub/linux/kernel/v$(KERNEL) \ 
    165            http://www.de.kernel.org/pub/linux/kernel/v$(KERNEL) 
    166  
    167 KERNEL_IDIR:=$(LINUX_BUILD_DIR)/kernel-ipkg 
    168  
    169 $(TARGETS): $(PACKAGE_DIR) 
    170  
    171 $(PACKAGE_DIR): 
    172         @mkdir -p $(PACKAGE_DIR) 
    173          
    174 $(DL_DIR)/$(LINUX_SOURCE): 
    175         -mkdir -p $(DL_DIR) 
    176         @$(TRACE) target/linux/$(BOARD)-$(KERNEL)-kernel-download 
    177         $(SCRIPT_DIR)/download.pl $(DL_DIR) $(LINUX_SOURCE) $(LINUX_KERNEL_MD5SUM) $(LINUX_SITE) $(MAKE_TRACE) 
    178  
    179 $(LINUX_DIR)/.unpacked: $(DL_DIR)/$(LINUX_SOURCE) 
    180         @$(TRACE) target/linux/$(BOARD)-$(KERNEL)-kernel-prepare 
    181         -mkdir -p $(LINUX_BUILD_DIR) 
    182         bzcat $(DL_DIR)/$(LINUX_SOURCE) | (cd $(LINUX_BUILD_DIR); tar xf - ) 
    183         rm -f $(BUILD_DIR)/linux 
    184         ln -s $(LINUX_BUILD_DIR)/linux-$(LINUX_VERSION) $(BUILD_DIR)/linux 
    185         touch $@ 
    186  
    187 $(LINUX_DIR)/.patched: $(LINUX_DIR)/.unpacked 
    188         @$(TRACE) target/linux/$(BOARD)-$(KERNEL)-kernel-patch 
    189         -[ -d ../generic-$(KERNEL)/patches ] && $(PATCH) $(LINUX_DIR) ../generic-$(KERNEL)/patches $(MAKE_TRACE) 
    190         -[ -d ./patches ] && $(PATCH) $(LINUX_DIR) ./patches $(MAKE_TRACE) 
    191         -[ -d ./$(MODEL)/patches ] && $(PATCH) $(LINUX_DIR) ./$(MODEL)/patches $(MAKE_TRACE) 
    192 ifeq ($(FS),squashfs-overlay) 
    193 ifneq ($(strip $(MODELCONFIG)),) 
    194         $(CP) $(MODEL)/config/config.squashfs_overlay $(LINUX_DIR)/.config 
    195 else 
    196         $(CP) $(FS)/config/config.squashfs_overlay $(LINUX_DIR)/.config 
    197 endif 
    198 endif 
    199 ifeq ($(FS),squashfs-symlinks) 
    200 ifneq ($(strip $(MODELCONFIG)),) 
    201         $(CP) $(MODEL)/config/config.squashfs_symlinks $(LINUX_DIR)/.config 
    202 else 
    203         $(CP) $(FS)/config/config.squashfs_symlinks $(LINUX_DIR)/.config 
    204 endif 
    205 endif 
    206 ifeq ($(FS),jffs2) 
    207 ifneq ($(strip $(MODELCONFIG)),) 
    208         $(CP) $(MODEL)/config/config.jffs2 $(LINUX_DIR)/.config 
    209 else 
    210         $(CP) $(FS)/config/config.jffs2 $(LINUX_DIR)/.config 
    211 endif 
    212 endif 
    213 ifeq ($(FS),nfs) 
    214 ifneq ($(strip $(MODELCONFIG)),) 
    215         $(CP) $(MODEL)/config/config.nfs $(LINUX_DIR)/.config 
    216 else 
    217         $(CP) $(FS)/config/config.nfs $(LINUX_DIR)/.config 
    218 endif 
    219 endif 
    220 ifeq ($(FS),ext2) 
    221 ifneq ($(strip $(MODELCONFIG)),) 
    222         $(CP) $(MODEL)/config/config.ext2 $(LINUX_DIR)/.config 
    223 else 
    224         $(CP) $(FS)/config/config.ext2 $(LINUX_DIR)/.config 
    225 endif 
    226 endif 
    227         touch $@ 
    228  
    229 ifeq ($(KERNEL),2.4) 
    230 $(LINUX_DIR)/.configured: $(LINUX_DIR)/.patched 
    231         @$(TRACE) target/linux/$(BOARD)-$(KERNEL)-kernel-configure 
    232         $(SED) "s,^CROSS_COMPILE.*,CROSS_COMPILE=$(KERNEL_CROSS),g;" \ 
    233           $(LINUX_DIR)/Makefile  \ 
    234           $(LINUX_DIR)/arch/*/Makefile 
    235         $(MAKE) -C $(LINUX_DIR) ARCH=$(LINUX_KARCH) oldconfig include/linux/compile.h include/linux/version.h $(MAKE_TRACE) 
    236         $(MAKE) -C $(LINUX_DIR) CROSS_COMPILE="$(KERNEL_CROSS)" ARCH=$(LINUX_KARCH) dep $(MAKE_TRACE) 
    237         touch $@ 
    238 else 
    239 $(LINUX_DIR)/.configured: $(LINUX_DIR)/.patched 
    240         @$(TRACE) target/linux/$(BOARD)-$(KERNEL)-kernel-configure 
    241         $(MAKE) -C $(LINUX_DIR) CROSS_COMPILE="$(KERNEL_CROSS)" ARCH=$(LINUX_KARCH) oldconfig prepare scripts $(MAKE_TRACE) 
    242         touch $@ 
    243 endif 
    244  
    245 $(LINUX_DIR)/vmlinux: $(LINUX_DIR)/.configured 
    246         @$(TRACE) target/linux/$(BOARD)-$(KERNEL)-kernel-compile 
    247         $(MAKE) -C $(LINUX_DIR) CROSS_COMPILE="$(KERNEL_CROSS)" ARCH=$(LINUX_KARCH) PATH=$(TARGET_PATH) $(MAKE_TRACE) 
    248  
    249 $(LINUX_KERNEL): $(LINUX_DIR)/vmlinux 
    250         @$(TRACE) target/linux/$(BOARD)-$(KERNEL)-kernel-strip 
    251         $(TARGET_CROSS)objcopy -O binary -R .reginfo -R .note -R .comment -R .mdebug -S $< $@ $(MAKE_TRACE) 
    252         touch -c $(LINUX_KERNEL) 
    253  
    254 $(LINUX_DIR)/.modules-compile: 
    255         @$(TRACE) target/linux/$(BOARD)-$(KERNEL)-modules-compile 
    256         $(MAKE) -C "$(LINUX_DIR)" CROSS_COMPILE="$(KERNEL_CROSS)" ARCH=$(LINUX_KARCH) PATH="$(TARGET_PATH)" modules $(MAKE_TRACE) 
    257         touch $@ 
    258  
    259 $(LINUX_DIR)/.modules-install: $(LINUX_DIR)/.modules-compile 
    260         @$(TRACE) target/linux/$(BOARD)-$(KERNEL)-modules-install 
    261         rm -rf $(LINUX_BUILD_DIR)/modules 
    262         $(MAKE) -C "$(LINUX_DIR)" CROSS_COMPILE="$(KERNEL_CROSS)" DEPMOD=true INSTALL_MOD_PATH=$(LINUX_BUILD_DIR)/modules modules_install $(MAKE_TRACE) 
    263         touch $@ 
    264  
    265 $(LINUX_DIR)/.linux-compile: $(LINUX_KERNEL) $(LINUX_DIR)/.modules-install 
    266         @$(TRACE) target/linux/$(BOARD)-$(KERNEL)-create-packages 
    267         @$(MAKE) $(KERNEL_IPKG) $(TARGETS) $(MAKE_TRACE) 
    268         touch $@ 
    269  
    270 $(KERNEL_IPKG): 
    271         @$(TRACE) target/linux/$(BOARD)-$(KERNEL)-$(MODEL)-$(FS)-create-kernel-package 
    272         rm -rf $(KERNEL_IDIR) 
    273         mkdir -p $(KERNEL_IDIR)/etc 
    274         $(CP) ../control/kernel.control \ 
    275                 $(BUILD_DIR)/linux/kernel-$(BOARD)-$(KERNEL)-$(MODEL)-$(FS).control 
    276         $(SED) "s/kernel/kernel-$(BOARD)-$(KERNEL)-$(MODEL)-$(FS)/" \ 
    277                 $(BUILD_DIR)/linux/kernel-$(BOARD)-$(KERNEL)-$(MODEL)-$(FS).control 
    278         $(SCRIPT_DIR)/make-ipkg-dir.sh $(KERNEL_IDIR) $(BUILD_DIR)/linux/kernel-$(BOARD)-$(KERNEL)-$(MODEL)-$(FS).control $(LINUX_VERSION)-$(BOARD)-$(LINUX_RELEASE) $(ARCH) 
    279         $(IPKG_BUILD) $(KERNEL_IDIR) $(PACKAGE_DIR) $(MAKE_TRACE) 
    280  
    281  
    282 prepare:  
    283         -mkdir -p $(PACKAGE_DIR) 
    284  
    285 compile: prepare $(LINUX_DIR)/.linux-compile 
    286 compile-kernel: prepare $(LINUX_KERNEL) 
    287  
    288 install: compile 
    289         $(MAKE) $(KPKG_MAKEOPTS) $(LINUX_KERNEL) $(MAKE_TRACE) 
    290         @$(TRACE) target/linux/$(BOARD)-$(KERNEL)-modules-install 
    291         @rm -rf $(LINUX_BUILD_DIR)/root* 
    292         @$(CP) $(BUILD_DIR)/root $(LINUX_BUILD_DIR)/ 
    293         echo -e 'dest root /\noption offline_root $(LINUX_BUILD_DIR)/root' > $(LINUX_BUILD_DIR)/ipkg.conf 
    294 ifneq ($(strip $(INSTALL_TARGETS)),) 
    295         $(IPKG_KERNEL) install $(INSTALL_TARGETS) $(MAKE_TRACE) 
    296 endif 
    297  
    298 rebuild: 
    299         @$(TRACE) target/linux/$(BOARD)-$(KERNEL)-rebuild 
    300         rm -rf $(LINUX_BUILD_DIR)/linux-$(LINUX_VERSION) 
    301         rm -f $(TARGETS) 
    302         $(MAKE) compile $(MAKE_TRACE) 
    303  
    304 clean: 
    305         rm -rf $(LINUX_BUILD_DIR) 
    306         rm -f $(TARGETS) 
     16include $(TOPDIR)/mk/kernel-build.mk