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