Files
Gen4_R-Car_Trace32/2_Trunk/demo/t32cast/eca/riscv/makefile
2025-10-14 09:52:32 +09:00

73 lines
2.3 KiB
Makefile

export SHELLOPTS := igncr
CPU32 := -march=rv32i -mabi=ilp32 -mcmodel=medany -msmall-data-limit=8
CPU64 := -march=rv64i -mabi=lp64 -mcmodel=medany -msmall-data-limit=8
AOPT := -g -Wall -Wa,--gdwarf2 -xassembler-with-cpp -c
COPT := -std=c99 -g -O0 -fno-jump-tables -ffunction-sections -fdata-sections -Wall -c
LOPT := -g -Wall -Wl,--nmagic -nostartfiles -Wl,--gc-sections
LIBS := -lm -lc
TMP := ./tmp
VPATH := . ..
CCGRP :=C:\Compiler\RISC-V\gcc_win\bin\riscv64-unknown-elf-
ECAGRP :=C:/T32/bin/windows64/
NAME := coverage
.PHONY: all
all: $(NAME).rv32.elf $(NAME).rv64.elf $(NAME)_flash.rv32.elf $(NAME)_flash.rv64.elf $(NAME).c.eca
$(TMP):
mkdir $(TMP)
$(TMP)/%.rv32.o: %.c $(MAKEFILE_LIST)
$(CCGRP)gcc $(COPT) $(CPU32) -o $@ $<
$(TMP)/%.rv64.o: %.c $(MAKEFILE_LIST)
$(CCGRP)gcc $(COPT) $(CPU64) -o $@ $<
$(TMP)/%.rv32.o: %.cpp $(MAKEFILE_LIST)
$(CCGRP)g++ $(COPT) $(CPU32) -o $@ $<
$(TMP)/%.rv64.o: %.cpp $(MAKEFILE_LIST)
$(CCGRP)g++ $(COPT) $(CPU64) -o $@ $<
$(TMP)/%.rv32.o: %.s $(MAKEFILE_LIST)
$(CCGRP)gcc $(AOPT) $(CPU32) -o $@ $<
$(TMP)/%.rv64.o: %.s $(MAKEFILE_LIST)
$(CCGRP)gcc $(AOPT) $(CPU64) -o $@ $<
$(TMP)/flash.ld: riscv.lds $(MAKEFILE_LIST) | $(TMP)
$(CCGRP)cpp -P -o $@ $< -D FLASHSTART=0x0 -D RAMSTART=0x08000000 -D RAMSIZE=32K -D FLASHSIZE=128K
$(TMP)/sram.ld: riscv.lds $(MAKEFILE_LIST) | $(TMP)
$(CCGRP)cpp -P -o $@ $< -D RAMSTART=0x80000000 -D RAMSIZE=32K
$(NAME)_flash.rv32.elf: $(addprefix $(TMP)/,flash.ld entry.rv32.o start.rv32.o main.rv32.o $(NAME).rv32.o)
$(CCGRP)gcc $(LOPT) $(CPU32) -o $@ -T $^ -Wl,--start-group $(LIBS) -Wl,--end-group
$(NAME)_flash.rv64.elf: $(addprefix $(TMP)/,flash.ld entry.rv64.o start.rv64.o main.rv64.o $(NAME).rv64.o)
$(CCGRP)gcc $(LOPT) $(CPU64) -o $@ -T $^ -Wl,--start-group $(LIBS) -Wl,--end-group
$(NAME).rv32.elf: $(addprefix $(TMP)/,sram.ld start.rv32.o start.rv32.o main.rv32.o $(NAME).rv32.o)
$(CCGRP)gcc $(LOPT) $(CPU32) -o $@ -T $^ -Wl,--start-group $(LIBS) -Wl,--end-group
$(NAME).rv64.elf: $(addprefix $(TMP)/,sram.ld start.rv64.o start.rv64.o main.rv64.o $(NAME).rv64.o)
$(CCGRP)gcc $(LOPT) $(CPU64) -o $@ -T $^ -Wl,--start-group $(LIBS) -Wl,--end-group
# Create files for extended code analysis using t32cast
ECAOPT := -m32
%.c.eca: %.c | $(TMP)
$(ECAGRP)t32cast $(ECAOPT) -o $(addprefix ../,$@) $^
clean:
-rm -fvr $(TMP)
-rm -fv *.elf
-rm -fv ../*.eca