blob: 05cb64da83d21449100b1afc9d3a5fb100176aea [file] [log] [blame] [edit]
#!/usr/bin/env bash
set -e
INSTALL_DIR="$(pwd)/install"
mkdir -p $INSTALL_DIR
case "$1" in
ql|eos-s3) export FPGA_FAM=eos-s3 ;;
xc7) export FPGA_FAM=xc7 ;;
*)
echo "Unknown FPGA family <$1>!"
exit 1
;;
esac
echo "Set CMAKE_FLAGS"
case "$FPGA_FAM" in
xc7)
INSTALL_FAMILIES='xc7'
;;
eos-s3)
INSTALL_FAMILIES='qlf_k4n8,pp3'
;;
esac
export CMAKE_FLAGS="-GNinja -DCMAKE_INSTALL_PREFIX=${INSTALL_DIR} -DINSTALL_FAMILIES=${INSTALL_FAMILIES}"
echo "Set environment variables for F4PGA CLI utils"
export F4PGA_INSTALL_DIR="placeholder"
# TODO: We should place the content in subdir F4PGA_FAM, to use the default in f4pga instead of overriding F4PGA_ENV_SHARE here.
case "$FPGA_FAM" in
xc7) export F4PGA_SHARE_DIR="$(cd $(dirname "$0"); pwd)/../../install/share/f4pga" ;;
eos-s3) export F4PGA_SHARE_DIR="${INSTALL_DIR}"/share/f4pga ;;
esac
source $(dirname "$0")/setup-and-activate.sh
echo "----------------------------------------"
pushd build
make_target install "Installing toolchain (make install)"
popd
echo "----------------------------------------"
heading "Running installed toolchain tests"
pushd build
export VPR_NUM_WORKERS=${MAX_CORES}
export CTEST_OUTPUT_ON_FAILURE=1
case "$FPGA_FAM" in
xc7)
ctest -R binary_toolchain_test_xc7* -j${MAX_CORES}
;;
eos-s3)
heading "Testing installed toolchain on qlf_k4n8"
ctest -j${MAX_CORES} -R "quicklogic_toolchain_test_.*_qlf_k4n8" -VV
echo "----------------------------------------"
heading "Testing installed toolchain on ql_eos_s3"
ctest -j${MAX_CORES} -R "quicklogic_toolchain_test_.*_ql-eos-s3" -VV
;;
esac
popd
echo "----------------------------------------"
heading "Compressing install dir (creating packages)"
rm -rf build
# Remove symbolic links and copy content of the linked files
for file in $(find install -type l)
do cp --remove-destination $(readlink $file) $file
done
du -ah install
export GIT_HASH=$(git rev-parse --short HEAD)
mkdir -p "$INSTALL_DIR/$FPGA_FAM"_env
cp \
packaging/"$FPGA_FAM"_environment.yml \
packaging/requirements.txt \
packaging/"$FPGA_FAM"_requirements.txt \
"$INSTALL_DIR/$FPGA_FAM"_env
case "$FPGA_FAM" in
xc7)
tar -I "pixz" -cvf \
symbiflow-arch-defs-install-xc7-${GIT_HASH}.tar.xz \
-C install \
share/f4pga/techmaps \
"$FPGA_FAM"_env
tar -I "pixz" -cvf \
symbiflow-arch-defs-benchmarks-xc7-${GIT_HASH}.tar.xz \
-C install \
benchmarks
for device in $(ls install/share/f4pga/arch); do
if [[ $device = xc7* ]]; then
tar -I "pixz" -cvf \
symbiflow-arch-defs-$device-${GIT_HASH}.tar.xz \
-C install \
share/f4pga/arch/$device
fi
done
;;
eos-s3)
tar -I "pixz" -cvf \
symbiflow-arch-defs-install-ql-${GIT_HASH}.tar.xz \
-C install \
share/f4pga/techmaps \
"$FPGA_FAM"_env
for device in $(ls install/share/f4pga/arch); do
if [[ $device = ql* ]]; then
tar -I "pixz" -cvf \
symbiflow-arch-defs-$device-${GIT_HASH}.tar.xz \
-C install \
share/f4pga/arch/$device
fi
done
;;
esac
rm -rf install
echo "----------------------------------------"