rjw | 1f88458 | 2022-01-06 17:20:42 +0800 | [diff] [blame^] | 1 | LOCAL_DIR := $(GET_LOCAL_DIR) |
| 2 | |
| 3 | MODULE := $(LOCAL_DIR) |
| 4 | |
| 5 | MODULE_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 | |
| 19 | GLOBAL_DEFINES += \ |
| 20 | SMP_MAX_CPUS=1 |
| 21 | |
| 22 | # set the default toolchain to microblaze elf and set a #define |
| 23 | ifndef TOOLCHAIN_PREFIX |
| 24 | TOOLCHAIN_PREFIX := microblaze-elf- |
| 25 | endif |
| 26 | |
| 27 | WITH_LINKER_GC ?= 0 |
| 28 | |
| 29 | LITTLE_ENDIAN ?= 0 |
| 30 | |
| 31 | ifneq ($(LITTLE_ENDIAN),0) |
| 32 | GLOBAL_COMPILEFLAGS += -mlittle-endian |
| 33 | GLOBAL_LDFLAGS += -EL |
| 34 | GLOBAL_MODULE_LDFLAGS += -EL |
| 35 | endif |
| 36 | |
| 37 | |
| 38 | cc-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 | |
| 41 | ARCH_COMPILEFLAGS := |
| 42 | ARCH_OPTFLAGS := -O2 |
| 43 | |
| 44 | GLOBAL_LDFLAGS += -relax |
| 45 | |
| 46 | KERNEL_BASE ?= $(MEMBASE) |
| 47 | KERNEL_LOAD_OFFSET ?= 0 |
| 48 | VECTOR_BASE_PHYS ?= 0 |
| 49 | |
| 50 | GLOBAL_DEFINES += \ |
| 51 | MEMBASE=$(MEMBASE) \ |
| 52 | MEMSIZE=$(MEMSIZE) |
| 53 | |
| 54 | # potentially generated files that should be cleaned out with clean make rule |
| 55 | GENERATED += \ |
| 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 | |
| 65 | linkerscript.phony: |
| 66 | .PHONY: linkerscript.phony |
| 67 | |
| 68 | LINKER_SCRIPT += $(BUILDDIR)/linker.ld |
| 69 | |
| 70 | include make/module.mk |