aboutsummaryrefslogtreecommitdiffstats
path: root/scripts/windows/compile-libraries.ps1
diff options
context:
space:
mode:
authorumarcor <unai.martinezcorral@ehu.eus>2021-01-05 20:46:15 +0100
committertgingold <tgingold@users.noreply.github.com>2021-01-06 07:30:46 +0100
commit99853361819bff87e7cf8103c5205721ec195c32 (patch)
tree29a6dda1199534497f5a09ea1268aa3a619c41b8 /scripts/windows/compile-libraries.ps1
parent301f442a6e66a83b47ed7d40e5b61389b9c33446 (diff)
downloadghdl-99853361819bff87e7cf8103c5205721ec195c32.tar.gz
ghdl-99853361819bff87e7cf8103c5205721ec195c32.tar.bz2
ghdl-99853361819bff87e7cf8103c5205721ec195c32.zip
mv dist/* scripts/
Diffstat (limited to 'scripts/windows/compile-libraries.ps1')
-rw-r--r--scripts/windows/compile-libraries.ps1862
1 files changed, 862 insertions, 0 deletions
diff --git a/scripts/windows/compile-libraries.ps1 b/scripts/windows/compile-libraries.ps1
new file mode 100644
index 000000000..a37b78618
--- /dev/null
+++ b/scripts/windows/compile-libraries.ps1
@@ -0,0 +1,862 @@
+# 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 (ported batch file to PowerShell)
+# Brian Davis (contributions to the batch file)
+# Tristan Gingold (initial batch file for compilations on Windows)
+#
+# PowerShell Script: Script to compile VHDL libraries for GHDL
+#
+# Description:
+# ------------------------------------
+# This is a PowerShell script (executable) which:
+# - sets up a compilation environment
+# - test all dependencies
+# - pre processes VHDL files with GHDLFilter
+# - analyses VHDL files with GHDL
+#
+# ==============================================================================
+# Copyright (C) 2002, 2003, 2004, 2005 Tristan Gingold
+# Copyright (C) 2015-2017 Patrick Lehmann
+#
+# 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.
+# ==============================================================================
+
+# .SYNOPSIS
+# GHDL for Windows - Library compile script
+# Use 'compile-libraries.ps1 -Help' to see the integrated help page
+#
+# .EXAMPLE
+# C:\PS> .\compile-libraries.ps1 -Clean
+# .EXAMPLE
+# C:\PS> .\compile-libraries.ps1 -Compile -Verbose
+# .EXAMPLE
+# C:\PS> .\compile-libraries.ps1 -VHDL2008 -SuppressWarnings
+#
+[CmdletBinding()]
+param(
+ # Display this help"
+ [switch]$Help = $false,
+
+ # Clean up all files and directories
+ [switch]$Clean = $false,
+
+ # Compile all library files
+ [switch]$Compile = $false,
+
+ # Set VHDL Standard to '87
+ [switch]$VHDL87 = $false,
+ # Set VHDL Standard to '93
+ [switch]$VHDL93 = $false,
+ # Set VHDL Standard to '08
+ [switch]$VHDL2008 = $false,
+
+ # Skip warning messages. (Show errors only.)
+ [switch]$SuppressWarnings = $false,
+ # Halt on errors
+ [switch]$HaltOnError = $false,
+
+ # Set GHDL executable
+ [string]$GHDL = "",
+ # Undocumented
+ [switch]$Hosted = $false
+)
+
+# configure script here
+$RelPathToRoot = "..\.."
+
+# ---------------------------------------------
+# save parameters and working directory
+$Script_ScriptDir = $PSScriptRoot
+$Script_WorkingDir = Get-Location
+$GHDLRootDir = Convert-Path (Resolve-Path ($PSScriptRoot + "\" + $RelPathToRoot))
+
+# set default values
+$EnableDebug = [bool]$PSCmdlet.MyInvocation.BoundParameters["Debug"]
+$EnableVerbose = [bool]$PSCmdlet.MyInvocation.BoundParameters["Verbose"] -or $EnableDebug
+
+# load modules from GHDL's 'libraries' directory
+Import-Module $PSScriptRoot\shared.psm1 -Verbose:$false -Debug:$false -ArgumentList "$Script_WorkingDir", $Hosted
+
+# Display help if no command was selected
+$Help = $Help -or (-not ($Compile -or $VHDL87 -or $VHDL93 -or $VHDL2008 -or $Clean))
+
+if ($Help)
+{ Get-Help $MYINVOCATION.InvocationName -Detailed
+ Exit-CompileScript
+}
+if ($Compile)
+{ $VHDL87 = $true
+ $VHDL93 = $true
+ $VHDL2008 = $true
+}
+
+# configure some variables: paths, executables, directory names, ...
+$VHDLLibrariesSourceDirectoryName = "libraries"
+$VHDLLibrariesDestinationDirectoryName = "lib"
+$BuildDirectoryName = "build"
+$Backend = "mcode"
+
+# construct directories
+$VHDLSourceLibraryDirectory = "$GHDLRootDir\$VHDLLibrariesSourceDirectoryName"
+$VHDLDestinationLibraryDirectory = "$GHDLRootDir\$BuildDirectoryName\$Backend\$VHDLLibrariesDestinationDirectoryName"
+# construct executables
+$GHDLNewExecutable = "$GHDLRootDir\$BuildDirectoryName\$Backend\bin\ghdl.exe"
+
+
+# Library sources
+$SourceFiles = @{
+ "std" = @(
+ "textio", "textio-body"
+ );
+ "ieee" = @(
+ "std_logic_1164", "std_logic_1164-body",
+ "numeric_std", "numeric_std-body",
+ "numeric_bit", "numeric_bit-body"
+ );
+ "math" = @(
+ "math_real", "math_real-body",
+ "math_complex", "math_complex-body"
+ );
+ "std08" = @(
+ "textio", "textio-body",
+ "env", "env-body"
+ );
+ "ieee2008" = @(
+ "std_logic_1164", "std_logic_1164-body",
+ "std_logic_textio",
+ "math_real", "math_real-body",
+ "math_complex", "math_complex-body",
+ "numeric_bit", "numeric_bit-body",
+ "numeric_bit_unsigned", "numeric_bit_unsigned-body",
+ "numeric_std", "numeric_std-body",
+ "numeric_std_unsigned", "numeric_std_unsigned-body",
+ "fixed_float_types",
+ "fixed_generic_pkg", "fixed_generic_pkg-body",
+ "fixed_pkg",
+ "float_generic_pkg", "float_generic_pkg-body",
+ "float_pkg",
+ "ieee_std_context",
+ "ieee_bit_context"
+ );
+ "vital95" = @(
+ "vital_timing", "vital_timing-body",
+ "vital_primitives", "vital_primitives-body"
+ );
+ "vital2000" = @(
+ "timing_p", "timing_b",
+ "prmtvs_p", "prmtvs_b",
+ "memory_p", "memory_b"
+ );
+ "synopsys" = @(
+ "std_logic_arith",
+ "std_logic_unsigned",
+ "std_logic_signed"
+ );
+ "synopsys8793" = @(
+ "std_logic_textio",
+ "std_logic_misc", "std_logic_misc-body"
+ );
+ "mentor" = @(
+ "std_logic_arith", "std_logic_arith-body"
+ )
+}
+
+if (-not $Hosted)
+{ Write-Host "================================================================================" -ForegroundColor Yellow
+ Write-Host "GHDL ($Backend) for Windows - Library compile script" -ForegroundColor Yellow
+ Write-Host "================================================================================" -ForegroundColor Yellow
+}
+
+if ($Clean)
+{ Write-Host "Removing all created files and directories..." -ForegroundColor Yellow
+ if (Test-Path -Path $VHDLDestinationLibraryDirectory)
+ { $EnableVerbose -and (Write-Host " rmdir $VHDLDestinationLibraryDirectory") | Out-Null
+ Remove-Item $VHDLDestinationLibraryDirectory -Force -Recurse -ErrorAction SilentlyContinue
+ if ($? -eq $false)
+ { Write-Host "[ERROR]: Cannot remove '$VHDLDestinationLibraryDirectory'." -ForegroundColor Red
+ Exit-CompileScript -1
+ }
+ }
+ if (-not ($VHDL87 -or $VHDL93 -or $VHDL2008))
+ { Exit-CompileScript }
+}
+
+# get GHDL executable
+if ($GHDL -ne "")
+{ $GHDLExecutable = $GHDL }
+elseif (Test-Path env:GHDL)
+{ $GHDLExecutable = $env:GHDL }
+elseif (Test-Path $GHDLNewExecutable -PathType Leaf)
+{ $GHDLExecutable = $GHDLNewExecutable }
+else
+{ $GHDLExecutable = "ghdl.exe" }
+
+if (-not (Test-Path $GHDLExecutable -PathType Leaf))
+{ Write-Host "GHDL executable 'ghdl.exe' not found." -ForegroundColor Red
+ Write-Host "Use adv. options '-GHDL' to set the GHDL executable." -ForegroundColor Yellow
+ Exit-CompileScript -1
+}
+
+
+$ErrorCount = 0
+if ($VHDL87 -or $VHDL93 -or $VHDL2008)
+{ Write-Host "Compiling VHDL Libraries..."
+ Write-Host "Preparing..."
+
+ # create lib directory if it does not exist
+ if (Test-Path -Path $VHDLDestinationLibraryDirectory)
+ { $EnableVerbose -and (Write-Host " Directory '$VHDLDestinationLibraryDirectory' already exists.") | Out-Null
+
+ # change working directory to VHDLDestinationLibraryDirectory
+ $EnableVerbose -and (Write-Host " cd $VHDLDestinationLibraryDirectory") | Out-Null
+ Set-Location $VHDLDestinationLibraryDirectory
+
+ $EnableVerbose -and (Write-Host " Cleaning up directory...") | Out-Null
+ Remove-Item ./* -Force -Recurse -ErrorAction SilentlyContinue
+ }
+ else
+ { $EnableVerbose -and (Write-Host " Creating directory '$VHDLDestinationLibraryDirectory'.") | Out-Null
+ New-Item -ItemType Directory -Path $VHDLDestinationLibraryDirectory -ErrorAction SilentlyContinue | Out-Null
+ if (-not $?)
+ { Write-Host "[ERROR]: Cannot create destination directory '$VHDLDestinationLibraryDirectory'." -ForegroundColor Red
+ Exit-CompileScript -1
+ }
+
+ # change working directory to VHDLDestinationLibraryDirectory
+ $EnableVerbose -and (Write-Host " Change working directory to $VHDLDestinationLibraryDirectory") | Out-Null
+ Set-Location $VHDLDestinationLibraryDirectory
+ }
+
+ Write-Host
+ Write-Host "Start compilation..."
+}
+# ============================================================================
+# v87
+# ============================================================================
+if ($VHDL87)
+{ $VHDLVersion = "87"
+ Write-Host "Compiling libraries for VHDL-$VHDLVersion" -ForegroundColor Cyan
+
+ # ----------------------------------------------------------------------
+ # v87\std
+ # ----------------------------------------------------------------------
+ $VHDLLibrary = "std"
+ Write-Host " Compiling library '$VHDLLibrary'..." -ForegroundColor DarkCyan
+
+ $LibraryDirectory = "$VHDLDestinationLibraryDirectory\$VHDLLibrary\v$VHDLVersion"
+ New-LibraryDirectory $LibraryDirectory # $EnableVerbose
+ Set-Location $LibraryDirectory
+
+ $VHDLSourcesIndex = "std"
+ foreach ($SourceFile in $SourceFiles[$VHDLSourcesIndex])
+ { Write-Host " file: v$VHDLVersion\$SourceFile.v$VHDLVersion"
+ $EnableVerbose -and (Write-Host " Patching file for VHDL-$VHDLVersion" ) | Out-Null
+ $EnableDebug -and (Write-Host " Get-Content `"$VHDLSourceLibraryDirectory\$VHDLSourcesIndex\$SourceFile.vhdl`" -Encoding Ascii ``" -ForegroundColor DarkGray ) | Out-Null
+ $EnableDebug -and (Write-Host " | Format-VHDLSourceFile -Version `"$VHDLVersion`" ``" -ForegroundColor DarkGray ) | Out-Null
+ $EnableDebug -and (Write-Host " | Out-File `"$SourceFile.v$VHDLVersion`" -Encoding Ascii" -ForegroundColor DarkGray ) | Out-Null
+ # Patch file
+ Get-Content "$VHDLSourceLibraryDirectory\$VHDLSourcesIndex\$SourceFile.vhdl" -Encoding Ascii `
+ | Format-VHDLSourceFile -Version "$VHDLVersion" `
+ | Out-File "$SourceFile.v$VHDLVersion" -Encoding Ascii
+
+ # Analyze file
+ $InvokeExpr = "$GHDLExecutable -a -C --bootstrap --std=$VHDLVersion --work=$VHDLLibrary $SourceFile.v$VHDLVersion 2>&1"
+ $EnableVerbose -and (Write-Host " Analyzing file '$SourceFile.v$VHDLVersion'" ) | Out-Null
+ $EnableDebug -and (Write-Host " $InvokeExpr" -ForegroundColor DarkGray ) | Out-Null
+ $ErrorRecordFound = Invoke-Expression $InvokeExpr | Restore-NativeCommandStream | Write-ColoredGHDLLine $SuppressWarnings " "
+ if (($LastExitCode -ne 0) -or -not $?)
+ { $ErrorCount += 1
+ if ($HaltOnError)
+ { Exit-CompileScript -1 }
+ }
+ }
+
+ # ----------------------------------------------------------------------
+ # v87\ieee
+ # ----------------------------------------------------------------------
+ $VHDLLibrary = "ieee"
+ $VHDLFlavor = "ieee"
+ Write-Host " Compiling library '$VHDLLibrary'..." -ForegroundColor DarkCyan
+
+ $LibraryDirectory = "$VHDLDestinationLibraryDirectory\$VHDLFlavor\v$VHDLVersion"
+ New-LibraryDirectory $LibraryDirectory # $EnableVerbose
+ Set-Location $LibraryDirectory
+
+ $VHDLSourcesIndex = "ieee"
+ foreach ($SourceFile in $SourceFiles[$VHDLSourcesIndex])
+ { Write-Host " file: v$VHDLVersion\$SourceFile.v$VHDLVersion"
+ $EnableVerbose -and (Write-Host " Patching file for VHDL-$VHDLVersion" ) | Out-Null
+ $EnableDebug -and (Write-Host " Get-Content `"$VHDLSourceLibraryDirectory\$VHDLSourcesIndex\$SourceFile.vhdl`" -Encoding Ascii ``" -ForegroundColor DarkGray ) | Out-Null
+ $EnableDebug -and (Write-Host " | Format-VHDLSourceFile -Version `"$VHDLVersion`" ``" -ForegroundColor DarkGray ) | Out-Null
+ $EnableDebug -and (Write-Host " | Out-File `"$SourceFile.v$VHDLVersion`" -Encoding Ascii" -ForegroundColor DarkGray ) | Out-Null
+ # Patch file
+ Get-Content "$VHDLSourceLibraryDirectory\$VHDLSourcesIndex\$SourceFile.vhdl" -Encoding Ascii `
+ | Format-VHDLSourceFile -Version "$VHDLVersion" `
+ | Out-File "$SourceFile.v$VHDLVersion" -Encoding Ascii
+
+ # Analyze file
+ $InvokeExpr = "$GHDLExecutable -a -C `"-P../std`" --std=$VHDLVersion --work=$VHDLLibrary $SourceFile.v$VHDLVersion 2>&1"
+ $EnableVerbose -and (Write-Host " Analyzing file '$SourceFile.v$VHDLVersion'" ) | Out-Null
+ $EnableDebug -and (Write-Host " $InvokeExpr" -ForegroundColor DarkGray ) | Out-Null
+ $ErrorRecordFound = Invoke-Expression $InvokeExpr | Restore-NativeCommandStream | Write-ColoredGHDLLine $SuppressWarnings " "
+ if (($LastExitCode -ne 0) -or -not $?)
+ { $ErrorCount += 1
+ if ($HaltOnError)
+ { Exit-CompileScript -1 }
+ }
+ }
+
+ # ----------------------------------------------------------------------
+ # v87\synopsys
+ # ----------------------------------------------------------------------
+ $VHDLLibrary = "ieee"
+ $VHDLFlavor = "synopsys"
+ Write-Host " Compiling library '$VHDLLibrary' ($VHDLFlavor)..." -ForegroundColor DarkCyan
+
+ $LibraryDirectory = "$VHDLDestinationLibraryDirectory\$VHDLFlavor\v$VHDLVersion"
+ New-LibraryDirectory $LibraryDirectory # $EnableVerbose
+ Set-Location $LibraryDirectory
+
+ $VHDLSourcesIndex = "ieee"
+ foreach ($SourceFile in $SourceFiles[$VHDLSourcesIndex])
+ { Write-Host " file: v$VHDLVersion\$SourceFile.v$VHDLVersion"
+ $EnableVerbose -and (Write-Host " Patching file for VHDL-$VHDLVersion" ) | Out-Null
+ $EnableDebug -and (Write-Host " Get-Content `"$VHDLSourceLibraryDirectory\$VHDLSourcesIndex\$SourceFile.vhdl`" -Encoding Ascii ``" -ForegroundColor DarkGray ) | Out-Null
+ $EnableDebug -and (Write-Host " | Format-VHDLSourceFile -Version `"$VHDLVersion`" ``" -ForegroundColor DarkGray ) | Out-Null
+ $EnableDebug -and (Write-Host " | Out-File `"$SourceFile.v$VHDLVersion`" -Encoding Ascii" -ForegroundColor DarkGray ) | Out-Null
+ # Patch file
+ Get-Content "$VHDLSourceLibraryDirectory\$VHDLSourcesIndex\$SourceFile.vhdl" -Encoding Ascii `
+ | Format-VHDLSourceFile -Version "$VHDLVersion" `
+ | Out-File "$SourceFile.v$VHDLVersion" -Encoding Ascii
+
+ # Analyze file
+ $InvokeExpr = "$GHDLExecutable -a -C `"-P../std`" --std=$VHDLVersion --work=$VHDLLibrary $SourceFile.v$VHDLVersion 2>&1"
+ $EnableVerbose -and (Write-Host " Analyzing file '$SourceFile.v$VHDLVersion'" ) | Out-Null
+ $EnableDebug -and (Write-Host " $InvokeExpr" -ForegroundColor DarkGray ) | Out-Null
+ $ErrorRecordFound = Invoke-Expression $InvokeExpr | Restore-NativeCommandStream | Write-ColoredGHDLLine $SuppressWarnings " "
+ if (($LastExitCode -ne 0) -or -not $?)
+ { $ErrorCount += 1
+ if ($HaltOnError)
+ { Exit-CompileScript -1 }
+ }
+ }
+
+ foreach ($SourceFile in $SourceFiles[$VHDLFlavor] + $SourceFiles["synopsys8793"])
+ { Write-Host " file: v$VHDLVersion\$SourceFile.v$VHDLVersion"
+ $EnableVerbose -and (Write-Host " Patching file for VHDL-$VHDLVersion" ) | Out-Null
+ $EnableDebug -and (Write-Host " Get-Content `"$VHDLSourceLibraryDirectory\$VHDLSourcesIndex\$SourceFile.vhdl`" -Encoding Ascii ``" -ForegroundColor DarkGray ) | Out-Null
+ $EnableDebug -and (Write-Host " | Format-VHDLSourceFile -Version `"$VHDLVersion`" ``" -ForegroundColor DarkGray ) | Out-Null
+ $EnableDebug -and (Write-Host " | Out-File `"$SourceFile.v$VHDLVersion`" -Encoding Ascii" -ForegroundColor DarkGray ) | Out-Null
+ Get-Content "$VHDLSourceLibraryDirectory\$VHDLFlavor\$SourceFile.vhdl" -Encoding Ascii `
+ | Format-VHDLSourceFile -Version "$VHDLVersion" `
+ | Out-File "$SourceFile.v$VHDLVersion" -Encoding Ascii
+
+ # Analyze file
+ $InvokeExpr = "$GHDLExecutable -a -C `"-P../std`" --std=$VHDLVersion --work=$VHDLLibrary $SourceFile.v$VHDLVersion 2>&1"
+ $EnableVerbose -and (Write-Host " Analyzing file '$SourceFile.v$VHDLVersion'" ) | Out-Null
+ $EnableDebug -and (Write-Host " $InvokeExpr" -ForegroundColor DarkGray ) | Out-Null
+ $ErrorRecordFound = Invoke-Expression $InvokeExpr | Restore-NativeCommandStream | Write-ColoredGHDLLine $SuppressWarnings " "
+ if (($LastExitCode -ne 0) -or -not $?)
+ { $ErrorCount += 1
+ if ($HaltOnError)
+ { Exit-CompileScript -1 }
+ }
+ }
+
+ $VHDLSourcesIndex = "vital95"
+ foreach ($SourceFile in $SourceFiles[$VHDLSourcesIndex])
+ { Write-Host " file: v$VHDLVersion\$SourceFile.v$VHDLVersion"
+ $EnableVerbose -and (Write-Host " Patching file for VHDL-$VHDLVersion" ) | Out-Null
+ $EnableDebug -and (Write-Host " Get-Content `"$VHDLSourceLibraryDirectory\$VHDLSourcesIndex\$SourceFile.vhdl`" -Encoding Ascii ``" -ForegroundColor DarkGray ) | Out-Null
+ $EnableDebug -and (Write-Host " | Format-VHDLSourceFile -Version `"$VHDLVersion`" ``" -ForegroundColor DarkGray ) | Out-Null
+ $EnableDebug -and (Write-Host " | Out-File `"$SourceFile.v$VHDLVersion`" -Encoding Ascii" -ForegroundColor DarkGray ) | Out-Null
+ # Patch file
+ Get-Content "$VHDLSourceLibraryDirectory\$VHDLSourcesIndex\$SourceFile.vhdl" -Encoding Ascii `
+ | Format-VHDLSourceFile -Version "$VHDLVersion" `
+ | Out-File "$SourceFile.v$VHDLVersion" -Encoding Ascii
+
+ # Analyze file
+ $InvokeExpr = "$GHDLExecutable -a -C `"-P../std`" --std=$VHDLVersion --work=$VHDLLibrary $SourceFile.v$VHDLVersion 2>&1"
+ $EnableVerbose -and (Write-Host " Analyzing file '$SourceFile.v$VHDLVersion'" ) | Out-Null
+ $EnableDebug -and (Write-Host " $InvokeExpr" -ForegroundColor DarkGray ) | Out-Null
+ $ErrorRecordFound = Invoke-Expression $InvokeExpr | Restore-NativeCommandStream | Write-ColoredGHDLLine $SuppressWarnings " "
+ if (($LastExitCode -ne 0) -or -not $?)
+ { $ErrorCount += 1
+ if ($HaltOnError)
+ { Exit-CompileScript -1 }
+ }
+ }
+}
+# ============================================================================
+# v93
+# ============================================================================
+if ($VHDL93)
+{ $VHDLVersion = "93"
+ Write-Host "Compiling libraries for VHDL-$VHDLVersion" -ForegroundColor Cyan
+
+ # ----------------------------------------------------------------------
+ # v93\std
+ # ----------------------------------------------------------------------
+ $VHDLLibrary = "std"
+ Write-Host " Compiling library '$VHDLLibrary'..." -ForegroundColor DarkCyan
+
+ $LibraryDirectory = "$VHDLDestinationLibraryDirectory\$VHDLLibrary\v$VHDLVersion"
+ New-LibraryDirectory $LibraryDirectory # $EnableVerbose
+ Set-Location $LibraryDirectory
+
+ $VHDLSourcesIndex = "std"
+ foreach ($SourceFile in $SourceFiles[$VHDLSourcesIndex])
+ { Write-Host " file: v$VHDLVersion\$SourceFile.v$VHDLVersion"
+ $EnableVerbose -and (Write-Host " Patching file for VHDL-$VHDLVersion" ) | Out-Null
+ $EnableDebug -and (Write-Host " Get-Content `"$VHDLSourceLibraryDirectory\$VHDLSourcesIndex\$SourceFile.vhdl`" -Encoding Ascii ``" -ForegroundColor DarkGray ) | Out-Null
+ $EnableDebug -and (Write-Host " | Format-VHDLSourceFile -Version `"$VHDLVersion`" ``" -ForegroundColor DarkGray ) | Out-Null
+ $EnableDebug -and (Write-Host " | Out-File `"$SourceFile.v$VHDLVersion`" -Encoding Ascii" -ForegroundColor DarkGray ) | Out-Null
+ # Patch file
+ Get-Content "$VHDLSourceLibraryDirectory\$VHDLSourcesIndex\$SourceFile.vhdl" -Encoding Ascii `
+ | Format-VHDLSourceFile -Version "$VHDLVersion" `
+ | Out-File "$SourceFile.v$VHDLVersion" -Encoding Ascii
+
+ # Analyze file
+ $InvokeExpr = "$GHDLExecutable -a -C --bootstrap --std=$VHDLVersion --work=$VHDLLibrary $SourceFile.v$VHDLVersion 2>&1"
+ $EnableVerbose -and (Write-Host " Analyzing file '$SourceFile.v$VHDLVersion'" ) | Out-Null
+ $EnableDebug -and (Write-Host " $InvokeExpr" -ForegroundColor DarkGray ) | Out-Null
+ $ErrorRecordFound = Invoke-Expression $InvokeExpr | Restore-NativeCommandStream | Write-ColoredGHDLLine $SuppressWarnings " "
+ if (($LastExitCode -ne 0) -or -not $?)
+ { $ErrorCount += 1
+ if ($HaltOnError)
+ { Exit-CompileScript -1 }
+ }
+ }
+
+ # ----------------------------------------------------------------------
+ # v93\ieee
+ # ----------------------------------------------------------------------
+ $VHDLLibrary = "ieee"
+ $VHDLFlavor = "ieee"
+ Write-Host " Compiling library '$VHDLLibrary'..." -ForegroundColor DarkCyan
+
+ $LibraryDirectory = "$VHDLDestinationLibraryDirectory\$VHDLFlavor\v$VHDLVersion"
+ New-LibraryDirectory $LibraryDirectory # $EnableVerbose
+ Set-Location $LibraryDirectory
+
+ $VHDLSourcesIndex = "ieee"
+ foreach ($SourceFile in $SourceFiles[$VHDLSourcesIndex] + $SourceFiles["math"])
+ { Write-Host " file: v$VHDLVersion\$SourceFile.v$VHDLVersion"
+ $EnableVerbose -and (Write-Host " Patching file for VHDL-$VHDLVersion" ) | Out-Null
+ $EnableDebug -and (Write-Host " Get-Content `"$VHDLSourceLibraryDirectory\$VHDLSourcesIndex\$SourceFile.vhdl`" -Encoding Ascii ``" -ForegroundColor DarkGray ) | Out-Null
+ $EnableDebug -and (Write-Host " | Format-VHDLSourceFile -Version `"$VHDLVersion`" ``" -ForegroundColor DarkGray ) | Out-Null
+ $EnableDebug -and (Write-Host " | Out-File `"$SourceFile.v$VHDLVersion`" -Encoding Ascii" -ForegroundColor DarkGray ) | Out-Null
+ # Patch file
+ Get-Content "$VHDLSourceLibraryDirectory\$VHDLSourcesIndex\$SourceFile.vhdl" -Encoding Ascii `
+ | Format-VHDLSourceFile -Version "$VHDLVersion" `
+ | Out-File "$SourceFile.v$VHDLVersion" -Encoding Ascii
+
+ # Analyze file
+ $InvokeExpr = "$GHDLExecutable -a -C `"-P../std`" --std=$VHDLVersion --work=$VHDLLibrary $SourceFile.v$VHDLVersion 2>&1"
+ $EnableVerbose -and (Write-Host " Analyzing file '$SourceFile.v$VHDLVersion'" ) | Out-Null
+ $EnableDebug -and (Write-Host " $InvokeExpr" -ForegroundColor DarkGray ) | Out-Null
+ $ErrorRecordFound = Invoke-Expression $InvokeExpr | Restore-NativeCommandStream | Write-ColoredGHDLLine $SuppressWarnings " "
+ if (($LastExitCode -ne 0) -or -not $?)
+ { $ErrorCount += 1
+ if ($HaltOnError)
+ { Exit-CompileScript -1 }
+ }
+ }
+
+ $VHDLSourcesIndex = "vital2000"
+ foreach ($SourceFile in $SourceFiles[$VHDLSourcesIndex])
+ { Write-Host " file: v$VHDLVersion\$SourceFile.v$VHDLVersion"
+ $EnableVerbose -and (Write-Host " Patching file for VHDL-$VHDLVersion" ) | Out-Null
+ $EnableDebug -and (Write-Host " Get-Content `"$VHDLSourceLibraryDirectory\$VHDLSourcesIndex\$SourceFile.vhdl`" -Encoding Ascii ``" -ForegroundColor DarkGray ) | Out-Null
+ $EnableDebug -and (Write-Host " | Format-VHDLSourceFile -Version `"$VHDLVersion`" ``" -ForegroundColor DarkGray ) | Out-Null
+ $EnableDebug -and (Write-Host " | Out-File `"$SourceFile.v$VHDLVersion`" -Encoding Ascii" -ForegroundColor DarkGray ) | Out-Null
+ # Patch file
+ Get-Content "$VHDLSourceLibraryDirectory\$VHDLSourcesIndex\$SourceFile.vhdl" -Encoding Ascii `
+ | Format-VHDLSourceFile -Version "$VHDLVersion" `
+ | Out-File "$SourceFile.v$VHDLVersion" -Encoding Ascii
+
+ # Analyze file
+ $InvokeExpr = "$GHDLExecutable -a -C `"-P../std`" --std=$VHDLVersion --work=$VHDLLibrary $SourceFile.v$VHDLVersion 2>&1"
+ $EnableVerbose -and (Write-Host " Analyzing file '$SourceFile.v$VHDLVersion'" ) | Out-Null
+ $EnableDebug -and (Write-Host " $InvokeExpr" -ForegroundColor DarkGray ) | Out-Null
+ $ErrorRecordFound = Invoke-Expression $InvokeExpr | Restore-NativeCommandStream | Write-ColoredGHDLLine $SuppressWarnings " "
+ if (($LastExitCode -ne 0) -or -not $?)
+ { $ErrorCount += 1
+ if ($HaltOnError)
+ { Exit-CompileScript -1 }
+ }
+ }
+
+ # ----------------------------------------------------------------------
+ # v93\synopsys
+ # ----------------------------------------------------------------------
+ $VHDLLibrary = "ieee"
+ $VHDLFlavor = "synopsys"
+ Write-Host " Compiling library '$VHDLLibrary' ($VHDLFlavor)..." -ForegroundColor DarkCyan
+
+ $LibraryDirectory = "$VHDLDestinationLibraryDirectory\$VHDLFlavor\v$VHDLVersion"
+ New-LibraryDirectory $LibraryDirectory # $EnableVerbose
+ Set-Location $LibraryDirectory
+
+ $VHDLSourcesIndex = "ieee"
+ foreach ($SourceFile in $SourceFiles[$VHDLSourcesIndex] + $SourceFiles["math"])
+ { Write-Host " file: v$VHDLVersion\$SourceFile.v$VHDLVersion"
+ $EnableVerbose -and (Write-Host " Patching file for VHDL-$VHDLVersion" ) | Out-Null
+ $EnableDebug -and (Write-Host " Get-Content `"$VHDLSourceLibraryDirectory\$VHDLSourcesIndex\$SourceFile.vhdl`" -Encoding Ascii ``" -ForegroundColor DarkGray ) | Out-Null
+ $EnableDebug -and (Write-Host " | Format-VHDLSourceFile -Version `"$VHDLVersion`" ``" -ForegroundColor DarkGray ) | Out-Null
+ $EnableDebug -and (Write-Host " | Out-File `"$SourceFile.v$VHDLVersion`" -Encoding Ascii" -ForegroundColor DarkGray ) | Out-Null
+ # Patch file
+ Get-Content "$VHDLSourceLibraryDirectory\$VHDLSourcesIndex\$SourceFile.vhdl" -Encoding Ascii `
+ | Format-VHDLSourceFile -Version "$VHDLVersion" `
+ | Out-File "$SourceFile.v$VHDLVersion" -Encoding Ascii
+
+ # Analyze file
+ $InvokeExpr = "$GHDLExecutable -a -C `"-P../std`" --std=$VHDLVersion --work=$VHDLLibrary $SourceFile.v$VHDLVersion 2>&1"
+ $EnableVerbose -and (Write-Host " Analyzing file '$SourceFile.v$VHDLVersion'" ) | Out-Null
+ $EnableDebug -and (Write-Host " $InvokeExpr" -ForegroundColor DarkGray ) | Out-Null
+ $ErrorRecordFound = Invoke-Expression $InvokeExpr | Restore-NativeCommandStream | Write-ColoredGHDLLine $SuppressWarnings " "
+ if (($LastExitCode -ne 0) -or -not $?)
+ { $ErrorCount += 1
+ if ($HaltOnError)
+ { Exit-CompileScript -1 }
+ }
+ }
+
+ foreach ($SourceFile in $SourceFiles[$VHDLFlavor] + $SourceFiles["synopsys8793"])
+ { Write-Host " file: v$VHDLVersion\$SourceFile.v$VHDLVersion"
+ $EnableVerbose -and (Write-Host " Patching file for VHDL-$VHDLVersion" ) | Out-Null
+ $EnableDebug -and (Write-Host " Get-Content `"$VHDLSourceLibraryDirectory\$VHDLSourcesIndex\$SourceFile.vhdl`" -Encoding Ascii ``" -ForegroundColor DarkGray ) | Out-Null
+ $EnableDebug -and (Write-Host " | Format-VHDLSourceFile -Version `"$VHDLVersion`" ``" -ForegroundColor DarkGray ) | Out-Null
+ $EnableDebug -and (Write-Host " | Out-File `"$SourceFile.v$VHDLVersion`" -Encoding Ascii" -ForegroundColor DarkGray ) | Out-Null
+ # Patch file
+ Get-Content "$VHDLSourceLibraryDirectory\$VHDLFlavor\$SourceFile.vhdl" -Encoding Ascii `
+ | Format-VHDLSourceFile -Version "$VHDLVersion" `
+ | Out-File "$SourceFile.v$VHDLVersion" -Encoding Ascii
+
+ # Analyze file
+ $InvokeExpr = "$GHDLExecutable -a -C `"-P../std`" --std=$VHDLVersion --work=$VHDLLibrary $SourceFile.v$VHDLVersion 2>&1"
+ $EnableVerbose -and (Write-Host " Analyzing file '$SourceFile.v$VHDLVersion'" ) | Out-Null
+ $EnableDebug -and (Write-Host " $InvokeExpr" -ForegroundColor DarkGray ) | Out-Null
+ $ErrorRecordFound = Invoke-Expression $InvokeExpr | Restore-NativeCommandStream | Write-ColoredGHDLLine $SuppressWarnings " "
+ if (($LastExitCode -ne 0) -or -not $?)
+ { $ErrorCount += 1
+ if ($HaltOnError)
+ { Exit-CompileScript -1 }
+ }
+ }
+
+ $VHDLSourcesIndex = "vital2000"
+ foreach ($SourceFile in $SourceFiles[$VHDLSourcesIndex])
+ { Write-Host " file: v$VHDLVersion\$SourceFile.v$VHDLVersion"
+ $EnableVerbose -and (Write-Host " Patching file for VHDL-$VHDLVersion" ) | Out-Null
+ $EnableDebug -and (Write-Host " Get-Content `"$VHDLSourceLibraryDirectory\$VHDLSourcesIndex\$SourceFile.vhdl`" -Encoding Ascii ``" -ForegroundColor DarkGray ) | Out-Null
+ $EnableDebug -and (Write-Host " | Format-VHDLSourceFile -Version `"$VHDLVersion`" ``" -ForegroundColor DarkGray ) | Out-Null
+ $EnableDebug -and (Write-Host " | Out-File `"$SourceFile.v$VHDLVersion`" -Encoding Ascii" -ForegroundColor DarkGray ) | Out-Null
+ # Patch file
+ Get-Content "$VHDLSourceLibraryDirectory\$VHDLSourcesIndex\$SourceFile.vhdl" -Encoding Ascii `
+ | Format-VHDLSourceFile -Version "$VHDLVersion" `
+ | Out-File "$SourceFile.v$VHDLVersion" -Encoding Ascii
+
+ # Analyze file
+ $InvokeExpr = "$GHDLExecutable -a -C `"-P../std`" --std=$VHDLVersion --work=$VHDLLibrary $SourceFile.v$VHDLVersion 2>&1"
+ $EnableVerbose -and (Write-Host " Analyzing file '$SourceFile.v$VHDLVersion'" ) | Out-Null
+ $EnableDebug -and (Write-Host " $InvokeExpr" -ForegroundColor DarkGray ) | Out-Null
+ $ErrorRecordFound = Invoke-Expression $InvokeExpr | Restore-NativeCommandStream | Write-ColoredGHDLLine $SuppressWarnings " "
+ if (($LastExitCode -ne 0) -or -not $?)
+ { $ErrorCount += 1
+ if ($HaltOnError)
+ { Exit-CompileScript -1 }
+ }
+ }
+
+ # ----------------------------------------------------------------------
+ # v93\mentor
+ # ----------------------------------------------------------------------
+ $VHDLLibrary = "ieee"
+ $VHDLFlavor = "mentor"
+ Write-Host " Compiling library '$VHDLLibrary' ($VHDLFlavor)..." -ForegroundColor DarkCyan
+
+ $LibraryDirectory = "$VHDLDestinationLibraryDirectory\$VHDLFlavor\v$VHDLVersion"
+ New-LibraryDirectory $LibraryDirectory # $EnableVerbose
+ Set-Location $LibraryDirectory
+
+ $VHDLSourcesIndex = "ieee"
+ foreach ($SourceFile in $SourceFiles[$VHDLSourcesIndex] + $SourceFiles["math"])
+ { Write-Host " file: v$VHDLVersion\$SourceFile.v$VHDLVersion"
+ $EnableVerbose -and (Write-Host " Patching file for VHDL-$VHDLVersion" ) | Out-Null
+ $EnableDebug -and (Write-Host " Get-Content `"$VHDLSourceLibraryDirectory\$VHDLSourcesIndex\$SourceFile.vhdl`" -Encoding Ascii ``" -ForegroundColor DarkGray ) | Out-Null
+ $EnableDebug -and (Write-Host " | Format-VHDLSourceFile -Version `"$VHDLVersion`" ``" -ForegroundColor DarkGray ) | Out-Null
+ $EnableDebug -and (Write-Host " | Out-File `"$SourceFile.v$VHDLVersion`" -Encoding Ascii" -ForegroundColor DarkGray ) | Out-Null
+ # Patch file
+ Get-Content "$VHDLSourceLibraryDirectory\$VHDLSourcesIndex\$SourceFile.vhdl" -Encoding Ascii `
+ | Format-VHDLSourceFile -Version "$VHDLVersion" `
+ | Out-File "$SourceFile.v$VHDLVersion" -Encoding Ascii
+
+ # Analyze file
+ $InvokeExpr = "$GHDLExecutable -a -C `"-P../std`" --std=$VHDLVersion --work=$VHDLLibrary $SourceFile.v$VHDLVersion 2>&1"
+ $EnableVerbose -and (Write-Host " Analyzing file '$SourceFile.v$VHDLVersion'" ) | Out-Null
+ $EnableDebug -and (Write-Host " $InvokeExpr" -ForegroundColor DarkGray ) | Out-Null
+ $ErrorRecordFound = Invoke-Expression $InvokeExpr | Restore-NativeCommandStream | Write-ColoredGHDLLine $SuppressWarnings " "
+ if (($LastExitCode -ne 0) -or -not $?)
+ { $ErrorCount += 1
+ if ($HaltOnError)
+ { Exit-CompileScript -1 }
+ }
+ }
+
+ foreach ($SourceFile in $SourceFiles[$VHDLFlavor])
+ { Write-Host " file: v$VHDLVersion\$SourceFile.v$VHDLVersion"
+ $EnableVerbose -and (Write-Host " Patching file for VHDL-$VHDLVersion" ) | Out-Null
+ $EnableDebug -and (Write-Host " Get-Content `"$VHDLSourceLibraryDirectory\$VHDLSourcesIndex\$SourceFile.vhdl`" -Encoding Ascii ``" -ForegroundColor DarkGray ) | Out-Null
+ $EnableDebug -and (Write-Host " | Format-VHDLSourceFile -Version `"$VHDLVersion`" ``" -ForegroundColor DarkGray ) | Out-Null
+ $EnableDebug -and (Write-Host " | Out-File `"$SourceFile.v$VHDLVersion`" -Encoding Ascii" -ForegroundColor DarkGray ) | Out-Null
+ # Patch file
+ Get-Content "$VHDLSourceLibraryDirectory\$VHDLFlavor\$SourceFile.vhdl" -Encoding Ascii `
+ | Format-VHDLSourceFile -Version "$VHDLVersion" `
+ | Out-File "$SourceFile.v$VHDLVersion" -Encoding Ascii
+
+ # Analyze file
+ $InvokeExpr = "$GHDLExecutable -a -C `"-P../std`" --std=$VHDLVersion --work=$VHDLLibrary $SourceFile.v$VHDLVersion 2>&1"
+ $EnableVerbose -and (Write-Host " Analyzing file '$SourceFile.v$VHDLVersion'" ) | Out-Null
+ $EnableDebug -and (Write-Host " $InvokeExpr" -ForegroundColor DarkGray ) | Out-Null
+ $ErrorRecordFound = Invoke-Expression $InvokeExpr | Restore-NativeCommandStream | Write-ColoredGHDLLine $SuppressWarnings " "
+ if (($LastExitCode -ne 0) -or -not $?)
+ { $ErrorCount += 1
+ if ($HaltOnError)
+ { Exit-CompileScript -1 }
+ }
+ }
+
+ $VHDLSourcesIndex = "vital2000"
+ foreach ($SourceFile in $SourceFiles[$VHDLSourcesIndex])
+ { Write-Host " file: v$VHDLVersion\$SourceFile.v$VHDLVersion"
+ $EnableVerbose -and (Write-Host " Patching file for VHDL-$VHDLVersion" ) | Out-Null
+ $EnableDebug -and (Write-Host " Get-Content `"$VHDLSourceLibraryDirectory\$VHDLSourcesIndex\$SourceFile.vhdl`" -Encoding Ascii ``" -ForegroundColor DarkGray ) | Out-Null
+ $EnableDebug -and (Write-Host " | Format-VHDLSourceFile -Version `"$VHDLVersion`" ``" -ForegroundColor DarkGray ) | Out-Null
+ $EnableDebug -and (Write-Host " | Out-File `"$SourceFile.v$VHDLVersion`" -Encoding Ascii" -ForegroundColor DarkGray ) | Out-Null
+ # Patch file
+ Get-Content "$VHDLSourceLibraryDirectory\$VHDLSourcesIndex\$SourceFile.vhdl" -Encoding Ascii `
+ | Format-VHDLSourceFile -Version "$VHDLVersion" `
+ | Out-File "$SourceFile.v$VHDLVersion" -Encoding Ascii
+
+ # Analyze file
+ $InvokeExpr = "$GHDLExecutable -a -C `"-P../std`" --std=$VHDLVersion --work=$VHDLLibrary $SourceFile.v$VHDLVersion 2>&1"
+ $EnableVerbose -and (Write-Host " Analyzing file '$SourceFile.v$VHDLVersion'" ) | Out-Null
+ $EnableDebug -and (Write-Host " $InvokeExpr" -ForegroundColor DarkGray ) | Out-Null
+ $ErrorRecordFound = Invoke-Expression $InvokeExpr | Restore-NativeCommandStream | Write-ColoredGHDLLine $SuppressWarnings " "
+ if (($LastExitCode -ne 0) -or -not $?)
+ { $ErrorCount += 1
+ if ($HaltOnError)
+ { Exit-CompileScript -1 }
+ }
+ }
+}
+# ==============================================================================
+# v08
+# ==============================================================================
+if ($VHDL2008)
+{ $VHDLVersion = "08"
+ Write-Host "Compiling libraries for VHDL-$VHDLVersion" -ForegroundColor Cyan
+
+ # ----------------------------------------------------------------------
+ # v08\std
+ # ----------------------------------------------------------------------
+ $VHDLLibrary = "std"
+ Write-Host " Compiling library '$VHDLLibrary'..." -ForegroundColor DarkCyan
+
+ $LibraryDirectory = "$VHDLDestinationLibraryDirectory\$VHDLLibrary\v$VHDLVersion"
+ New-LibraryDirectory $LibraryDirectory # $EnableVerbose
+ Set-Location $LibraryDirectory
+
+ $VHDLSourcesIndex = "std08"
+ foreach ($SourceFile in $SourceFiles[$VHDLSourcesIndex])
+ { Write-Host " file: v$VHDLVersion\$SourceFile.v$VHDLVersion"
+ $EnableVerbose -and (Write-Host " Patching file for VHDL-$VHDLVersion" ) | Out-Null
+ $EnableDebug -and (Write-Host " Get-Content `"$VHDLSourceLibraryDirectory\$VHDLSourcesIndex\$SourceFile.vhdl`" -Encoding Ascii ``" -ForegroundColor DarkGray ) | Out-Null
+ $EnableDebug -and (Write-Host " | Format-VHDLSourceFile -Version `"$VHDLVersion`" ``" -ForegroundColor DarkGray ) | Out-Null
+ $EnableDebug -and (Write-Host " | Out-File `"$SourceFile.v$VHDLVersion`" -Encoding Ascii" -ForegroundColor DarkGray ) | Out-Null
+ # Patch file
+ Get-Content "$VHDLSourceLibraryDirectory\$VHDLLibrary\$SourceFile.vhdl" -Encoding Ascii `
+ | Format-VHDLSourceFile -Version "$VHDLVersion" `
+ | Out-File "$SourceFile.v$VHDLVersion" -Encoding Ascii
+
+ # Analyze file
+ $InvokeExpr = "$GHDLExecutable -a -C --bootstrap --std=$VHDLVersion --work=$VHDLLibrary $SourceFile.v$VHDLVersion 2>&1"
+ $EnableVerbose -and (Write-Host " Analyzing file '$SourceFile.v$VHDLVersion'" ) | Out-Null
+ $EnableDebug -and (Write-Host " $InvokeExpr" -ForegroundColor DarkGray ) | Out-Null
+ $ErrorRecordFound = Invoke-Expression $InvokeExpr | Restore-NativeCommandStream | Write-ColoredGHDLLine $SuppressWarnings " "
+ if (($LastExitCode -ne 0) -or -not $?)
+ { $ErrorCount += 1
+ if ($HaltOnError)
+ { Exit-CompileScript -1 }
+ }
+ }
+
+ # ----------------------------------------------------------------------
+ # v08\ieee
+ # ----------------------------------------------------------------------
+ $VHDLLibrary = "ieee"
+ $VHDLFlavor = "ieee"
+ Write-Host " Compiling library '$VHDLLibrary'..." -ForegroundColor DarkCyan
+
+ $LibraryDirectory = "$VHDLDestinationLibraryDirectory\$VHDLFlavor\v$VHDLVersion"
+ New-LibraryDirectory $LibraryDirectory # $EnableVerbose
+ Set-Location $LibraryDirectory
+
+ $VHDLSourcesIndex = "ieee2008"
+ foreach ($SourceFile in $SourceFiles[$VHDLSourcesIndex])
+ { Write-Host " file: v$VHDLVersion\$SourceFile.v$VHDLVersion"
+ $EnableVerbose -and (Write-Host " Patching file for VHDL-$VHDLVersion" ) | Out-Null
+ $EnableDebug -and (Write-Host " Get-Content `"$VHDLSourceLibraryDirectory\$VHDLSourcesIndex\$SourceFile.vhdl`" -Encoding Ascii ``" -ForegroundColor DarkGray ) | Out-Null
+ $EnableDebug -and (Write-Host " | Format-VHDLSourceFile -Version `"$VHDLVersion`" ``" -ForegroundColor DarkGray ) | Out-Null
+ $EnableDebug -and (Write-Host " | Out-File `"$SourceFile.v$VHDLVersion`" -Encoding Ascii" -ForegroundColor DarkGray ) | Out-Null
+ # Patch file
+ Get-Content "$VHDLSourceLibraryDirectory\$VHDLSourcesIndex\$SourceFile.vhdl" -Encoding Ascii `
+ | Format-VHDLSourceFile -Version "$VHDLVersion" `
+ | Out-File "$SourceFile.v$VHDLVersion" -Encoding Ascii
+
+ # Analyze file
+ $InvokeExpr = "$GHDLExecutable -a -C `"-P../std`" --std=$VHDLVersion --work=$VHDLLibrary $SourceFile.v$VHDLVersion 2>&1"
+ $EnableVerbose -and (Write-Host " Analyzing file '$SourceFile.v$VHDLVersion'" ) | Out-Null
+ $EnableDebug -and (Write-Host " $InvokeExpr" -ForegroundColor DarkGray ) | Out-Null
+ $ErrorRecordFound = Invoke-Expression $InvokeExpr | Restore-NativeCommandStream | Write-ColoredGHDLLine $SuppressWarnings " "
+ if (($LastExitCode -ne 0) -or -not $?)
+ { $ErrorCount += 1
+ if ($HaltOnError)
+ { Exit-CompileScript -1 }
+ }
+ }
+
+ $VHDLSourcesIndex = "vital2000"
+ foreach ($SourceFile in $SourceFiles[$VHDLSourcesIndex])
+ { Write-Host " file: v$VHDLVersion\$SourceFile.v$VHDLVersion"
+ $EnableVerbose -and (Write-Host " Patching file for VHDL-$VHDLVersion" ) | Out-Null
+ $EnableDebug -and (Write-Host " Get-Content `"$VHDLSourceLibraryDirectory\$VHDLSourcesIndex\$SourceFile.vhdl`" -Encoding Ascii ``" -ForegroundColor DarkGray ) | Out-Null
+ $EnableDebug -and (Write-Host " | Format-VHDLSourceFile -Version `"$VHDLVersion`" ``" -ForegroundColor DarkGray ) | Out-Null
+ $EnableDebug -and (Write-Host " | Out-File `"$SourceFile.v$VHDLVersion`" -Encoding Ascii" -ForegroundColor DarkGray ) | Out-Null
+ # Patch file
+ Get-Content "$VHDLSourceLibraryDirectory\$VHDLSourcesIndex\$SourceFile.vhdl" -Encoding Ascii `
+ | Format-VHDLSourceFile -Version "$VHDLVersion" `
+ | Out-File "$SourceFile.v$VHDLVersion" -Encoding Ascii
+
+ # Analyze file
+ $InvokeExpr = "$GHDLExecutable -a -C `"-P../std`" -frelaxed-rules --std=$VHDLVersion --work=$VHDLLibrary $SourceFile.v$VHDLVersion 2>&1"
+ $EnableVerbose -and (Write-Host " Analyzing file '$SourceFile.v$VHDLVersion'" ) | Out-Null
+ $EnableDebug -and (Write-Host " $InvokeExpr" -ForegroundColor DarkGray ) | Out-Null
+ $ErrorRecordFound = Invoke-Expression $InvokeExpr | Restore-NativeCommandStream | Write-ColoredGHDLLine $SuppressWarnings " "
+ if (($LastExitCode -ne 0) -or -not $?)
+ { $ErrorCount += 1
+ if ($HaltOnError)
+ { Exit-CompileScript -1 }
+ }
+ }
+
+ # ----------------------------------------------------------------------
+ # v08\synopsys
+ # ----------------------------------------------------------------------
+ $VHDLLibrary = "ieee"
+ $VHDLFlavor = "synopsys"
+ Write-Host " Compiling library '$VHDLLibrary' ($VHDLFlavor)..." -ForegroundColor DarkCyan
+
+ $LibraryDirectory = "$VHDLDestinationLibraryDirectory\$VHDLFlavor\v$VHDLVersion"
+ New-LibraryDirectory $LibraryDirectory # $EnableVerbose
+ Set-Location $LibraryDirectory
+
+ $VHDLSourcesIndex = "ieee2008"
+ foreach ($SourceFile in $SourceFiles[$VHDLSourcesIndex])
+ { Write-Host " file: v$VHDLVersion\$SourceFile.v$VHDLVersion"
+ $EnableVerbose -and (Write-Host " Patching file for VHDL-$VHDLVersion" ) | Out-Null
+ $EnableDebug -and (Write-Host " Get-Content `"$VHDLSourceLibraryDirectory\$VHDLSourcesIndex\$SourceFile.vhdl`" -Encoding Ascii ``" -ForegroundColor DarkGray ) | Out-Null
+ $EnableDebug -and (Write-Host " | Format-VHDLSourceFile -Version `"$VHDLVersion`" ``" -ForegroundColor DarkGray ) | Out-Null
+ $EnableDebug -and (Write-Host " | Out-File `"$SourceFile.v$VHDLVersion`" -Encoding Ascii" -ForegroundColor DarkGray ) | Out-Null
+ # Patch file
+ Get-Content "$VHDLSourceLibraryDirectory\$VHDLSourcesIndex\$SourceFile.vhdl" -Encoding Ascii `
+ | Format-VHDLSourceFile -Version "$VHDLVersion" `
+ | Out-File "$SourceFile.v$VHDLVersion" -Encoding Ascii
+
+ # Analyze file
+ $InvokeExpr = "$GHDLExecutable -a -C `"-P../std`" --std=$VHDLVersion --work=$VHDLLibrary $SourceFile.v$VHDLVersion 2>&1"
+ $EnableVerbose -and (Write-Host " Analyzing file '$SourceFile.v$VHDLVersion'" ) | Out-Null
+ $EnableDebug -and (Write-Host " $InvokeExpr" -ForegroundColor DarkGray ) | Out-Null
+ $ErrorRecordFound = Invoke-Expression $InvokeExpr | Restore-NativeCommandStream | Write-ColoredGHDLLine $SuppressWarnings " "
+ if (($LastExitCode -ne 0) -or -not $?)
+ { $ErrorCount += 1
+ if ($HaltOnError)
+ { Exit-CompileScript -1 }
+ }
+ }
+
+ foreach ($SourceFile in $SourceFiles[$VHDLFlavor])
+ { Write-Host " file: v$VHDLVersion\$SourceFile.v$VHDLVersion"
+ $EnableVerbose -and (Write-Host " Patching file for VHDL-$VHDLVersion" ) | Out-Null
+ $EnableDebug -and (Write-Host " Get-Content `"$VHDLSourceLibraryDirectory\$VHDLSourcesIndex\$SourceFile.vhdl`" -Encoding Ascii ``" -ForegroundColor DarkGray ) | Out-Null
+ $EnableDebug -and (Write-Host " | Format-VHDLSourceFile -Version `"$VHDLVersion`" ``" -ForegroundColor DarkGray ) | Out-Null
+ $EnableDebug -and (Write-Host " | Out-File `"$SourceFile.v$VHDLVersion`" -Encoding Ascii" -ForegroundColor DarkGray ) | Out-Null
+ # Patch file
+ Get-Content "$VHDLSourceLibraryDirectory\$VHDLFlavor\$SourceFile.vhdl" -Encoding Ascii `
+ | Format-VHDLSourceFile -Version "$VHDLVersion" `
+ | Out-File "$SourceFile.v$VHDLVersion" -Encoding Ascii
+
+ # Analyze file
+ $InvokeExpr = "$GHDLExecutable -a -C `"-P../std`" --std=$VHDLVersion --work=$VHDLLibrary $SourceFile.v$VHDLVersion 2>&1"
+ $EnableVerbose -and (Write-Host " Analyzing file '$SourceFile.v$VHDLVersion'" ) | Out-Null
+ $EnableDebug -and (Write-Host " $InvokeExpr" -ForegroundColor DarkGray ) | Out-Null
+ $ErrorRecordFound = Invoke-Expression $InvokeExpr | Restore-NativeCommandStream | Write-ColoredGHDLLine $SuppressWarnings " "
+ if (($LastExitCode -ne 0) -or -not $?)
+ { $ErrorCount += 1
+ if ($HaltOnError)
+ { Exit-CompileScript -1 }
+ }
+ }
+
+ $VHDLSourcesIndex = "vital2000"
+ foreach ($SourceFile in $SourceFiles[$VHDLSourcesIndex])
+ { Write-Host " file: v$VHDLVersion\$SourceFile.v$VHDLVersion"
+ $EnableVerbose -and (Write-Host " Patching file for VHDL-$VHDLVersion" ) | Out-Null
+ $EnableDebug -and (Write-Host " Get-Content `"$VHDLSourceLibraryDirectory\$VHDLSourcesIndex\$SourceFile.vhdl`" -Encoding Ascii ``" -ForegroundColor DarkGray ) | Out-Null
+ $EnableDebug -and (Write-Host " | Format-VHDLSourceFile -Version `"$VHDLVersion`" ``" -ForegroundColor DarkGray ) | Out-Null
+ $EnableDebug -and (Write-Host " | Out-File `"$SourceFile.v$VHDLVersion`" -Encoding Ascii" -ForegroundColor DarkGray ) | Out-Null
+ # Patch file
+ Get-Content "$VHDLSourceLibraryDirectory\$VHDLSourcesIndex\$SourceFile.vhdl" -Encoding Ascii `
+ | Format-VHDLSourceFile -Version "$VHDLVersion" `
+ | Out-File "$SourceFile.v$VHDLVersion" -Encoding Ascii
+
+ # Analyze file
+ $InvokeExpr = "$GHDLExecutable -a -C `"-P../std`" -frelaxed-rules --std=$VHDLVersion --work=$VHDLLibrary $SourceFile.v$VHDLVersion 2>&1"
+ $EnableVerbose -and (Write-Host " Analyzing file '$SourceFile.v$VHDLVersion'" ) | Out-Null
+ $EnableDebug -and (Write-Host " $InvokeExpr" -ForegroundColor DarkGray ) | Out-Null
+ $ErrorRecordFound = Invoke-Expression $InvokeExpr | Restore-NativeCommandStream | Write-ColoredGHDLLine $SuppressWarnings " "
+ if (($LastExitCode -ne 0) -or -not $?)
+ { $ErrorCount += 1
+ if ($HaltOnError)
+ { Exit-CompileScript -1 }
+ }
+ }
+
+} # $VHDL2008
+
+
+Write-Host "--------------------------------------------------------------------------------"
+Write-Host "Compiling VHDL libraries " -NoNewline
+if ($ErrorCount -gt 0)
+{ Write-Host "[FAILED]" -ForegroundColor Red }
+else
+{ Write-Host "[SUCCESSFUL]" -ForegroundColor Green }
+
+Exit-CompileScript