xref: /openbmc/linux/arch/alpha/boot/Makefile (revision 1da177e4)
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