blob: 86f4a11ada4702ce698137e708b1438a42e61ab1 [file] [log] [blame]
rjw1f884582022-01-06 17:20:42 +08001LOCAL_DIR := $(GET_LOCAL_DIR)
2
3MODULE := $(LOCAL_DIR)
4
5MODULE_SRCS += \
6 $(LOCAL_DIR)/start.S \
7 $(LOCAL_DIR)/arch.c \
8 $(LOCAL_DIR)/asm.S \
9 $(LOCAL_DIR)/exceptions.c \
10 $(LOCAL_DIR)/thread.c \
11
12# $(LOCAL_DIR)/cache.c \
13 $(LOCAL_DIR)/cache-ops.S \
14 $(LOCAL_DIR)/ops.S \
15 $(LOCAL_DIR)/mmu.c \
16 $(LOCAL_DIR)/faults.c \
17 $(LOCAL_DIR)/descriptor.c
18
19GLOBAL_DEFINES += \
20 SMP_MAX_CPUS=1
21
22# set the default toolchain to microblaze elf and set a #define
23ifndef TOOLCHAIN_PREFIX
24TOOLCHAIN_PREFIX := microblaze-elf-
25endif
26
27WITH_LINKER_GC ?= 0
28
29LITTLE_ENDIAN ?= 0
30
31ifneq ($(LITTLE_ENDIAN),0)
32GLOBAL_COMPILEFLAGS += -mlittle-endian
33GLOBAL_LDFLAGS += -EL
34GLOBAL_MODULE_LDFLAGS += -EL
35endif
36
37
38cc-option = $(shell if test -z "`$(1) $(2) -S -o /dev/null -xc /dev/null 2>&1`"; \
39 then echo "$(2)"; else echo "$(3)"; fi ;)
40
41ARCH_COMPILEFLAGS :=
42ARCH_OPTFLAGS := -O2
43
44GLOBAL_LDFLAGS += -relax
45
46KERNEL_BASE ?= $(MEMBASE)
47KERNEL_LOAD_OFFSET ?= 0
48VECTOR_BASE_PHYS ?= 0
49
50GLOBAL_DEFINES += \
51 MEMBASE=$(MEMBASE) \
52 MEMSIZE=$(MEMSIZE)
53
54# potentially generated files that should be cleaned out with clean make rule
55GENERATED += \
56 $(BUILDDIR)/linker.ld
57
58# rules for generating the linker
59$(BUILDDIR)/linker.ld: $(LOCAL_DIR)/linker.ld $(wildcard arch/*.ld) linkerscript.phony
60 @echo generating $@
61 @$(MKDIR)
62 $(NOECHO)sed "s/%MEMBASE%/$(MEMBASE)/;s/%MEMSIZE%/$(MEMSIZE)/;s/%KERNEL_BASE%/$(KERNEL_BASE)/;s/%KERNEL_LOAD_OFFSET%/$(KERNEL_LOAD_OFFSET)/;s/%VECTOR_BASE_PHYS%/$(VECTOR_BASE_PHYS)/" < $< > $@.tmp
63 @$(call TESTANDREPLACEFILE,$@.tmp,$@)
64
65linkerscript.phony:
66.PHONY: linkerscript.phony
67
68LINKER_SCRIPT += $(BUILDDIR)/linker.ld
69
70include make/module.mk