mirror of
				https://github.com/openhwgroup/cvw
				synced 2025-02-11 06:05:49 +00:00 
			
		
		
		
	Update fp Makefile to generate softfloat
This commit is contained in:
		
							parent
							
								
									7f0c2662b3
								
							
						
					
					
						commit
						bf0c7fba95
					
				@ -8,40 +8,57 @@
 | 
				
			|||||||
.NOTPARALLEL:
 | 
					.NOTPARALLEL:
 | 
				
			||||||
.SECONDEXPANSION:
 | 
					.SECONDEXPANSION:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
TESTFLOATS := ieee riscv
 | 
					DIR := $(shell pwd)
 | 
				
			||||||
SOFTFLOAT_BUILD_DIR := ${WALLY}/addins/berkeley-softfloat-3/build/Linux-x86_64-GCC/
 | 
					
 | 
				
			||||||
TESTFLOAT_BUILD_DIR := ${WALLY}/addins/berkeley-testfloat-3/build/Linux-x86_64-GCC/
 | 
					# SoftFloat variables
 | 
				
			||||||
 | 
					SOFTFLOAT_DIR := ${WALLY}/addins/berkeley-softfloat-3
 | 
				
			||||||
 | 
					SOFTFLOAT_INCLUDE_DIR := source/include/
 | 
				
			||||||
 | 
					SOFTFLOAT_BUILD_DIR := build/Linux-x86_64-GCC/
 | 
				
			||||||
 | 
					SOFTFLOAT_ORIGINAL_BUILD_DIR := ${SOFTFLOAT_DIR}/${SOFTFLOAT_BUILD_DIR}
 | 
				
			||||||
 | 
					SOFTFLOAT_ORIGINAL_INCLUDE_DIR := ${SOFTFLOAT_DIR}/${SOFTFLOAT_INCLUDE_DIR}
 | 
				
			||||||
 | 
					SOFTFLOAT_LIB := softfloat.a
 | 
				
			||||||
 | 
					COPIED_SOFTFLOAT_LIB := softfloat/${SOFTFLOAT_BUILD_DIR}/${SOFTFLOAT_LIB}
 | 
				
			||||||
 | 
					ORIGINAL_SOFTFLOAT_LIB := ${SOFTFLOAT_ORIGINAL_BUILD_DIR}/${SOFTFLOAT_LIB}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# TestFloat variables
 | 
				
			||||||
 | 
					TESTFLOAT_DIR := ${WALLY}/addins/berkeley-testfloat-3
 | 
				
			||||||
 | 
					TESTFLOAT_BUILD_DIR := build/Linux-x86_64-GCC
 | 
				
			||||||
 | 
					TESTFLOAT_ORIGINAL_BUILD_DIR := ${TESTFLOAT_DIR}/${TESTFLOAT_BUILD_DIR}
 | 
				
			||||||
TESTFLOAT_EXECUTABLES := testfloat testfloat_gen testfloat_ver testsoftfloat timesoftfloat
 | 
					TESTFLOAT_EXECUTABLES := testfloat testfloat_gen testfloat_ver testsoftfloat timesoftfloat
 | 
				
			||||||
ORIGINAL_TESTFLOAT_EXECUTABLES := $(foreach item,${TESTFLOAT_EXECUTABLES},$(patsubst %,${TESTFLOAT_BUILD_DIR}%,${item}))
 | 
					ORIGINAL_TESTFLOAT_EXECUTABLES := $(foreach item,${TESTFLOAT_EXECUTABLES},$(patsubst %,${TESTFLOAT_ORIGINAL_BUILD_DIR}%,/${item}))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.PHONY: all ieee-softfloat riscv-softfloat ${TESTFLOATS} testfloat clean
 | 
					.PHONY: all ieee riscv clean
 | 
				
			||||||
 | 
					
 | 
				
			||||||
all: riscv ieee
 | 
					all: ieee riscv
 | 
				
			||||||
 | 
					
 | 
				
			||||||
${TESTFLOATS}: dir_$$@ $$@/testfloat_gen
 | 
					ieee riscv: ieee-testfloat #$$@/testfloat/${TESTFLOAT_BUILD_DIR}/testfloat
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.PRECIOUS: %/testfloat_gen
 | 
					ieee-testfloat: ieee/testfloat/${TESTFLOAT_BUILD_DIR}/testfloat
 | 
				
			||||||
%/testfloat_gen:
 | 
					ieee-softfloat: ieee/$(COPIED_SOFTFLOAT_LIB)
 | 
				
			||||||
	$(MAKE) $*-softfloat
 | 
					 | 
				
			||||||
	$(MAKE) testfloat
 | 
					 | 
				
			||||||
	cp -r ${ORIGINAL_TESTFLOAT_EXECUTABLES} $*/
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
ieee-softfloat:
 | 
					# .PRECIOUS: %/testfloat
 | 
				
			||||||
	$(MAKE) -C $(SOFTFLOAT_BUILD_DIR) clean
 | 
					%/testfloat/${TESTFLOAT_BUILD_DIR}/testfloat: %/$(COPIED_SOFTFLOAT_LIB)
 | 
				
			||||||
	$(MAKE) -C $(SOFTFLOAT_BUILD_DIR)
 | 
						$(MAKE) -C $(TESTFLOAT_ORIGINAL_BUILD_DIR) clean
 | 
				
			||||||
 | 
						$(MAKE) SOFTFLOAT_DIR=${DIR}/$*/softfloat -C $(TESTFLOAT_ORIGINAL_BUILD_DIR)
 | 
				
			||||||
 | 
						cp -r ${ORIGINAL_TESTFLOAT_EXECUTABLES} $*/testfloat/${TESTFLOAT_BUILD_DIR}/
 | 
				
			||||||
 | 
						$(MAKE) -C $(TESTFLOAT_ORIGINAL_BUILD_DIR) clean
 | 
				
			||||||
 | 
					
 | 
				
			||||||
riscv-softfloat:
 | 
					# Build specified version of SoftFloat, either IEEE or RISCV
 | 
				
			||||||
	$(MAKE) -C $(SOFTFLOAT_BUILD_DIR) clean
 | 
					riscv/$(COPIED_SOFTFLOAT_LIB): SPECIALIZE_TYPE = SPECIALIZE_TYPE=RISCV
 | 
				
			||||||
	$(MAKE) SPECIALIZE_TYPE=RISCV -C $(SOFTFLOAT_BUILD_DIR)
 | 
					%/$(COPIED_SOFTFLOAT_LIB): %/${SOFTFLOAT_INCLUDE_DIR}/softfloat.h
 | 
				
			||||||
 | 
						$(MAKE) -C $(SOFTFLOAT_ORIGINAL_BUILD_DIR) clean
 | 
				
			||||||
 | 
						$(MAKE) $(SPECIALIZE_TYPE) -C $(SOFTFLOAT_ORIGINAL_BUILD_DIR)
 | 
				
			||||||
 | 
						cp ${ORIGINAL_SOFTFLOAT_LIB} $*/${COPIED_SOFTFLOAT_LIB}
 | 
				
			||||||
 | 
						$(MAKE) -C $(SOFTFLOAT_ORIGINAL_BUILD_DIR) clean
 | 
				
			||||||
 | 
					
 | 
				
			||||||
testfloat:
 | 
					# Setup directories and link softfloat headers
 | 
				
			||||||
	$(MAKE) -C $(TESTFLOAT_BUILD_DIR) clean
 | 
					%/${SOFTFLOAT_INCLUDE_DIR}/softfloat.h:
 | 
				
			||||||
	$(MAKE) -C $(TESTFLOAT_BUILD_DIR)
 | 
						mkdir -p $*/softfloat/source/include
 | 
				
			||||||
 | 
						ln -sf ${SOFTFLOAT_ORIGINAL_INCLUDE_DIR}/* $*/softfloat/${SOFTFLOAT_INCLUDE_DIR}
 | 
				
			||||||
dir_%:
 | 
						mkdir -p $*/softfloat/build/Linux-x86_64-GCC
 | 
				
			||||||
	mkdir -p $*
 | 
						mkdir -p $*/testfloat/${TESTFLOAT_BUILD_DIR}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
clean:
 | 
					clean:
 | 
				
			||||||
	$(MAKE) -C $(SOFTFLOAT_BUILD_DIR) clean
 | 
						$(MAKE) -C $(SOFTFLOAT_ORIGINAL_BUILD_DIR) clean
 | 
				
			||||||
	$(MAKE) -C $(TESTFLOAT_BUILD_DIR) clean
 | 
						$(MAKE) -C $(TESTFLOAT_ORIGINAL_BUILD_DIR) clean
 | 
				
			||||||
	rm -f ieee/* riscv/*
 | 
						rm -rf ieee/* riscv/*
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
		Reference in New Issue
	
	Block a user