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