2005-04-17 02:20:36 +04:00
# Makefile for the Sparc boot stuff.
#
# Copyright (C) 1995 David S. Miller (davem@caip.rutgers.edu)
# Copyright (C) 1997,1998 Jakub Jelinek (jj@ultra.linux.cz)
ROOT_IMG := /usr/src/root.img
ELFTOAOUT := elftoaout
2008-12-03 14:14:26 +03:00
hostprogs-y := piggyback_32 piggyback_64 btfixupprep
targets := tftpboot.img btfix.o btfix.S image zImage vmlinux.aout
2008-11-30 08:53:26 +03:00
clean-files := System.map
2005-04-17 02:20:36 +04:00
quiet_cmd_elftoaout = ELFTOAOUT $@
cmd_elftoaout = $( ELFTOAOUT) $( obj) /image -o $@
2008-12-03 14:14:26 +03:00
i f e q ( $( CONFIG_SPARC 32) , y )
2005-04-17 02:20:36 +04:00
quiet_cmd_piggy = PIGGY $@
2009-06-21 20:45:01 +04:00
cmd_piggy = $( obj) /piggyback_32 $@ System.map $( ROOT_IMG)
2005-04-17 02:20:36 +04:00
quiet_cmd_btfix = BTFIX $@
cmd_btfix = $( OBJDUMP) -x vmlinux | $( obj) /btfixupprep > $@
quiet_cmd_sysmap = SYSMAP $( obj) /System.map
cmd_sysmap = $( CONFIG_SHELL) $( srctree) /scripts/mksysmap
quiet_cmd_image = LD $@
cmd_image = $( LD) $( LDFLAGS) $( EXTRA_LDFLAGS) $( LDFLAGS_$( @F) ) -o $@
2008-08-19 09:37:18 +04:00
quiet_cmd_strip = STRIP $@
cmd_strip = $( STRIP) -R .comment -R .note -K sun4u_init -K _end -K _start $( obj) /image -o $@
2005-04-17 02:20:36 +04:00
d e f i n e r u l e _ i m a g e
$( if $( $( quiet) cmd_image) , \
echo ' $($(quiet)cmd_image)' && ) \
$( cmd_image) ; \
$( if $( $( quiet) cmd_sysmap) , \
echo ' $($(quiet)cmd_sysmap)' && ) \
$( cmd_sysmap) $@ $( obj) /System.map; \
if [ $$ ? -ne 0 ] ; then \
rm -f $@ ; \
/bin/false; \
fi ; \
echo 'cmd_$@ := $(cmd_image)' > $( @D) /.$( @F) .cmd
e n d e f
2008-12-03 10:15:42 +03:00
BTOBJS := $( patsubst %/, %/built-in.o, $( VMLINUX_INIT) )
BTLIBS := $( patsubst %/, %/built-in.o, $( VMLINUX_MAIN) )
2005-04-17 02:20:36 +04:00
LDFLAGS_image := -T arch/sparc/kernel/vmlinux.lds $( BTOBJS) \
--start-group $( BTLIBS) --end-group \
$( kallsyms.o) $( obj) /btfix.o
# Link the final image including btfixup'ed symbols.
# This is a replacement for the link done in the top-level Makefile.
# Note: No dependency on the prerequisite files since that would require
# make to try check if they are updated - and due to changes
# in gcc options (path for example) this would result in
# these files being recompiled for each build.
$(obj)/image : $( obj ) /btfix .o FORCE
$( call if_changed_rule,image)
2008-08-19 09:37:18 +04:00
$(obj)/zImage : $( obj ) /image
$( call if_changed,strip)
2009-06-23 05:45:46 +04:00
$(obj)/tftpboot.img : $( obj ) /image $( obj ) /piggyback_ 32 System .map $( ROOT_IMG ) FORCE
2005-04-17 02:20:36 +04:00
$( call if_changed,elftoaout)
$( call if_changed,piggy)
$(obj)/btfix.S : $( obj ) /btfixupprep vmlinux FORCE
$( call if_changed,btfix)
2008-12-03 14:14:26 +03:00
e n d i f
i f e q ( $( CONFIG_SPARC 64) , y )
quiet_cmd_piggy = PIGGY $@
cmd_piggy = $( obj) /piggyback_64 $@ System.map $( ROOT_IMG)
quiet_cmd_strip = STRIP $@
cmd_strip = $( STRIP) -R .comment -R .note -K sun4u_init -K _end -K _start vmlinux -o $@
# Actual linking
$(obj)/image : vmlinux FORCE
$( call if_changed,strip)
@echo ' kernel: $@ is ready'
2009-06-23 05:45:46 +04:00
$(obj)/tftpboot.img : $( obj ) /image $( obj ) /piggyback_ 64 System .map $( ROOT_IMG ) FORCE
2008-12-03 14:14:26 +03:00
$( call if_changed,elftoaout)
$( call if_changed,piggy)
@echo ' kernel: $@ is ready'
$(obj)/vmlinux.aout : vmlinux FORCE
$( call if_changed,elftoaout)
@echo ' kernel: $@ is ready'
e n d i f