aboutsummaryrefslogtreecommitdiffstats
path: root/dhrystone/Makefile
diff options
context:
space:
mode:
Diffstat (limited to 'dhrystone/Makefile')
-rw-r--r--dhrystone/Makefile31
1 files changed, 20 insertions, 11 deletions
diff --git a/dhrystone/Makefile b/dhrystone/Makefile
index 255749d..3609a97 100644
--- a/dhrystone/Makefile
+++ b/dhrystone/Makefile
@@ -1,7 +1,14 @@
-
-OBJS = start.o dhry_1.o dhry_2.o stdlib.o
-CFLAGS = -MD -O3 -m32 -march=RV32IM -ffreestanding -nostdlib -DTIME -DRISCV
-TOOLCHAIN_PREFIX = riscv32-unknown-elf-
+USE_MYSTDLIB = 0
+OBJS = dhry_1.o dhry_2.o stdlib.o
+CFLAGS = -MD -O3 -m32 -march=RV32IM -DTIME -DRISCV
+TOOLCHAIN_PREFIX = /opt/riscv32im/bin/riscv32-unknown-elf-
+
+ifeq ($(USE_MYSTDLIB),1)
+CFLAGS += -DUSE_MYSTDLIB -ffreestanding -nostdlib
+OBJS += start.o
+else
+OBJS += syscalls.o
+endif
test: testbench.vvp dhry.hex
vvp -N testbench.vvp
@@ -21,16 +28,18 @@ timing.vvp: testbench.v ../picorv32.v
iverilog -o timing.vvp -DTIMING testbench.v ../picorv32.v
chmod -x timing.vvp
-dhry.hex: dhry.bin ../firmware/makehex.py
- python3 ../firmware/makehex.py $< 16384 > $@
+dhry.hex: dhry.elf
+ riscv32-unknown-elf-objcopy -O verilog $< $@
-dhry.bin: dhry.elf
- $(TOOLCHAIN_PREFIX)objcopy -O binary $< $@
+ifeq ($(USE_MYSTDLIB),1)
+dhry.elf: $(OBJS) sections.lds
+ $(TOOLCHAIN_PREFIX)gcc $(CFLAGS) -Wl,-Bstatic,-T,sections.lds,-Map,dhry.map,--strip-debug -o $@ $(OBJS) -lgcc
chmod -x $@
-
-dhry.elf: $(OBJS) ../firmware/sections.lds
- $(TOOLCHAIN_PREFIX)gcc $(CFLAGS) -Wl,-Bstatic,-T,../firmware/sections.lds,-Map,dhry.map,--strip-debug -o $@ $(OBJS) -lgcc
+else
+dhry.elf: $(OBJS)
+ $(TOOLCHAIN_PREFIX)gcc $(CFLAGS) -Wl,-Bstatic,-Map,dhry.map,--strip-debug -o $@ $(OBJS) -lgcc -lc
chmod -x $@
+endif
%.o: %.c
$(TOOLCHAIN_PREFIX)gcc -c $(CFLAGS) $<