1# 2# arch/alpha/boot/Makefile 3# 4# This file is subject to the terms and conditions of the GNU General Public 5# License. See the file "COPYING" in the main directory of this archive 6# for more details. 7# 8# Copyright (C) 1994 by Linus Torvalds 9# 10 11hostprogs-y := tools/mkbb tools/objstrip 12targets := vmlinux.gz vmlinux \ 13 vmlinux.nh tools/lxboot tools/bootlx tools/bootph \ 14 tools/bootpzh bootloader bootpheader bootpzheader 15OBJSTRIP := $(obj)/tools/objstrip 16 17# SRM bootable image. Copy to offset 512 of a partition. 18$(obj)/bootimage: $(addprefix $(obj)/tools/,mkbb lxboot bootlx) $(obj)/vmlinux.nh 19 ( cat $(obj)/tools/lxboot $(obj)/tools/bootlx $(obj)/vmlinux.nh ) > $@ 20 $(obj)/tools/mkbb $@ $(obj)/tools/lxboot 21 @echo ' Bootimage $@ is ready' 22 23# BOOTP bootable image. Define INITRD during make to append initrd image. 24$(obj)/bootpfile: $(obj)/tools/bootph $(obj)/vmlinux.nh 25 cat $(obj)/tools/bootph $(obj)/vmlinux.nh > $@ 26ifdef INITRD 27 cat $(INITRD) >> $@ 28endif 29 30# Compressed kernel BOOTP bootable image. 31# Define INITRD during make to append initrd image. 32$(obj)/bootpzfile: $(obj)/tools/bootpzh $(obj)/vmlinux.nh.gz 33 cat $(obj)/tools/bootpzh $(obj)/vmlinux.nh.gz > $@ 34ifdef INITRD 35 cat $(INITRD) >> $@ 36endif 37 38# Compressed kernel image 39$(obj)/vmlinux.gz: $(obj)/vmlinux FORCE 40 $(call if_changed,gzip) 41 @echo ' Kernel $@ is ready' 42 43$(obj)/main.o: $(obj)/ksize.h 44$(obj)/bootp.o: $(obj)/ksize.h 45$(obj)/bootpz.o: $(obj)/kzsize.h 46 47$(obj)/ksize.h: $(obj)/vmlinux.nh FORCE 48 echo "#define KERNEL_SIZE `ls -l $(obj)/vmlinux.nh | awk '{print $$5}'`" > $@T 49ifdef INITRD 50 [ -f $(INITRD) ] || exit 1 51 echo "#define INITRD_IMAGE_SIZE `ls -l $(INITRD) | awk '{print $$5}'`" >> $@T 52endif 53 cmp -s $@T $@ || mv -f $@T $@ 54 rm -f $@T 55 56$(obj)/kzsize.h: $(obj)/vmlinux.nh.gz FORCE 57 echo "#define KERNEL_SIZE `ls -l $(obj)/vmlinux.nh | awk '{print $$5}'`" > $@T 58 echo "#define KERNEL_Z_SIZE `ls -l $(obj)/vmlinux.nh.gz | awk '{print $$5}'`" >> $@T 59ifdef INITRD 60 [ -f $(INITRD) ] || exit 1 61 echo "#define INITRD_IMAGE_SIZE `ls -l $(INITRD) | awk '{print $$5}'`" >> $@T 62endif 63 cmp -s $@T $@ || mv -f $@T $@ 64 rm -f $@T 65 66quiet_cmd_strip = STRIP $@ 67 cmd_strip = $(STRIP) -o $@ $< 68 69$(obj)/vmlinux: vmlinux FORCE 70 $(call if_changed,strip) 71 72quiet_cmd_objstrip = OBJSTRIP $@ 73 cmd_objstrip = $(OBJSTRIP) $(OSFLAGS_$(@F)) $< $@ 74 75OSFLAGS_vmlinux.nh := -v 76OSFLAGS_lxboot := -p 77OSFLAGS_bootlx := -vb 78OSFLAGS_bootph := -vb 79OSFLAGS_bootpzh := -vb 80 81$(obj)/vmlinux.nh: vmlinux $(OBJSTRIP) FORCE 82 $(call if_changed,objstrip) 83 84$(obj)/vmlinux.nh.gz: $(obj)/vmlinux.nh FORCE 85 $(call if_changed,gzip) 86 87$(obj)/tools/lxboot: $(obj)/bootloader $(OBJSTRIP) FORCE 88 $(call if_changed,objstrip) 89 90$(obj)/tools/bootlx: $(obj)/bootloader $(OBJSTRIP) FORCE 91 $(call if_changed,objstrip) 92 93$(obj)/tools/bootph: $(obj)/bootpheader $(OBJSTRIP) FORCE 94 $(call if_changed,objstrip) 95 96$(obj)/tools/bootpzh: $(obj)/bootpzheader $(OBJSTRIP) FORCE 97 $(call if_changed,objstrip) 98 99LDFLAGS_bootloader := -static -uvsprintf -T #-N -relax 100LDFLAGS_bootpheader := -static -uvsprintf -T #-N -relax 101LDFLAGS_bootpzheader := -static -uvsprintf -T #-N -relax 102 103OBJ_bootlx := $(obj)/head.o $(obj)/main.o 104OBJ_bootph := $(obj)/head.o $(obj)/bootp.o 105OBJ_bootpzh := $(obj)/head.o $(obj)/bootpz.o $(obj)/misc.o 106 107$(obj)/bootloader: $(obj)/bootloader.lds $(OBJ_bootlx) $(LIBS_Y) FORCE 108 $(call if_changed,ld) 109 110$(obj)/bootpheader: $(obj)/bootloader.lds $(OBJ_bootph) $(LIBS_Y) FORCE 111 $(call if_changed,ld) 112 113$(obj)/bootpzheader: $(obj)/bootloader.lds $(OBJ_bootpzh) $(LIBS_Y) FORCE 114 $(call if_changed,ld) 115 116$(obj)/misc.o: lib/inflate.c 117