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 8*684151a7SDaniel HellstromMKIMAGE := $(srctree)/scripts/mkuboot.sh 91da177e4SLinus Torvalds 1056818a6fSSam Ravnborghostprogs-y := piggyback btfixupprep 11a8c601caSSam Ravnborgtargets := tftpboot.img btfix.o btfix.S image zImage vmlinux.aout 12c4893269SSam Ravnborgclean-files := System.map 131da177e4SLinus Torvalds 141da177e4SLinus Torvaldsquiet_cmd_elftoaout = ELFTOAOUT $@ 151da177e4SLinus Torvalds cmd_elftoaout = $(ELFTOAOUT) $(obj)/image -o $@ 1656818a6fSSam Ravnborgquiet_cmd_piggy = PIGGY $@ 1756818a6fSSam Ravnborg cmd_piggy = $(obj)/piggyback $(BITS) $@ System.map $(ROOT_IMG) 189202db22SSam Ravnborgquiet_cmd_strip = STRIP $@ 199202db22SSam Ravnborg cmd_strip = $(STRIP) -R .comment -R .note -K sun4u_init -K _end -K _start $< -o $@ 20a8c601caSSam Ravnborg 21a8c601caSSam Ravnborgifeq ($(CONFIG_SPARC32),y) 221da177e4SLinus Torvaldsquiet_cmd_btfix = BTFIX $@ 231da177e4SLinus Torvalds cmd_btfix = $(OBJDUMP) -x vmlinux | $(obj)/btfixupprep > $@ 241da177e4SLinus Torvaldsquiet_cmd_sysmap = SYSMAP $(obj)/System.map 251da177e4SLinus Torvalds cmd_sysmap = $(CONFIG_SHELL) $(srctree)/scripts/mksysmap 261da177e4SLinus Torvaldsquiet_cmd_image = LD $@ 271da177e4SLinus Torvalds cmd_image = $(LD) $(LDFLAGS) $(EXTRA_LDFLAGS) $(LDFLAGS_$(@F)) -o $@ 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) 609202db22SSam Ravnborg @echo ' kernel: $@ is ready' 61349101daSMartin Habets 621da177e4SLinus Torvalds$(obj)/btfix.S: $(obj)/btfixupprep vmlinux FORCE 631da177e4SLinus Torvalds $(call if_changed,btfix) 64a8c601caSSam Ravnborg 65a8c601caSSam Ravnborgendif 66a8c601caSSam Ravnborg 67a8c601caSSam Ravnborgifeq ($(CONFIG_SPARC64),y) 68a8c601caSSam Ravnborg 69a8c601caSSam Ravnborg# Actual linking 70a8c601caSSam Ravnborg$(obj)/image: vmlinux FORCE 71a8c601caSSam Ravnborg $(call if_changed,strip) 72a8c601caSSam Ravnborg @echo ' kernel: $@ is ready' 73a8c601caSSam Ravnborg 7448e46b7bSJurij Smakov$(obj)/zImage: $(obj)/image 7548e46b7bSJurij Smakov $(call if_changed,gzip) 769202db22SSam Ravnborg @echo ' kernel: $@ is ready' 7748e46b7bSJurij Smakov 78a8c601caSSam Ravnborg$(obj)/vmlinux.aout: vmlinux FORCE 79a8c601caSSam Ravnborg $(call if_changed,elftoaout) 80a8c601caSSam Ravnborg @echo ' kernel: $@ is ready' 81*684151a7SDaniel Hellstromelse 82*684151a7SDaniel Hellstrom 83*684151a7SDaniel Hellstrom# The following lines make a readable image for U-Boot. 84*684151a7SDaniel Hellstrom# uImage - Binary file read by U-boot 85*684151a7SDaniel Hellstrom# uImage.o - object file of uImage for loading with a 86*684151a7SDaniel Hellstrom# flash programmer understanding ELF. 87*684151a7SDaniel Hellstrom 88*684151a7SDaniel HellstromOBJCOPYFLAGS_image.bin := -S -O binary -R .note -R .comment 89*684151a7SDaniel Hellstrom$(obj)/image.bin: $(obj)/image FORCE 90*684151a7SDaniel Hellstrom $(call if_changed,objcopy) 91*684151a7SDaniel Hellstrom 92*684151a7SDaniel Hellstrom$(obj)/image.gz: $(obj)/image.bin 93*684151a7SDaniel Hellstrom $(call if_changed,gzip) 94*684151a7SDaniel Hellstrom 95*684151a7SDaniel Hellstromquiet_cmd_uimage = UIMAGE $@ 96*684151a7SDaniel Hellstrom cmd_uimage = $(CONFIG_SHELL) $(MKIMAGE) -A sparc -O linux -T kernel \ 97*684151a7SDaniel Hellstrom -C gzip -a $(CONFIG_UBOOT_LOAD_ADDR) \ 98*684151a7SDaniel Hellstrom -e $(CONFIG_UBOOT_ENTRY_ADDR) -n 'Linux-$(KERNELRELEASE)' \ 99*684151a7SDaniel Hellstrom -d $< $@ 100*684151a7SDaniel Hellstrom 101*684151a7SDaniel Hellstromquiet_cmd_uimage.o = UIMAGE.O $@ 102*684151a7SDaniel Hellstrom cmd_uimage.o = $(LD) -Tdata $(CONFIG_UBOOT_FLASH_ADDR) \ 103*684151a7SDaniel Hellstrom -r -b binary $@ -o $@.o 104*684151a7SDaniel Hellstrom 105*684151a7SDaniel Hellstromtargets += uImage 106*684151a7SDaniel Hellstrom$(obj)/uImage: $(obj)/image.gz 107*684151a7SDaniel Hellstrom $(call if_changed,uimage) 108*684151a7SDaniel Hellstrom $(call if_changed,uimage.o) 109*684151a7SDaniel Hellstrom @echo ' Image $@ is ready' 110*684151a7SDaniel Hellstrom 111a8c601caSSam Ravnborgendif 112a8c601caSSam Ravnborg 11356818a6fSSam Ravnborg$(obj)/tftpboot.img: $(obj)/image $(obj)/piggyback System.map $(ROOT_IMG) FORCE 11456818a6fSSam Ravnborg $(call if_changed,elftoaout) 11556818a6fSSam Ravnborg $(call if_changed,piggy) 116