1LOCAL_DIR := $(GET_LOCAL_DIR) 2 3MODULE := $(LOCAL_DIR) 4 5MODULE_SRCS += $(LOCAL_DIR)/arch.c 6MODULE_SRCS += $(LOCAL_DIR)/asm.S 7MODULE_SRCS += $(LOCAL_DIR)/exceptions.c 8MODULE_SRCS += $(LOCAL_DIR)/exceptions_asm.S 9MODULE_SRCS += $(LOCAL_DIR)/start.S 10MODULE_SRCS += $(LOCAL_DIR)/thread.c 11 12GLOBAL_DEFINES += SMP_MAX_CPUS=1 13 14# set the default toolchain to microblaze elf and set a #define 15ifndef TOOLCHAIN_PREFIX 16TOOLCHAIN_PREFIX := m68k-elf- 17endif 18 19# select the cpu based on flags the platform/target passes in 20M68K_CPU ?= 68040 # default to 040 21 22ifeq ($(M68K_CPU),68000) 23ARCH_COMPILEFLAGS := -mcpu=68000 24else ifeq ($(M68K_CPU),68010) 25ARCH_COMPILEFLAGS := -mcpu=68010 26else ifeq ($(M68K_CPU),68020) 27ARCH_COMPILEFLAGS := -mcpu=68020 28else ifeq ($(M68K_CPU),68030) 29ARCH_COMPILEFLAGS := -mcpu=68030 30else ifeq ($(M68K_CPU),68040) 31ARCH_COMPILEFLAGS := -mcpu=68040 32else 33$(error add support for selected cpu $(M68K_CPU)) 34endif 35 36LIBGCC := $(shell $(TOOLCHAIN_PREFIX)gcc $(GLOBAL_COMPILEFLAGS) $(ARCH_COMPILEFLAGS) $(GLOBAL_COMPILEFLAGS) -print-libgcc-file-name) 37$(info LIBGCC = $(LIBGCC)) 38 39cc-option = $(shell if test -z "`$(1) $(2) -S -o /dev/null -xc /dev/null 2>&1`"; \ 40 then echo "$(2)"; else echo "$(3)"; fi ;) 41 42ARCH_OPTFLAGS := -O2 43 44KERNEL_BASE ?= $(MEMBASE) 45KERNEL_LOAD_OFFSET ?= 0 46 47GLOBAL_DEFINES += MEMBASE=$(MEMBASE) 48GLOBAL_DEFINES += MEMSIZE=$(MEMSIZE) 49GLOBAL_DEFINES += M68K_CPU=$(M68K_CPU) 50GLOBAL_DEFINES += M68K_CPU_$(M68K_CPU)=1 51 52# potentially generated files that should be cleaned out with clean make rule 53GENERATED += \ 54 $(BUILDDIR)/linker.ld 55 56# rules for generating the linker 57$(BUILDDIR)/linker.ld: $(LOCAL_DIR)/linker.ld $(wildcard arch/*.ld) linkerscript.phony 58 @echo generating $@ 59 @$(MKDIR) 60 $(NOECHO)sed "s/%MEMBASE%/$(MEMBASE)/;s/%MEMSIZE%/$(MEMSIZE)/;s/%KERNEL_BASE%/$(KERNEL_BASE)/;s/%KERNEL_LOAD_OFFSET%/$(KERNEL_LOAD_OFFSET)/" < $< > $@.tmp 61 @$(call TESTANDREPLACEFILE,$@.tmp,$@) 62 63linkerscript.phony: 64.PHONY: linkerscript.phony 65 66LINKER_SCRIPT += $(BUILDDIR)/linker.ld 67 68include make/module.mk 69