import of upstream 2.4.34.4 from kernel.org
[linux-2.4.git] / arch / i386 / boot / compressed / Makefile
1 #
2 # linux/arch/i386/boot/compressed/Makefile
3 #
4 # create a compressed vmlinux image from the original vmlinux
5 #
6
7 HEAD = head.o
8 SYSTEM = $(TOPDIR)/vmlinux
9
10 OBJECTS = $(HEAD) misc.o
11
12 ZLDFLAGS = -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 #
18 ZIMAGE_OFFSET = 0x1000
19 BZIMAGE_OFFSET = 0x100000
20
21 ZLINKFLAGS = -Ttext $(ZIMAGE_OFFSET) $(ZLDFLAGS)
22 BZLINKFLAGS = -Ttext $(BZIMAGE_OFFSET) $(ZLDFLAGS)
23
24 all: vmlinux
25
26 vmlinux: piggy.o $(OBJECTS)
27         $(LD) $(ZLINKFLAGS) -o vmlinux $(OBJECTS) piggy.o
28
29 bvmlinux: piggy.o $(OBJECTS)
30         $(LD) $(BZLINKFLAGS) -o bvmlinux $(OBJECTS) piggy.o
31
32 head.o: head.S
33         $(CC) $(AFLAGS) -traditional -c head.S
34
35 comma   := ,
36
37 misc.o: misc.c
38         $(CC) $(CFLAGS) -DKBUILD_BASENAME=$(subst $(comma),_,$(subst -,_,$(*F))) -c misc.c
39
40 piggy.o:        $(SYSTEM)
41         tmppiggy=_tmp_$$$$piggy; \
42         rm -f $$tmppiggy $$tmppiggy.gz $$tmppiggy.lnk; \
43         $(OBJCOPY) $(SYSTEM) $$tmppiggy; \
44         gzip -f -9 < $$tmppiggy > $$tmppiggy.gz; \
45         echo "SECTIONS { .data : { input_len = .; LONG(input_data_end - input_data) input_data = .; *(.data) input_data_end = .; }}" > $$tmppiggy.lnk; \
46         $(LD) -r -o piggy.o -b binary $$tmppiggy.gz -b elf32-i386 -T $$tmppiggy.lnk; \
47         rm -f $$tmppiggy $$tmppiggy.gz $$tmppiggy.lnk
48
49 clean:
50         rm -f vmlinux bvmlinux _tmp_*