1 # 1 # 2 # arch/sh/boot/Makefile !! 2 # arch/ppc/boot/Makefile 3 # 3 # 4 # This file is subject to the terms and condit 4 # This file is subject to the terms and conditions of the GNU General Public 5 # License. See the file "COPYING" in the main 5 # License. See the file "COPYING" in the main directory of this archive 6 # for more details. 6 # for more details. 7 # 7 # 8 # Copyright (C) 1999 Stuart Menefy !! 8 # Copyright (C) 1994 by Linus Torvalds >> 9 # Adapted for PowerPC by Gary Thomas >> 10 # modified by Cort (cort@cs.nmt.edu) 9 # 11 # 10 12 11 # !! 13 GZIP_FLAGS = -v9f 12 # Assign safe dummy values if these variables << 13 # in order to suppress error message. << 14 # << 15 CONFIG_PAGE_OFFSET ?= 0x80000000 << 16 CONFIG_MEMORY_START ?= 0x0c000000 << 17 CONFIG_BOOT_LINK_OFFSET ?= 0x00800000 << 18 CONFIG_ZERO_PAGE_OFFSET ?= 0x00001000 << 19 CONFIG_ENTRY_OFFSET ?= 0x00001000 << 20 CONFIG_PHYSICAL_START ?= $(CONFIG_MEMORY_STA << 21 << 22 suffix_y := bin << 23 suffix_$(CONFIG_KERNEL_GZIP) := gz << 24 suffix_$(CONFIG_KERNEL_BZIP2) := bz2 << 25 suffix_$(CONFIG_KERNEL_LZMA) := lzma << 26 suffix_$(CONFIG_KERNEL_XZ) := xz << 27 suffix_$(CONFIG_KERNEL_LZO) := lzo << 28 << 29 targets := zImage vmlinux.srec romImage uImage << 30 uImage.bz2 uImage.lzma uImage.xz uI << 31 vmlinux.bin vmlinux.bin.gz vmlinux. << 32 vmlinux.bin.xz vmlinux.bin.lzo << 33 subdir- := compressed romimage << 34 << 35 $(obj)/zImage: $(obj)/compressed/vmlinux FORCE << 36 $(call if_changed,objcopy) << 37 @echo ' Kernel: $@ is ready' << 38 << 39 $(obj)/compressed/vmlinux: FORCE << 40 $(Q)$(MAKE) $(build)=$(obj)/compressed << 41 << 42 $(obj)/romImage: $(obj)/romimage/vmlinux FORCE << 43 $(call if_changed,objcopy) << 44 @echo ' Kernel: $@ is ready' << 45 << 46 $(obj)/romimage/vmlinux: $(obj)/zImage FORCE << 47 $(Q)$(MAKE) $(build)=$(obj)/romimage $ << 48 << 49 KERNEL_MEMORY := $(shell /bin/bash -c 'print << 50 $$[$(CONFIG_PHYSICAL_STAR << 51 << 52 KERNEL_LOAD := $(shell /bin/bash -c 'print << 53 $$[$(CONFIG_PAGE_OFFSET) << 54 $(KERNEL_MEMORY) + \ << 55 $(CONFIG_ZERO_PAGE_OFF << 56 << 57 KERNEL_ENTRY := $(shell /bin/bash -c 'print << 58 $$[$(CONFIG_PAGE_OFFSET) << 59 $(KERNEL_MEMORY) + \ << 60 $(CONFIG_ZERO_PAGE_OFF << 61 << 62 UIMAGE_LOADADDR = $(KERNEL_LOAD) << 63 UIMAGE_ENTRYADDR = $(KERNEL_ENTRY) << 64 << 65 $(obj)/vmlinux.bin: vmlinux FORCE << 66 $(call if_changed,objcopy) << 67 << 68 $(obj)/vmlinux.bin.gz: $(obj)/vmlinux.bin FORC << 69 $(call if_changed,gzip) << 70 << 71 $(obj)/vmlinux.bin.bz2: $(obj)/vmlinux.bin FOR << 72 $(call if_changed,bzip2) << 73 << 74 $(obj)/vmlinux.bin.lzma: $(obj)/vmlinux.bin FO << 75 $(call if_changed,lzma) << 76 << 77 $(obj)/vmlinux.bin.xz: $(obj)/vmlinux.bin FORC << 78 $(call if_changed,xzkern) << 79 << 80 $(obj)/vmlinux.bin.lzo: $(obj)/vmlinux.bin FOR << 81 $(call if_changed,lzo) << 82 << 83 $(obj)/uImage.bz2: $(obj)/vmlinux.bin.bz2 FORC << 84 $(call if_changed,uimage,bzip2) << 85 << 86 $(obj)/uImage.gz: $(obj)/vmlinux.bin.gz FORCE << 87 $(call if_changed,uimage,gzip) << 88 << 89 $(obj)/uImage.lzma: $(obj)/vmlinux.bin.lzma FO << 90 $(call if_changed,uimage,lzma) << 91 << 92 $(obj)/uImage.xz: $(obj)/vmlinux.bin.xz FORCE << 93 $(call if_changed,uimage,xz) << 94 << 95 $(obj)/uImage.lzo: $(obj)/vmlinux.bin.lzo FORC << 96 $(call if_changed,uimage,lzo) << 97 14 98 $(obj)/uImage.bin: $(obj)/vmlinux.bin FORCE !! 15 CFLAGS += -fno-builtin -D__BOOTER__ -I$(TOPDIR)/arch/$(ARCH)/boot/include 99 $(call if_changed,uimage,none) << 100 16 101 OBJCOPYFLAGS_vmlinux.srec := -I binary -O srec !! 17 AFLAGS += -D__BOOTER__ 102 $(obj)/vmlinux.srec: $(obj)/compressed/vmlinux !! 18 OBJCOPY_ARGS = -O elf32-powerpc 103 $(call if_changed,objcopy) << 104 19 105 OBJCOPYFLAGS_uImage.srec := -I binary -O srec !! 20 MKIMAGE := $(TOPDIR)/scripts/mkuboot.sh 106 $(obj)/uImage.srec: $(obj)/uImage FORCE << 107 $(call if_changed,objcopy) << 108 21 109 $(obj)/uImage: $(obj)/uImage.$(suffix_y) !! 22 lib/zlib.a: lib/zlib.c 110 @ln -sf $(notdir $<) $@ !! 23 $(MAKE) -C lib 111 @echo ' Image $@ is ready' !! 24 >> 25 images/vmlinux.gz: $(TOPDIR)/vmlinux >> 26 $(MAKE) -C images vmlinux.gz >> 27 >> 28 # Subdirs and tools needed for each. Assume we always need to go into >> 29 # 'simple' unless told otherwise. >> 30 subdir-y := lib common simple >> 31 subdir-$(CONFIG_ALL_PPC) := chrp pmac prep >> 32 tools-$(CONFIG_ALL_PPC) := addnote mknote hack-coff mkprep >> 33 tools-$(CONFIG_4xx) := mktree >> 34 tools-$(CONFIG_LOPEC) := mkbugboot mkprep >> 35 tools-$(CONFIG_PPLUS) := mkbugboot mkprep >> 36 tools-$(CONFIG_PRPMC750) := mkbugboot mkprep >> 37 tools-$(CONFIG_SPRUCE) := mktree >> 38 >> 39 # These are dirs we don't want to go into on BOOT_TARGETS. We have them for >> 40 # the 'depend' stage. >> 41 NONBOOT := lib common >> 42 >> 43 # These are the subdirs we want to use >> 44 BOOTDIRS = $(filter-out $(NONBOOT), $(subdir-y)) >> 45 >> 46 makeof1275: >> 47 $(MAKE) -C of1275 >> 48 >> 49 # This will make the tools we need. We do it like this to ensure that we use >> 50 # HOSTCC. -- Tom >> 51 maketools: >> 52 $(MAKE) -C utils $(tools-y) >> 53 >> 54 # The targets all boards support for boot images. >> 55 BOOT_TARGETS = zImage zImage.initrd znetboot znetboot.initrd >> 56 >> 57 $(BOOT_TARGETS): vmapus lib/zlib.a images/vmlinux.gz makeof1275 maketools >> 58 ifneq ($(BOOTDIRS),) >> 59 for d in $(BOOTDIRS); do $(MAKE) -C $$d $@; done >> 60 endif >> 61 >> 62 vmapus: $(TOPDIR)/vmlinux >> 63 ifdef CONFIG_APUS >> 64 $(STRIP) $(TOPDIR)/vmlinux -o images/vmapus >> 65 gzip $(GZIP_FLAGS) images/vmapus >> 66 endif >> 67 >> 68 # Make an image for PPCBoot / U-Boot. >> 69 uImage: $(MKIMAGE) images/vmlinux.gz >> 70 $(CONFIG_SHELL) $(MKIMAGE) -A ppc -O linux -T kernel \ >> 71 -C gzip -a 00000000 -e 00000000 \ >> 72 -n 'Linux-$(VERSION).$(PATCHLEVEL).$(SUBLEVEL)$(EXTRAVERSION)' \ >> 73 -d images/vmlinux.gz images/vmlinux.UBoot >> 74 ln -sf vmlinux.UBoot images/uImage >> 75 rm -f ./mkuboot >> 76 >> 77 # These are subdirs with files not normally rm'ed. -- Tom >> 78 clean: >> 79 $(MAKE) -C images clean >> 80 $(MAKE) -C utils clean 112 81 113 export CONFIG_PAGE_OFFSET CONFIG_MEMORY_START !! 82 include $(TOPDIR)/Rules.make 114 CONFIG_PHYSICAL_START CONFIG_ZERO_PAGE_ << 115 KERNEL_MEMORY suffix_y <<
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.