1# SPDX-License-Identifier: GPL-2.0-only
2LDFLAGS_vmlinux	:= --no-undefined -X
3OBJCOPYFLAGS	:= -O binary -R .note -R .note.gnu.build-id -R .comment -S
4
5ifdef CONFIG_FUNCTION_TRACER
6arch-y += -malways-save-lp -mno-relax
7endif
8
9# Avoid generating FPU instructions
10arch-y  += -mno-ext-fpu-sp -mno-ext-fpu-dp -mfloat-abi=soft
11
12KBUILD_CFLAGS	+= $(call cc-option, -mno-sched-prolog-epilog)
13KBUILD_CFLAGS	+= -mcmodel=large
14
15KBUILD_CFLAGS	+=$(arch-y) $(tune-y)
16KBUILD_AFLAGS	+=$(arch-y) $(tune-y)
17
18#Default value
19head-y		 := arch/nds32/kernel/head.o
20textaddr-y	 := $(CONFIG_PAGE_OFFSET)+0xc000
21
22TEXTADDR := $(textaddr-y)
23
24export	TEXTADDR
25
26
27# If we have a machine-specific directory, then include it in the build.
28core-y				+= arch/nds32/kernel/ arch/nds32/mm/
29core-$(CONFIG_FPU)              += arch/nds32/math-emu/
30libs-y				+= arch/nds32/lib/
31
32ifneq '$(CONFIG_NDS32_BUILTIN_DTB)' '""'
33BUILTIN_DTB := y
34else
35BUILTIN_DTB := n
36endif
37
38ifdef CONFIG_CPU_LITTLE_ENDIAN
39KBUILD_CFLAGS   += $(call cc-option, -EL)
40KBUILD_AFLAGS   += $(call cc-option, -EL)
41KBUILD_LDFLAGS  += $(call cc-option, -EL)
42CHECKFLAGS      += -D__NDS32_EL__
43else
44KBUILD_CFLAGS   += $(call cc-option, -EB)
45KBUILD_AFLAGS   += $(call cc-option, -EB)
46KBUILD_LDFLAGS  += $(call cc-option, -EB)
47CHECKFLAGS      += -D__NDS32_EB__
48endif
49
50boot := arch/nds32/boot
51core-y += $(boot)/dts/
52
53Image: vmlinux
54	$(Q)$(MAKE) $(build)=$(boot) $(boot)/$@
55
56
57PHONY += vdso_install
58vdso_install:
59	$(Q)$(MAKE) $(build)=arch/nds32/kernel/vdso $@
60
61prepare: vdso_prepare
62vdso_prepare: prepare0
63	$(Q)$(MAKE) $(build)=arch/nds32/kernel/vdso include/generated/vdso-offsets.h
64
65archclean:
66	$(Q)$(MAKE) $(clean)=$(boot)
67
68define archhelp
69  echo  '  Image         - kernel image (arch/$(ARCH)/boot/Image)'
70endef
71