aboutsummaryrefslogtreecommitdiffstats
path: root/libraries/vendors/compile-intel.sh
diff options
context:
space:
mode:
Diffstat (limited to 'libraries/vendors/compile-intel.sh')
-rw-r--r--libraries/vendors/compile-intel.sh712
1 files changed, 712 insertions, 0 deletions
diff --git a/libraries/vendors/compile-intel.sh b/libraries/vendors/compile-intel.sh
new file mode 100644
index 000000000..46cccfde1
--- /dev/null
+++ b/libraries/vendors/compile-intel.sh
@@ -0,0 +1,712 @@
+#! /usr/bin/env bash
+# EMACS settings: -*- tab-width: 2; indent-tabs-mode: t -*-
+# vim: tabstop=2:shiftwidth=2:noexpandtab
+# kate: tab-width 2; replace-tabs off; indent-width 2;
+#
+# ==============================================================================
+# Authors: Patrick Lehmann
+#
+# Bash Script: Script to compile the simulation libraries from Altera
+# Quartus for GHDL on Linux
+#
+# Description:
+# ------------------------------------
+# This is a Bash script (executable) which:
+# - creates a subdirectory in the current working directory
+# - compiles all Altera Quartus-II simulation libraries and packages
+#
+# ==============================================================================
+# Copyright (C) 2015-2016 Patrick Lehmann - Dresden, Germany
+#
+# GHDL is free software; you can redistribute it and/or modify it under
+# the terms of the GNU General Public License as published by the Free
+# Software Foundation; either version 2, or (at your option) any later
+# version.
+#
+# GHDL is distributed in the hope that it will be useful, but WITHOUT ANY
+# WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with GHDL; see the file COPYING. If not, write to the Free
+# Software Foundation, 59 Temple Place - Suite 330, Boston, MA
+# 02111-1307, USA.
+# ==============================================================================
+
+# ---------------------------------------------
+# work around for Darwin (Mac OS)
+READLINK=readlink; if [[ $(uname) == "Darwin" ]]; then READLINK=greadlink; fi
+
+# save working directory
+WorkingDir=$(pwd)
+ScriptDir="$(dirname $0)"
+ScriptDir="$($READLINK -f $ScriptDir)"
+
+# source configuration file from GHDL's 'vendors' library directory
+. $ScriptDir/../ansi_color.sh
+. $ScriptDir/config.sh
+. $ScriptDir/shared.sh
+
+# command line argument processing
+NO_COMMAND=1
+SKIP_EXISTING_FILES=0
+SKIP_LARGE_FILES=0
+SUPPRESS_WARNINGS=0
+HALT_ON_ERROR=0
+VHDLStandard=93
+GHDLBinDir=""
+DestDir=""
+SrcDir=""
+while [[ $# > 0 ]]; do
+ key="$1"
+ case $key in
+ -c|--clean)
+ CLEAN=TRUE
+ NO_COMMAND=0
+ ;;
+ -a|--all)
+ COMPILE_ALL=TRUE
+ NO_COMMAND=0
+ ;;
+ --altera)
+ COMPILE_ALTERA=TRUE
+ NO_COMMAND=0
+ ;;
+ --max)
+ COMPILE_MAX=TRUE
+ NO_COMMAND=0
+ ;;
+ --cyclone)
+ COMPILE_CYCLONE=TRUE
+ NO_COMMAND=0
+ ;;
+ --arria)
+ COMPILE_ARRIA=TRUE
+ NO_COMMAND=0
+ ;;
+ --stratix)
+ COMPILE_STRATIX=TRUE
+ NO_COMMAND=0
+ ;;
+ --nanometer)
+ COMPILE_NM=TRUE
+ NO_COMMAND=0
+ ;;
+ -h|--help)
+ HELP=TRUE
+ NO_COMMAND=0
+ ;;
+ -s|--skip-existing)
+ SKIP_EXISTING_FILES=1
+ ;;
+ -S|--skip-largefiles)
+ SKIP_LARGE_FILES=1
+ ;;
+ -n|--no-warnings)
+ SUPPRESS_WARNINGS=1
+ ;;
+ -H|--halt-on-error)
+ HALT_ON_ERROR=1
+ ;;
+ --vhdl93)
+ VHDLStandard=93
+ ;;
+ --vhdl2008)
+ VHDLStandard=2008
+ ;;
+ --ghdl)
+ GHDLBinDir="$2"
+ shift # skip argument
+ ;;
+ --src)
+ SrcDir="$2"
+ shift # skip argument
+ ;;
+ --out)
+ DestDir="$2"
+ shift # skip argument
+ ;;
+ *) # unknown option
+ echo 1>&2 -e "${COLORED_ERROR} Unknown command line option '$key'.${ANSI_NOCOLOR}"
+ exit -1
+ ;;
+ esac
+ shift # past argument or value
+done
+
+if [ $NO_COMMAND -eq 1 ]; then
+ HELP=TRUE
+fi
+
+if [ "$HELP" == "TRUE" ]; then
+ test $NO_COMMAND -eq 1 && echo 1>&2 -e "\n${COLORED_ERROR} No command selected."
+ echo ""
+ echo "Synopsis:"
+ echo " A script to compile the Altera Quartus simulation libraries for GHDL on Linux."
+ echo " One library folder 'lib/v??' per VHDL library will be created relative to the current"
+ echo " working directory."
+ echo ""
+ echo " Use the adv. options or edit 'config.sh' to supply paths and default params."
+ echo ""
+ echo "Usage:"
+ echo " compile-altera.sh <common command>|<library> [<options>] [<adv. options>]"
+ echo ""
+ echo "Common commands:"
+ echo " -h --help Print this help page"
+ echo " -c --clean Remove all generated files"
+ echo ""
+ echo "Libraries:"
+ echo " -a --all Compile all Altera simulation libraries."
+ echo " --altera Compile the Altera standard libraries: lpm, sgate, altera, altera_mf, altera_lnsim."
+ echo " --max Compile the Altera Max device libraries."
+ echo " --cyclone Compile the Altera Cyclone device libraries."
+ echo " --arria Compile the Altera Arria device libraries."
+ echo " --stratix Compile the Altera Stratix device libraries."
+ echo " --nanometer Unknown device library."
+ echo ""
+ echo "Library compile options:"
+ echo " --vhdl93 Compile the libraries with VHDL-93."
+ echo " --vhdl2008 Compile the libraries with VHDL-2008."
+ echo " -s --skip-existing Skip already compiled files (an *.o file exists)."
+ echo " -S --skip-largefiles Don't compile large files. Exclude *HSSI* and *HIP* files."
+ echo " -H --halt-on-error Halt on error(s)."
+ echo ""
+ echo "Advanced options:"
+ echo " --ghdl <GHDL bin dir> Path to GHDL's binary directory, e.g. /usr/local/bin"
+ echo " --out <dir name> Name of the output directory, e.g. xilinx-vivado"
+ echo " --src <Path to lib> Path to the sources, e.g. /opt/altera/16.0/quartus/eda/sim_lib"
+ echo ""
+ echo "Verbosity:"
+ echo " -n --no-warnings Suppress all warnings. Show only error messages."
+ echo ""
+ exit 0
+fi
+
+if [ "$COMPILE_ALL" == "TRUE" ]; then
+ COMPILE_ALTERA=TRUE
+ COMPILE_MAX=TRUE
+ COMPILE_CYCLONE=TRUE
+ COMPILE_ARRIA=TRUE
+ COMPILE_STRATIX=TRUE
+ COMPILE_NM=TRUE
+fi
+
+if [ $VHDLStandard -eq 2008 ]; then
+ echo -e "${ANSI_RED}Not all Altera packages are VHDL-2008 compatible! Setting HALT_ON_ERROR to FALSE.${ANSI_NOCOLOR}"
+ HALT_ON_ERROR=0
+fi
+
+DefaultDirectories=("/opt/Altera" "/opt/altera")
+if [ ! -z $QUARTUS_ROOTDIR ]; then
+ EnvSourceDir=$QUARTUS_ROOTDIR/${SourceDirectories[AlteraQuartus]}
+else
+ for DefaultDir in ${DefaultDirectories[@]}; do
+ for Major in 17 16 15 14 13; do
+ for Minor in 3 2 1 0; do
+ Dir=$DefaultDir/${Major}.${Minor}/quartus
+ if [ -d $Dir ]; then
+ EnvSourceDir=$Dir/${SourceDirectories[AlteraQuartus]}
+ break 3
+ fi
+ done
+ done
+ done
+fi
+
+# -> $SourceDirectories
+# -> $DestinationDirectories
+# -> $SrcDir
+# -> $DestDir
+# -> $GHDLBinDir
+# <= $SourceDirectory
+# <= $DestinationDirectory
+# <= $GHDLBinary
+SetupDirectories AlteraQuartus "Altera Quartus"
+
+# create "osvvm" directory and change to it
+# => $DestinationDirectory
+CreateDestinationDirectory
+cd $DestinationDirectory
+
+
+# => $SUPPRESS_WARNINGS
+# <= $GRC_COMMAND
+SetupGRCat
+
+
+# -> $VHDLStandard
+# <= $VHDLVersion
+# <= $VHDLStandard
+# <= $VHDLFlavor
+GHDLSetup
+
+# define global GHDL Options
+GHDL_OPTIONS=(-fexplicit -frelaxed-rules --no-vital-checks --warn-binding --mb-comments)
+
+
+GHDL_PARAMS=(${GHDL_OPTIONS[@]})
+GHDL_PARAMS+=(--ieee=$VHDLFlavor --std=$VHDLStandard -P$DestinationDirectory)
+
+STOPCOMPILING=0
+ERRORCOUNT=0
+
+# Cleanup directories
+# ==============================================================================
+if [ "$CLEAN" == "TRUE" ]; then
+ echo 1>&2 -e "${COLORED_ERROR} '--clean' is not implemented!"
+ exit -1
+ echo -e "${ANSI_YELLOW}Cleaning up vendor directory ...${ANSI_NOCOLOR}"
+ rm *.o 2> /dev/null
+ rm *.cf 2> /dev/null
+fi
+
+
+# Altera standard libraries
+# ==============================================================================
+# compile lpm library
+if [ $STOPCOMPILING -eq 0 ] && [ "$COMPILE_ALTERA" == "TRUE" ]; then
+ Library="lpm"
+ Files=(
+ 220pack.vhd
+ 220model.vhd
+ )
+ # append absolute source path
+ SourceFiles=()
+ for File in ${Files[@]}; do
+ SourceFiles+=("$SourceDirectory/$File")
+ done
+
+ GHDLCompilePackages
+fi
+
+# compile sgate library
+if [ $STOPCOMPILING -eq 0 ] && [ "$COMPILE_ALTERA" == "TRUE" ]; then
+ Library="sgate"
+ Files=(
+ sgate_pack.vhd
+ sgate.vhd
+ )
+ # append absolute source path
+ SourceFiles=()
+ for File in ${Files[@]}; do
+ SourceFiles+=("$SourceDirectory/$File")
+ done
+
+ GHDLCompilePackages
+fi
+
+# compile altera library
+if [ $STOPCOMPILING -eq 0 ] && [ "$COMPILE_ALTERA" == "TRUE" ]; then
+ Library="altera"
+ Files=(
+ altera_europa_support_lib.vhd
+ altera_primitives_components.vhd
+ altera_primitives.vhd
+ altera_standard_functions.vhd
+ altera_syn_attributes.vhd
+ alt_dspbuilder_package.vhd
+ )
+ # append absolute source path
+ SourceFiles=()
+ for File in ${Files[@]}; do
+ SourceFiles+=("$SourceDirectory/$File")
+ done
+
+ GHDLCompilePackages
+fi
+
+# compile altera_mf library
+if [ $STOPCOMPILING -eq 0 ] && [ "$COMPILE_ALTERA" == "TRUE" ]; then
+ Library="altera_mf"
+ Files=(
+ altera_mf_components.vhd
+ altera_mf.vhd
+ )
+ # append absolute source path
+ SourceFiles=()
+ for File in ${Files[@]}; do
+ SourceFiles+=("$SourceDirectory/$File")
+ done
+
+ GHDLCompilePackages
+fi
+
+# compile altera_lnsim library
+if [ $STOPCOMPILING -eq 0 ] && [ "$COMPILE_ALTERA" == "TRUE" ]; then
+ Library="altera_lnsim"
+ Files=(
+ altera_lnsim_components.vhd
+ )
+ # append absolute source path
+ SourceFiles=()
+ for File in ${Files[@]}; do
+ SourceFiles+=("$SourceDirectory/$File")
+ done
+
+ GHDLCompilePackages
+fi
+
+# Altera device libraries
+# ==============================================================================
+# compile Max library
+if [ $STOPCOMPILING -eq 0 ] && [ "$COMPILE_MAX" == "TRUE" ]; then
+ Library="max"
+ Files=(
+ max_atoms.vhd
+ max_components.vhd
+ )
+ # append absolute source path
+ SourceFiles=()
+ for File in ${Files[@]}; do
+ SourceFiles+=("$SourceDirectory/$File")
+ done
+
+ GHDLCompilePackages
+fi
+
+# compile MaxII library
+if [ $STOPCOMPILING -eq 0 ] && [ "$COMPILE_MAX" == "TRUE" ]; then
+ Library="maxii"
+ Files=(
+ maxii_atoms.vhd
+ maxii_components.vhd
+ )
+ # append absolute source path
+ SourceFiles=()
+ for File in ${Files[@]}; do
+ SourceFiles+=("$SourceDirectory/$File")
+ done
+
+ GHDLCompilePackages
+fi
+
+# compile MaxV library
+if [ $STOPCOMPILING -eq 0 ] && [ "$COMPILE_MAX" == "TRUE" ]; then
+ Library="maxv"
+ Files=(
+ maxv_atoms.vhd
+ maxv_components.vhd
+ )
+ # append absolute source path
+ SourceFiles=()
+ for File in ${Files[@]}; do
+ SourceFiles+=("$SourceDirectory/$File")
+ done
+
+ GHDLCompilePackages
+fi
+
+# compile ArriaII library
+if [ $STOPCOMPILING -eq 0 ] && [ "$COMPILE_ARRIA" == "TRUE" ]; then
+ Library="arriaii"
+ Files=(
+ arriaii_atoms.vhd
+ arriaii_components.vhd
+ )
+ if [ $SKIP_LARGE_FILES -eq 0 ]; then
+ Files+=(
+ arriaii_hssi_components.vhd
+ arriaii_hssi_atoms.vhd
+ )
+ fi
+ # append absolute source path
+ SourceFiles=()
+ for File in ${Files[@]}; do
+ SourceFiles+=("$SourceDirectory/$File")
+ done
+
+ GHDLCompilePackages
+fi
+
+if [ $STOPCOMPILING -eq 0 ] && [ "$COMPILE_ARRIA" == "TRUE" ] && [ $SKIP_LARGE_FILES -eq 0 ]; then
+ Library="arriaii_pcie_hip"
+ Files=(
+ arriaii_pcie_hip_components.vhd
+ arriaii_pcie_hip_atoms.vhd
+ )
+ # append absolute source path
+ SourceFiles=()
+ for File in ${Files[@]}; do
+ SourceFiles+=("$SourceDirectory/$File")
+ done
+
+ GHDLCompilePackages
+fi
+
+# compile ArriaIIGZ library
+if [ $STOPCOMPILING -eq 0 ] && [ "$COMPILE_ARRIA" == "TRUE" ]; then
+ Library="arriaiigz"
+ Files=(
+ arriaiigz_atoms.vhd
+ arriaiigz_components.vhd
+ )
+ if [ $SKIP_LARGE_FILES -eq 0 ]; then
+ Files+=(
+ arriaiigz_hssi_components.vhd
+ )
+ fi
+ # append absolute source path
+ SourceFiles=()
+ for File in ${Files[@]}; do
+ SourceFiles+=("$SourceDirectory/$File")
+ done
+
+ GHDLCompilePackages
+fi
+
+# compile ArriaV library
+if [ $STOPCOMPILING -eq 0 ] && [ "$COMPILE_ARRIA" == "TRUE" ]; then
+ Library="arriav"
+ Files=(
+ arriav_atoms.vhd
+ arriav_components.vhd
+ )
+ if [ $SKIP_LARGE_FILES -eq 0 ]; then
+ Files+=(
+ arriav_hssi_components.vhd
+ arriav_hssi_atoms.vhd
+ )
+ fi
+ # append absolute source path
+ SourceFiles=()
+ for File in ${Files[@]}; do
+ SourceFiles+=("$SourceDirectory/$File")
+ done
+
+ GHDLCompilePackages
+fi
+
+# compile ArriaVGZ library
+if [ $STOPCOMPILING -eq 0 ] && [ "$COMPILE_ARRIA" == "TRUE" ]; then
+ Library="arriavgz"
+ Files=(
+ arriavgz_atoms.vhd
+ arriavgz_components.vhd
+ )
+ if [ $SKIP_LARGE_FILES -eq 0 ]; then
+ Files+=(
+ arriavgz_hssi_components.vhd
+ arriavgz_hssi_atoms.vhd
+ )
+ fi
+ # append absolute source path
+ SourceFiles=()
+ for File in ${Files[@]}; do
+ SourceFiles+=("$SourceDirectory/$File")
+ done
+
+ GHDLCompilePackages
+fi
+
+if [ $STOPCOMPILING -eq 0 ] && [ "$COMPILE_ARRIA" == "TRUE" ] && [ $SKIP_LARGE_FILES -eq 0 ]; then
+ Library="arriavgz_pcie_hip"
+ Files=(
+ arriavgz_pcie_hip_components.vhd
+ arriavgz_pcie_hip_atoms.vhd
+ )
+ # append absolute source path
+ SourceFiles=()
+ for File in ${Files[@]}; do
+ SourceFiles+=("$SourceDirectory/$File")
+ done
+
+ GHDLCompilePackages
+fi
+
+# compile CycloneIV library
+if [ $STOPCOMPILING -eq 0 ] && [ "$COMPILE_CYCLONE" == "TRUE" ]; then
+ Library="cycloneiv"
+ Files=(
+ cycloneiv_atoms.vhd
+ cycloneiv_components.vhd
+ )
+ if [ $SKIP_LARGE_FILES -eq 0 ]; then
+ Files+=(
+ cycloneiv_hssi_components.vhd
+ cycloneiv_hssi_atoms.vhd
+ )
+ fi
+ # append absolute source path
+ SourceFiles=()
+ for File in ${Files[@]}; do
+ SourceFiles+=("$SourceDirectory/$File")
+ done
+
+ GHDLCompilePackages
+fi
+
+if [ $STOPCOMPILING -eq 0 ] && [ "$COMPILE_CYCLONE" == "TRUE" ] && [ $SKIP_LARGE_FILES -eq 0 ]; then
+ Library="cycloneiv_pcie_hip"
+ Files=(
+ cycloneiv_pcie_hip_components.vhd
+ cycloneiv_pcie_hip_atoms.vhd
+ )
+ # append absolute source path
+ SourceFiles=()
+ for File in ${Files[@]}; do
+ SourceFiles+=("$SourceDirectory/$File")
+ done
+
+ GHDLCompilePackages
+fi
+
+# compile CycloneIVE library
+if [ $STOPCOMPILING -eq 0 ] && [ "$COMPILE_CYCLONE" == "TRUE" ]; then
+ Library="cycloneive"
+ Files=(
+ cycloneive_atoms.vhd
+ cycloneive_components.vhd
+ )
+ # append absolute source path
+ SourceFiles=()
+ for File in ${Files[@]}; do
+ SourceFiles+=("$SourceDirectory/$File")
+ done
+
+ GHDLCompilePackages
+fi
+
+# compile CycloneV library
+if [ $STOPCOMPILING -eq 0 ] && [ "$COMPILE_CYCLONE" == "TRUE" ]; then
+ Library="cyclonev"
+ Files=(
+ cyclonev_atoms.vhd
+ cyclonev_components.vhd
+ )
+ if [ $SKIP_LARGE_FILES -eq 0 ]; then
+ Files+=(
+ cyclonev_hssi_components.vhd
+ cyclonev_hssi_atoms.vhd
+ )
+ fi
+ # append absolute source path
+ SourceFiles=()
+ for File in ${Files[@]}; do
+ SourceFiles+=("$SourceDirectory/$File")
+ done
+
+ GHDLCompilePackages
+fi
+
+# compile StratixIV library
+if [ $STOPCOMPILING -eq 0 ] && [ "$COMPILE_STRATIX" == "TRUE" ]; then
+ Library="stratixiv"
+ Files=(
+ stratixiv_atoms.vhd
+ stratixiv_components.vhd
+ )
+ if [ $SKIP_LARGE_FILES -eq 0 ]; then
+ Files+=(
+ stratixiv_hssi_components.vhd
+ stratixiv_hssi_atoms.vhd
+ )
+ fi
+ # append absolute source path
+ SourceFiles=()
+ for File in ${Files[@]}; do
+ SourceFiles+=("$SourceDirectory/$File")
+ done
+
+ GHDLCompilePackages
+fi
+
+if [ $STOPCOMPILING -eq 0 ] && [ "$COMPILE_STRATIX" == "TRUE" ] && [ $SKIP_LARGE_FILES -eq 0 ]; then
+ Library="stratixiv_pcie_hip"
+ Files=(
+ stratixiv_pcie_hip_components.vhd
+ stratixiv_pcie_hip_atoms.vhd
+ )
+ # append absolute source path
+ SourceFiles=()
+ for File in ${Files[@]}; do
+ SourceFiles+=("$SourceDirectory/$File")
+ done
+
+ GHDLCompilePackages
+fi
+
+# compile StratixV library
+if [ $STOPCOMPILING -eq 0 ] && [ "$COMPILE_STRATIX" == "TRUE" ]; then
+ Library="stratixv"
+ Files=(
+ stratixv_atoms.vhd
+ stratixv_components.vhd
+ )
+ if [ $SKIP_LARGE_FILES -eq 0 ]; then
+ Files+=(
+ stratixv_hssi_components.vhd
+ stratixv_hssi_atoms.vhd
+ )
+ fi
+ # append absolute source path
+ SourceFiles=()
+ for File in ${Files[@]}; do
+ SourceFiles+=("$SourceDirectory/$File")
+ done
+
+ GHDLCompilePackages
+fi
+
+if [ $STOPCOMPILING -eq 0 ] && [ "$COMPILE_STRATIX" == "TRUE" ] && [ $SKIP_LARGE_FILES -eq 0 ]; then
+ Library="stratixv_pcie_hip"
+ Files=(
+ stratixv_pcie_hip_components.vhd
+ stratixv_pcie_hip_atoms.vhd
+ )
+ # append absolute source path
+ SourceFiles=()
+ for File in ${Files[@]}; do
+ SourceFiles+=("$SourceDirectory/$File")
+ done
+
+ GHDLCompilePackages
+fi
+
+# compile fiftyfivenm library
+if [ $STOPCOMPILING -eq 0 ] && [ "$COMPILE_NM" == "TRUE" ]; then
+ Library="fiftyfivenm"
+ Files=(
+ fiftyfivenm_atoms.vhd
+ fiftyfivenm_components.vhd
+ )
+ # append absolute source path
+ SourceFiles=()
+ for File in ${Files[@]}; do
+ SourceFiles+=("$SourceDirectory/$File")
+ done
+
+ GHDLCompilePackages
+fi
+
+# compile twentynm library
+if [ $STOPCOMPILING -eq 0 ] && [ "$COMPILE_NM" == "TRUE" ]; then
+ Library="twentynm"
+ Files=(
+ twentynm_atoms.vhd
+ twentynm_components.vhd
+ )
+ if [ $SKIP_LARGE_FILES -eq 0 ]; then
+ Files+=(
+ twentynm_hip_components.vhd
+ twentynm_hip_atoms.vhd
+ twentynm_hssi_components.vhd
+ twentynm_hssi_atoms.vhd
+ )
+ fi
+ # append absolute source path
+ SourceFiles=()
+ for File in ${Files[@]}; do
+ SourceFiles+=("$SourceDirectory/$File")
+ done
+
+ GHDLCompilePackages
+fi
+
+echo "--------------------------------------------------------------------------------"
+echo -n "Compiling Altera Quartus libraries "
+if [ $ERRORCOUNT -gt 0 ]; then
+ echo -e $COLORED_FAILED
+else
+ echo -e $COLORED_SUCCESSFUL
+fi