1 # 1 # 2 # arch/alpha/boot/Makefile 2 # arch/alpha/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 # 9 # >> 10 # Creating a compressed kernel image (arch/alpha/boot/vmlinux.gz) >> 11 # is done via: >> 12 # >> 13 # make boot >> 14 # >> 15 # Creating a BOOTP image (arch/alpha/boot/bootpfile or bootpzfile) >> 16 # is done via: >> 17 # >> 18 # make bootpfile # using an uncompressed kernel >> 19 # make bootpzfile # using a compressed kernel >> 20 # >> 21 # Adding an INITRD image to a BOOTP file (arch/alpha/boot/bootpzfile) >> 22 # can be done, e.g, via: >> 23 # >> 24 # INITRD=`pwd`/initrd.img make bootpzfile >> 25 >> 26 LINKFLAGS = -static -T bootloader.lds #-N -relax >> 27 >> 28 .S.s: >> 29 $(CPP) $(AFLAGS) -traditional -o $*.o $< >> 30 .S.o: >> 31 $(CC) $(AFLAGS) -traditional -c -o $*.o $< >> 32 >> 33 OBJECTS = head.o main.o >> 34 BPOBJECTS = head.o bootp.o >> 35 BPZOBJECTS = head.o bootpz.o misc.o >> 36 TARGETS = vmlinux.gz tools/objstrip # also needed by aboot & milo >> 37 VMLINUX = $(TOPDIR)/vmlinux >> 38 OBJSTRIP = tools/objstrip >> 39 >> 40 all: $(TARGETS) >> 41 @echo Ready to install kernel in $(shell pwd)/vmlinux.gz >> 42 >> 43 # normally no need to build these: >> 44 rawboot: vmlinux.nh tools/lxboot tools/bootlx >> 45 >> 46 msb: tools/lxboot tools/bootlx vmlinux.nh >> 47 ( cat tools/lxboot tools/bootlx vmlinux.nh ) > /dev/rz0a >> 48 disklabel -rw rz0 'linux' tools/lxboot tools/bootlx >> 49 >> 50 bootimage: tools/mkbb tools/lxboot tools/bootlx vmlinux.nh >> 51 ( cat tools/lxboot tools/bootlx vmlinux.nh ) > bootimage >> 52 tools/mkbb bootimage tools/lxboot 10 53 11 hostprogs := tools/mkbb tools/objstrip !! 54 bootpfile: tools/bootph vmlinux.nh 12 targets := vmlinux.gz vmlinux \ !! 55 cat tools/bootph vmlinux.nh > bootpfile 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 56 ifdef INITRD 30 cat $(INITRD) >> $@ !! 57 cat $(INITRD) >> bootpfile 31 endif 58 endif 32 59 33 # Compressed kernel BOOTP bootable image. !! 60 bootpzfile: tools/bootpzh vmlinux.nh.gz 34 # Define INITRD during make to append initrd i !! 61 cat tools/bootpzh vmlinux.nh.gz > bootpzfile 35 $(obj)/bootpzfile: $(obj)/tools/bootpzh $(obj) << 36 cat $(obj)/tools/bootpzh $(obj)/vmlinu << 37 ifdef INITRD 62 ifdef INITRD 38 cat $(INITRD) >> $@ !! 63 cat $(INITRD) >> bootpzfile 39 endif 64 endif 40 65 41 # Compressed kernel image !! 66 srmboot: bootdevice bootimage 42 $(obj)/vmlinux.gz: $(obj)/vmlinux FORCE !! 67 dd if=bootimage of=$(BOOTDEV) bs=512 seek=1 skip=1 43 $(call if_changed,gzip) !! 68 tools/mkbb $(BOOTDEV) tools/lxboot 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 69 50 $(obj)/ksize.h: $(obj)/vmlinux.nh FORCE !! 70 bootdevice: 51 echo "#define KERNEL_SIZE `ls -l $(obj !! 71 @test "$(BOOTDEV)" != "" || (echo You must specify BOOTDEV ; exit -1) >> 72 >> 73 vmlinux.gz: $(TOPDIR)/vmlinux >> 74 gzip -fv9c $(TOPDIR)/vmlinux > vmlinux.gz >> 75 >> 76 vmlinux.nh.gz: vmlinux.nh >> 77 gzip -fv9c vmlinux.nh > vmlinux.nh.gz >> 78 >> 79 main.o: ksize.h >> 80 >> 81 bootp.o: ksize.h >> 82 >> 83 bootpz.o: kzsize.h >> 84 >> 85 ksize.h: vmlinux.nh dummy >> 86 echo "#define KERNEL_SIZE `ls -l vmlinux.nh | awk '{print $$5}'`" > $@T 52 ifdef INITRD 87 ifdef INITRD 53 [ -f $(INITRD) ] || exit 1 !! 88 [ ! \( -f $(INITRD) \) ] || exit 1 54 echo "#define INITRD_IMAGE_SIZE `ls -l 89 echo "#define INITRD_IMAGE_SIZE `ls -l $(INITRD) | awk '{print $$5}'`" >> $@T 55 endif 90 endif 56 cmp -s $@T $@ || mv -f $@T $@ 91 cmp -s $@T $@ || mv -f $@T $@ 57 rm -f $@T 92 rm -f $@T 58 93 59 $(obj)/kzsize.h: $(obj)/vmlinux.nh.gz FORCE !! 94 kzsize.h: vmlinux.nh.gz dummy 60 echo "#define KERNEL_SIZE `ls -l $(obj !! 95 echo "#define KERNEL_SIZE `ls -l vmlinux.nh | awk '{print $$5}'`" > $@T 61 echo "#define KERNEL_Z_SIZE `ls -l $(o !! 96 echo "#define KERNEL_Z_SIZE `ls -l vmlinux.nh.gz | awk '{print $$5}'`" >> $@T 62 ifdef INITRD 97 ifdef INITRD 63 [ -f $(INITRD) ] || exit 1 98 [ -f $(INITRD) ] || exit 1 64 echo "#define INITRD_IMAGE_SIZE `ls -l 99 echo "#define INITRD_IMAGE_SIZE `ls -l $(INITRD) | awk '{print $$5}'`" >> $@T 65 endif 100 endif 66 cmp -s $@T $@ || mv -f $@T $@ 101 cmp -s $@T $@ || mv -f $@T $@ 67 rm -f $@T 102 rm -f $@T 68 103 69 quiet_cmd_strip = STRIP $@ !! 104 vmlinux.nh: $(VMLINUX) $(OBJSTRIP) 70 cmd_strip = $(STRIP) -o $@ $< !! 105 $(OBJSTRIP) -v $(VMLINUX) vmlinux.nh 71 << 72 $(obj)/vmlinux: vmlinux FORCE << 73 $(call if_changed,strip) << 74 106 75 quiet_cmd_objstrip = OBJSTRIP $@ !! 107 vmlinux: $(VMLINUX) 76 cmd_objstrip = $(OBJSTRIP) $(OSFLAGS_$(@ !! 108 $(STRIP) -o vmlinux $(VMLINUX) 77 109 78 OSFLAGS_vmlinux.nh := -v !! 110 tools/lxboot: $(OBJSTRIP) bootloader 79 OSFLAGS_lxboot := -p !! 111 $(OBJSTRIP) -p bootloader tools/lxboot 80 OSFLAGS_bootlx := -vb << 81 OSFLAGS_bootph := -vb << 82 OSFLAGS_bootpzh := -vb << 83 112 84 $(obj)/vmlinux.nh: vmlinux $(OBJSTRIP) FORCE !! 113 tools/bootlx: bootloader $(OBJSTRIP) 85 $(call if_changed,objstrip) !! 114 $(OBJSTRIP) -vb bootloader tools/bootlx 86 115 87 $(obj)/vmlinux.nh.gz: $(obj)/vmlinux.nh FORCE !! 116 tools/bootph: bootpheader $(OBJSTRIP) 88 $(call if_changed,gzip) !! 117 $(OBJSTRIP) -vb bootpheader tools/bootph 89 118 90 $(obj)/tools/lxboot: $(obj)/bootloader $(OBJST !! 119 tools/bootpzh: bootpzheader $(OBJSTRIP) 91 $(call if_changed,objstrip) !! 120 $(OBJSTRIP) -vb bootpzheader tools/bootpzh 92 121 93 $(obj)/tools/bootlx: $(obj)/bootloader $(OBJST !! 122 $(OBJSTRIP): $(OBJSTRIP).c 94 $(call if_changed,objstrip) !! 123 $(HOSTCC) $(HOSTCFLAGS) -I$(HPATH) $(OBJSTRIP).c -o $(OBJSTRIP) 95 124 96 $(obj)/tools/bootph: $(obj)/bootpheader $(OBJS !! 125 tools/mkbb: tools/mkbb.c 97 $(call if_changed,objstrip) !! 126 $(HOSTCC) tools/mkbb.c -o tools/mkbb 98 127 99 $(obj)/tools/bootpzh: $(obj)/bootpzheader $(OB !! 128 bootloader: $(OBJECTS) 100 $(call if_changed,objstrip) !! 129 $(LD) $(LINKFLAGS) $(OBJECTS) $(LIBS) -o bootloader 101 130 102 LDFLAGS_bootloader := -static -T # -N -relax !! 131 bootpheader: $(BPOBJECTS) 103 LDFLAGS_bootloader := -static -T # -N -relax !! 132 $(LD) $(LINKFLAGS) $(BPOBJECTS) $(LIBS) -o bootpheader 104 LDFLAGS_bootpheader := -static -T # -N -relax << 105 LDFLAGS_bootpzheader := -static -T # -N -relax << 106 133 107 OBJ_bootlx := $(obj)/head.o $(obj)/stdio.o $ !! 134 bootpzheader: $(BPZOBJECTS) 108 OBJ_bootph := $(obj)/head.o $(obj)/stdio.o $ !! 135 $(LD) $(LINKFLAGS) $(BPZOBJECTS) $(LIBS) -o bootpzheader 109 OBJ_bootpzh := $(obj)/head.o $(obj)/stdio.o $ << 110 136 111 $(obj)/bootloader: $(obj)/bootloader.lds $(OBJ !! 137 misc.o: misc.c $(TOPDIR)/lib/inflate.c 112 $(call if_changed,ld) << 113 138 114 $(obj)/bootpheader: $(obj)/bootloader.lds $(OB !! 139 clean: 115 $(call if_changed,ld) !! 140 rm -f $(TARGETS) bootloader bootimage bootpfile bootpheader >> 141 rm -f tools/mkbb tools/bootlx tools/lxboot tools/bootph >> 142 rm -f vmlinux.nh ksize.h 116 143 117 $(obj)/bootpzheader: $(obj)/bootloader.lds $(O !! 144 dep: 118 $(call if_changed,ld) << 119 145 120 $(obj)/misc.o: lib/inflate.c !! 146 dummy:
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.