Subversion Repositories HelenOS-historic

Rev

Rev 324 | Go to most recent revision | Blame | Last modification | View Log | Download | RSS feed

MIPS_TARGET=mipsel-linux-gnu

MIPS_CC_DIR=/usr/local/mipsel/bin
MIPS_BINUTILS_DIR=/usr/local/mipsel/bin

CC=$(MIPS_CC_DIR)/$(MIPS_TARGET)-gcc
AS=$(MIPS_BINUTILS_DIR)/$(MIPS_TARGET)-as
LD=$(MIPS_BINUTILS_DIR)/$(MIPS_TARGET)-ld
OBJDUMP=$(MIPS_BINUTILS_DIR)/$(MIPS_TARGET)-objdump
OBJCOPY=$(MIPS_BINUTILS_DIR)/$(MIPS_TARGET)-objcopy
BFD_NAME=elf32-tradlittlemips
BFD_ARCH=mips

ASFLAGS=-mips3

DEFS=-DARCH=$(ARCH) -DMACHINE=${MACHINE}
CFLAGS=$(DEFS) -mno-abicalls -mips3 -G 0 -nostdlib -fno-builtin -O2 
LFLAGS=-mips2 -M -no-check-sections

# It seems that on big endian either GCC or the simulators
# have the swl/swr/lwl/lwr instructions wrong. Just for sure,
# disable it with -mmemcpy (force calling memcpy instead of inlining)

ifeq (${MACHINE},indy)
 CFLAGS += -EB -mmemcpy -DBIG_ENDIAN -DHAVE_FPU -DFPU_LAZY
 BFD = elf32-big
endif

ifeq (${MACHINE},lgxemul)
 CFLAGS += -DHAVE_FPU -DFPU_LAZY
 BFD = ecoff-littlemips
endif

ifeq (${MACHINE},bgxemul)
 CFLAGS += -EB -mmemcpy -DBIG_ENDIAN -DHAVE_FPU -DFPU_LAZY
 BFD = ecoff-bigmips
endif

ifeq (${MACHINE},msim)
 BFD = binary
 CFLAGS += -msoft-float
endif

ifeq (${MACHINE},simics)
 BFD = elf32-little
 CFLAGS += -msoft-float
endif

../arch/$(ARCH)/_link.ld: ../arch/$(ARCH)/_link.ld.in
    $(CC) $(CFLAGS) -C -DBFD=${BFD} -E -x c $< | grep -v "^\#" > $@

arch_sources= \
    arch/start.S \
    arch/context.S \
    arch/panic.S \
    arch/mips.c \
    arch/dummy.S \
    arch/console.c \
    arch/asm.S \
    arch/exception.c \
    arch/interrupt.c \
    arch/cache.c \
    arch/cpu/cpu.c \
    arch/mm/frame.c \
    arch/mm/page.c \
    arch/mm/tlb.c \
    arch/fpu_context.c \
    arch/fmath.c