TARGET = arm-crux-linux-gnueabi
-TOPDIR = $(shell pwd)
+PWD = $(shell pwd)
WORK = $(PWD)/work
-CROSSTOOLS = $(TOPDIR)/../../toolchain/crosstools
+CROSSTOOLS = $(PWD)/../../toolchain/crosstools
-KERNEL_VERSION = 2.6.31.14.22-efikamx_20110510
+KERNEL_VERSION = 2.6.31.14.27-efikamx_20130723
.PHONY: all clean image modules map config
clean: image-clean modules-clean map-clean
distclean: clean image-distclean modules-distclean map-distclean
- rm -vrf $(WORK)/linux-$(KERNEL_VERSION)
-$(WORK)/mkimage:
- wget -P $(WORK) http://crux-arm.nu/files/devices/mkimage
- chmod u+x $(WORK)/mkimage
+$(WORK)/linux-$(KERNEL_VERSION).tar.xz:
+ wget -P $(WORK) http://crux-arm.nu/files/distfiles/efikamx/linux-$(KERNEL_VERSION).tar.xz
-$(WORK)/linux-$(KERNEL_VERSION).tar.bz2:
- wget -P $(WORK) http://crux-arm.nu/files/distfiles/efikamx/linux-$(KERNEL_VERSION).tar.bz2
-
-$(WORK)/linux-$(KERNEL_VERSION): $(TOPDIR)/config-$(KERNEL_VERSION) $(WORK)/mkimage $(WORK)/linux-$(KERNEL_VERSION).tar.bz2
- tar -C $(WORK) -xvjf $(WORK)/linux-$(KERNEL_VERSION).tar.bz2
- cp -v $(TOPDIR)/config-$(KERNEL_VERSION) $(WORK)/linux-$(KERNEL_VERSION)/.config
+$(WORK)/linux-$(KERNEL_VERSION): $(WORK)/linux-$(KERNEL_VERSION).tar.xz $(PWD)/config-$(KERNEL_VERSION)
+ tar -C $(WORK) -xvf $(WORK)/linux-$(KERNEL_VERSION).tar.xz
+ cd $(WORK) && \
+ sed -e 's|`whoami`|devel|' -e 's|`hostname .*`|crux-arm.nu|' -i linux-$(KERNEL_VERSION)/scripts/mkcompile_h && \
+ sed 's|rt3070.bin rt2870.bin||g' -i linux-$(KERNEL_VERSION)/firmware/Makefile
+ cp -v $(PWD)/config-$(KERNEL_VERSION) $(WORK)/linux-$(KERNEL_VERSION)/.config
touch $(WORK)/linux-$(KERNEL_VERSION)
-$(WORK)/uImage-$(KERNEL_VERSION): $(WORK)/linux-$(KERNEL_VERSION)
+$(WORK)/zImage-$(KERNEL_VERSION): $(WORK)/linux-$(KERNEL_VERSION)
cd $(WORK)/linux-$(KERNEL_VERSION) && \
- export PATH=$(CROSSTOOLS)/bin:$(WORK):$$PATH && \
+ export PATH=$(CROSSTOOLS)/bin:$$PATH && \
export LD_LIBRARY_PATH=$(CROSSTOOLS)/lib:$$LD_LIBRARY_PATH && \
- make uImage ARCH=arm CROSS_COMPILE=$(TARGET)-
- cp -v $(WORK)/linux-$(KERNEL_VERSION)/arch/arm/boot/uImage $(WORK)/uImage-$(KERNEL_VERSION)
- touch $(WORK)/uImage-$(KERNEL_VERSION)
+ make zImage ARCH=arm CROSS_COMPILE=$(TARGET)-
+ cp -v $(WORK)/linux-$(KERNEL_VERSION)/arch/arm/boot/zImage $(WORK)/zImage-$(KERNEL_VERSION)
+ ln -sf zImage-$(KERNEL_VERSION) $(WORK)/zImage
+ touch $(WORK)/zImage-$(KERNEL_VERSION)
-image: $(WORK)/uImage-$(KERNEL_VERSION)
+image: $(WORK)/zImage-$(KERNEL_VERSION)
image-clean:
- rm -vf $(WORK)/uImage-$(KERNEL_VERSION)
+ rm -vf $(WORK)/zImage-$(KERNEL_VERSION)
image-distclean: image-clean
+ rm -vrf $(WORK)/linux-$(KERNEL_VERSION) $(WORK)/linux-$(KERNEL_VERSION).tar.xz
$(WORK)/modules-$(KERNEL_VERSION): $(WORK)/linux-$(KERNEL_VERSION)
cd $(WORK)/linux-$(KERNEL_VERSION) && \
rm -f $(WORK)/modules-$(KERNEL_VERSION)/lib/modules/$(KERNEL_VERSION)/{source,build}
touch $(WORK)/modules-$(KERNEL_VERSION)
-modules: $(WORK)/modules-$(KERNEL_VERSION)
+$(WORK)/modules-$(KERNEL_VERSION).tar.xz: $(WORK)/modules-$(KERNEL_VERSION)
+ cd $(WORK)/modules-$(KERNEL_VERSION) && \
+ tar cvJf $(WORK)/modules-$(KERNEL_VERSION).tar.xz *
+ touch $(WORK)/modules-$(KERNEL_VERSION).tar.xz
+
+modules: $(WORK)/modules-$(KERNEL_VERSION).tar.xz
modules-clean:
- rm -vrf $(WORK)/modules-$(KERNEL_VERSION)
+ rm -vrf $(WORK)/modules-$(KERNEL_VERSION) $(WORK)/modules-$(KERNEL_VERSION).tar.xz
modules-distclean: modules-clean