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