zephyr/arch/nios2/Makefile

74 lines
1.9 KiB
Makefile

-include $(srctree)/arch/$(ARCH)/soc/$(SOC_PATH)/Makefile
ifdef CONFIG_GP_NONE
gpopt = none
else ifdef CONFIG_GP_LOCAL
gpopt = local
else ifdef CONFIG_GP_GLOBAL
gpopt = global
else ifdef CONFIG_GP_ALL_DATA
gpopt = data
endif
# Set Global Pointer option based on Kconfig.
arch_cflags += -mgpopt=$(gpopt)
# Put functions and data in their own binary sections so that ld can
# garbage collect them
arch_cflags += $(call cc-option,-ffunction-sections) \
$(call cc-option,-fdata-sections)
# TODO Find a way to pull this out of system.h somehow
# instead of having Kconfig for it
ifdef CONFIG_HAS_MUL_INSTRUCTION
arch_cflags += -mhw-mul
else
arch_cflags += -mno-hw-mul
endif
ifdef CONFIG_HAS_MULX_INSTRUCTION
arch_cflags += -mhw-mulx
else
arch_cflags += -mno-hw-mulx
endif
ifdef CONFIG_HAS_DIV_INSTRUCTION
arch_cflags += -mhw-div
else
arch_cflags += -mno-hw-div
endif
# Nios II CPUs are configurable and we need to pull in the generated
# headers system.h and linker.h which specify what is enabled and where
# everything is.
soc_ld_include := -I$(srctree)/arch/$(ARCH)/soc/$(SOC_PATH)/include
arch_cflags += $(soc_ld_include)
EXTRA_LINKER_CMD_OPT += $(soc_ld_include)
KBUILD_AFLAGS += $(arch_cflags)
KBUILD_CFLAGS += $(arch_cflags)
KBUILD_CXXFLAGS += $(arch_cflags)
soc-cxxflags ?= $(soc-cflags)
soc-aflags ?= $(soc-cflags)
KBUILD_CFLAGS += $(soc-cflags)
KBUILD_CXXFLAGS += $(soc-cxxflags)
KBUILD_AFLAGS += $(soc-aflags)
KERNEL_HEX_NAME = $(KERNEL_NAME).hex
quiet_cmd_gen_hex = HEX $@
cmd_gen_hex = \
( \
$(OBJCOPY) -S -O ihex -R .note -R .comment -R COMMON -R .eh_frame $< $@; \
)
$(KERNEL_HEX_NAME): $(KERNEL_ELF_NAME)
$(call cmd,gen_hex)
zephyr: $(KERNEL_HEX_NAME)
all: $(KERNEL_HEX_NAME)
export KERNEL_HEX_NAME
QEMU_CPU_TYPE_nios2 = nios2
QEMU_FLAGS_nios2 = -machine altera_10m50_zephyr -nographic
QEMU_nios2 = qemu-system-nios2