mirror of
https://github.com/openhwgroup/cvw.git
synced 2025-04-22 12:57:23 -04:00
Update fp Makefile to generate softfloat
This commit is contained in:
parent
7f0c2662b3
commit
bf0c7fba95
1 changed files with 44 additions and 27 deletions
|
@ -8,40 +8,57 @@
|
|||
.NOTPARALLEL:
|
||||
.SECONDEXPANSION:
|
||||
|
||||
TESTFLOATS := ieee riscv
|
||||
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/
|
||||
DIR := $(shell pwd)
|
||||
|
||||
# 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
|
||||
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
|
||||
%/testfloat_gen:
|
||||
$(MAKE) $*-softfloat
|
||||
$(MAKE) testfloat
|
||||
cp -r ${ORIGINAL_TESTFLOAT_EXECUTABLES} $*/
|
||||
ieee-testfloat: ieee/testfloat/${TESTFLOAT_BUILD_DIR}/testfloat
|
||||
ieee-softfloat: ieee/$(COPIED_SOFTFLOAT_LIB)
|
||||
|
||||
ieee-softfloat:
|
||||
$(MAKE) -C $(SOFTFLOAT_BUILD_DIR) clean
|
||||
$(MAKE) -C $(SOFTFLOAT_BUILD_DIR)
|
||||
# .PRECIOUS: %/testfloat
|
||||
%/testfloat/${TESTFLOAT_BUILD_DIR}/testfloat: %/$(COPIED_SOFTFLOAT_LIB)
|
||||
$(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:
|
||||
$(MAKE) -C $(SOFTFLOAT_BUILD_DIR) clean
|
||||
$(MAKE) SPECIALIZE_TYPE=RISCV -C $(SOFTFLOAT_BUILD_DIR)
|
||||
# Build specified version of SoftFloat, either IEEE or RISCV
|
||||
riscv/$(COPIED_SOFTFLOAT_LIB): SPECIALIZE_TYPE = SPECIALIZE_TYPE=RISCV
|
||||
%/$(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:
|
||||
$(MAKE) -C $(TESTFLOAT_BUILD_DIR) clean
|
||||
$(MAKE) -C $(TESTFLOAT_BUILD_DIR)
|
||||
|
||||
dir_%:
|
||||
mkdir -p $*
|
||||
# Setup directories and link softfloat headers
|
||||
%/${SOFTFLOAT_INCLUDE_DIR}/softfloat.h:
|
||||
mkdir -p $*/softfloat/source/include
|
||||
ln -sf ${SOFTFLOAT_ORIGINAL_INCLUDE_DIR}/* $*/softfloat/${SOFTFLOAT_INCLUDE_DIR}
|
||||
mkdir -p $*/softfloat/build/Linux-x86_64-GCC
|
||||
mkdir -p $*/testfloat/${TESTFLOAT_BUILD_DIR}
|
||||
|
||||
clean:
|
||||
$(MAKE) -C $(SOFTFLOAT_BUILD_DIR) clean
|
||||
$(MAKE) -C $(TESTFLOAT_BUILD_DIR) clean
|
||||
rm -f ieee/* riscv/*
|
||||
$(MAKE) -C $(SOFTFLOAT_ORIGINAL_BUILD_DIR) clean
|
||||
$(MAKE) -C $(TESTFLOAT_ORIGINAL_BUILD_DIR) clean
|
||||
rm -rf ieee/* riscv/*
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue