|  | # | 
|  | # This file is subject to the terms and conditions of the GNU General Public | 
|  | # License.  See the file "COPYING" in the main directory of this archive | 
|  | # for more details. | 
|  | # | 
|  | # Copyright (C) 1995, 1998, 2001, 2002 by Ralf Baechle | 
|  | # Copyright (C) 2004  Maciej W. Rozycki | 
|  | # | 
|  |  | 
|  | # | 
|  | # Some DECstations need all possible sections of an ECOFF executable | 
|  | # | 
|  | ifdef CONFIG_MACH_DECSTATION | 
|  | e2eflag := -a | 
|  | endif | 
|  |  | 
|  | # | 
|  | # Drop some uninteresting sections in the kernel. | 
|  | # This is only relevant for ELF kernels but doesn't hurt a.out | 
|  | # | 
|  | drop-sections := .reginfo .mdebug .comment .note .pdr .options .MIPS.options | 
|  | strip-flags   := $(addprefix --remove-section=,$(drop-sections)) | 
|  |  | 
|  | hostprogs-y := elf2ecoff | 
|  |  | 
|  | suffix-y			:= bin | 
|  | suffix-$(CONFIG_KERNEL_BZIP2)	:= bz2 | 
|  | suffix-$(CONFIG_KERNEL_GZIP)	:= gz | 
|  | suffix-$(CONFIG_KERNEL_LZMA)	:= lzma | 
|  | suffix-$(CONFIG_KERNEL_LZO)	:= lzo | 
|  |  | 
|  | targets := vmlinux.ecoff | 
|  | quiet_cmd_ecoff = ECOFF	  $@ | 
|  | cmd_ecoff = $(obj)/elf2ecoff $(VMLINUX) $@ $(e2eflag) | 
|  | $(obj)/vmlinux.ecoff: $(obj)/elf2ecoff $(VMLINUX) FORCE | 
|  | $(call if_changed,ecoff) | 
|  |  | 
|  | targets += vmlinux.bin | 
|  | quiet_cmd_bin = OBJCOPY $@ | 
|  | cmd_bin = $(OBJCOPY) -O binary $(strip-flags) $(VMLINUX) $@ | 
|  | $(obj)/vmlinux.bin: $(VMLINUX) FORCE | 
|  | $(call if_changed,bin) | 
|  |  | 
|  | targets += vmlinux.srec | 
|  | quiet_cmd_srec = OBJCOPY $@ | 
|  | cmd_srec = $(OBJCOPY) -S -O srec $(strip-flags) $(VMLINUX) $@ | 
|  | $(obj)/vmlinux.srec: $(VMLINUX) FORCE | 
|  | $(call if_changed,srec) | 
|  |  | 
|  | UIMAGE_LOADADDR  = $(VMLINUX_LOAD_ADDRESS) | 
|  | UIMAGE_ENTRYADDR = $(VMLINUX_ENTRY_ADDRESS) | 
|  |  | 
|  | # | 
|  | # Compressed vmlinux images | 
|  | # | 
|  |  | 
|  | extra-y += vmlinux.bin.bz2 | 
|  | extra-y += vmlinux.bin.gz | 
|  | extra-y += vmlinux.bin.lzma | 
|  | extra-y += vmlinux.bin.lzo | 
|  |  | 
|  | $(obj)/vmlinux.bin.bz2: $(obj)/vmlinux.bin FORCE | 
|  | $(call if_changed,bzip2) | 
|  |  | 
|  | $(obj)/vmlinux.bin.gz: $(obj)/vmlinux.bin FORCE | 
|  | $(call if_changed,gzip) | 
|  |  | 
|  | $(obj)/vmlinux.bin.lzma: $(obj)/vmlinux.bin FORCE | 
|  | $(call if_changed,lzma) | 
|  |  | 
|  | $(obj)/vmlinux.bin.lzo: $(obj)/vmlinux.bin FORCE | 
|  | $(call if_changed,lzo) | 
|  |  | 
|  | # | 
|  | # Compressed u-boot images | 
|  | # | 
|  |  | 
|  | targets += uImage | 
|  | targets += uImage.bin | 
|  | targets += uImage.bz2 | 
|  | targets += uImage.gz | 
|  | targets += uImage.lzma | 
|  | targets += uImage.lzo | 
|  |  | 
|  | $(obj)/uImage.bin: $(obj)/vmlinux.bin FORCE | 
|  | $(call if_changed,uimage,none) | 
|  |  | 
|  | $(obj)/uImage.bz2: $(obj)/vmlinux.bin.bz2 FORCE | 
|  | $(call if_changed,uimage,bzip2) | 
|  |  | 
|  | $(obj)/uImage.gz: $(obj)/vmlinux.bin.gz FORCE | 
|  | $(call if_changed,uimage,gzip) | 
|  |  | 
|  | $(obj)/uImage.lzma: $(obj)/vmlinux.bin.lzma FORCE | 
|  | $(call if_changed,uimage,lzma) | 
|  |  | 
|  | $(obj)/uImage.lzo: $(obj)/vmlinux.bin.lzo FORCE | 
|  | $(call if_changed,uimage,lzo) | 
|  |  | 
|  | $(obj)/uImage: $(obj)/uImage.$(suffix-y) | 
|  | @ln -sf $(notdir $<) $@ | 
|  | @echo '  Image $@ is ready' |