blob: cc28da3a881e12015aad5a63f2d88ce0a9afd0af [file] [log] [blame]
Linus Torvalds1da177e2005-04-16 15:20:36 -07001#
2# linux/arch/i386/boot/compressed/Makefile
3#
4# create a compressed vmlinux image from the original vmlinux
5#
6
Eric W. Biederman968de4f2006-12-07 02:14:04 +01007targets := vmlinux vmlinux.bin vmlinux.bin.gz head.o misc.o piggy.o \
8 vmlinux.bin.all vmlinux.relocs
Linus Torvalds1da177e2005-04-16 15:20:36 -07009EXTRA_AFLAGS := -traditional
10
Eric W. Biederman968de4f2006-12-07 02:14:04 +010011LDFLAGS_vmlinux := -T
12CFLAGS_misc.o += -fPIC
13hostprogs-y := relocs
Linus Torvalds1da177e2005-04-16 15:20:36 -070014
Eric W. Biederman968de4f2006-12-07 02:14:04 +010015$(obj)/vmlinux: $(src)/vmlinux.lds $(obj)/head.o $(obj)/misc.o $(obj)/piggy.o FORCE
Linus Torvalds1da177e2005-04-16 15:20:36 -070016 $(call if_changed,ld)
17 @:
18
19$(obj)/vmlinux.bin: vmlinux FORCE
20 $(call if_changed,objcopy)
21
Eric W. Biederman968de4f2006-12-07 02:14:04 +010022quiet_cmd_relocs = RELOCS $@
23 cmd_relocs = $(obj)/relocs $< > $@
24$(obj)/vmlinux.relocs: vmlinux $(obj)/relocs FORCE
25 $(call if_changed,relocs)
26
27vmlinux.bin.all-y := $(obj)/vmlinux.bin
28vmlinux.bin.all-$(CONFIG_RELOCATABLE) += $(obj)/vmlinux.relocs
29quiet_cmd_relocbin = BUILD $@
30 cmd_relocbin = cat $(filter-out FORCE,$^) > $@
31$(obj)/vmlinux.bin.all: $(vmlinux.bin.all-y) FORCE
32 $(call if_changed,relocbin)
33
34ifdef CONFIG_RELOCATABLE
35$(obj)/vmlinux.bin.gz: $(obj)/vmlinux.bin.all FORCE
36 $(call if_changed,gzip)
37else
Linus Torvalds1da177e2005-04-16 15:20:36 -070038$(obj)/vmlinux.bin.gz: $(obj)/vmlinux.bin FORCE
39 $(call if_changed,gzip)
Eric W. Biederman968de4f2006-12-07 02:14:04 +010040endif
Linus Torvalds1da177e2005-04-16 15:20:36 -070041
42LDFLAGS_piggy.o := -r --format binary --oformat elf32-i386 -T
43
Eric W. Biederman968de4f2006-12-07 02:14:04 +010044$(obj)/piggy.o: $(src)/vmlinux.scr $(obj)/vmlinux.bin.gz FORCE
Linus Torvalds1da177e2005-04-16 15:20:36 -070045 $(call if_changed,ld)