1LOCAL_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 $(LOCAL_DIR)/cache-ops.c \ 12 $(LOCAL_DIR)/mmu.c \ 13 $(LOCAL_DIR)/faults.c 14 15GLOBAL_DEFINES += \ 16 SMP_MAX_CPUS=1 17 18# set the default toolchain to or1k elf and set a #define 19ifndef TOOLCHAIN_PREFIX 20TOOLCHAIN_PREFIX := or1k-elf- 21endif 22 23cc-option = $(shell if test -z "`$(1) $(2) -S -o /dev/null -xc /dev/null 2>&1`"; \ 24 then echo "$(2)"; else echo "$(3)"; fi ;) 25 26ARCH_OPTFLAGS := -O2 27 28ARCH_LDFLAGS += -relax 29 30LIBGCC := $(shell $(TOOLCHAIN_PREFIX)gcc $(GLOBAL_COMPILEFLAGS) $(ARCH_COMPILEFLAGS) -print-libgcc-file-name) 31$(info LIBGCC = $(LIBGCC)) 32 33KERNEL_BASE ?= $(MEMBASE) 34KERNEL_LOAD_OFFSET ?= 0 35 36GLOBAL_DEFINES += \ 37 KERNEL_BASE=$(KERNEL_BASE) \ 38 KERNEL_LOAD_OFFSET=$(KERNEL_LOAD_OFFSET) 39 40GLOBAL_DEFINES += \ 41 MEMBASE=$(MEMBASE) \ 42 MEMSIZE=$(MEMSIZE) 43 44# we have an mmu 45WITH_KERNEL_VM=1 46 47GLOBAL_DEFINES += \ 48 ARCH_HAS_MMU=1 49 50# potentially generated files that should be cleaned out with clean make rule 51GENERATED += \ 52 $(BUILDDIR)/linker.ld 53 54# rules for generating the linker 55$(BUILDDIR)/linker.ld: $(LOCAL_DIR)/linker.ld $(wildcard arch/*.ld) 56 @echo generating $@ 57 @$(MKDIR) 58 $(NOECHO)sed "s/%MEMBASE%/$(MEMBASE)/;s/%MEMSIZE%/$(MEMSIZE)/;s/%KERNEL_BASE%/$(KERNEL_BASE)/;s/%KERNEL_LOAD_OFFSET%/$(KERNEL_LOAD_OFFSET)/" < $< > $@ 59 60LINKER_SCRIPT += $(BUILDDIR)/linker.ld 61 62include make/module.mk 63