riscv

an RV32I simulator and related experiments
git clone http://frotz.net/git/riscv.git
Log | Files | Refs | README

Makefile (912B)


      1 
      2 TOOLCHAIN := ../toolchains/riscv32-elf-7.3.0-Linux-x86_64/bin/riscv32-elf-
      3 
      4 CC := $(TOOLCHAIN)gcc
      5 OBJDUMP := $(TOOLCHAIN)objdump
      6 OBJCOPY := $(TOOLCHAIN)objcopy
      7 
      8 CFLAGS := -march=rv32i -mabi=ilp32 -O3
      9 CFLAGS += -ffreestanding -nostdlib
     10 CFLAGS += -Wl,-Bstatic,-T,simple.ld
     11 
     12 all: bin/rvsim out/hello.bin out/hello.elf out/hello.lst
     13 
     14 out/%.bin: out/%.elf
     15 	@mkdir -p out
     16 	$(OBJCOPY) -O binary $< $@
     17 
     18 out/%.lst: out/%.elf
     19 	@mkdir -p out
     20 	$(OBJDUMP) -D $< > $@
     21 
     22 HELLO_SRCS := start.S hello.c
     23 out/hello.elf: $(HELLO_SRCS) Makefile
     24 	@mkdir -p out
     25 	$(CC) $(CFLAGS) -o $@ $(HELLO_SRCS) -lgcc
     26 
     27 RVSIM_SRCS := rvmain.c rvsim.c rvdis.c
     28 bin/rvsim: $(RVSIM_SRCS) Makefile gen/instab.h
     29 	@mkdir -p bin
     30 	gcc -g -O3 -Wall -o $@ $(RVSIM_SRCS)
     31 
     32 bin/mkinstab: mkinstab.c
     33 	@mkdir -p bin
     34 	gcc -O3 -Wall -o $@ $<
     35 
     36 gen/instab.h: instab.txt bin/mkinstab
     37 	@mkdir -p gen
     38 	bin/mkinstab < instab.txt > gen/instab.h
     39 
     40 clean:
     41 	rm -rf out bin gen
     42