aboutsummaryrefslogtreecommitdiff
path: root/contrib/loaders/flash/fespi/Makefile
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/loaders/flash/fespi/Makefile')
-rw-r--r--contrib/loaders/flash/fespi/Makefile45
1 files changed, 34 insertions, 11 deletions
diff --git a/contrib/loaders/flash/fespi/Makefile b/contrib/loaders/flash/fespi/Makefile
index 4d2ab51..edecf0a 100644
--- a/contrib/loaders/flash/fespi/Makefile
+++ b/contrib/loaders/flash/fespi/Makefile
@@ -2,27 +2,50 @@ BIN2C = ../../../../src/helper/bin2char.sh
CROSS_COMPILE ?= riscv64-unknown-elf-
-CC=$(CROSS_COMPILE)gcc
-OBJCOPY=$(CROSS_COMPILE)objcopy
-OBJDUMP=$(CROSS_COMPILE)objdump
+RISCV_CC=$(CROSS_COMPILE)gcc
+RISCV_OBJCOPY=$(CROSS_COMPILE)objcopy
+RISCV_OBJDUMP=$(CROSS_COMPILE)objdump
-CFLAGS = -march=rv32i -mabi=ilp32 -x assembler-with-cpp -nostdlib -nostartfiles
+CFLAGS = -nostdlib -nostartfiles -Wall -Werror -Os -fPIC -Wunused-result -g
+RISCV32_CFLAGS = -march=rv32e -mabi=ilp32e $(CFLAGS)
+RISCV64_CFLAGS = -march=rv64i -mabi=lp64 $(CFLAGS)
-all: fespi.inc
+all: riscv32_fespi.inc riscv64_fespi.inc
.PHONY: clean
-%.elf: %.S
- $(CC) $(CFLAGS) $< -o $@
+# .c -> .o
+riscv32_%.o: riscv_%.c
+ $(RISCV_CC) -c $(RISCV32_CFLAGS) $^ -o $@
-%.lst: %.elf
- $(OBJDUMP) -S $< > $@
+riscv64_%.o: riscv_%.c
+ $(RISCV_CC) -c $(RISCV64_CFLAGS) $< -o $@
+
+# .S -> .o
+riscv32_%.o: riscv_%.S
+ $(RISCV_CC) -c $(RISCV32_CFLAGS) $^ -o $@
+
+riscv64_%.o: riscv_%.S
+ $(RISCV_CC) -c $(RISCV64_CFLAGS) $^ -o $@
+
+# .o -> .elf
+riscv32_%.elf: riscv32_%.o riscv32_wrapper.o
+ $(RISCV_CC) -T riscv.lds $(RISCV32_CFLAGS) $^ -o $@
+riscv64_%.elf: riscv64_%.o riscv64_wrapper.o
+ $(RISCV_CC) -T riscv.lds $(RISCV64_CFLAGS) $^ -o $@
+
+# .elf -> .bin
%.bin: %.elf
- $(OBJCOPY) -Obinary $< $@
+ $(RISCV_OBJCOPY) -Obinary $< $@
+# .bin -> .inc
%.inc: %.bin
$(BIN2C) < $< > $@
+# utility
+%.lst: %.elf
+ $(RISCV_OBJDUMP) -S $< > $@
+
clean:
- -rm -f *.elf *.lst *.bin *.inc
+ -rm -f *.elf *.o *.lst *.bin *.inc