2 # linux/arch/sh/boot/compressed/Makefile
4 # create a compressed vmlinux image from the original vmlinux
7 targets
:= vmlinux vmlinux.bin vmlinux.bin.gz \
8 vmlinux.bin.bz2 vmlinux.bin.lzma \
9 vmlinux.bin.xz vmlinux.bin.lzo \
10 head_
$(BITS
).o misc.o piggy.o
12 OBJECTS
= $(obj
)/head_
$(BITS
).o
$(obj
)/misc.o
$(obj
)/cache.o
17 # IMAGE_OFFSET is the load offset of the compression loader
19 ifeq ($(CONFIG_32BIT
),y
)
20 IMAGE_OFFSET
:= $(shell /bin
/bash
-c
'printf "0x%08x" \
21 $$[$(CONFIG_MEMORY_START) + \
22 $(CONFIG_BOOT_LINK_OFFSET)]')
24 IMAGE_OFFSET
:= $(shell /bin
/bash
-c
'printf "0x%08x" \
25 $$[$(CONFIG_PAGE_OFFSET) + \
27 $(CONFIG_BOOT_LINK_OFFSET)]')
30 ifeq ($(CONFIG_MCOUNT
),y
)
31 ORIG_CFLAGS
:= $(KBUILD_CFLAGS
)
32 KBUILD_CFLAGS
= $(subst -pg
, , $(ORIG_CFLAGS
))
35 LDFLAGS_vmlinux
:= --oformat
$(ld-bfd
) -Ttext
$(IMAGE_OFFSET
) -e startup \
36 -T
$(obj
)/..
/..
/kernel
/vmlinux.lds
39 # Pull in the necessary libgcc bits from the in-kernel implementation.
41 lib1funcs-
$(CONFIG_SUPERH32
) := ashiftrt.S ashldi3.c ashrsi3.S ashlsi3.S \
44 $(addsuffix .o
, $(basename $(addprefix $(obj
)/, $(lib1funcs-y
))))
46 lib1funcs-dir
:= $(srctree
)/arch
/$(SRCARCH
)/lib
48 lib1funcs-dir
:= $(addsuffix $(BITS
), $(lib1funcs-dir
))
51 KBUILD_CFLAGS
+= -I
$(lib1funcs-dir
)
53 $(addprefix $(obj
)/,$(lib1funcs-y
)): $(obj
)/%: $(lib1funcs-dir
)/% FORCE
56 $(obj
)/vmlinux
: $(OBJECTS
) $(obj
)/piggy.o
$(lib1funcs-obj
) FORCE
60 $(obj
)/vmlinux.bin
: vmlinux FORCE
61 $(call if_changed
,objcopy
)
63 vmlinux.bin.all-y
:= $(obj
)/vmlinux.bin
65 $(obj
)/vmlinux.bin.gz
: $(vmlinux.bin.all-y
) FORCE
66 $(call if_changed
,gzip
)
67 $(obj
)/vmlinux.bin.bz2
: $(vmlinux.bin.all-y
) FORCE
68 $(call if_changed
,bzip2
)
69 $(obj
)/vmlinux.bin.lzma
: $(vmlinux.bin.all-y
) FORCE
70 $(call if_changed
,lzma
)
71 $(obj
)/vmlinux.bin.xz
: $(vmlinux.bin.all-y
) FORCE
72 $(call if_changed
,xzkern
)
73 $(obj
)/vmlinux.bin.lzo
: $(vmlinux.bin.all-y
) FORCE
74 $(call if_changed
,lzo
)
76 OBJCOPYFLAGS
+= -R .empty_zero_page
78 LDFLAGS_piggy.o
:= -r
--format binary
--oformat
$(ld-bfd
) -T
80 $(obj
)/piggy.o
: $(obj
)/vmlinux.scr
$(obj
)/vmlinux.bin.
$(suffix-y
) FORCE