linux/arch/arm/boot/Makefile
<<
>>
Prefs
   1#
   2# arch/arm/boot/Makefile
   3#
   4# This file is included by the global makefile so that you can add your own
   5# architecture-specific flags and dependencies.
   6#
   7# This file is subject to the terms and conditions of the GNU General Public
   8# License.  See the file "COPYING" in the main directory of this archive
   9# for more details.
  10#
  11# Copyright (C) 1995-2002 Russell King
  12#
  13
  14OBJCOPYFLAGS    :=-O binary -R .comment -S
  15
  16ifneq ($(MACHINE),)
  17include $(MACHINE)/Makefile.boot
  18endif
  19
  20# Note: the following conditions must always be true:
  21#   ZRELADDR == virt_to_phys(PAGE_OFFSET + TEXT_OFFSET)
  22#   PARAMS_PHYS must be within 4MB of ZRELADDR
  23#   INITRD_PHYS must be in RAM
  24ZRELADDR    := $(zreladdr-y)
  25PARAMS_PHYS := $(params_phys-y)
  26INITRD_PHYS := $(initrd_phys-y)
  27
  28export ZRELADDR INITRD_PHYS PARAMS_PHYS
  29
  30targets := Image zImage xipImage bootpImage uImage
  31
  32ifeq ($(CONFIG_XIP_KERNEL),y)
  33
  34cmd_deflate_xip_data = $(CONFIG_SHELL) -c \
  35        '$(srctree)/$(src)/deflate_xip_data.sh $< $@'
  36
  37ifeq ($(CONFIG_XIP_DEFLATED_DATA),y)
  38quiet_cmd_mkxip = XIPZ    $@
  39cmd_mkxip = $(cmd_objcopy) && $(cmd_deflate_xip_data)
  40else
  41quiet_cmd_mkxip = $(quiet_cmd_objcopy)
  42cmd_mkxip = $(cmd_objcopy)
  43endif
  44
  45$(obj)/xipImage: vmlinux FORCE
  46        $(call if_changed,mkxip)
  47        @$(kecho) '  Physical Address of xipImage: $(CONFIG_XIP_PHYS_ADDR)'
  48
  49$(obj)/Image $(obj)/zImage: FORCE
  50        @echo 'Kernel configured for XIP (CONFIG_XIP_KERNEL=y)'
  51        @echo 'Only the xipImage target is available in this case'
  52        @false
  53
  54else
  55
  56$(obj)/xipImage: FORCE
  57        @echo 'Kernel not configured for XIP (CONFIG_XIP_KERNEL!=y)'
  58        @false
  59
  60$(obj)/Image: vmlinux FORCE
  61        $(call if_changed,objcopy)
  62
  63$(obj)/compressed/vmlinux: $(obj)/Image FORCE
  64        $(Q)$(MAKE) $(build)=$(obj)/compressed $@
  65
  66$(obj)/zImage:  $(obj)/compressed/vmlinux FORCE
  67        $(call if_changed,objcopy)
  68
  69endif
  70
  71ifneq ($(LOADADDR),)
  72  UIMAGE_LOADADDR=$(LOADADDR)
  73else
  74  ifeq ($(CONFIG_ZBOOT_ROM),y)
  75    UIMAGE_LOADADDR=$(CONFIG_ZBOOT_ROM_TEXT)
  76  else
  77    UIMAGE_LOADADDR=$(ZRELADDR)
  78  endif
  79endif
  80
  81check_for_multiple_loadaddr = \
  82if [ $(words $(UIMAGE_LOADADDR)) -ne 1 ]; then \
  83        echo 'multiple (or no) load addresses: $(UIMAGE_LOADADDR)'; \
  84        echo 'This is incompatible with uImages'; \
  85        echo 'Specify LOADADDR on the commandline to build an uImage'; \
  86        false; \
  87fi
  88
  89$(obj)/uImage:  $(obj)/zImage FORCE
  90        @$(check_for_multiple_loadaddr)
  91        $(call if_changed,uimage)
  92
  93$(obj)/bootp/bootp: $(obj)/zImage initrd FORCE
  94        $(Q)$(MAKE) $(build)=$(obj)/bootp $@
  95
  96$(obj)/bootpImage: $(obj)/bootp/bootp FORCE
  97        $(call if_changed,objcopy)
  98
  99PHONY += initrd install zinstall uinstall
 100initrd:
 101        @test "$(INITRD_PHYS)" != "" || \
 102        (echo This machine does not support INITRD; exit -1)
 103        @test "$(INITRD)" != "" || \
 104        (echo You must specify INITRD; exit -1)
 105
 106install:
 107        $(CONFIG_SHELL) $(srctree)/$(src)/install.sh "$(KERNELRELEASE)" \
 108        $(obj)/Image System.map "$(INSTALL_PATH)"
 109
 110zinstall:
 111        $(CONFIG_SHELL) $(srctree)/$(src)/install.sh "$(KERNELRELEASE)" \
 112        $(obj)/zImage System.map "$(INSTALL_PATH)"
 113
 114uinstall:
 115        $(CONFIG_SHELL) $(srctree)/$(src)/install.sh "$(KERNELRELEASE)" \
 116        $(obj)/uImage System.map "$(INSTALL_PATH)"
 117
 118subdir-     := bootp compressed dts
 119