5 TARGET
= arm-crux-linux-gnueabihf
9 CROSSTOOLS
= $(PWD
)/..
/..
/toolchain
/crosstools
11 KERNEL_VERSION
= 4.9.6
13 .PHONY
: all clean image modules map config
15 all: dtb image modules map
17 clean: image-clean modules-clean map-clean
19 distclean: clean image-distclean modules-distclean map-distclean
21 $(WORK
)/linux-
$(KERNEL_VERSION
).
tar.xz
:
22 wget
-P
$(WORK
) https
://www.kernel.org
/pub
/linux
/kernel
/v4.x
/linux-
$(KERNEL_VERSION
).
tar.xz
24 $(WORK
)/linux-
$(KERNEL_VERSION
): $(WORK
)/linux-
$(KERNEL_VERSION
).
tar.xz config-
$(KERNEL_VERSION
)
25 tar -C
$(WORK
) -xvf
$(WORK
)/linux-
$(KERNEL_VERSION
).
tar.xz
26 sed
-e
's|LINUX_COMPILE_BY=.*|LINUX_COMPILE_BY=devel|g' -e
's|`hostname`|crux-arm.nu|g' -i
$(WORK
)/linux-
$(KERNEL_VERSION
)/scripts
/mkcompile_h
27 cd
$(WORK
)/linux-
$(KERNEL_VERSION
) && \
29 cp
-v
$(PWD
)/config-
$(KERNEL_VERSION
) .config
&& \
30 touch
$(WORK
)/linux-
$(KERNEL_VERSION
)
32 $(WORK
)/zImage-
$(KERNEL_VERSION
): $(WORK
)/linux-
$(KERNEL_VERSION
)
33 cd
$(WORK
)/linux-
$(KERNEL_VERSION
) && \
34 export PATH
=$(CROSSTOOLS
)/bin
:$$PATH && \
35 export LD_LIBRARY_PATH
=$(CROSSTOOLS
)/lib
:$$LD_LIBRARY_PATH && \
36 make ARCH
=arm CROSS_COMPILE
=$(TARGET
)- zImage
37 cp
-v
$(WORK
)/linux-
$(KERNEL_VERSION
)/arch
/arm
/boot
/zImage
$(WORK
)/zImage-
$(KERNEL_VERSION
)
38 touch
$(WORK
)/zImage-
$(KERNEL_VERSION
)
40 image
: $(WORK
)/zImage-
$(KERNEL_VERSION
)
43 rm -vrf
$(WORK
)/linux-
$(KERNEL_VERSION
) $(WORK
)/zImage-
$(KERNEL_VERSION
)
45 image-distclean
: image-clean
47 $(WORK
)/vexpress-v2p-ca9.dtb
: image
48 cd
$(WORK
)/linux-
$(KERNEL_VERSION
) && \
49 export PATH
=$(CROSSTOOLS
)/bin
:$$PATH && \
50 export LD_LIBRARY_PATH
=$(CROSSTOOLS
)/lib
:$$LD_LIBRARY_PATH && \
51 make ARCH
=arm CROSS_COMPILE
=$(TARGET
)- vexpress-v2p-ca9.dtb
52 cp
-v
$(WORK
)/linux-
$(KERNEL_VERSION
)/arch
/arm
/boot
/dts
/vexpress-v2p-ca9.dtb
$(WORK
)/
53 touch
$(WORK
)/zImage-
$(KERNEL_VERSION
)
55 dtb
: $(WORK
)/vexpress-v2p-ca9.dtb
58 rm -vrf
$(WORK
)/vexpress-v2p-ca9.dtb
60 dtb-distclean
: dtb-clean
62 $(WORK
)/modules-
$(KERNEL_VERSION
): $(WORK
)/linux-
$(KERNEL_VERSION
)
63 cd
$(WORK
)/linux-
$(KERNEL_VERSION
) && \
64 export PATH
=$(CROSSTOOLS
)/bin
:$$PATH && \
65 export LD_LIBRARY_PATH
=$(LD_LIBRARY_PATH
)/lib
:$$LD_LIBRARY_PATH && \
66 make ARCH
=arm CROSS_COMPILE
=$(TARGET
)- modules
&& \
67 make ARCH
=arm CROSS_COMPILE
=$(TARGET
)- INSTALL_MOD_PATH
=$(WORK
)/modules-
$(KERNEL_VERSION
) modules_install
68 rm -f
$(WORK
)/modules-
$(KERNEL_VERSION
)/lib
/modules
/$(KERNEL_VERSION
)/{source
,build
}
69 touch
$(WORK
)/modules-
$(KERNEL_VERSION
)
71 $(WORK
)/modules-
$(KERNEL_VERSION
).
tar.xz
: $(WORK
)/modules-
$(KERNEL_VERSION
)
72 cd
$(WORK
)/modules-
$(KERNEL_VERSION
) && \
73 tar cvJf
$(WORK
)/modules-
$(KERNEL_VERSION
).
tar.xz
*
74 touch
$(WORK
)/modules-
$(KERNEL_VERSION
).
tar.xz
76 modules
: $(WORK
)/modules-
$(KERNEL_VERSION
).
tar.xz
79 rm -vrf
$(WORK
)/modules-
$(KERNEL_VERSION
) $(WORK
)/modules-
$(KERNEL_VERSION
).
tar.xz
81 modules-distclean
: modules-clean
83 $(WORK
)/System.map-
$(KERNEL_VERSION
): $(WORK
)/linux-
$(KERNEL_VERSION
)
84 cp
$(WORK
)/linux-
$(KERNEL_VERSION
)/System.map
$(WORK
)/System.map-
$(KERNEL_VERSION
)
85 touch
$(WORK
)/System.map-
$(KERNEL_VERSION
)
87 map
: $(WORK
)/System.map-
$(KERNEL_VERSION
)
90 rm -vrf
$(WORK
)/System.map-
$(KERNEL_VERSION
)
92 map-distclean
: map-clean
94 config
: $(WORK
)/linux-
$(KERNEL_VERSION
)
95 cd
$(WORK
)/linux-
$(KERNEL_VERSION
) && \
96 export PATH
=$(CROSSTOOLS
)/bin
:$$PATH && \
97 export LD_LIBRARY_PATH
=$(CROSSTOOLS
)/lib
:$$LD_LIBRARY_PATH && \
98 make ARCH
=arm CROSS_COMPILE
=$(TARGET
)- menuconfig
99 touch
$(WORK
)/linux-
$(KERNEL_VERSION
)