2009-05-10 00:58:21 +09:00
#
# linux/arch/sh/boot/compressed/Makefile
#
# create a compressed vmlinux image from the original vmlinux
#
targets := vmlinux vmlinux.bin vmlinux.bin.gz \
2009-07-11 13:21:19 -04:00
vmlinux.bin.bz2 vmlinux.bin.lzma \
2011-01-14 15:52:54 +09:00
vmlinux.bin.xz vmlinux.bin.lzo \
2009-07-11 13:32:24 -04:00
head_$( BITS) .o misc.o piggy.o
2009-05-10 00:58:21 +09:00
2009-07-11 13:32:24 -04:00
OBJECTS = $( obj) /head_$( BITS) .o $( obj) /misc.o $( obj) /cache.o
2009-05-10 00:58:21 +09:00
2010-11-12 16:26:54 +01:00
GCOV_PROFILE := n
2009-05-10 00:58:21 +09:00
#
# IMAGE_OFFSET is the load offset of the compression loader
#
2010-04-24 13:34:44 +01:00
i f e q ( $( CONFIG_ 32BIT ) , y )
IMAGE_OFFSET := $( shell /bin/bash -c ' printf "0x%08x" \
$$ [ $( CONFIG_MEMORY_START) + \
$( CONFIG_BOOT_LINK_OFFSET) ] ' )
e l s e
2009-05-10 00:58:21 +09:00
IMAGE_OFFSET := $( shell /bin/bash -c ' printf "0x%08x" \
$$ [ $( CONFIG_PAGE_OFFSET) + \
$( KERNEL_MEMORY) + \
$( CONFIG_BOOT_LINK_OFFSET) ] ' )
2010-04-24 13:34:44 +01:00
e n d i f
2009-05-10 00:58:21 +09:00
2009-07-11 19:56:58 +09:00
i f e q ( $( CONFIG_MCOUNT ) , y )
2009-05-10 00:58:21 +09:00
ORIG_CFLAGS := $( KBUILD_CFLAGS)
KBUILD_CFLAGS = $( subst -pg, , $( ORIG_CFLAGS) )
e n d i f
LDFLAGS_vmlinux := --oformat $( ld-bfd) -Ttext $( IMAGE_OFFSET) -e startup \
-T $( obj) /../../kernel/vmlinux.lds
2011-06-06 17:57:58 +09:00
#
# Pull in the necessary libgcc bits from the in-kernel implementation.
#
lib1funcs-$(CONFIG_SUPERH32) := ashiftrt.S ashldi3.c ashrsi3.S ashlsi3.S \
lshrsi3.S
lib1funcs-obj := \
$( addsuffix .o, $( basename $( addprefix $( obj) /, $( lib1funcs-y) ) ) )
lib1funcs-dir := $( srctree) /arch/$( SRCARCH) /lib
i f e q ( $( BITS ) , 6 4 )
lib1funcs-dir := $( addsuffix $( BITS) , $( lib1funcs-dir) )
e n d i f
KBUILD_CFLAGS += -I$( lib1funcs-dir)
$(addprefix $(obj)/,$(lib1funcs-y)) : $( obj ) /%: $( lib 1funcs -dir ) /% FORCE
$( call cmd,shipped)
$(obj)/vmlinux : $( OBJECTS ) $( obj ) /piggy .o $( lib 1funcs -obj ) FORCE
2009-05-10 00:58:21 +09:00
$( call if_changed,ld)
@:
$(obj)/vmlinux.bin : vmlinux FORCE
$( call if_changed,objcopy)
2009-07-11 13:21:19 -04:00
vmlinux.bin.all-y := $( obj) /vmlinux.bin
$(obj)/vmlinux.bin.gz : $( vmlinux .bin .all -y ) FORCE
2009-05-10 00:58:21 +09:00
$( call if_changed,gzip)
2009-07-11 13:21:19 -04:00
$(obj)/vmlinux.bin.bz2 : $( vmlinux .bin .all -y ) FORCE
$( call if_changed,bzip2)
$(obj)/vmlinux.bin.lzma : $( vmlinux .bin .all -y ) FORCE
$( call if_changed,lzma)
2011-01-14 15:52:54 +09:00
$(obj)/vmlinux.bin.xz : $( vmlinux .bin .all -y ) FORCE
$( call if_changed,xzkern)
2010-01-13 13:29:19 +09:00
$(obj)/vmlinux.bin.lzo : $( vmlinux .bin .all -y ) FORCE
$( call if_changed,lzo)
2009-07-11 13:21:19 -04:00
2009-05-10 00:58:21 +09:00
OBJCOPYFLAGS += -R .empty_zero_page
2009-07-11 13:21:19 -04:00
LDFLAGS_piggy.o := -r --format binary --oformat $( ld-bfd) -T
$(obj)/piggy.o : $( obj ) /vmlinux .scr $( obj ) /vmlinux .bin .$( suffix -y ) FORCE
$( call if_changed,ld)