root/floppyfw-3.0/makefiles/linux-2.6.mk

Revision 275, 5.7 KB (checked in by root, 10 months ago)

Unfinished work but better to have it in svn anyway.

Line 
1#############################################################
2#
3# Linux kernel targets
4#
5# Note:  If you have any patches to apply, create the directory
6# sources/kernel-patches and put your patches in there and number
7# them in the order you wish to apply them...  i.e.
8#
9#   patches/kernel/001-my-special-stuff.bz2
10#   patches/kernel/003-gcc-Os.bz2
11#   patches/kernel/004_no-warnings.bz2
12#   patches/kernel/030-lowlatency-mini.bz2
13#   patches/kernel/031-lowlatency-fixes-5.bz2
14#   patches/kernel/099-shutup.bz2
15#   etc...
16#
17# these patches will all be applied by the patch-kernel.sh
18# script (which will also abort the build if it finds rejects)
19#  -Erik
20#
21# It will also do patch-o-matic patches, dependant on the patch-o-matic
22# TARGET and the POM_PATCHES list in the main Makefile.
23#
24# -Thomas.
25#
26#############################################################
27
28# Encapsulate it all so not end up entangling ourselves in the 2.4 makefile.
29ifeq ($(strip $(BR2_PACKAGE_LINUX_26)),y)
30
31# Version of Linux to download and then apply patches to
32DOWNLOAD_LINUX_VERSION=2.6.33.4
33# Version of Linux AFTER patches
34LINUX_VERSION=$(DOWNLOAD_LINUX_VERSION)-floppyfw-$(FLOPPYFW_VERSION)
35
36LINUX_FORMAT=bzImage
37LINUX_BINLOC=arch/$(ARCH)/boot/$(LINUX_FORMAT)
38
39LINUX_DIR=$(BUILD_DIR)/linux-$(LINUX_VERSION)
40LINUX_SOURCE=linux-$(DOWNLOAD_LINUX_VERSION).tar.bz2
41LINUX_SITE=ftp://ftp.kernel.org/pub/linux/kernel/v2.6
42LINUX_KERNEL=$(LINUX_DIR)/vmlinuz
43# Used by pcmcia-cs and others
44LINUX_SOURCE_DIR=$(LINUX_DIR)
45
46LINUX_EXTRA_CFLAGS="-I$(PATCH_DIR)/kernel-2.6"
47
48
49LINUX_MODULE_EXT=ko
50BASE_MODULES="ip_gre ipip bridge crc32"
51
52# The rest is in the idemods.mk for now.
53IDE_MODULES="isofs zlib_deflate zlib_inflate"
54
55PCMCIA_BASE_MODULES="i82092 pcmcia pd6729 tcic i82365 pcmcia_core rsrc_nonstatic yenta_socket"
56# These should be picked in nics and so on, not nessesarily it's own package.
57PCMCIA_MODULES="serial_cs synclink_cs 3c574_cs axnet_cs ibmtr_cs pcnet_cs xirc2ps_cs 3c589_cs fmvj18x_cs nmclan_cs smc91c92_cs"
58
59LINUX_KCONFIG_26:=$(strip $(subst ",, $(LINUX_KCONFIG_26)))
60#"
61
62$(DL_DIR)/$(LINUX_SOURCE):
63         $(WGET) -P $(DL_DIR) $(LINUX_SITE)/$(LINUX_SOURCE)
64
65$(LINUX_DIR)/.unpacked: $(DL_DIR)/$(LINUX_SOURCE)
66        -$(RM) -r $(MODULES_DIR)/lib
67        -$(RM) $(MODULES_DIR)/.stripped
68        -$(RM) -r $(LINUX_DIR)
69        bzcat $(DL_DIR)/$(LINUX_SOURCE) | tar $(TAR_VERBOSE) \
70                -C $(BUILD_DIR) -xf -
71ifneq ($(DOWNLOAD_LINUX_VERSION),$(LINUX_VERSION))
72        # Rename the dir from the downloaded version to the AFTER patch version
73        mv -f $(BUILD_DIR)/linux-$(DOWNLOAD_LINUX_VERSION) $(LINUX_DIR)
74        touch $(LINUX_DIR)/.unpacked
75endif
76
77$(LINUX_DIR)/.patched: $(LINUX_DIR)/.unpacked \
78                $(HOSTAP_DRIVER_DIR)/.unpacked \
79                patch-o-matic
80        # Patching the kernel.
81        $(SCRIPTS_DIR)/patch-kernel.sh $(LINUX_DIR) $(PATCH_DIR)/kernel-2.6 0 *.patch
82        echo "Patched the kernel with $(PATCH_DIR)/kernel patches"
83
84        # Patching the kernel with iptables-pom-stuff:
85ifeq ($(filter $(TARGETS),patch-o-matic), patch-o-matic)
86        (cd $(PATCH_O_MATIC_DIR); \
87                KERNEL_DIR=$(LINUX_DIR) \
88                IPTABLES_DIR=$(IPTABLES_BUILD_DIR) \
89                ./runme --batch $(POM_PATCHES) \
90                 );
91endif
92ifeq ($(filter $(TARGETS),hostap), hostap)
93        #(cd $(LINUX_DIR); \
94        #cat $(HOSTAP_DRIVER_KERNEL_PATCH) | patch -p1 ; \
95        #cp $(HOSTAP_DRIVER_DIR)/driver/modules/hostap*.[ch] \
96        #drivers/net/wireless/. );
97endif
98        cp $(PATCH_DIR)/kernel-2.6/sq*.h $(LINUX_DIR)/include/linux/.
99        touch $(LINUX_DIR)/.patched
100
101$(CONFIG_DIR)/$(LINUX_KCONFIG_26):
102        @if [ ! -f "$(CONFIG_DIR)/$(LINUX_KCONFIG_26)" ] ; then \
103                echo ""; \
104                echo "You should create a .config for your kernel"; \
105                echo "and install it as $(LINUX_KCONFIG_26)"; \
106                echo ""; \
107                sleep 5; \
108        fi;
109
110
111$(LINUX_DIR)/.configured:  $(LINUX_DIR)/.patched  $(CONFIG_DIR)/$(LINUX_KCONFIG_26)
112        -cp $(CONFIG_DIR)/$(LINUX_KCONFIG_26) $(LINUX_DIR)/.config
113ifeq ($(strip $(EMULATE_FPU)),true)
114        $(SED) "s/^.*CONFIG_MATH_EMULATION.*/CONFIG_MATH_EMULATION=y/;" \
115                $(LINUX_DIR)/.config
116else
117        $(SED) "s/^.*CONFIG_MATH_EMULATION.*/CONFIG_MATH_EMULATION=n/;" \
118                $(LINUX_DIR)/.config
119endif
120        $(SED) 's/^EXTRAVERSION\s=\s(.*)/EXTRAVERSION = $$1-floppyfw-$(FLOPPYFW_VERSION)\n/;' \
121                $(LINUX_DIR)/Makefile
122        $(MAKE) EXTRA_CFLAGS="$(LINUX_EXTRA_CFLAGS)" ARCH=$(ARCH) HOSTLDFLAGS="-lintl" -C $(LINUX_DIR) oldconfig include/linux/version.h
123        touch $(LINUX_DIR)/.configured
124
125linux-source-configured: $(LINUX_DIR)/.configured
126
127$(LINUX_DIR)/$(LINUX_BINLOC): $(LINUX_DIR)/.configured
128        $(MAKE) EXTRA_CFLAGS="$(LINUX_EXTRA_CFLAGS)" V=1 ARCH=$(ARCH) HOSTLDFLAGS="-lintl" CC="$(TARGET_CC)" -C $(LINUX_DIR) $(LINUX_FORMAT)
129        $(MAKE) EXTRA_CFLAGS="$(LINUX_EXTRA_CFLAGS)" ARCH=$(ARCH) HOSTLDFLAGS="-lintl" CC="$(TARGET_CC)" -C $(LINUX_DIR) modules
130
131$(MODULES_DIR)/lib/modules/$(LINUX_VERSION)/modules.dep: $(LINUX_DIR)/.configured
132        $(RM) -r $(MODULES_DIR)/lib/modules
133        $(MAKE) EXTRA_CFLAGS="$(LINUX_EXTRA_CFLAGS)" ARCH=$(ARCH) -C $(LINUX_DIR) INSTALL_MOD_PATH=$(MODULES_DIR) modules_install
134        (cd $(MODULES_DIR) ; cat $(MODULES_DIR)/lib/modules/$(LINUX_VERSION)/modules.dep | $(SCRIPTS_DIR)/capsfix.pl > $(TMP_DIR)/moddep)
135        #mv $(MODULES_DIR)/lib/modules/$(LINUX_VERSION)/modules.dep \
136        #       $(MODULES_DIR)/lib/modules/$(LINUX_VERSION)/modules.dep.precaps
137        mv $(TMP_DIR)/moddep $(MODULES_DIR)/lib/modules/$(LINUX_VERSION)/modules.dep
138        (cd $(MODULES_DIR)/lib/modules; ln -s $(LINUX_VERSION)/kernel/drivers .)
139        # $(DEPMOD)
140
141$(LINUX_KERNEL): $(LINUX_DIR)/$(LINUX_BINLOC)
142        cp -pf $(LINUX_DIR)/$(LINUX_BINLOC) $(LINUX_KERNEL)
143        touch -c $(LINUX_KERNEL)
144
145linux:  patch-o-matic hostap-driver-source $(IPTABLES_BUILD_DIR)/.configured $(LINUX_KERNEL) $(MODULES_DIR)/lib/modules/$(LINUX_VERSION)/modules.dep
146
147linux-source: $(DL_DIR)/$(LINUX_SOURCE)
148
149# This has been renamed so we do _NOT_ by default run this on 'make clean'
150linuxclean: clean
151        $(RM) $(LINUX_KERNEL)
152        -$(MAKE) -C $(LINUX_DIR) clean
153
154linux-dirclean:
155        $(RM) -r $(LINUX_DIR)
156
157# End encapsulation
158endif
Note: See TracBrowser for help on using the browser.