1# 2# linux/arch/i386/boot/compressed/Makefile 3# 4# create a compressed vmlinux image from the original vmlinux 5# 6 7HEAD = head.o 8SYSTEM = $(TOPDIR)/vmlinux 9 10OBJECTS = $(HEAD) misc.o 11 12ZLDFLAGS = -e startup_32 13 14# 15# ZIMAGE_OFFSET is the load offset of the compression loader 16# BZIMAGE_OFFSET is the load offset of the high loaded compression loader 17# 18ZIMAGE_OFFSET = 0x1000 19BZIMAGE_OFFSET = 0x100000 20 21ZLINKFLAGS = -Ttext $(ZIMAGE_OFFSET) $(ZLDFLAGS) 22BZLINKFLAGS = -Ttext $(BZIMAGE_OFFSET) $(ZLDFLAGS) 23 24all: vmlinux 25 26vmlinux: piggy.o $(OBJECTS) 27 $(LD) $(ZLINKFLAGS) -o vmlinux $(OBJECTS) piggy.o 28 29bvmlinux: piggy.o $(OBJECTS) 30 $(LD) $(BZLINKFLAGS) -o bvmlinux $(OBJECTS) piggy.o 31 32head.o: head.S 33 $(CC) $(AFLAGS) -traditional -c head.S 34 35comma := , 36 37ifdef CONFIG_MCOUNT 38misc.o: misc.c 39 $(CC) $(subst -pg,,$(CFLAGS)) -DKBUILD_BASENAME=$(subst $(comma),_,$(subst -,_,$(*F))) -c misc.c 40else 41misc.o: misc.c 42 $(CC) $(CFLAGS) -DKBUILD_BASENAME=$(subst $(comma),_,$(subst -,_,$(*F))) -c misc.c 43endif 44 45piggy.o: $(SYSTEM) 46 tmppiggy=_tmp_$$$$piggy; \ 47 rm -f $$tmppiggy $$tmppiggy.gz $$tmppiggy.lnk; \ 48 $(OBJCOPY) $(SYSTEM) $$tmppiggy; \ 49 gzip -f -9 < $$tmppiggy > $$tmppiggy.gz; \ 50 echo "SECTIONS { .data : { input_len = .; LONG(input_data_end - input_data) input_data = .; *(.data) input_data_end = .; }}" > $$tmppiggy.lnk; \ 51 $(LD) -r -o piggy.o -b binary $$tmppiggy.gz -b elf32-i386 -T $$tmppiggy.lnk; \ 52 rm -f $$tmppiggy $$tmppiggy.gz $$tmppiggy.lnk 53 54clean: 55 rm -f vmlinux bvmlinux _tmp_* 56