diff --git a/src/asm/make.sh b/src/asm/make.sh index 2f39996..863334a 100644 --- a/src/asm/make.sh +++ b/src/asm/make.sh @@ -1,30 +1,31 @@ -#!/bin/sh - -TARGET=$(basename $1 .c) -TARGET_CPU=r3000 +TARGET=r3000 ROM_WORDADDR_WIDTH=12 RAM_WORDADDR_WIDTH=11 -echo Building $TARGET... +AR=mips-elf-ar +CC=mips-elf-gcc +LD=mips-elf-ld +OBJCOPY=mips-elf-objcopy -mipsel-elf-as.exe -march=$TARGET_CPU startup.s -o startup.o -mipsel-elf-as.exe -march=$TARGET_CPU init.s -o init.o -mipsel-elf-as.exe -march=$TARGET_CPU kernel.s -o kernel.o +CFLAGS=-march=$TARGET -#mipsel-elf-gcc -O2 -march=$TARGET_CPU $TARGET.c -o $TARGET.s -L $LIBDIR +libsys.a: + $(CC) $(CFLAGS) -c libsys/startup.s -o startup.o + $(CC) $(CFLAGS) -c libsys/init.s -o init.o + $(CC) $(CFLAGS) -c libsys/kernel.s -o kernel.o + $(CC) $(CFLAGS) -c libsys/utils.c -o utils.o + $(AR) -r libsys.a startup.o init.o kernel.o utils.o -mipsel-elf-gcc -msoft-float -O2 -c utils.c -o utils.o -mipsel-elf-gcc -msoft-float -O2 -c $TARGET.c -o $TARGET.o -mipsel-elf-ld.exe -G 0 -M -T link.ld startup.o init.o kernel.o utils.o $TARGET.o -o $TARGET.elf -L /usr/local/mipsel-elf/lib -L /usr/local/lib/gcc/mipsel-elf/3.4.6 -lc -lgcc >$TARGET.map -mipsel-elf-objdump.exe -d $TARGET.elf > $TARGET.dis -mipsel-elf-objcopy.exe -j .stext -j .ktext -j .text $TARGET.elf -O binary $TARGET.ROM.bin -mipsel-elf-objcopy.exe -j .data $TARGET.elf -O binary $TARGET.RAM.bin +testbench.elf: + $(CC) $(CFLAGS) -c testbench.c -o testbench.o + $(LD) $(CFLAGS) -lsys -o $@ + $(OBJCOPY) -j .stext -j .ktext -j .text $@ -O binary $@.ROM.bin + $(OBJCOPY) -j .data $@.elf -O binary $@.RAM.bin -./romgen.exe $TARGET.ROM.bin $ROM_WORDADDR_WIDTH -./ramgen.exe $TARGET.RAM.bin $RAM_WORDADDR_WIDTH +romgen.exe $@.ROM.bin $ROM_WORDADDR_WIDTH +ramgen.exe $@.RAM.bin $RAM_WORDADDR_WIDTH #xtclsh.exe $TARGET.RAM.tcl #xtclsh.exe $TARGET.ROM.tcl -echo done. \ No newline at end of file