1# 2# arch/nios2/boot/Makefile 3# 4# This file is subject to the terms and conditions of the GNU General Public 5# License. See the file "COPYING" in the main directory of this archive 6# for more details. 7# 8 9UIMAGE_LOADADDR = $(shell $(NM) vmlinux | awk '$$NF == "_stext" {print $$1}') 10UIMAGE_ENTRYADDR = $(shell $(NM) vmlinux | awk '$$NF == "_start" {print $$1}') 11UIMAGE_COMPRESSION = gzip 12 13OBJCOPYFLAGS_vmlinux.bin := -O binary 14 15targets += vmlinux.bin vmlinux.gz vmImage 16 17$(obj)/vmlinux.bin: vmlinux FORCE 18 $(call if_changed,objcopy) 19 20$(obj)/vmlinux.gz: $(obj)/vmlinux.bin FORCE 21 $(call if_changed,gzip) 22 23$(obj)/vmImage: $(obj)/vmlinux.gz 24 $(call if_changed,uimage) 25 @$(kecho) 'Kernel: $@ is ready' 26 27# Rule to build device tree blobs 28DTB_SRC := $(patsubst "%",%,$(CONFIG_NIOS2_DTB_SOURCE)) 29 30# Make sure the generated dtb gets removed during clean 31extra-$(CONFIG_NIOS2_DTB_SOURCE_BOOL) += system.dtb 32 33$(obj)/system.dtb: $(DTB_SRC) FORCE 34 $(call cmd,dtc) 35 36# Ensure system.dtb exists 37$(obj)/linked_dtb.o: $(obj)/system.dtb 38 39obj-$(CONFIG_NIOS2_DTB_SOURCE_BOOL) += linked_dtb.o 40 41targets += $(dtb-y) 42 43# Rule to build device tree blobs with make command 44$(obj)/%.dtb: $(src)/dts/%.dts FORCE 45 $(call if_changed_dep,dtc) 46 47$(obj)/dtbs: $(addprefix $(obj)/, $(dtb-y)) 48 49clean-files := *.dtb 50 51install: 52 sh $(srctree)/$(src)/install.sh $(KERNELRELEASE) $(BOOTIMAGE) System.map "$(INSTALL_PATH)" 53