1# SPDX-License-Identifier: GPL-2.0
2#
3# Author: Huacai Chen <chenhuacai@loongson.cn>
4# Copyright (C) 2020 Loongson Technology Corporation Limited
5
6#
7# Drop some uninteresting sections in the kernel.
8# This is only relevant for ELF kernels but doesn't hurt a.out
9#
10OBJECT_FILES_NON_STANDARD	:= y
11
12drop-sections := .comment .note .options
13strip-flags   := $(addprefix --remove-section=,$(drop-sections))
14
15suffix-y			:= bin
16suffix-$(CONFIG_KERNEL_GZIP)	:= gz
17suffix-$(CONFIG_KERNEL_BZIP2)	:= bz2
18suffix-$(CONFIG_KERNEL_LZMA)	:= lzma
19suffix-$(CONFIG_KERNEL_LZO)	:= lzo
20suffix-$(CONFIG_KERNEL_LZ4)	:= lz4
21suffix-$(CONFIG_KERNEL_ZSTD)	:= zst
22
23targets += vmlinux.bin
24quiet_cmd_bin = OBJCOPY $@
25      cmd_bin = $(OBJCOPY) -O binary $(strip-flags) $(VMLINUX) $@
26$(obj)/vmlinux.bin: $(VMLINUX) FORCE
27	$(call if_changed,bin)
28
29#
30# Compressed vmlinux images
31#
32
33extra-y += vmlinux.bin.gz
34extra-y += vmlinux.bin.bz2
35extra-y += vmlinux.bin.lzma
36extra-y += vmlinux.bin.lzo
37extra-y += vmlinux.bin.lz4
38extra-y += vmlinux.bin.zst
39
40$(obj)/vmlinux.bin.bz2: $(obj)/vmlinux.bin FORCE
41	$(call if_changed,bzip2)
42
43$(obj)/vmlinux.bin.gz: $(obj)/vmlinux.bin FORCE
44	$(call if_changed,gzip)
45
46$(obj)/vmlinux.bin.lzma: $(obj)/vmlinux.bin FORCE
47	$(call if_changed,lzma)
48
49$(obj)/vmlinux.bin.lzo: $(obj)/vmlinux.bin FORCE
50	$(call if_changed,lzo)
51
52$(obj)/vmlinux.bin.lz4: $(obj)/vmlinux.bin FORCE
53	$(call if_changed,lz4)
54
55$(obj)/vmlinux.bin.zst: $(obj)/vmlinux.bin FORCE
56	$(call if_changed,zst22)
57