1 # 1 # 2 # arch/arm/boot/Makefile !! 2 # arch/alpha/boot/Makefile 3 # << 4 # This file is included by the global makefile << 5 # architecture-specific flags and dependencies << 6 # 3 # 7 # This file is subject to the terms and condit 4 # This file is subject to the terms and conditions of the GNU General Public 8 # License. See the file "COPYING" in the main 5 # License. See the file "COPYING" in the main directory of this archive 9 # for more details. 6 # for more details. 10 # 7 # 11 # Copyright (C) 1995-2002 Russell King !! 8 # Copyright (C) 1994 by Linus Torvalds 12 # 9 # 13 OBJCOPYFLAGS :=-O binary -R .comment -S << 14 10 15 # ZRELADDR == virt_to_phys(PAGE_OFFSET + TEX !! 11 hostprogs := tools/mkbb tools/objstrip 16 ifdef CONFIG_PHYS_OFFSET !! 12 targets := vmlinux.gz vmlinux \ 17 add_hex = $(shell printf 0x%x $$(( $(1) + $(2) !! 13 vmlinux.nh tools/lxboot tools/bootlx tools/bootph \ 18 ZRELADDR := $(call add_hex, $(CONFIG_PHYS_O !! 14 tools/bootpzh bootloader bootpheader bootpzheader >> 15 OBJSTRIP := $(obj)/tools/objstrip >> 16 >> 17 KBUILD_HOSTCFLAGS := -Wall -I$(objtree)/usr/include >> 18 BOOTCFLAGS += -I$(objtree)/$(obj) -I$(srctree)/$(obj) >> 19 >> 20 # SRM bootable image. Copy to offset 512 of a partition. >> 21 $(obj)/bootimage: $(addprefix $(obj)/tools/,mkbb lxboot bootlx) $(obj)/vmlinux.nh >> 22 ( cat $(obj)/tools/lxboot $(obj)/tools/bootlx $(obj)/vmlinux.nh ) > $@ >> 23 $(obj)/tools/mkbb $@ $(obj)/tools/lxboot >> 24 @echo ' Bootimage $@ is ready' >> 25 >> 26 # BOOTP bootable image. Define INITRD during make to append initrd image. >> 27 $(obj)/bootpfile: $(obj)/tools/bootph $(obj)/vmlinux.nh >> 28 cat $(obj)/tools/bootph $(obj)/vmlinux.nh > $@ >> 29 ifdef INITRD >> 30 cat $(INITRD) >> $@ >> 31 endif >> 32 >> 33 # Compressed kernel BOOTP bootable image. >> 34 # Define INITRD during make to append initrd image. >> 35 $(obj)/bootpzfile: $(obj)/tools/bootpzh $(obj)/vmlinux.nh.gz >> 36 cat $(obj)/tools/bootpzh $(obj)/vmlinux.nh.gz > $@ >> 37 ifdef INITRD >> 38 cat $(INITRD) >> $@ 19 endif 39 endif 20 40 21 PHYS_OFFSET := $(CONFIG_PHYS_OFFSET) !! 41 # Compressed kernel image 22 export ZRELADDR PARAMS_PHYS PHYS_OFFSET !! 42 $(obj)/vmlinux.gz: $(obj)/vmlinux FORCE >> 43 $(call if_changed,gzip) >> 44 @echo ' Kernel $@ is ready' >> 45 >> 46 $(obj)/main.o: $(obj)/ksize.h >> 47 $(obj)/bootp.o: $(obj)/ksize.h >> 48 $(obj)/bootpz.o: $(obj)/kzsize.h >> 49 >> 50 $(obj)/ksize.h: $(obj)/vmlinux.nh FORCE >> 51 echo "#define KERNEL_SIZE `ls -l $(obj)/vmlinux.nh | awk '{print $$5}'`" > $@T >> 52 ifdef INITRD >> 53 [ -f $(INITRD) ] || exit 1 >> 54 echo "#define INITRD_IMAGE_SIZE `ls -l $(INITRD) | awk '{print $$5}'`" >> $@T >> 55 endif >> 56 cmp -s $@T $@ || mv -f $@T $@ >> 57 rm -f $@T 23 58 24 targets := Image zImage xipImage bootpImage uI !! 59 $(obj)/kzsize.h: $(obj)/vmlinux.nh.gz FORCE >> 60 echo "#define KERNEL_SIZE `ls -l $(obj)/vmlinux.nh | awk '{print $$5}'`" > $@T >> 61 echo "#define KERNEL_Z_SIZE `ls -l $(obj)/vmlinux.nh.gz | awk '{print $$5}'`" >> $@T >> 62 ifdef INITRD >> 63 [ -f $(INITRD) ] || exit 1 >> 64 echo "#define INITRD_IMAGE_SIZE `ls -l $(INITRD) | awk '{print $$5}'`" >> $@T >> 65 endif >> 66 cmp -s $@T $@ || mv -f $@T $@ >> 67 rm -f $@T 25 68 26 ifeq ($(CONFIG_XIP_KERNEL),y) !! 69 quiet_cmd_strip = STRIP $@ >> 70 cmd_strip = $(STRIP) -o $@ $< 27 71 28 cmd_deflate_xip_data = $(CONFIG_SHELL) -c '$(s !! 72 $(obj)/vmlinux: vmlinux FORCE >> 73 $(call if_changed,strip) 29 74 30 ifeq ($(CONFIG_XIP_DEFLATED_DATA),y) !! 75 quiet_cmd_objstrip = OBJSTRIP $@ 31 quiet_cmd_mkxip = XIPZ $@ !! 76 cmd_objstrip = $(OBJSTRIP) $(OSFLAGS_$(@F)) $< $@ 32 cmd_mkxip = $(cmd_objcopy) && $(cmd_deflate_xi << 33 else << 34 quiet_cmd_mkxip = $(quiet_cmd_objcopy) << 35 cmd_mkxip = $(cmd_objcopy) << 36 endif << 37 77 38 $(obj)/xipImage: vmlinux FORCE !! 78 OSFLAGS_vmlinux.nh := -v 39 $(call if_changed,mkxip) !! 79 OSFLAGS_lxboot := -p 40 @$(kecho) ' Physical Address of xipIm !! 80 OSFLAGS_bootlx := -vb >> 81 OSFLAGS_bootph := -vb >> 82 OSFLAGS_bootpzh := -vb 41 83 42 $(obj)/Image $(obj)/zImage: FORCE !! 84 $(obj)/vmlinux.nh: vmlinux $(OBJSTRIP) FORCE 43 @echo 'Kernel configured for XIP (CONF !! 85 $(call if_changed,objstrip) 44 @echo 'Only the xipImage target is ava << 45 @false << 46 86 47 else !! 87 $(obj)/vmlinux.nh.gz: $(obj)/vmlinux.nh FORCE >> 88 $(call if_changed,gzip) 48 89 49 $(obj)/xipImage: FORCE !! 90 $(obj)/tools/lxboot: $(obj)/bootloader $(OBJSTRIP) FORCE 50 @echo 'Kernel not configured for XIP ( !! 91 $(call if_changed,objstrip) 51 @false << 52 92 53 $(obj)/Image: vmlinux FORCE !! 93 $(obj)/tools/bootlx: $(obj)/bootloader $(OBJSTRIP) FORCE 54 $(call if_changed,objcopy) !! 94 $(call if_changed,objstrip) 55 95 56 $(obj)/compressed/vmlinux: $(obj)/Image FORCE !! 96 $(obj)/tools/bootph: $(obj)/bootpheader $(OBJSTRIP) FORCE 57 $(Q)$(MAKE) $(build)=$(obj)/compressed !! 97 $(call if_changed,objstrip) 58 98 59 $(obj)/zImage: $(obj)/compressed/vmlinux FORC !! 99 $(obj)/tools/bootpzh: $(obj)/bootpzheader $(OBJSTRIP) FORCE 60 $(call if_changed,objcopy) !! 100 $(call if_changed,objstrip) 61 101 62 endif !! 102 LDFLAGS_bootloader := -static -T # -N -relax >> 103 LDFLAGS_bootloader := -static -T # -N -relax >> 104 LDFLAGS_bootpheader := -static -T # -N -relax >> 105 LDFLAGS_bootpzheader := -static -T # -N -relax 63 106 64 ifneq ($(LOADADDR),) !! 107 OBJ_bootlx := $(obj)/head.o $(obj)/stdio.o $(obj)/main.o 65 UIMAGE_LOADADDR=$(LOADADDR) !! 108 OBJ_bootph := $(obj)/head.o $(obj)/stdio.o $(obj)/bootp.o 66 else !! 109 OBJ_bootpzh := $(obj)/head.o $(obj)/stdio.o $(obj)/bootpz.o $(obj)/misc.o 67 ifeq ($(CONFIG_ZBOOT_ROM),y) << 68 UIMAGE_LOADADDR=$(CONFIG_ZBOOT_ROM_TEXT) << 69 else << 70 UIMAGE_LOADADDR=$(ZRELADDR) << 71 endif << 72 endif << 73 110 74 check_for_multiple_loadaddr = \ !! 111 $(obj)/bootloader: $(obj)/bootloader.lds $(OBJ_bootlx) $(LIBS_Y) FORCE 75 if [ $(words $(UIMAGE_LOADADDR)) -ne 1 ]; then !! 112 $(call if_changed,ld) 76 echo 'multiple (or no) load addresses: << 77 echo 'This is incompatible with uImage << 78 echo 'Specify LOADADDR on the commandl << 79 false; \ << 80 fi << 81 << 82 $(obj)/uImage: $(obj)/zImage FORCE << 83 @$(check_for_multiple_loadaddr) << 84 $(call if_changed,uimage) << 85 113 86 $(obj)/bootp/bootp: $(obj)/zImage FORCE !! 114 $(obj)/bootpheader: $(obj)/bootloader.lds $(OBJ_bootph) $(LIBS_Y) FORCE 87 $(Q)$(MAKE) $(build)=$(obj)/bootp $@ !! 115 $(call if_changed,ld) 88 116 89 $(obj)/bootpImage: $(obj)/bootp/bootp FORCE !! 117 $(obj)/bootpzheader: $(obj)/bootloader.lds $(OBJ_bootpzh) $(LIBS_Y) FORCE 90 $(call if_changed,objcopy) !! 118 $(call if_changed,ld) 91 119 92 subdir- := bootp compressed dts !! 120 $(obj)/misc.o: lib/inflate.c
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.