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 ifeq ($(ADDR_BITS
),32)
111 ifeq ($(ADDR_BITS
),64)
115 targets
+= vmlinux.its.S
117 quiet_cmd_its_cat
= CAT
$@
118 cmd_its_cat
= cat
$(real-prereqs
) >$@
120 $(obj
)/vmlinux.its.S
: $(addprefix $(srctree
)/arch
/mips
/$(PLATFORM
)/,$(ITS_INPUTS
)) FORCE
121 $(call if_changed
,its_cat
)
123 targets
+= vmlinux.its
124 targets
+= vmlinux.gz.its
125 targets
+= vmlinux.bz2.its
126 targets
+= vmlinux.lzma.its
127 targets
+= vmlinux.lzo.its
129 quiet_cmd_cpp_its_S
= ITS
$@
130 cmd_cpp_its_S
= $(CPP
) -P
-C
-o
$@
$< \
131 -DKERNEL_NAME
="\"Linux $(KERNELRELEASE)\"" \
132 -DVMLINUX_BINARY
="\"$(3)\"" \
133 -DVMLINUX_COMPRESSION
="\"$(2)\"" \
134 -DVMLINUX_LOAD_ADDRESS
=$(VMLINUX_LOAD_ADDRESS
) \
135 -DVMLINUX_ENTRY_ADDRESS
=$(VMLINUX_ENTRY_ADDRESS
) \
136 -DADDR_BITS
=$(ADDR_BITS
) \
137 -DADDR_CELLS
=$(itb_addr_cells
)
139 $(obj
)/vmlinux.its
: $(obj
)/vmlinux.its.S
$(VMLINUX
) FORCE
140 $(call if_changed
,cpp_its_S
,none
,vmlinux.bin
)
142 $(obj
)/vmlinux.gz.its
: $(obj
)/vmlinux.its.S
$(VMLINUX
) FORCE
143 $(call if_changed
,cpp_its_S
,gzip
,vmlinux.bin.gz
)
145 $(obj
)/vmlinux.bz2.its
: $(obj
)/vmlinux.its.S
$(VMLINUX
) FORCE
146 $(call if_changed
,cpp_its_S
,bzip2
,vmlinux.bin.bz2
)
148 $(obj
)/vmlinux.lzma.its
: $(obj
)/vmlinux.its.S
$(VMLINUX
) FORCE
149 $(call if_changed
,cpp_its_S
,lzma
,vmlinux.bin.lzma
)
151 $(obj
)/vmlinux.lzo.its
: $(obj
)/vmlinux.its.S
$(VMLINUX
) FORCE
152 $(call if_changed
,cpp_its_S
,lzo
,vmlinux.bin.lzo
)
154 targets
+= vmlinux.itb
155 targets
+= vmlinux.gz.itb
156 targets
+= vmlinux.bz2.itb
157 targets
+= vmlinux.lzma.itb
158 targets
+= vmlinux.lzo.itb
160 quiet_cmd_itb-image
= ITB
$@
162 env PATH
="$(objtree)/scripts/dtc:$(PATH)" \
164 -D
"-I dts -O dtb -p 500 \
165 --include $(objtree)/arch/mips \
166 --warning no-unit_address_vs_reg" \
169 $(obj
)/vmlinux.itb
: $(obj
)/vmlinux.its
$(obj
)/vmlinux.bin FORCE
170 $(call if_changed
,itb-image
,$<)
172 $(obj
)/vmlinux.
%.itb
: $(obj
)/vmlinux.
%.its
$(obj
)/vmlinux.bin.
% FORCE
173 $(call if_changed
,itb-image
,$<)