# environment vaiables read: # BOARD = {ml402, denano} # TLB = {no, yes} # ENDIANESS = {eb, el} BOARD ?= ml402 TLB ?= no ENDIANESS ?= eb ifeq ($(ENDIANESS),el) ENDIAN_FLAGS=-EL else ENDIAN_FLAGS=-EB endif CFLAGS=$(ENDIAN_FLAGS) -g -msoft-float -O2 -march=r3000 -I. -Iboards/$(BOARD) -D$(BOARD) -DWITH_ROM_GDBSTUB ifeq ($(TLB),yes) CFLAGS+=-DSYS_IO_BASE=0xAC000000 -DSDRAM_BASE=0x80000000 -DFLASH_BASE_IO=0xA4000000 -DFLASH_BASE_MEM=0x88000000 else CFLAGS+=-DSYS_IO_BASE=0xA0000000 -DSDRAM_BASE=0x40000000 -DFLASH_BASE_IO=0xA4000000 -DFLASH_BASE_MEM=0x00000000 endif BUILD_DIR=./build/$(BOARD)/$(ENDIANESS) AS=mips-elf-as AR=mips-elf-ar CC=mips-elf-gcc LD=mips-elf-ld OBJDUMP=mips-elf-objdump OBJCOPY=mips-elf-objcopy FLASHGEN=flashgen OBJS-ml402=$(addprefix $(BUILD_DIR)/, libsys.o xcpt.o syscalls.o cop0.o irq.o mips_dbg.o mips_dis.o mips_ps2.o mips_gfx.o console.o screen.o uart.o board.o gpio.o) OBJS-denano=$(addprefix $(BUILD_DIR)/, libsys.o xcpt.o syscalls.o cop0.o irq.o mips_dbg.o mips_dis.o console.o uart.o board.o gdb_stub.o) all: $(BUILD_DIR) $(BUILD_DIR)/libsys.a $(BUILD_DIR)/%.o : %.c $(CC) $(CFLAGS) -G 0 -c -o $@ $< $(BUILD_DIR)/%.o : %.S $(CC) $(CFLAGS) -G 0 -c -o $@ $< $(BUILD_DIR)/board.o : boards/$(BOARD)/board.c $(CC) $(CFLAGS) -G 0 -c -o $@ $< $(BUILD_DIR)/libsys.a: $(OBJS-$(BOARD)) $(AR) -r $(BUILD_DIR)/libsys.a $(OBJS-$(BOARD)) $(CC) $(CFLAGS) -G 0 -c -o $(BUILD_DIR)/startup.o startup.S $(CC) $(CFLAGS) -G 0 -c -o $(BUILD_DIR)/kernel.o kernel.S $(BUILD_DIR): mkdir -p $(BUILD_DIR) clean: rm -rf $(BUILD_DIR)/*.a $(BUILD_DIR)/*.o > /dev/null mrproper: rm -rf $(BUILD_DIR)