2 # This file is subject to the terms and conditions of the GNU General Public
3 # License. See the file "COPYING" in the main directory of this archive
6 # Copyright (C) 1995, 1998, 2001, 2002 by Ralf Baechle
7 # Copyright (C) 2004 Maciej W. Rozycki
11 # Some DECstations need all possible sections of an ECOFF executable
13 ifdef CONFIG_MACH_DECSTATION
18 # Drop some uninteresting sections in the kernel.
19 # This is only relevant for ELF kernels but doesn't hurt a.out
21 drop-sections
:= .reginfo .mdebug .comment .note .pdr .options .MIPS.options
22 strip-flags
:= $(addprefix --remove-section
=,$(drop-sections
))
24 hostprogs-y
:= elf2ecoff
27 suffix-
$(CONFIG_KERNEL_BZIP2
) := bz2
28 suffix-
$(CONFIG_KERNEL_GZIP
) := gz
29 suffix-
$(CONFIG_KERNEL_LZMA
) := lzma
30 suffix-
$(CONFIG_KERNEL_LZO
) := lzo
32 targets
:= vmlinux.ecoff
33 quiet_cmd_ecoff
= ECOFF
$@
34 cmd_ecoff
= $(obj
)/elf2ecoff
$(VMLINUX
) $@
$(e2eflag
)
35 $(obj
)/vmlinux.ecoff
: $(obj
)/elf2ecoff
$(VMLINUX
) FORCE
36 $(call if_changed
,ecoff
)
38 targets
+= vmlinux.bin
39 quiet_cmd_bin
= OBJCOPY
$@
40 cmd_bin
= $(OBJCOPY
) -O binary
$(strip-flags
) $(VMLINUX
) $@
41 $(obj
)/vmlinux.bin
: $(VMLINUX
) FORCE
42 $(call if_changed
,bin
)
44 targets
+= vmlinux.srec
45 quiet_cmd_srec
= OBJCOPY
$@
46 cmd_srec
= $(OBJCOPY
) -S
-O srec
$(strip-flags
) $(VMLINUX
) $@
47 $(obj
)/vmlinux.srec
: $(VMLINUX
) FORCE
48 $(call if_changed
,srec
)
50 UIMAGE_LOADADDR
= $(VMLINUX_LOAD_ADDRESS
)
51 UIMAGE_ENTRYADDR
= $(VMLINUX_ENTRY_ADDRESS
)
54 # Compressed vmlinux images
57 extra-y
+= vmlinux.bin.bz2
58 extra-y
+= vmlinux.bin.gz
59 extra-y
+= vmlinux.bin.lzma
60 extra-y
+= vmlinux.bin.lzo
62 $(obj
)/vmlinux.bin.bz2
: $(obj
)/vmlinux.bin FORCE
63 $(call if_changed
,bzip2
)
65 $(obj
)/vmlinux.bin.gz
: $(obj
)/vmlinux.bin FORCE
66 $(call if_changed
,gzip
)
68 $(obj
)/vmlinux.bin.lzma
: $(obj
)/vmlinux.bin FORCE
69 $(call if_changed
,lzma
)
71 $(obj
)/vmlinux.bin.lzo
: $(obj
)/vmlinux.bin FORCE
72 $(call if_changed
,lzo
)
75 # Compressed u-boot images
82 targets
+= uImage.lzma
85 $(obj
)/uImage.bin
: $(obj
)/vmlinux.bin FORCE
86 $(call if_changed
,uimage
,none
)
88 $(obj
)/uImage.bz2
: $(obj
)/vmlinux.bin.bz2 FORCE
89 $(call if_changed
,uimage
,bzip2
)
91 $(obj
)/uImage.gz
: $(obj
)/vmlinux.bin.gz FORCE
92 $(call if_changed
,uimage
,gzip
)
94 $(obj
)/uImage.lzma
: $(obj
)/vmlinux.bin.lzma FORCE
95 $(call if_changed
,uimage
,lzma
)
97 $(obj
)/uImage.lzo
: $(obj
)/vmlinux.bin.lzo FORCE
98 $(call if_changed
,uimage
,lzo
)
100 $(obj
)/uImage
: $(obj
)/uImage.
$(suffix-y
)
101 @ln
-sf
$(notdir $<) $@
102 @echo
' Image $@ is ready'
105 # Flattened Image Tree (.itb) images
108 targets
+= vmlinux.itb
109 targets
+= vmlinux.gz.itb
110 targets
+= vmlinux.bz2.itb
111 targets
+= vmlinux.lzma.itb
112 targets
+= vmlinux.lzo.itb
114 ifeq ($(ADDR_BITS
),32)
117 ifeq ($(ADDR_BITS
),64)
121 quiet_cmd_its_cat
= CAT
$@
122 cmd_its_cat
= cat
$^
>$@
124 $(obj
)/vmlinux.its.S
: $(addprefix $(srctree
)/arch
/mips
/$(PLATFORM
)/,$(ITS_INPUTS
))
125 $(call if_changed
,its_cat
)
127 quiet_cmd_cpp_its_S
= ITS
$@
128 cmd_cpp_its_S
= $(CPP
) $(cpp_flags
) -P
-C
-o
$@
$< \
130 -DKERNEL_NAME
="\"Linux $(KERNELRELEASE)\"" \
131 -DVMLINUX_BINARY
="\"$(3)\"" \
132 -DVMLINUX_COMPRESSION
="\"$(2)\"" \
133 -DVMLINUX_LOAD_ADDRESS
=$(VMLINUX_LOAD_ADDRESS
) \
134 -DVMLINUX_ENTRY_ADDRESS
=$(VMLINUX_ENTRY_ADDRESS
) \
135 -DADDR_BITS
=$(ADDR_BITS
) \
136 -DADDR_CELLS
=$(itb_addr_cells
)
138 $(obj
)/vmlinux.its
: $(obj
)/vmlinux.its.S
$(VMLINUX
) FORCE
139 $(call if_changed_dep
,cpp_its_S
,none
,vmlinux.bin
)
141 $(obj
)/vmlinux.gz.its
: $(obj
)/vmlinux.its.S
$(VMLINUX
) FORCE
142 $(call if_changed_dep
,cpp_its_S
,gzip
,vmlinux.bin.gz
)
144 $(obj
)/vmlinux.bz2.its
: $(obj
)/vmlinux.its.S
$(VMLINUX
) FORCE
145 $(call if_changed_dep
,cpp_its_S
,bzip2
,vmlinux.bin.bz2
)
147 $(obj
)/vmlinux.lzma.its
: $(obj
)/vmlinux.its.S
$(VMLINUX
) FORCE
148 $(call if_changed_dep
,cpp_its_S
,lzma
,vmlinux.bin.lzma
)
150 $(obj
)/vmlinux.lzo.its
: $(obj
)/vmlinux.its.S
$(VMLINUX
) FORCE
151 $(call if_changed_dep
,cpp_its_S
,lzo
,vmlinux.bin.lzo
)
153 quiet_cmd_itb-image
= ITB
$@
155 env PATH
="$(objtree)/scripts/dtc:$(PATH)" \
156 $(CONFIG_SHELL
) $(MKIMAGE
) \
157 -D
"-I dts -O dtb -p 500 \
158 --include $(objtree)/arch/mips \
159 --warning no-unit_address_vs_reg" \
162 $(obj
)/vmlinux.itb
: $(obj
)/vmlinux.its
$(obj
)/vmlinux.bin FORCE
163 $(call if_changed
,itb-image
,$<)
165 $(obj
)/vmlinux.gz.itb
: $(obj
)/vmlinux.gz.its
$(obj
)/vmlinux.bin.gz FORCE
166 $(call if_changed
,itb-image
,$<)
168 $(obj
)/vmlinux.bz2.itb
: $(obj
)/vmlinux.bz2.its
$(obj
)/vmlinux.bin.bz2 FORCE
169 $(call if_changed
,itb-image
,$<)
171 $(obj
)/vmlinux.lzma.itb
: $(obj
)/vmlinux.lzma.its
$(obj
)/vmlinux.bin.lzma FORCE
172 $(call if_changed
,itb-image
,$<)
174 $(obj
)/vmlinux.lzo.itb
: $(obj
)/vmlinux.lzo.its
$(obj
)/vmlinux.bin.lzo FORCE
175 $(call if_changed
,itb-image
,$<)