xref: /linux/arch/alpha/boot/Makefile (revision 742f62b63904cdc20a364a49d2861e32464a0af7)
11da177e4SLinus Torvalds#
21da177e4SLinus Torvalds# arch/alpha/boot/Makefile
31da177e4SLinus Torvalds#
41da177e4SLinus Torvalds# This file is subject to the terms and conditions of the GNU General Public
51da177e4SLinus Torvalds# License.  See the file "COPYING" in the main directory of this archive
61da177e4SLinus Torvalds# for more details.
71da177e4SLinus Torvalds#
81da177e4SLinus Torvalds# Copyright (C) 1994 by Linus Torvalds
91da177e4SLinus Torvalds#
101da177e4SLinus Torvalds
115f2fb52fSMasahiro Yamadahostprogs	:= tools/mkbb tools/objstrip
12*c437950dSMatt Turnertargets		:= vmlinuz vmlinux \
131da177e4SLinus Torvalds		   vmlinux.nh tools/lxboot tools/bootlx tools/bootph \
141da177e4SLinus Torvalds		   tools/bootpzh bootloader bootpheader bootpzheader
15*c437950dSMatt Turnersubdir-		:= compressed
161da177e4SLinus TorvaldsOBJSTRIP	:= $(obj)/tools/objstrip
171da177e4SLinus Torvalds
1896f14fe7SLaura AbbottKBUILD_HOSTCFLAGS := -Wall -I$(objtree)/usr/include
1958ab5e0cSArnd BergmannBOOTCFLAGS	+= -I$(objtree)/$(obj) -I$(srctree)/$(obj)
2023430603SHelge Deller
211da177e4SLinus Torvalds# SRM bootable image.  Copy to offset 512 of a partition.
221da177e4SLinus Torvalds$(obj)/bootimage: $(addprefix $(obj)/tools/,mkbb lxboot bootlx) $(obj)/vmlinux.nh
231da177e4SLinus Torvalds	( cat $(obj)/tools/lxboot $(obj)/tools/bootlx $(obj)/vmlinux.nh ) > $@
241da177e4SLinus Torvalds	$(obj)/tools/mkbb $@ $(obj)/tools/lxboot
251da177e4SLinus Torvalds	@echo '  Bootimage $@ is ready'
261da177e4SLinus Torvalds
271da177e4SLinus Torvalds# BOOTP bootable image.  Define INITRD during make to append initrd image.
281da177e4SLinus Torvalds$(obj)/bootpfile: $(obj)/tools/bootph $(obj)/vmlinux.nh
291da177e4SLinus Torvalds	cat $(obj)/tools/bootph $(obj)/vmlinux.nh > $@
301da177e4SLinus Torvaldsifdef INITRD
311da177e4SLinus Torvalds	cat $(INITRD) >> $@
321da177e4SLinus Torvaldsendif
331da177e4SLinus Torvalds
341da177e4SLinus Torvalds# Compressed kernel BOOTP bootable image.
351da177e4SLinus Torvalds# Define INITRD during make to append initrd image.
361da177e4SLinus Torvalds$(obj)/bootpzfile: $(obj)/tools/bootpzh $(obj)/vmlinux.nh.gz
371da177e4SLinus Torvalds	cat $(obj)/tools/bootpzh $(obj)/vmlinux.nh.gz > $@
381da177e4SLinus Torvaldsifdef INITRD
391da177e4SLinus Torvalds	cat $(INITRD) >> $@
401da177e4SLinus Torvaldsendif
411da177e4SLinus Torvalds
42*c437950dSMatt Turner# Self-extracting compressed kernel image: a small ELF stub (see
43*c437950dSMatt Turner# compressed/) with the real vmlinux linked in compressed, which aboot
44*c437950dSMatt Turner# loads and enters like a plain vmlinux.
45*c437950dSMatt Turner$(obj)/compressed/vmlinux: vmlinux FORCE
46*c437950dSMatt Turner	$(Q)$(MAKE) $(build)=$(obj)/compressed $@
47*c437950dSMatt Turner
48*c437950dSMatt Turner$(obj)/vmlinuz: $(obj)/compressed/vmlinux FORCE
49*c437950dSMatt Turner	$(call if_changed,copy)
501da177e4SLinus Torvalds	@echo '  Kernel $@ is ready'
511da177e4SLinus Torvalds
521da177e4SLinus Torvalds$(obj)/main.o: $(obj)/ksize.h
531da177e4SLinus Torvalds$(obj)/bootp.o: $(obj)/ksize.h
541da177e4SLinus Torvalds$(obj)/bootpz.o: $(obj)/kzsize.h
551da177e4SLinus Torvalds
561da177e4SLinus Torvalds$(obj)/ksize.h: $(obj)/vmlinux.nh FORCE
571da177e4SLinus Torvalds	echo "#define KERNEL_SIZE `ls -l $(obj)/vmlinux.nh | awk '{print $$5}'`" > $@T
581da177e4SLinus Torvaldsifdef INITRD
591da177e4SLinus Torvalds	[ -f $(INITRD) ] || exit 1
601da177e4SLinus Torvalds	echo "#define INITRD_IMAGE_SIZE `ls -l $(INITRD) | awk '{print $$5}'`" >> $@T
611da177e4SLinus Torvaldsendif
621da177e4SLinus Torvalds	cmp -s $@T $@ || mv -f $@T $@
631da177e4SLinus Torvalds	rm -f $@T
641da177e4SLinus Torvalds
651da177e4SLinus Torvalds$(obj)/kzsize.h: $(obj)/vmlinux.nh.gz FORCE
661da177e4SLinus Torvalds	echo "#define KERNEL_SIZE `ls -l $(obj)/vmlinux.nh | awk '{print $$5}'`" > $@T
671da177e4SLinus Torvalds	echo "#define KERNEL_Z_SIZE `ls -l $(obj)/vmlinux.nh.gz | awk '{print $$5}'`" >> $@T
681da177e4SLinus Torvaldsifdef INITRD
691da177e4SLinus Torvalds	[ -f $(INITRD) ] || exit 1
701da177e4SLinus Torvalds	echo "#define INITRD_IMAGE_SIZE `ls -l $(INITRD) | awk '{print $$5}'`" >> $@T
711da177e4SLinus Torvaldsendif
721da177e4SLinus Torvalds	cmp -s $@T $@ || mv -f $@T $@
731da177e4SLinus Torvalds	rm -f $@T
741da177e4SLinus Torvalds
751da177e4SLinus Torvaldsquiet_cmd_strip = STRIP  $@
761da177e4SLinus Torvalds      cmd_strip = $(STRIP) -o $@ $<
771da177e4SLinus Torvalds
781da177e4SLinus Torvalds$(obj)/vmlinux: vmlinux FORCE
791da177e4SLinus Torvalds	$(call if_changed,strip)
801da177e4SLinus Torvalds
811da177e4SLinus Torvaldsquiet_cmd_objstrip = OBJSTRIP $@
821da177e4SLinus Torvalds      cmd_objstrip = $(OBJSTRIP) $(OSFLAGS_$(@F)) $< $@
831da177e4SLinus Torvalds
841da177e4SLinus TorvaldsOSFLAGS_vmlinux.nh	:= -v
851da177e4SLinus TorvaldsOSFLAGS_lxboot		:= -p
861da177e4SLinus TorvaldsOSFLAGS_bootlx		:= -vb
871da177e4SLinus TorvaldsOSFLAGS_bootph		:= -vb
881da177e4SLinus TorvaldsOSFLAGS_bootpzh		:= -vb
891da177e4SLinus Torvalds
901da177e4SLinus Torvalds$(obj)/vmlinux.nh: vmlinux $(OBJSTRIP) FORCE
911da177e4SLinus Torvalds	$(call if_changed,objstrip)
921da177e4SLinus Torvalds
931da177e4SLinus Torvalds$(obj)/vmlinux.nh.gz: $(obj)/vmlinux.nh FORCE
941da177e4SLinus Torvalds	$(call if_changed,gzip)
951da177e4SLinus Torvalds
961da177e4SLinus Torvalds$(obj)/tools/lxboot: $(obj)/bootloader $(OBJSTRIP) FORCE
971da177e4SLinus Torvalds	$(call if_changed,objstrip)
981da177e4SLinus Torvalds
991da177e4SLinus Torvalds$(obj)/tools/bootlx: $(obj)/bootloader $(OBJSTRIP) FORCE
1001da177e4SLinus Torvalds	$(call if_changed,objstrip)
1011da177e4SLinus Torvalds
1021da177e4SLinus Torvalds$(obj)/tools/bootph: $(obj)/bootpheader $(OBJSTRIP) FORCE
1031da177e4SLinus Torvalds	$(call if_changed,objstrip)
1041da177e4SLinus Torvalds
1051da177e4SLinus Torvalds$(obj)/tools/bootpzh: $(obj)/bootpzheader $(OBJSTRIP) FORCE
1061da177e4SLinus Torvalds	$(call if_changed,objstrip)
1071da177e4SLinus Torvalds
10823430603SHelge DellerLDFLAGS_bootloader   := -static -T # -N -relax
10923430603SHelge DellerLDFLAGS_bootloader   := -static -T # -N -relax
11023430603SHelge DellerLDFLAGS_bootpheader  := -static -T # -N -relax
11123430603SHelge DellerLDFLAGS_bootpzheader := -static -T # -N -relax
1121da177e4SLinus Torvalds
11323430603SHelge DellerOBJ_bootlx   := $(obj)/head.o $(obj)/stdio.o $(obj)/main.o
11423430603SHelge DellerOBJ_bootph   := $(obj)/head.o $(obj)/stdio.o $(obj)/bootp.o
11523430603SHelge DellerOBJ_bootpzh  := $(obj)/head.o $(obj)/stdio.o $(obj)/bootpz.o $(obj)/misc.o
1161da177e4SLinus Torvalds
117135db3ebSMeelis Roos$(obj)/bootloader: $(obj)/bootloader.lds $(OBJ_bootlx) $(LIBS_Y) FORCE
1181da177e4SLinus Torvalds	$(call if_changed,ld)
1191da177e4SLinus Torvalds
1201da177e4SLinus Torvalds$(obj)/bootpheader: $(obj)/bootloader.lds $(OBJ_bootph) $(LIBS_Y) FORCE
1211da177e4SLinus Torvalds	$(call if_changed,ld)
1221da177e4SLinus Torvalds
1231da177e4SLinus Torvalds$(obj)/bootpzheader: $(obj)/bootloader.lds $(OBJ_bootpzh) $(LIBS_Y) FORCE
1241da177e4SLinus Torvalds	$(call if_changed,ld)
1251da177e4SLinus Torvalds
1261da177e4SLinus Torvalds$(obj)/misc.o: lib/inflate.c
127