11da177e4SLinus Torvalds# Makefile for the Sparc boot stuff. 21da177e4SLinus Torvalds# 31da177e4SLinus Torvalds# Copyright (C) 1995 David S. Miller (davem@caip.rutgers.edu) 41da177e4SLinus Torvalds# Copyright (C) 1997,1998 Jakub Jelinek (jj@ultra.linux.cz) 51da177e4SLinus Torvalds 61da177e4SLinus TorvaldsROOT_IMG := /usr/src/root.img 71da177e4SLinus TorvaldsELFTOAOUT := elftoaout 81da177e4SLinus Torvalds 9*56818a6fSSam Ravnborghostprogs-y := piggyback btfixupprep 10a8c601caSSam Ravnborgtargets := tftpboot.img btfix.o btfix.S image zImage vmlinux.aout 11c4893269SSam Ravnborgclean-files := System.map 121da177e4SLinus Torvalds 131da177e4SLinus Torvaldsquiet_cmd_elftoaout = ELFTOAOUT $@ 141da177e4SLinus Torvalds cmd_elftoaout = $(ELFTOAOUT) $(obj)/image -o $@ 15*56818a6fSSam Ravnborgquiet_cmd_piggy = PIGGY $@ 16*56818a6fSSam Ravnborg cmd_piggy = $(obj)/piggyback $(BITS) $@ System.map $(ROOT_IMG) 17a8c601caSSam Ravnborg 18a8c601caSSam Ravnborgifeq ($(CONFIG_SPARC32),y) 191da177e4SLinus Torvaldsquiet_cmd_btfix = BTFIX $@ 201da177e4SLinus Torvalds cmd_btfix = $(OBJDUMP) -x vmlinux | $(obj)/btfixupprep > $@ 211da177e4SLinus Torvaldsquiet_cmd_sysmap = SYSMAP $(obj)/System.map 221da177e4SLinus Torvalds cmd_sysmap = $(CONFIG_SHELL) $(srctree)/scripts/mksysmap 231da177e4SLinus Torvaldsquiet_cmd_image = LD $@ 241da177e4SLinus Torvalds cmd_image = $(LD) $(LDFLAGS) $(EXTRA_LDFLAGS) $(LDFLAGS_$(@F)) -o $@ 25349101daSMartin Habetsquiet_cmd_strip = STRIP $@ 26349101daSMartin Habets cmd_strip = $(STRIP) -R .comment -R .note -K sun4u_init -K _end -K _start $(obj)/image -o $@ 27349101daSMartin Habets 281da177e4SLinus Torvalds 291da177e4SLinus Torvaldsdefine rule_image 301da177e4SLinus Torvalds $(if $($(quiet)cmd_image), \ 311da177e4SLinus Torvalds echo ' $($(quiet)cmd_image)' &&) \ 321da177e4SLinus Torvalds $(cmd_image); \ 331da177e4SLinus Torvalds $(if $($(quiet)cmd_sysmap), \ 341da177e4SLinus Torvalds echo ' $($(quiet)cmd_sysmap)' &&) \ 351da177e4SLinus Torvalds $(cmd_sysmap) $@ $(obj)/System.map; \ 361da177e4SLinus Torvalds if [ $$? -ne 0 ]; then \ 371da177e4SLinus Torvalds rm -f $@; \ 381da177e4SLinus Torvalds /bin/false; \ 391da177e4SLinus Torvalds fi; \ 401da177e4SLinus Torvalds echo 'cmd_$@ := $(cmd_image)' > $(@D)/.$(@F).cmd 411da177e4SLinus Torvaldsendef 421da177e4SLinus Torvalds 43db5ea21aSSam RavnborgBTOBJS := $(patsubst %/, %/built-in.o, $(VMLINUX_INIT)) 44db5ea21aSSam RavnborgBTLIBS := $(patsubst %/, %/built-in.o, $(VMLINUX_MAIN)) 451da177e4SLinus TorvaldsLDFLAGS_image := -T arch/sparc/kernel/vmlinux.lds $(BTOBJS) \ 461da177e4SLinus Torvalds --start-group $(BTLIBS) --end-group \ 471da177e4SLinus Torvalds $(kallsyms.o) $(obj)/btfix.o 481da177e4SLinus Torvalds 491da177e4SLinus Torvalds# Link the final image including btfixup'ed symbols. 501da177e4SLinus Torvalds# This is a replacement for the link done in the top-level Makefile. 511da177e4SLinus Torvalds# Note: No dependency on the prerequisite files since that would require 521da177e4SLinus Torvalds# make to try check if they are updated - and due to changes 531da177e4SLinus Torvalds# in gcc options (path for example) this would result in 541da177e4SLinus Torvalds# these files being recompiled for each build. 551da177e4SLinus Torvalds$(obj)/image: $(obj)/btfix.o FORCE 561da177e4SLinus Torvalds $(call if_changed_rule,image) 571da177e4SLinus Torvalds 58349101daSMartin Habets$(obj)/zImage: $(obj)/image 59349101daSMartin Habets $(call if_changed,strip) 60349101daSMartin Habets 611da177e4SLinus Torvalds$(obj)/btfix.S: $(obj)/btfixupprep vmlinux FORCE 621da177e4SLinus Torvalds $(call if_changed,btfix) 63a8c601caSSam Ravnborg 64a8c601caSSam Ravnborgendif 65a8c601caSSam Ravnborg 66a8c601caSSam Ravnborgifeq ($(CONFIG_SPARC64),y) 67a8c601caSSam Ravnborgquiet_cmd_strip = STRIP $@ 68a8c601caSSam Ravnborg cmd_strip = $(STRIP) -R .comment -R .note -K sun4u_init -K _end -K _start vmlinux -o $@ 69a8c601caSSam Ravnborg 70a8c601caSSam Ravnborg 71a8c601caSSam Ravnborg# Actual linking 72a8c601caSSam Ravnborg$(obj)/image: vmlinux FORCE 73a8c601caSSam Ravnborg $(call if_changed,strip) 74a8c601caSSam Ravnborg @echo ' kernel: $@ is ready' 75a8c601caSSam Ravnborg 7648e46b7bSJurij Smakov$(obj)/zImage: $(obj)/image 7748e46b7bSJurij Smakov $(call if_changed,gzip) 7848e46b7bSJurij Smakov 79a8c601caSSam Ravnborg$(obj)/vmlinux.aout: vmlinux FORCE 80a8c601caSSam Ravnborg $(call if_changed,elftoaout) 81a8c601caSSam Ravnborg @echo ' kernel: $@ is ready' 82a8c601caSSam Ravnborgendif 83a8c601caSSam Ravnborg 84*56818a6fSSam Ravnborg$(obj)/tftpboot.img: $(obj)/image $(obj)/piggyback System.map $(ROOT_IMG) FORCE 85*56818a6fSSam Ravnborg $(call if_changed,elftoaout) 86*56818a6fSSam Ravnborg $(call if_changed,piggy) 87