^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1) # SPDX-License-Identifier: GPL-2.0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2) #
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3) # linux/arch/sh/boot/compressed/Makefile
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4) #
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5) # create a compressed vmlinux image from the original vmlinux
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6) #
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 8) targets := vmlinux vmlinux.bin vmlinux.bin.gz head.o misc.o piggy.o
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 9)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 10) OBJECTS = $(obj)/head.o $(obj)/misc.o
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 11)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 12) #
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 13) # IMAGE_OFFSET is the load offset of the compression loader
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 14) # Assign dummy values if these 2 variables are not defined,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 15) # in order to suppress error message.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 16) #
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 17) CONFIG_MEMORY_START ?= 0x00400000
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 18) CONFIG_BOOT_LINK_OFFSET ?= 0x00280000
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 19) IMAGE_OFFSET := $(shell printf "0x%08x" $$(($(CONFIG_MEMORY_START)+$(CONFIG_BOOT_LINK_OFFSET))))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 20)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 21) LIBGCC := $(shell $(CROSS-COMPILE)$(CC) $(KBUILD_CFLAGS) -print-libgcc-file-name 2>/dev/null)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 22) LDFLAGS_vmlinux := -Ttext $(IMAGE_OFFSET) -estartup -T $(obj)/vmlinux.lds \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 23) --defsym output=$(CONFIG_MEMORY_START)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 24)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 25) $(obj)/vmlinux: $(OBJECTS) $(obj)/piggy.o $(LIBGCC) FORCE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 26) $(call if_changed,ld)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 27)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 28) $(obj)/vmlinux.bin: vmlinux FORCE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 29) $(call if_changed,objcopy)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 30)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 31) suffix-$(CONFIG_KERNEL_GZIP) := gzip
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 32) suffix-$(CONFIG_KERNEL_LZO) := lzo
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 33)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 34) $(obj)/vmlinux.bin.$(suffix-y): $(obj)/vmlinux.bin FORCE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 35) $(call if_changed,$(suffix-y))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 36)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 37) LDFLAGS_piggy.o := -r --format binary --oformat elf32-h8300-linux -T
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 38) OBJCOPYFLAGS := -O binary
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 39)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 40) $(obj)/piggy.o: $(obj)/vmlinux.scr $(obj)/vmlinux.bin.$(suffix-y) FORCE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 41) $(call if_changed,ld)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 42)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 43) CFLAGS_misc.o = -O0