Commit | Line | Data |
---|---|---|
1da177e4 LT |
1 | # |
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 | |
4 | # for more details. | |
5 | # | |
6 | # Copyright (C) 1995, 1998, 2001, 2002 by Ralf Baechle | |
7 | # Copyright (C) 2004 Maciej W. Rozycki | |
8 | # | |
9 | ||
10 | # | |
11 | # Some DECstations need all possible sections of an ECOFF executable | |
12 | # | |
13 | ifdef CONFIG_MACH_DECSTATION | |
961e196c | 14 | e2eflag := -a |
1da177e4 LT |
15 | endif |
16 | ||
17 | # | |
18 | # Drop some uninteresting sections in the kernel. | |
19 | # This is only relevant for ELF kernels but doesn't hurt a.out | |
20 | # | |
961e196c SR |
21 | drop-sections := .reginfo .mdebug .comment .note .pdr .options .MIPS.options |
22 | strip-flags := $(addprefix --remove-section=,$(drop-sections)) | |
23 | ||
24 | hostprogs-y := elf2ecoff | |
25 | ||
9d6b80fa MC |
26 | suffix-y := bin |
27 | suffix-$(CONFIG_KERNEL_BZIP2) := bz2 | |
28 | suffix-$(CONFIG_KERNEL_GZIP) := gz | |
29 | suffix-$(CONFIG_KERNEL_LZMA) := lzma | |
30 | suffix-$(CONFIG_KERNEL_LZO) := lzo | |
31 | ||
961e196c | 32 | targets := vmlinux.ecoff |
70342287 | 33 | quiet_cmd_ecoff = ECOFF $@ |
961e196c SR |
34 | cmd_ecoff = $(obj)/elf2ecoff $(VMLINUX) $@ $(e2eflag) |
35 | $(obj)/vmlinux.ecoff: $(obj)/elf2ecoff $(VMLINUX) FORCE | |
36 | $(call if_changed,ecoff) | |
37 | ||
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) | |
43 | ||
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) | |
4defe455 JH |
49 | |
50 | UIMAGE_LOADADDR = $(VMLINUX_LOAD_ADDRESS) | |
51 | UIMAGE_ENTRYADDR = $(VMLINUX_ENTRY_ADDRESS) | |
52 | ||
9d6b80fa MC |
53 | # |
54 | # Compressed vmlinux images | |
55 | # | |
56 | ||
57 | extra-y += vmlinux.bin.bz2 | |
58 | extra-y += vmlinux.bin.gz | |
59 | extra-y += vmlinux.bin.lzma | |
60 | extra-y += vmlinux.bin.lzo | |
61 | ||
62 | $(obj)/vmlinux.bin.bz2: $(obj)/vmlinux.bin FORCE | |
63 | $(call if_changed,bzip2) | |
64 | ||
4defe455 JH |
65 | $(obj)/vmlinux.bin.gz: $(obj)/vmlinux.bin FORCE |
66 | $(call if_changed,gzip) | |
67 | ||
9d6b80fa MC |
68 | $(obj)/vmlinux.bin.lzma: $(obj)/vmlinux.bin FORCE |
69 | $(call if_changed,lzma) | |
70 | ||
71 | $(obj)/vmlinux.bin.lzo: $(obj)/vmlinux.bin FORCE | |
72 | $(call if_changed,lzo) | |
73 | ||
74 | # | |
75 | # Compressed u-boot images | |
76 | # | |
77 | ||
78 | targets += uImage | |
79 | targets += uImage.bin | |
80 | targets += uImage.bz2 | |
4defe455 | 81 | targets += uImage.gz |
9d6b80fa MC |
82 | targets += uImage.lzma |
83 | targets += uImage.lzo | |
84 | ||
85 | $(obj)/uImage.bin: $(obj)/vmlinux.bin FORCE | |
86 | $(call if_changed,uimage,none) | |
87 | ||
88 | $(obj)/uImage.bz2: $(obj)/vmlinux.bin.bz2 FORCE | |
89 | $(call if_changed,uimage,bzip2) | |
90 | ||
4defe455 JH |
91 | $(obj)/uImage.gz: $(obj)/vmlinux.bin.gz FORCE |
92 | $(call if_changed,uimage,gzip) | |
93 | ||
9d6b80fa MC |
94 | $(obj)/uImage.lzma: $(obj)/vmlinux.bin.lzma FORCE |
95 | $(call if_changed,uimage,lzma) | |
96 | ||
97 | $(obj)/uImage.lzo: $(obj)/vmlinux.bin.lzo FORCE | |
98 | $(call if_changed,uimage,lzo) | |
99 | ||
100 | $(obj)/uImage: $(obj)/uImage.$(suffix-y) | |
4defe455 JH |
101 | @ln -sf $(notdir $<) $@ |
102 | @echo ' Image $@ is ready' | |
cf2a5e0b PB |
103 | |
104 | # | |
105 | # Flattened Image Tree (.itb) images | |
106 | # | |
107 | ||
eed0eabd | 108 | ifeq ($(ADDR_BITS),32) |
be462bd9 | 109 | itb_addr_cells = 1 |
eed0eabd PB |
110 | endif |
111 | ifeq ($(ADDR_BITS),64) | |
be462bd9 | 112 | itb_addr_cells = 2 |
eed0eabd PB |
113 | endif |
114 | ||
67e09db5 MY |
115 | targets += vmlinux.its.S |
116 | ||
436c6a44 | 117 | quiet_cmd_its_cat = CAT $@ |
afa974b7 | 118 | cmd_its_cat = cat $(real-prereqs) >$@ |
436c6a44 | 119 | |
67e09db5 | 120 | $(obj)/vmlinux.its.S: $(addprefix $(srctree)/arch/mips/$(PLATFORM)/,$(ITS_INPUTS)) FORCE |
436c6a44 PB |
121 | $(call if_changed,its_cat) |
122 | ||
92b34a97 MY |
123 | targets += vmlinux.its |
124 | targets += vmlinux.gz.its | |
125 | targets += vmlinux.bz2.its | |
126 | targets += vmlinux.lzmo.its | |
127 | targets += vmlinux.lzo.its | |
128 | ||
cf2a5e0b | 129 | quiet_cmd_cpp_its_S = ITS $@ |
321f95b6 | 130 | cmd_cpp_its_S = $(CPP) -P -C -o $@ $< \ |
cf2a5e0b PB |
131 | -DKERNEL_NAME="\"Linux $(KERNELRELEASE)\"" \ |
132 | -DVMLINUX_BINARY="\"$(3)\"" \ | |
133 | -DVMLINUX_COMPRESSION="\"$(2)\"" \ | |
134 | -DVMLINUX_LOAD_ADDRESS=$(VMLINUX_LOAD_ADDRESS) \ | |
eed0eabd PB |
135 | -DVMLINUX_ENTRY_ADDRESS=$(VMLINUX_ENTRY_ADDRESS) \ |
136 | -DADDR_BITS=$(ADDR_BITS) \ | |
137 | -DADDR_CELLS=$(itb_addr_cells) | |
cf2a5e0b | 138 | |
436c6a44 | 139 | $(obj)/vmlinux.its: $(obj)/vmlinux.its.S $(VMLINUX) FORCE |
321f95b6 | 140 | $(call if_changed,cpp_its_S,none,vmlinux.bin) |
cf2a5e0b | 141 | |
436c6a44 | 142 | $(obj)/vmlinux.gz.its: $(obj)/vmlinux.its.S $(VMLINUX) FORCE |
321f95b6 | 143 | $(call if_changed,cpp_its_S,gzip,vmlinux.bin.gz) |
cf2a5e0b | 144 | |
436c6a44 | 145 | $(obj)/vmlinux.bz2.its: $(obj)/vmlinux.its.S $(VMLINUX) FORCE |
321f95b6 | 146 | $(call if_changed,cpp_its_S,bzip2,vmlinux.bin.bz2) |
cf2a5e0b | 147 | |
436c6a44 | 148 | $(obj)/vmlinux.lzma.its: $(obj)/vmlinux.its.S $(VMLINUX) FORCE |
321f95b6 | 149 | $(call if_changed,cpp_its_S,lzma,vmlinux.bin.lzma) |
cf2a5e0b | 150 | |
436c6a44 | 151 | $(obj)/vmlinux.lzo.its: $(obj)/vmlinux.its.S $(VMLINUX) FORCE |
321f95b6 | 152 | $(call if_changed,cpp_its_S,lzo,vmlinux.bin.lzo) |
cf2a5e0b | 153 | |
be462bd9 MY |
154 | targets += vmlinux.itb |
155 | targets += vmlinux.gz.itb | |
156 | targets += vmlinux.bz2.itb | |
157 | targets += vmlinux.lzma.itb | |
158 | targets += vmlinux.lzo.itb | |
159 | ||
cf2a5e0b PB |
160 | quiet_cmd_itb-image = ITB $@ |
161 | cmd_itb-image = \ | |
162 | env PATH="$(objtree)/scripts/dtc:$(PATH)" \ | |
858805b3 | 163 | $(BASH) $(MKIMAGE) \ |
cf2a5e0b PB |
164 | -D "-I dts -O dtb -p 500 \ |
165 | --include $(objtree)/arch/mips \ | |
166 | --warning no-unit_address_vs_reg" \ | |
167 | -f $(2) $@ | |
168 | ||
169 | $(obj)/vmlinux.itb: $(obj)/vmlinux.its $(obj)/vmlinux.bin FORCE | |
170 | $(call if_changed,itb-image,$<) | |
171 | ||
be462bd9 | 172 | $(obj)/vmlinux.%.itb: $(obj)/vmlinux.%.its $(obj)/vmlinux.bin.% FORCE |
cf2a5e0b | 173 | $(call if_changed,itb-image,$<) |