calculator/Makefile
2025-03-09 20:15:33 +10:00

66 lines
1.6 KiB
Makefile

CC=riscv64-unknown-elf-gcc
AS=riscv64-unknown-elf-as
ASFLAGS=-g -mabi=ilp32e -march=rv32ec
CFLAGS=$(ASFLAGS) -Os -Wall -std=c99
LD=riscv64-unknown-elf-ld
export JQ?=jaq
export QEMU?=qemu-riscv32
TEST_SRC := $(shell find tests -name '*.s')
# Replace .s with .elf
TESTS := $(patsubst %.s,%.elf,$(TEST_SRC))
all: calc.elf tests
check: tests
@tests/unittest
clean:
rm -f *.o tests/*.o *.elf tests/*.elf
hello.elf: hello.o
$(LD) -m elf32lriscv $^ -o $@
calc.elf: mem.o hex.o debug.o math.o calc.o
$(LD) -m elf32lriscv -T link.ld $^ -o $@
tests: $(TESTS)
tests/math_add64.elf: hex.o math.o tests/math_add64.o
$(LD) -m elf32lriscv -T link.ld $^ -o $@
tests/math_mul.elf: hex.o math.o tests/math_mul.o
$(LD) -m elf32lriscv -T link.ld $^ -o $@
tests/math_div.elf: hex.o math.o tests/math_div.o
$(LD) -m elf32lriscv -T link.ld $^ -o $@
tests/math_divmod.elf: hex.o math.o tests/math_divmod.o
$(LD) -m elf32lriscv -T link.ld $^ -o $@
tests/math_mod.elf: hex.o math.o tests/math_mod.o
$(LD) -m elf32lriscv -T link.ld $^ -o $@
tests/math_clz.elf: hex.o math.o tests/math_clz.o
$(LD) -m elf32lriscv -T link.ld $^ -o $@
tests/fmt_count_digits.elf: hex.o math.o fmt.o tests/fmt_count_digits.o
$(LD) -m elf32lriscv -T link.ld $^ -o $@
tests/fmt_decimal.elf: math.o fmt.o tests/fmt_decimal.o
$(LD) -m elf32lriscv -T link.ld $^ -o $@
tests/btohex.elf: mem.o hex.o debug.o tests/btohex.o
$(LD) -m elf32lriscv -T link.ld $^ -o $@
tests/tohex.elf: hex.o tests/tohex.o
$(LD) -m elf32lriscv -T link.ld $^ -o $@
tests/harness.elf: tests/harness.o tests/charness.o
$(LD) -m elf32lriscv -T link.ld $^ -o $@
%.o : %.s
$(AS) $(ASFLAGS) $< -o $@
.PHONY: check tests