cvw/regression/makefile-memfile

42 lines
1.5 KiB
Plaintext
Raw Normal View History

2022-02-03 01:15:11 +00:00
ROOT := ../..
SUFFIX := work
2022-06-17 22:07:16 +00:00
ARCHDIR := $(ROOT)/tests/riscof
2022-02-03 01:15:11 +00:00
WALLYDIR:= $(ROOT)/tests/wally-riscv-arch-test
# IMPERASDIR := $(ROOT)/tests/imperas-riscv-tests
# ALLDIRS := $(ARCHDIR)/$(SUFFIX) $(WALLYDIR)/$(SUFFIX) $(IMPERASDIR)/$(SUFFIX)
2022-02-03 01:15:11 +00:00
IMPERASDIR := $(ROOT)/tests/imperas-riscv-tests
2023-01-17 21:43:39 +00:00
#ALLDIRS := $(ARCHDIR)/$(SUFFIX) $(WALLYDIR)/$(SUFFIX)
ALLDIRS := $(ARCHDIR)/$(SUFFIX)
2022-02-03 01:15:11 +00:00
ELFFILES ?= $(shell find $(ALLDIRS) -type f -regex ".*\.elf")
OBJDUMPFILES ?= $(shell find $(ALLDIRS) -type f -regex ".*\.elf.objdump")
2022-02-03 01:15:11 +00:00
MEMFILES ?= $(ELFFILES:.elf=.elf.memfile)
ADDRFILES ?= $(OBJDUMPFILES:.objdump=.objdump.addr)
2022-02-03 01:15:11 +00:00
print:
echo "files in $(ALLDIRS) are $(ELFFILES)."
echo "memfiles are $(MEMFILES)"
.PHONY: all wally-sim-files
all: wally-sim-files
2022-02-03 01:15:11 +00:00
2022-08-03 12:33:09 +00:00
wally-sim-files: $(MEMFILES) $(ADDRFILES)
2022-02-03 01:15:11 +00:00
echo "$@"
# notes to self on how this works.
# The find command locates all of the *.elf files in directory DIR1. A list of .memfiles and
# .addr files are generated from the .elf. These are used as targets.
# % is a wildcard in a make target which is then referenced as % in the depenecies and $*
# in the recipe.
# because elf2hex requires a bit width we use findstring to figure out if the compiled directory
# is XLEN=64 or 32. This is hacky and will likely break in the future.
# the .addr is a separate target so make can split into more jobs and more parallism.
%.elf.memfile: %.elf
riscv64-unknown-elf-elf2hex --bit-width $(if $(findstring rv64,$*),64,32) --input $< --output $@
2022-02-03 01:15:11 +00:00
%.elf.objdump.addr: %.elf.objdump
extractFunctionRadix.sh $<
.PHONY: clean
clean: