1 # 1 # 2 # arch/alpha/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) 1994 by Linus Torvalds 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 hostprogs := tools/mkbb tools/objstrip !! 13 GZIP_FLAGS = -v9f 12 targets := vmlinux.gz vmlinux \ << 13 vmlinux.nh tools/lxboot too << 14 tools/bootpzh bootloader bo << 15 OBJSTRIP := $(obj)/tools/objstrip << 16 << 17 KBUILD_HOSTCFLAGS := -Wall -I$(objtree)/usr/in << 18 BOOTCFLAGS += -I$(objtree)/$(obj) -I$(src << 19 << 20 # SRM bootable image. Copy to offset 512 of a << 21 $(obj)/bootimage: $(addprefix $(obj)/tools/,mk << 22 ( cat $(obj)/tools/lxboot $(obj)/tools << 23 $(obj)/tools/mkbb $@ $(obj)/tools/lxbo << 24 @echo ' Bootimage $@ is ready' << 25 << 26 # BOOTP bootable image. Define INITRD during << 27 $(obj)/bootpfile: $(obj)/tools/bootph $(obj)/v << 28 cat $(obj)/tools/bootph $(obj)/vmlinux << 29 ifdef INITRD << 30 cat $(INITRD) >> $@ << 31 endif << 32 << 33 # Compressed kernel BOOTP bootable image. << 34 # Define INITRD during make to append initrd i << 35 $(obj)/bootpzfile: $(obj)/tools/bootpzh $(obj) << 36 cat $(obj)/tools/bootpzh $(obj)/vmlinu << 37 ifdef INITRD << 38 cat $(INITRD) >> $@ << 39 endif << 40 << 41 # Compressed kernel image << 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 << 52 ifdef INITRD << 53 [ -f $(INITRD) ] || exit 1 << 54 echo "#define INITRD_IMAGE_SIZE `ls -l << 55 endif << 56 cmp -s $@T $@ || mv -f $@T $@ << 57 rm -f $@T << 58 14 59 $(obj)/kzsize.h: $(obj)/vmlinux.nh.gz FORCE !! 15 CFLAGS += -fno-builtin -D__BOOTER__ -I$(TOPDIR)/arch/$(ARCH)/boot/include 60 echo "#define KERNEL_SIZE `ls -l $(obj << 61 echo "#define KERNEL_Z_SIZE `ls -l $(o << 62 ifdef INITRD << 63 [ -f $(INITRD) ] || exit 1 << 64 echo "#define INITRD_IMAGE_SIZE `ls -l << 65 endif << 66 cmp -s $@T $@ || mv -f $@T $@ << 67 rm -f $@T << 68 << 69 quiet_cmd_strip = STRIP $@ << 70 cmd_strip = $(STRIP) -o $@ $< << 71 << 72 $(obj)/vmlinux: vmlinux FORCE << 73 $(call if_changed,strip) << 74 16 75 quiet_cmd_objstrip = OBJSTRIP $@ !! 17 AFLAGS += -D__BOOTER__ 76 cmd_objstrip = $(OBJSTRIP) $(OSFLAGS_$(@ !! 18 OBJCOPY_ARGS = -O elf32-powerpc 77 19 78 OSFLAGS_vmlinux.nh := -v !! 20 MKIMAGE := $(TOPDIR)/scripts/mkuboot.sh 79 OSFLAGS_lxboot := -p << 80 OSFLAGS_bootlx := -vb << 81 OSFLAGS_bootph := -vb << 82 OSFLAGS_bootpzh := -vb << 83 21 84 $(obj)/vmlinux.nh: vmlinux $(OBJSTRIP) FORCE !! 22 lib/zlib.a: lib/zlib.c 85 $(call if_changed,objstrip) !! 23 $(MAKE) -C lib 86 24 87 $(obj)/vmlinux.nh.gz: $(obj)/vmlinux.nh FORCE !! 25 images/vmlinux.gz: $(TOPDIR)/vmlinux 88 $(call if_changed,gzip) !! 26 $(MAKE) -C images vmlinux.gz 89 27 90 $(obj)/tools/lxboot: $(obj)/bootloader $(OBJST !! 28 # Subdirs and tools needed for each. Assume we always need to go into 91 $(call if_changed,objstrip) !! 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 92 38 93 $(obj)/tools/bootlx: $(obj)/bootloader $(OBJST !! 39 # These are dirs we don't want to go into on BOOT_TARGETS. We have them for 94 $(call if_changed,objstrip) !! 40 # the 'depend' stage. >> 41 NONBOOT := lib common 95 42 96 $(obj)/tools/bootph: $(obj)/bootpheader $(OBJS !! 43 # These are the subdirs we want to use 97 $(call if_changed,objstrip) !! 44 BOOTDIRS = $(filter-out $(NONBOOT), $(subdir-y)) 98 45 99 $(obj)/tools/bootpzh: $(obj)/bootpzheader $(OB !! 46 makeof1275: 100 $(call if_changed,objstrip) !! 47 $(MAKE) -C of1275 101 48 102 LDFLAGS_bootloader := -static -T # -N -relax !! 49 # This will make the tools we need. We do it like this to ensure that we use 103 LDFLAGS_bootloader := -static -T # -N -relax !! 50 # HOSTCC. -- Tom 104 LDFLAGS_bootpheader := -static -T # -N -relax !! 51 maketools: 105 LDFLAGS_bootpzheader := -static -T # -N -relax !! 52 $(MAKE) -C utils $(tools-y) 106 53 107 OBJ_bootlx := $(obj)/head.o $(obj)/stdio.o $ !! 54 # The targets all boards support for boot images. 108 OBJ_bootph := $(obj)/head.o $(obj)/stdio.o $ !! 55 BOOT_TARGETS = zImage zImage.initrd znetboot znetboot.initrd 109 OBJ_bootpzh := $(obj)/head.o $(obj)/stdio.o $ << 110 56 111 $(obj)/bootloader: $(obj)/bootloader.lds $(OBJ !! 57 $(BOOT_TARGETS): vmapus lib/zlib.a images/vmlinux.gz makeof1275 maketools 112 $(call if_changed,ld) !! 58 ifneq ($(BOOTDIRS),) >> 59 for d in $(BOOTDIRS); do $(MAKE) -C $$d $@; done >> 60 endif 113 61 114 $(obj)/bootpheader: $(obj)/bootloader.lds $(OB !! 62 vmapus: $(TOPDIR)/vmlinux 115 $(call if_changed,ld) !! 63 ifdef CONFIG_APUS >> 64 $(STRIP) $(TOPDIR)/vmlinux -o images/vmapus >> 65 gzip $(GZIP_FLAGS) images/vmapus >> 66 endif 116 67 117 $(obj)/bootpzheader: $(obj)/bootloader.lds $(O !! 68 # Make an image for PPCBoot / U-Boot. 118 $(call if_changed,ld) !! 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 119 81 120 $(obj)/misc.o: lib/inflate.c !! 82 include $(TOPDIR)/Rules.make
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.