1 # Makefile for the Sparc boot stuff.
3 # Copyright (C) 1995 David S. Miller (davem@caip.rutgers.edu)
4 # Copyright (C) 1997,1998 Jakub Jelinek (jj@ultra.linux.cz)
6 ROOT_IMG
:= /usr
/src
/root.img
8 MKIMAGE
:= $(srctree
)/scripts
/mkuboot.sh
10 hostprogs-y
:= piggyback btfixupprep
11 targets
:= tftpboot.img btfix.o btfix.S image zImage vmlinux.aout
12 clean-files
:= System.map
14 quiet_cmd_elftoaout
= ELFTOAOUT
$@
15 cmd_elftoaout
= $(ELFTOAOUT
) $(obj
)/image
-o
$@
16 quiet_cmd_piggy
= PIGGY
$@
17 cmd_piggy
= $(obj
)/piggyback
$(BITS
) $@ System.map
$(ROOT_IMG
)
18 quiet_cmd_strip
= STRIP
$@
19 cmd_strip
= $(STRIP
) -R .comment
-R .note
-K sun4u_init
-K _end
-K _start
$< -o
$@
21 ifeq ($(CONFIG_SPARC32
),y
)
22 quiet_cmd_btfix
= BTFIX
$@
23 cmd_btfix
= $(OBJDUMP
) -x vmlinux |
$(obj
)/btfixupprep
> $@
24 quiet_cmd_sysmap
= SYSMAP
$(obj
)/System.map
25 cmd_sysmap
= $(CONFIG_SHELL
) $(srctree
)/scripts
/mksysmap
26 quiet_cmd_image
= LD
$@
27 cmd_image
= $(LD
) $(LDFLAGS
) $(EXTRA_LDFLAGS
) $(LDFLAGS_
$(@F
)) -o
$@
30 $(if
$($(quiet
)cmd_image
), \
31 echo
' $($(quiet)cmd_image)' &&) \
33 $(if
$($(quiet
)cmd_sysmap
), \
34 echo
' $($(quiet)cmd_sysmap)' &&) \
35 $(cmd_sysmap
) $@
$(obj
)/System.map
; \
36 if
[ $$?
-ne
0 ]; then \
40 echo
'cmd_$@ := $(cmd_image)' > $(@D
)/.
$(@F
).cmd
43 BTOBJS
:= $(patsubst %/, %/built-in.o
, $(VMLINUX_INIT
))
44 BTLIBS
:= $(patsubst %/, %/built-in.o
, $(VMLINUX_MAIN
))
45 LDFLAGS_image
:= -T arch
/sparc
/kernel
/vmlinux.lds
$(BTOBJS
) \
46 --start-group
$(BTLIBS
) --end-group \
47 $(kallsyms.o
) $(obj
)/btfix.o
49 # Link the final image including btfixup'ed symbols.
50 # This is a replacement for the link done in the top-level Makefile.
51 # Note: No dependency on the prerequisite files since that would require
52 # make to try check if they are updated - and due to changes
53 # in gcc options (path for example) this would result in
54 # these files being recompiled for each build.
55 $(obj
)/image
: $(obj
)/btfix.o FORCE
56 $(call if_changed_rule
,image
)
58 $(obj
)/zImage
: $(obj
)/image
59 $(call if_changed
,strip)
60 @echo
' kernel: $@ is ready'
62 $(obj
)/btfix.S
: $(obj
)/btfixupprep vmlinux FORCE
63 $(call if_changed
,btfix
)
67 ifeq ($(CONFIG_SPARC64
),y
)
70 $(obj
)/image
: vmlinux FORCE
71 $(call if_changed
,strip)
72 @echo
' kernel: $@ is ready'
74 $(obj
)/zImage
: $(obj
)/image
75 $(call if_changed
,gzip
)
76 @echo
' kernel: $@ is ready'
78 $(obj
)/vmlinux.aout
: vmlinux FORCE
79 $(call if_changed
,elftoaout
)
80 @echo
' kernel: $@ is ready'
83 # The following lines make a readable image for U-Boot.
84 # uImage - Binary file read by U-boot
85 # uImage.o - object file of uImage for loading with a
86 # flash programmer understanding ELF.
88 OBJCOPYFLAGS_image.bin
:= -S
-O binary
-R .note
-R .comment
89 $(obj
)/image.bin
: $(obj
)/image FORCE
90 $(call if_changed
,objcopy
)
92 $(obj
)/image.gz
: $(obj
)/image.bin
93 $(call if_changed
,gzip
)
95 quiet_cmd_uimage
= UIMAGE
$@
96 cmd_uimage
= $(CONFIG_SHELL
) $(MKIMAGE
) -A sparc
-O linux
-T kernel \
97 -C gzip
-a
$(CONFIG_UBOOT_LOAD_ADDR
) \
98 -e
$(CONFIG_UBOOT_ENTRY_ADDR
) -n
'Linux-$(KERNELRELEASE)' \
101 quiet_cmd_uimage.o
= UIMAGE.O
$@
102 cmd_uimage.o
= $(LD
) -Tdata
$(CONFIG_UBOOT_FLASH_ADDR
) \
103 -r
-b binary
$@
-o
$@.o
106 $(obj
)/uImage
: $(obj
)/image.gz
107 $(call if_changed
,uimage
)
108 $(call if_changed
,uimage.o
)
109 @echo
' Image $@ is ready'
113 $(obj
)/tftpboot.img
: $(obj
)/image
$(obj
)/piggyback System.map
$(ROOT_IMG
) FORCE
114 $(call if_changed
,elftoaout
)
115 $(call if_changed
,piggy
)