forked from Github_Repos/cvw
		
	
		
			
				
	
	
		
			41 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			41 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
ROOT	:= ../..
 | 
						|
SUFFIX	:= work
 | 
						|
ARCHDIR	:= $(ROOT)/tests/riscof
 | 
						|
WALLYDIR:= $(ROOT)/tests/wally-riscv-arch-test
 | 
						|
# IMPERASDIR	:= $(ROOT)/tests/imperas-riscv-tests
 | 
						|
# ALLDIRS := $(ARCHDIR)/$(SUFFIX) $(WALLYDIR)/$(SUFFIX) $(IMPERASDIR)/$(SUFFIX)
 | 
						|
IMPERASDIR	:= $(ROOT)/tests/imperas-riscv-tests
 | 
						|
ALLDIRS := $(ARCHDIR)/$(SUFFIX) $(WALLYDIR)/$(SUFFIX) 
 | 
						|
 | 
						|
ELFFILES	?= $(shell find $(ALLDIRS) -type f -regex ".*\.elf")
 | 
						|
OBJDUMPFILES	?= $(shell find $(ALLDIRS) -type f -regex ".*\.elf.objdump")
 | 
						|
MEMFILES ?= $(ELFFILES:.elf=.elf.memfile)
 | 
						|
ADDRFILES ?= $(OBJDUMPFILES:.objdump=.objdump.addr)
 | 
						|
 | 
						|
print:
 | 
						|
	echo "files in $(ALLDIRS) are $(ELFFILES)."
 | 
						|
	echo "memfiles are $(MEMFILES)"
 | 
						|
 | 
						|
.PHONY: all wally-sim-files
 | 
						|
all: wally-sim-files
 | 
						|
 | 
						|
wally-sim-files: $(MEMFILES) $(ADDRFILES) 
 | 
						|
	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 $@
 | 
						|
 | 
						|
%.elf.objdump.addr: %.elf.objdump
 | 
						|
	extractFunctionRadix.sh $<
 | 
						|
 | 
						|
.PHONY: clean
 | 
						|
clean:
 |