blob: cd143887380a26da88e8372828dc586ce3ff7b31 [file] [log] [blame]
Linus Torvalds1da177e2005-04-16 15:20:36 -07001#
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
Meelis Roos135db3e2007-07-31 00:38:14 -0700107$(obj)/bootloader: $(obj)/bootloader.lds $(OBJ_bootlx) $(LIBS_Y) FORCE
Linus Torvalds1da177e2005-04-16 15:20:36 -0700108 $(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