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