linux/arch/mips/boot/Makefile
<<
>>
Prefs
   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#
  13ifdef CONFIG_MACH_DECSTATION
  14  e2eflag := -a
  15endif
  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#
  21drop-sections := .reginfo .mdebug .comment .note .pdr .options .MIPS.options
  22strip-flags   := $(addprefix --remove-section=,$(drop-sections))
  23
  24hostprogs-y := elf2ecoff
  25
  26suffix-y                        := bin
  27suffix-$(CONFIG_KERNEL_BZIP2)   := bz2
  28suffix-$(CONFIG_KERNEL_GZIP)    := gz
  29suffix-$(CONFIG_KERNEL_LZMA)    := lzma
  30suffix-$(CONFIG_KERNEL_LZO)     := lzo
  31
  32targets := vmlinux.ecoff
  33quiet_cmd_ecoff = ECOFF   $@
  34      cmd_ecoff = $(obj)/elf2ecoff $(VMLINUX) $@ $(e2eflag)
  35$(obj)/vmlinux.ecoff: $(obj)/elf2ecoff $(VMLINUX) FORCE
  36        $(call if_changed,ecoff)
  37
  38targets += vmlinux.bin
  39quiet_cmd_bin = OBJCOPY $@
  40      cmd_bin = $(OBJCOPY) -O binary $(strip-flags) $(VMLINUX) $@
  41$(obj)/vmlinux.bin: $(VMLINUX) FORCE
  42        $(call if_changed,bin)
  43
  44targets += vmlinux.srec
  45quiet_cmd_srec = OBJCOPY $@
  46      cmd_srec = $(OBJCOPY) -S -O srec $(strip-flags) $(VMLINUX) $@
  47$(obj)/vmlinux.srec: $(VMLINUX) FORCE
  48        $(call if_changed,srec)
  49
  50UIMAGE_LOADADDR  = $(VMLINUX_LOAD_ADDRESS)
  51UIMAGE_ENTRYADDR = $(VMLINUX_ENTRY_ADDRESS)
  52
  53#
  54# Compressed vmlinux images
  55#
  56
  57extra-y += vmlinux.bin.bz2
  58extra-y += vmlinux.bin.gz
  59extra-y += vmlinux.bin.lzma
  60extra-y += vmlinux.bin.lzo
  61
  62$(obj)/vmlinux.bin.bz2: $(obj)/vmlinux.bin FORCE
  63        $(call if_changed,bzip2)
  64
  65$(obj)/vmlinux.bin.gz: $(obj)/vmlinux.bin FORCE
  66        $(call if_changed,gzip)
  67
  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
  78targets += uImage
  79targets += uImage.bin
  80targets += uImage.bz2
  81targets += uImage.gz
  82targets += uImage.lzma
  83targets += 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
  91$(obj)/uImage.gz: $(obj)/vmlinux.bin.gz FORCE
  92        $(call if_changed,uimage,gzip)
  93
  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)
 101        @ln -sf $(notdir $<) $@
 102        @echo '  Image $@ is ready'
 103
 104#
 105# Flattened Image Tree (.itb) images
 106#
 107
 108targets += vmlinux.itb
 109targets += vmlinux.gz.itb
 110targets += vmlinux.bz2.itb
 111targets += vmlinux.lzma.itb
 112targets += vmlinux.lzo.itb
 113
 114ifeq ($(ADDR_BITS),32)
 115        itb_addr_cells = 1
 116endif
 117ifeq ($(ADDR_BITS),64)
 118        itb_addr_cells = 2
 119endif
 120
 121quiet_cmd_its_cat = CAT     $@
 122      cmd_its_cat = cat $^ >$@
 123
 124$(obj)/vmlinux.its.S: $(addprefix $(srctree)/arch/mips/$(PLATFORM)/,$(ITS_INPUTS))
 125        $(call if_changed,its_cat)
 126
 127quiet_cmd_cpp_its_S = ITS     $@
 128      cmd_cpp_its_S = $(CPP) $(cpp_flags) -P -C -o $@ $< \
 129                        -D__ASSEMBLY__ \
 130                        -DKERNEL_NAME="\"Linux $(KERNELRELEASE)\"" \
 131                        -DVMLINUX_BINARY="\"$(3)\"" \
 132                        -DVMLINUX_COMPRESSION="\"$(2)\"" \
 133                        -DVMLINUX_LOAD_ADDRESS=$(VMLINUX_LOAD_ADDRESS) \
 134                        -DVMLINUX_ENTRY_ADDRESS=$(VMLINUX_ENTRY_ADDRESS) \
 135                        -DADDR_BITS=$(ADDR_BITS) \
 136                        -DADDR_CELLS=$(itb_addr_cells)
 137
 138$(obj)/vmlinux.its: $(obj)/vmlinux.its.S $(VMLINUX) FORCE
 139        $(call if_changed_dep,cpp_its_S,none,vmlinux.bin)
 140
 141$(obj)/vmlinux.gz.its: $(obj)/vmlinux.its.S $(VMLINUX) FORCE
 142        $(call if_changed_dep,cpp_its_S,gzip,vmlinux.bin.gz)
 143
 144$(obj)/vmlinux.bz2.its: $(obj)/vmlinux.its.S $(VMLINUX)  FORCE
 145        $(call if_changed_dep,cpp_its_S,bzip2,vmlinux.bin.bz2)
 146
 147$(obj)/vmlinux.lzma.its: $(obj)/vmlinux.its.S $(VMLINUX) FORCE
 148        $(call if_changed_dep,cpp_its_S,lzma,vmlinux.bin.lzma)
 149
 150$(obj)/vmlinux.lzo.its: $(obj)/vmlinux.its.S $(VMLINUX) FORCE
 151        $(call if_changed_dep,cpp_its_S,lzo,vmlinux.bin.lzo)
 152
 153quiet_cmd_itb-image = ITB     $@
 154      cmd_itb-image = \
 155                env PATH="$(objtree)/scripts/dtc:$(PATH)" \
 156                $(CONFIG_SHELL) $(MKIMAGE) \
 157                -D "-I dts -O dtb -p 500 \
 158                        --include $(objtree)/arch/mips \
 159                        --warning no-unit_address_vs_reg" \
 160                -f $(2) $@
 161
 162$(obj)/vmlinux.itb: $(obj)/vmlinux.its $(obj)/vmlinux.bin FORCE
 163        $(call if_changed,itb-image,$<)
 164
 165$(obj)/vmlinux.gz.itb: $(obj)/vmlinux.gz.its $(obj)/vmlinux.bin.gz FORCE
 166        $(call if_changed,itb-image,$<)
 167
 168$(obj)/vmlinux.bz2.itb: $(obj)/vmlinux.bz2.its $(obj)/vmlinux.bin.bz2 FORCE
 169        $(call if_changed,itb-image,$<)
 170
 171$(obj)/vmlinux.lzma.itb: $(obj)/vmlinux.lzma.its $(obj)/vmlinux.bin.lzma FORCE
 172        $(call if_changed,itb-image,$<)
 173
 174$(obj)/vmlinux.lzo.itb: $(obj)/vmlinux.lzo.its $(obj)/vmlinux.bin.lzo FORCE
 175        $(call if_changed,itb-image,$<)
 176