mirror of
https://github.com/openhwgroup/cvw
synced 2025-01-23 13:04:28 +00:00
25 lines
1.1 KiB
Plaintext
25 lines
1.1 KiB
Plaintext
WORKDIR ?= $(WALLY)/tests/riscof/work/
|
|
|
|
ELFFILES ?= $(shell find $(WORKDIR) -type f -regex ".*\.elf")
|
|
OBJDUMPFILES ?= $(shell find $(WORKDIR) -type f -regex ".*\.elf.objdump")
|
|
MEMFILES ?= $(ELFFILES:.elf=.elf.memfile)
|
|
ADDRFILES ?= $(OBJDUMPFILES:.objdump=.objdump.addr)
|
|
|
|
.PHONY: wally-sim-files
|
|
wally-sim-files: $(MEMFILES) $(ADDRFILES)
|
|
|
|
# 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: BITWIDTH ?= $(if $(findstring rv64,$*),64,32)
|
|
%.elf.memfile: %.elf
|
|
riscv64-unknown-elf-elf2hex --bit-width $(BITWIDTH) --input $< --output $@
|
|
|
|
%.elf.objdump.addr: %.elf.objdump
|
|
extractFunctionRadix.sh $<
|