xref: /linux/arch/mips/boot/Makefile (revision 9d6b80faf9a5c47eaf10e9d5d0b6b911e902d21d)
11da177e4SLinus Torvalds#
21da177e4SLinus Torvalds# This file is subject to the terms and conditions of the GNU General Public
31da177e4SLinus Torvalds# License.  See the file "COPYING" in the main directory of this archive
41da177e4SLinus Torvalds# for more details.
51da177e4SLinus Torvalds#
61da177e4SLinus Torvalds# Copyright (C) 1995, 1998, 2001, 2002 by Ralf Baechle
71da177e4SLinus Torvalds# Copyright (C) 2004  Maciej W. Rozycki
81da177e4SLinus Torvalds#
91da177e4SLinus Torvalds
101da177e4SLinus Torvalds#
111da177e4SLinus Torvalds# Some DECstations need all possible sections of an ECOFF executable
121da177e4SLinus Torvalds#
131da177e4SLinus Torvaldsifdef CONFIG_MACH_DECSTATION
14961e196cSSam Ravnborg  e2eflag := -a
151da177e4SLinus Torvaldsendif
161da177e4SLinus Torvalds
171da177e4SLinus Torvalds#
181da177e4SLinus Torvalds# Drop some uninteresting sections in the kernel.
191da177e4SLinus Torvalds# This is only relevant for ELF kernels but doesn't hurt a.out
201da177e4SLinus Torvalds#
21961e196cSSam Ravnborgdrop-sections := .reginfo .mdebug .comment .note .pdr .options .MIPS.options
22961e196cSSam Ravnborgstrip-flags   := $(addprefix --remove-section=,$(drop-sections))
231da177e4SLinus Torvalds
24961e196cSSam Ravnborghostprogs-y := elf2ecoff
251da177e4SLinus Torvalds
26*9d6b80faSMarkos Chandrassuffix-y			:= bin
27*9d6b80faSMarkos Chandrassuffix-$(CONFIG_KERNEL_BZIP2)	:= bz2
28*9d6b80faSMarkos Chandrassuffix-$(CONFIG_KERNEL_GZIP)	:= gz
29*9d6b80faSMarkos Chandrassuffix-$(CONFIG_KERNEL_LZMA)	:= lzma
30*9d6b80faSMarkos Chandrassuffix-$(CONFIG_KERNEL_LZO)	:= lzo
31*9d6b80faSMarkos Chandras
32961e196cSSam Ravnborgtargets := vmlinux.ecoff
33961e196cSSam Ravnborgquiet_cmd_ecoff = ECOFF	  $@
34961e196cSSam Ravnborg      cmd_ecoff = $(obj)/elf2ecoff $(VMLINUX) $@ $(e2eflag)
35961e196cSSam Ravnborg$(obj)/vmlinux.ecoff: $(obj)/elf2ecoff $(VMLINUX) FORCE
36961e196cSSam Ravnborg	$(call if_changed,ecoff)
371da177e4SLinus Torvalds
38961e196cSSam Ravnborgtargets += vmlinux.bin
39961e196cSSam Ravnborgquiet_cmd_bin = OBJCOPY $@
40961e196cSSam Ravnborg      cmd_bin = $(OBJCOPY) -O binary $(strip-flags) $(VMLINUX) $@
41961e196cSSam Ravnborg$(obj)/vmlinux.bin: $(VMLINUX) FORCE
42961e196cSSam Ravnborg	$(call if_changed,bin)
431da177e4SLinus Torvalds
44961e196cSSam Ravnborgtargets += vmlinux.srec
45961e196cSSam Ravnborgquiet_cmd_srec = OBJCOPY $@
46961e196cSSam Ravnborg      cmd_srec = $(OBJCOPY) -S -O srec $(strip-flags) $(VMLINUX) $@
47961e196cSSam Ravnborg$(obj)/vmlinux.srec: $(VMLINUX) FORCE
48961e196cSSam Ravnborg	$(call if_changed,srec)
494defe455SJames Hogan
504defe455SJames HoganUIMAGE_LOADADDR  = $(VMLINUX_LOAD_ADDRESS)
514defe455SJames HoganUIMAGE_ENTRYADDR = $(VMLINUX_ENTRY_ADDRESS)
524defe455SJames Hogan
53*9d6b80faSMarkos Chandras#
54*9d6b80faSMarkos Chandras# Compressed vmlinux images
55*9d6b80faSMarkos Chandras#
56*9d6b80faSMarkos Chandras
57*9d6b80faSMarkos Chandrasextra-y += vmlinux.bin.bz2
58*9d6b80faSMarkos Chandrasextra-y += vmlinux.bin.gz
59*9d6b80faSMarkos Chandrasextra-y += vmlinux.bin.lzma
60*9d6b80faSMarkos Chandrasextra-y += vmlinux.bin.lzo
61*9d6b80faSMarkos Chandras
62*9d6b80faSMarkos Chandras$(obj)/vmlinux.bin.bz2: $(obj)/vmlinux.bin FORCE
63*9d6b80faSMarkos Chandras	$(call if_changed,bzip2)
64*9d6b80faSMarkos Chandras
654defe455SJames Hogan$(obj)/vmlinux.bin.gz: $(obj)/vmlinux.bin FORCE
664defe455SJames Hogan	$(call if_changed,gzip)
674defe455SJames Hogan
68*9d6b80faSMarkos Chandras$(obj)/vmlinux.bin.lzma: $(obj)/vmlinux.bin FORCE
69*9d6b80faSMarkos Chandras	$(call if_changed,lzma)
70*9d6b80faSMarkos Chandras
71*9d6b80faSMarkos Chandras$(obj)/vmlinux.bin.lzo: $(obj)/vmlinux.bin FORCE
72*9d6b80faSMarkos Chandras	$(call if_changed,lzo)
73*9d6b80faSMarkos Chandras
74*9d6b80faSMarkos Chandras#
75*9d6b80faSMarkos Chandras# Compressed u-boot images
76*9d6b80faSMarkos Chandras#
77*9d6b80faSMarkos Chandras
78*9d6b80faSMarkos Chandrastargets += uImage
79*9d6b80faSMarkos Chandrastargets += uImage.bin
80*9d6b80faSMarkos Chandrastargets += uImage.bz2
814defe455SJames Hogantargets += uImage.gz
82*9d6b80faSMarkos Chandrastargets += uImage.lzma
83*9d6b80faSMarkos Chandrastargets += uImage.lzo
84*9d6b80faSMarkos Chandras
85*9d6b80faSMarkos Chandras$(obj)/uImage.bin: $(obj)/vmlinux.bin FORCE
86*9d6b80faSMarkos Chandras	$(call if_changed,uimage,none)
87*9d6b80faSMarkos Chandras
88*9d6b80faSMarkos Chandras$(obj)/uImage.bz2: $(obj)/vmlinux.bin.bz2 FORCE
89*9d6b80faSMarkos Chandras	$(call if_changed,uimage,bzip2)
90*9d6b80faSMarkos Chandras
914defe455SJames Hogan$(obj)/uImage.gz: $(obj)/vmlinux.bin.gz FORCE
924defe455SJames Hogan	$(call if_changed,uimage,gzip)
934defe455SJames Hogan
94*9d6b80faSMarkos Chandras$(obj)/uImage.lzma: $(obj)/vmlinux.bin.lzma FORCE
95*9d6b80faSMarkos Chandras	$(call if_changed,uimage,lzma)
96*9d6b80faSMarkos Chandras
97*9d6b80faSMarkos Chandras$(obj)/uImage.lzo: $(obj)/vmlinux.bin.lzo FORCE
98*9d6b80faSMarkos Chandras	$(call if_changed,uimage,lzo)
99*9d6b80faSMarkos Chandras
100*9d6b80faSMarkos Chandras$(obj)/uImage: $(obj)/uImage.$(suffix-y)
1014defe455SJames Hogan	@ln -sf $(notdir $<) $@
1024defe455SJames Hogan	@echo '  Image $@ is ready'
103