CRUX-ARM : Home

Home :: Documentation :: Download :: Development :: Community :: Ports :: Packages :: Bugs :: Links :: About :: Donors
README: add fixup.dat to part1 file list
[kernel/raspberrypi2.git] / Makefile
CommitLineData
aa408bf1
JV
1#
2# src/kernel/Makefile
3#
4
5TARGET = arm-crux-linux-gnueabihf
6
7PWD = $(shell pwd)
8WORK = $(PWD)/work
9CROSSTOOLS = /devel/crux-arm/toolchain/crosstools
10
11KERNEL_BRANCH = 4.5.y
12KERNEL_VERSION = 4.5.4
13PATCH_VERSION = 20160513
14
15CONFIG_FILE = config-$(KERNEL_VERSION)-raspberrypi2_$(PATCH_VERSION)
16PATCH_FILE = linux-$(KERNEL_BRANCH)-rpi-$(PATCH_VERSION).patch
17KERNEL_TARBALL = linux-$(KERNEL_VERSION).tar.xz
18
19
20.PHONY: all clean config files image map menuconfig modules
21
22all: image modules map dtb
23
24clean: image-clean modules-clean map-clean dtb-clean
25
26distclean: clean image-distclean modules-distclean dtb-distclean map-distclean
27
28$(PWD)/$(KERNEL_TARBALL):
29 wget -P $(PWD) https://www.kernel.org/pub/linux/kernel/v4.x/$(KERNEL_TARBALL)
30 touch $@
31
32$(PWD)/$(PATCH_FILE):
33 wget -P $(PWD) http://stygian.me/crux-arm/distfiles/$(PATCH_FILE)
34 touch $@
35
36$(PWD)/$(CONFIG_FILE):
37 wget -P $(PWD) http://stygian.me/crux-arm/distfiles/$(CONFIG_FILE)
38 touch $@
39
40files: $(PWD)/$(KERNEL_TARBALL) $(PWD)/$(PATCH_FILE) $(PWD)/$(CONFIG_FILE)
41
42$(WORK)/linux-$(KERNEL_VERSION):
43 bsdtar -C $(WORK) -xf $(PWD)/$(KERNEL_TARBALL)
44 patch -d $(WORK)/linux-$(KERNEL_VERSION) -p1 -i $(PWD)/$(PATCH_FILE)
45 sed -e 's|LINUX_COMPILE_BY=.*|LINUX_COMPILE_BY=devel|' \
46 -e 's|LINUX_COMPILE_HOST=.*|LINUX_COMPILE_HOST=crux-arm.nu|' \
47 -i $(WORK)/linux-$(KERNEL_VERSION)/scripts/mkcompile_h
48 touch $@
49
50$(WORK)/linux-$(KERNEL_VERSION)/.config: $(WORK)/linux-$(KERNEL_VERSION)
51 cp -v $(PWD)/$(CONFIG_FILE) $@
52 touch $@
53
54config: files $(WORK)/linux-$(KERNEL_VERSION)/.config
55
56$(WORK)/zImage-$(KERNEL_VERSION): config
57 cd $(WORK)/linux-$(KERNEL_VERSION) && \
58 export PATH=$(CROSSTOOLS)/bin:$$PATH && \
59 export LD_LIBRARY_PATH=$(CROSSTOOLS)/lib:$$LD_LIBRARY_PATH && \
60 make ARCH=arm CROSS_COMPILE=$(TARGET)- zImage
61 cp -v $(WORK)/linux-$(KERNEL_VERSION)/arch/arm/boot/zImage $@
62 touch $@
63
64$(WORK)/kernel7-$(KERNEL_VERSION).img: $(WORK)/zImage-$(KERNEL_VERSION)
65 chmod +x $(WORK)/linux-$(KERNEL_VERSION)/scripts/mkknlimg
66 cd $(WORK)/linux-$(KERNEL_VERSION) && \
67 ./scripts/mkknlimg $(WORK)/zImage-$(KERNEL_VERSION) $@
68 touch $@
69
70image: $(WORK)/kernel7-$(KERNEL_VERSION).img
71
72image-clean:
64e7c26f
JV
73 rm -f $(WORK)/zImage-$(KERNEL_VERSION)
74 rm -f $(WORK)/kernel7-$(KERNEL_VERSION).img
aa408bf1
JV
75 if [ -d $(WORK)/linux-$(KERNEL_VERSION)/.config ]; then \
76 cd $(WORK)/linux-$(KERNEL_VERSION) && \
77 export PATH=$(CROSSTOOLS)/bin:$$PATH && \
78 export LD_LIBRARY_PATH=$(CROSSTOOLS)/lib:$$LD_LIBRARY_PATH && \
79 make ARCH=arm CROSS_COMPILE=$(TARGET)- clean ; \
80 fi
81
82image-distclean: image-clean
64e7c26f 83 rm -rf $(WORK)/linux-$(KERNEL_VERSION)
aa408bf1
JV
84
85$(WORK)/dtb-$(KERNEL_VERSION): $(WORK)/linux-$(KERNEL_VERSION)
86 cd $(WORK)/linux-$(KERNEL_VERSION) && \
87 export PATH=$(CROSSTOOLS)/bin:$$PATH && \
88 export LD_LIBRARY_PATH=$(CROSSTOOLS):$$LD_LIBRARY_PATH && \
89 make ARCH=arm CROSS_COMPILE=$(TARGET)- dtbs
90 rm -rf $(WORK)/dtb
91 mkdir -p $(WORK)/dtb/overlays
92 cp $(WORK)/linux-$(KERNEL_VERSION)/arch/arm/boot/dts/*.dtb $(WORK)/dtb
93 cp $(WORK)/linux-$(KERNEL_VERSION)/arch/arm/boot/dts/overlays/*.dtb* $(WORK)/dtb/overlays
94 mv $(WORK)/dtb $(WORK)/dtb-$(KERNEL_VERSION)
95
96$(WORK)/dtb-$(KERNEL_VERSION).tar.xz: $(WORK)/dtb-$(KERNEL_VERSION)
97 cd $(WORK)/dtb-$(KERNEL_VERSION) && \
98 bsdtar --uid 0 --gid 0 -cvJf $(WORK)/dtb-$(KERNEL_VERSION).tar.xz *
99
100dtb: $(WORK)/dtb-$(KERNEL_VERSION).tar.xz
101
102dtb-clean:
64e7c26f
JV
103 rm -f $(WORK)/dtb-$(KERNEL_VERSION).tar.xz
104 rm -rf $(WORK)/dtb-$(KERNEL_VERSION)
aa408bf1
JV
105
106dtb-distclean: dtb-clean
107
108$(WORK)/modules-$(KERNEL_VERSION): $(WORK)/linux-$(KERNEL_VERSION)
109 cd $(WORK)/linux-$(KERNEL_VERSION) && \
110 export PATH=$(CROSSTOOLS)/bin:$$PATH && \
111 export LD_LIBRARY_PATH=$(LD_LIBRARY_PATH)/lib:$$LD_LIBRARY_PATH && \
112 make ARCH=arm CROSS_COMPILE=$(TARGET)- modules && \
113 make ARCH=arm CROSS_COMPILE=$(TARGET)- INSTALL_MOD_PATH=$(WORK)/modules-$(KERNEL_VERSION) modules_install
114 rm -f $(WORK)/modules-$(KERNEL_VERSION)/lib/modules/$(KERNEL_VERSION)/{source,build}
115 touch $(WORK)/modules-$(KERNEL_VERSION)
116
117$(WORK)/modules-$(KERNEL_VERSION).tar.xz: $(WORK)/modules-$(KERNEL_VERSION)
118 cd $(WORK)/modules-$(KERNEL_VERSION) && \
119 bsdtar --uid 0 --gid 0 -cvJf $(WORK)/modules-$(KERNEL_VERSION).tar.xz *
120 touch $(WORK)/modules-$(KERNEL_VERSION).tar.xz
121
122modules: $(WORK)/modules-$(KERNEL_VERSION).tar.xz
123
124modules-clean:
64e7c26f
JV
125 rm -f $(WORK)/modules-$(KERNEL_VERSION).tar.xz
126 rm -rf $(WORK)/modules-$(KERNEL_VERSION)
aa408bf1
JV
127
128modules-distclean: modules-clean
129
130$(WORK)/System.map-$(KERNEL_VERSION): $(WORK)/zImage-$(KERNEL_VERSION)
131 cp $(WORK)/linux-$(KERNEL_VERSION)/System.map $(WORK)/System.map-$(KERNEL_VERSION)
132 touch $(WORK)/System.map-$(KERNEL_VERSION)
133
134map: $(WORK)/System.map-$(KERNEL_VERSION)
135
136map-clean:
64e7c26f 137 rm -f $(WORK)/System.map-$(KERNEL_VERSION)
aa408bf1
JV
138
139map-distclean: map-clean
140
141menuconfig: $(WORK)/linux-$(KERNEL_VERSION)
142 cd $(WORK)/linux-$(KERNEL_VERSION) && \
143 export PATH=$(CROSSTOOLS)/bin:$$PATH && \
144 export LD_LIBRARY_PATH=$(CROSSTOOLS)/lib:$$LD_LIBRARY_PATH && \
145 make ARCH=arm CROSS_COMPILE=$(TARGET)- menuconfig
146 touch $(WORK)/linux-$(KERNEL_VERSION)
147
148# End of file