diff options
Diffstat (limited to 'dist/mcode')
-rw-r--r-- | dist/mcode/winbuild.ps1 | 39 | ||||
-rw-r--r-- | dist/mcode/windows/compile-ghdl.ps1 (renamed from dist/mcode/windows/compile.ps1) | 499 | ||||
-rw-r--r-- | dist/mcode/windows/compile-libraries.ps1 | 800 | ||||
-rw-r--r-- | dist/mcode/windows/complib.ps1 | 741 | ||||
-rw-r--r-- | dist/mcode/windows/shared.psm1 | 249 | ||||
-rw-r--r-- | dist/mcode/windows/targets.psm1 | 16 |
6 files changed, 1310 insertions, 1034 deletions
diff --git a/dist/mcode/winbuild.ps1 b/dist/mcode/winbuild.ps1 index 19accd514..0c4c83d44 100644 --- a/dist/mcode/winbuild.ps1 +++ b/dist/mcode/winbuild.ps1 @@ -3,12 +3,12 @@ # kate: tab-width 2; replace-tabs off; indent-width 2;
#
# ==============================================================================
-# PowerShell Script: Script to compile GHDL for Windows
-#
# 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 GHDL for Windows
+#
# Description:
# ------------------------------------
# This is a PowerShell script (executable) which:
@@ -18,6 +18,7 @@ #
# ==============================================================================
# Copyright (C) 2002, 2003, 2004, 2005 Tristan Gingold
+# Copyright (C) 2015-2016 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
@@ -66,8 +67,6 @@ Param( [switch]$CreatePackage,
# creates a zip-file for xcopy deployment
[switch]$Zip,
- # creates a exe-file (installer generated by NSIS)
- [switch]$Nsis,
# install all files into a directory (xcopy deployment)
[switch]$Install,
@@ -215,19 +214,19 @@ else Write-Host "Removing all created files and directories..."
if ($Script_ExitCode -eq 0)
- { $Script_Path = $GHDLWindowsDir + "\compile.ps1"
+ { $Script_Path = $GHDLWindowsDir + "\compile-ghdl.ps1"
$Script_Parameters = @('-Clean')
#$Script_Parameters += '-Clean'
if ($Script_EnableVerbose -eq $true) { $Script_Parameters += '-Verbose' }
if ($Script_EnableDebug -eq $true) { $Script_Parameters += '-Debug' }
- Write-Host "Running compile.ps1 ..."
+ Write-Host "Running compile-ghdl.ps1 ..."
Write-Host "--------------------------------------------------------------------------------"
Invoke-Expression "$Script_Path $($Script_Parameters -join " ")"
if ($LastExitCode -ne 0)
{ $Script_ExitCode = 1
Write-Host "--------------------------------------------------------------------------------"
- Write-Host "ERROR while executing 'compile.ps1 $($Script_Paramters -join " ")'" -ForegroundColor Red
+ Write-Host "ERROR while executing 'compile-ghdl.ps1 $($Script_Paramters -join " ")'" -ForegroundColor Red
}
else
{ Write-Host "--------------------------------------------------------------------------------"
@@ -238,19 +237,19 @@ else }
if ($Script_ExitCode -eq 0)
- { $Script_Path = $GHDLWindowsDir + "\compile.ps1"
+ { $Script_Path = $GHDLWindowsDir + "\compile-ghdl.ps1"
$Script_Parameters = @()
$Script_Parameters += '-Clean'
if ($Script_EnableVerbose -eq $true) { $Script_Parameters += '-Verbose' }
if ($Script_EnableDebug -eq $true) { $Script_Parameters += '-Debug' }
- Write-Host "Running complib.ps1 ..."
+ Write-Host "Running compile-libraries.ps1 ..."
Write-Host "--------------------------------------------------------------------------------"
Invoke-Expression "$Script_Path $($Script_Parameters -join " ")"
if ($LastExitCode -ne 0)
{ $Script_ExitCode = 1
Write-Host "--------------------------------------------------------------------------------"
- Write-Host "ERROR while executing 'complib.ps1 $($Script_Paramters -join " ")'" -ForegroundColor Red
+ Write-Host "ERROR while executing 'compile-libraries.ps1 $($Script_Paramters -join " ")'" -ForegroundColor Red
}
else
{ Write-Host "--------------------------------------------------------------------------------"
@@ -282,19 +281,19 @@ else Write-Host "Compiling GHDL $GHDLVersion for Windows"
if ($Script_ExitCode -eq 0)
- { $Script_Path = $GHDLWindowsDir + "\compile.ps1"
+ { $Script_Path = $GHDLWindowsDir + "\compile-ghdl.ps1"
$Script_Parameters = @()
$Script_Parameters += '-All'
if ($Script_EnableVerbose -eq $true) { $Script_Parameters += '-Verbose' }
if ($Script_EnableDebug -eq $true) { $Script_Parameters += '-Debug' }
- Write-Host "Running compile.ps1 ..."
+ Write-Host "Running compile-ghdl.ps1 ..."
Write-Host "--------------------------------------------------------------------------------"
Invoke-Expression "$Script_Path $($Script_Parameters -join " ")"
if ($LastExitCode -ne 0)
{ $Script_ExitCode = 1
Write-Host "--------------------------------------------------------------------------------"
- Write-Host "ERROR while executing 'compile.ps1 $($Script_Paramters -join " ")'" -ForegroundColor Red
+ Write-Host "ERROR while executing 'compile-ghdl.ps1 $($Script_Paramters -join " ")'" -ForegroundColor Red
}
else
{ Write-Host "--------------------------------------------------------------------------------"
@@ -305,19 +304,21 @@ else }
if ($Script_ExitCode -eq 0)
- { $Script_Path = $GHDLWindowsDir + "\complib.ps1"
+ { $Script_Path = $GHDLWindowsDir + "\compile-libraries.ps1"
$Script_Parameters = @()
$Script_Parameters += '-Compile'
if ($Script_EnableVerbose -eq $true) { $Script_Parameters += '-Verbose' }
if ($Script_EnableDebug -eq $true) { $Script_Parameters += '-Debug' }
- Write-Host "Running complib.ps1 ..."
+ $env:GHDL = "$GHDLBuildDir\ghdl.exe"
+
+ Write-Host "Running compile-libraries.ps1 ..."
Write-Host "--------------------------------------------------------------------------------"
Invoke-Expression "$Script_Path $($Script_Parameters -join " ")"
if ($LastExitCode -ne 0)
{ $Script_ExitCode = 1
Write-Host "--------------------------------------------------------------------------------"
- Write-Host "ERROR while executing 'complib.ps1 $($Script_Paramters -join " ")'" -ForegroundColor Red
+ Write-Host "ERROR while executing 'compile-libraries.ps1 $($Script_Paramters -join " ")'" -ForegroundColor Red
}
else
{ Write-Host "--------------------------------------------------------------------------------"
@@ -373,12 +374,6 @@ else $file = Get-ChildItem $GHDLZipPackageDir -Recurse | Write-Zip -IncludeEmptyDirectories -EntryPathRoot $GHDLZipPackageDir -OutputPath $GHDLZipPackageFile
Write-Host " $([math]::round(($file.Length / 1MB), 3)) MiB written to disk"
}
- elseif (($Script_ExitCode -eq 0) -and $Nsis)
- { Write-Host "Output format: exe-file (created by NSIS)"
-
- $Script_ExitCode = 1
- Write-Host "ERROR: Not Implemented." -ForegroundColor RED
- }
else
{ $Script_ExitCode = 1
Write-Host "No package format selected." -ForegroundColor Red
diff --git a/dist/mcode/windows/compile.ps1 b/dist/mcode/windows/compile-ghdl.ps1 index 5021d01fc..7bfa62fbb 100644 --- a/dist/mcode/windows/compile.ps1 +++ b/dist/mcode/windows/compile-ghdl.ps1 @@ -1,249 +1,250 @@ -# 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;
-#
-# ==============================================================================
-# PowerShell Script: Script to compile GHDL for Windows
-#
-# Authors: Patrick Lehmann (ported batch file to PowerShell)
-# Brian Davis (contributions to the batch file)
-# Tristan Gingold (initial batch file for compilations on Windows)
-#
-# Description:
-# ------------------------------------
-# This is a PowerShell script (executable) which:
-# - sets up a compilation environment
-# - test all dependencies
-# - compiles GHDL with GNAT
-#
-# ==============================================================================
-# Copyright (C) 2002, 2003, 2004, 2005 Tristan Gingold
-#
-# 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 - GHDL compile script
- Use 'compile.ps1 -Help' to see the integrated help page
-
- .EXAMPLE
- C:\PS> .\compile.ps1 -Clean -Compile
-#>
-
-# define script parameters
-[CmdletBinding()]
-Param(
- # compile ALL
- [switch]$All = $false,
-
- # compile main targets
- [switch]$Compile = $false,
- # compile GHDL (simulator)
- [switch]$GHDL = $false,
- [switch]$Test = $false,
-
- # compile TOOLS
- [switch]$Tools = $false,
- # compile Filter (helper)
- [switch]$Filter = $false,
-
- # build options
- [switch]$Release = $false,
-
- # clean up all files and directories
- [switch]$Clean = $false,
-
- # display this help"
- [switch]$Help = $false
-)
-
-# configure script here
-$Script_RelPathToRoot = "..\..\.."
-
-# save parameters and current working directory
-$Script_Parameters = $args
-$Script_WorkingDir = Get-Location
-$GHDLRootDir = Convert-Path (Resolve-Path ($PSScriptRoot + "\" + $Script_RelPathToRoot))
-
-# set default values
-$Script_ExitCode = 0
-$BuildRelease = "Development" # "Release"
-
-if ($All)
-{ $Compile = $true
- $Tools = $true
-}
-if ($Compile)
-{ $GHDL = $true
- $Test = $true
-}
-if ($Tools)
-{ $Filter = $true
-}
-
-if ($Release)
-{ $BuildRelease = "Release" }
-else
-{ $BuildRelease = "Development" }
-
-$NoCommand = -not ($Clean -or $All -or $Compile -or $Tools -or $GHDL -or $Test -or $Filter)
-if ($NoCommand)
-{ $Help = $true }
-
-Write-Host "================================================================================" -ForegroundColor Magenta
-Write-Host "GHDL for Windows - GHDL and tools compile script" -ForegroundColor Magenta
-Write-Host "================================================================================" -ForegroundColor Magenta
-
-# if command is help or no command was given => display help page(s)
-if ($Help)
-{ Write-Host "Usage:"
- Write-Host " compile.ps1 (-Help|-Clean|-All|-Compile|-Tools|-GHDL|-Test|-Filter)" -ForegroundColor Gray
- Write-Host
- Write-Host "Options:"
- Write-Host " -Release build in release mode"
- # Write-Host " -Debug enable debug messages"
- # Write-Host
- Write-Host "Commands:"
- Write-Host " -Help display this help"
- Write-Host " -All compile all targets"
- Write-Host " -Compile compile all main targets"
- Write-Host " -Tools compile all tool targets"
- Write-Host " -GHDL compile ghdl.exe"
- Write-Host " -Filter compile filter.exe"
- Write-Host " -Clean clean up all files and directories"
- Write-Host
-
- exit 0
-} # Help
-
-# load modules
-Import-Module $PSScriptRoot\shared.psm1
-Import-Module $PSScriptRoot\targets.psm1
-
-# grep GHDL version string from Ada source file
-$GHDLVersion = Get-GHDLVersion $GHDLRootDir
-
-# gather git information
-$Git_IsGitRepo = Test-GitRepository
-if ($Git_IsGitRepo)
-{ $Git_Branch_Name = & git rev-parse --abbrev-ref HEAD
- $Git_Commit_DataString = & git log -1 --format=%cd --date=short
- $Git_Commit_ShortHash = & git rev-parse --short HEAD
-}
-
-Write-Host " Version: $GHDLVersion"
-Write-Host " Release: $BuildRelease"
-if ($Git_IsGitRepo)
-{ Write-Host " Git branch: $Git_Branch_Name"
- Write-Host " Git commit: $Git_Commit_DataString ($Git_Commit_ShortHash)"
-}
-Write-Host
-
-function Write-TargetResult($error)
-{ if ($error)
- { Write-Host " [FAILED]" -ForegroundColor Red }
- # else
- # { Write-Host " [DONE]" -ForegroundColor Green }
-}
-
-if ($BuildRelease -eq "Release")
-{ $BuildDir = $GHDLRootDir + "\dist\mcode\build" }
-elseif ($BuildRelease -eq "Development")
-{ $BuildDir = $GHDLRootDir + "\dist\mcode\build" }
-else
-{ Write-Host "[ERROR]: Unknown build setting '$BuildRelease'." -ForegroundColor Red
- exit 1
-}
-
-# ==============================================================================
-# Main Target: Clean
-# ==============================================================================
-if ($Clean)
-{ $error = Invoke-Clean $BuildDir
- Write-TargetResult $error
-} # Clean
-
-
-# ==============================================================================
-# Main Target: GHDL
-# ==============================================================================
-if ($GHDL)
-{ # create a build directory
- $error = Invoke-CreateBuildDirectory $BuildDir
- Write-TargetResult $error
-
- # patch the version file if it's no release build
- if ((-not $error) -and ($BuildRelease -eq "Development") -and $Git_IsGitRepo)
- { $error = Invoke-PatchVersionFile $GHDLRootDir $Git_Branch_Name $Git_Commit_DataString $Git_Commit_ShortHash
- Write-TargetResult $error
- }
-
- # build C source files
- if (-not $error)
- { $error = Invoke-CompileCFiles $GHDLRootDir $BuildDir
- Write-TargetResult $error
- }
-
- # build Ada source files
- if (-not $error)
- { $error = Invoke-CompileGHDLAdaFiles $GHDLRootDir $BuildDir
- Write-TargetResult $error
- }
-
- # strip result
- if (-not $error)
- { $error = Invoke-StripGHDLExecutable $BuildDir
- Write-TargetResult $error
- }
-
- # restore the version file if it was patched
- if ((-not $error) -and ($BuildRelease -eq "Development") -and $Git_IsGitRepo)
- { $error = Restore-PatchedVersionFile $GHDLRootDir
- Write-TargetResult $error
- }
-} # Compile
-
-if ($Test)
-{ # running ghdl
- $error = Test-GHDLVersion $BuildDir
- Write-TargetResult $error
-} # Test
-
-# ==============================================================================
-# Tool Target: Filter
-# ==============================================================================
-if ($Filter)
-{ # create a build directory
- $error = Invoke-CreateBuildDirectory $BuildDir
- Write-TargetResult $error
-
- # build Ada source files
- if (-not $error)
- { $error = Invoke-CompileFilterAdaFiles $GHDLRootDir $BuildDir
- Write-TargetResult $error
- }
-} # Tools
-
-
-# unload PowerShell modules
-Remove-Module shared
-Remove-Module targets
-
-# restore working directory if changed
-Set-Location $Script_WorkingDir
-
-# return exit status
-exit $Script_ExitCode
+# 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 GHDL for Windows +# +# Description: +# ------------------------------------ +# This is a PowerShell script (executable) which: +# - sets up a compilation environment +# - test all dependencies +# - compiles GHDL with GNAT +# +# ============================================================================== +# Copyright (C) 2002, 2003, 2004, 2005 Tristan Gingold +# Copyright (C) 2015-2016 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 - GHDL compile script + Use 'compile.ps1 -Help' to see the integrated help page + + .EXAMPLE + C:\PS> .\compile.ps1 -Clean -Compile +#> + +# define script parameters +[CmdletBinding()] +Param( + # compile ALL + [switch]$All = $false, + + # compile main targets + [switch]$Compile = $false, + # compile GHDL (simulator) + [switch]$GHDL = $false, + [switch]$Test = $false, + + # compile TOOLS + [switch]$Tools = $false, + # compile Filter (helper) + [switch]$Filter = $false, + + # build options + [switch]$Release = $false, + + # clean up all files and directories + [switch]$Clean = $false, + + # display this help" + [switch]$Help = $false +) + +# configure script here +$Script_RelPathToRoot = "..\..\.." + +# save parameters and current working directory +$Script_Parameters = $args +$Script_WorkingDir = Get-Location +$GHDLRootDir = Convert-Path (Resolve-Path ($PSScriptRoot + "\" + $Script_RelPathToRoot)) + +# set default values +$Script_ExitCode = 0 +$BuildRelease = "Development" # "Release" + +if ($All) +{ $Compile = $true + $Tools = $true +} +if ($Compile) +{ $GHDL = $true + $Test = $true +} +if ($Tools) +{ $Filter = $true +} + +if ($Release) +{ $BuildRelease = "Release" } +else +{ $BuildRelease = "Development" } + +$NoCommand = -not ($Clean -or $All -or $Compile -or $Tools -or $GHDL -or $Test -or $Filter) +if ($NoCommand) +{ $Help = $true } + +Write-Host "================================================================================" -ForegroundColor Magenta +Write-Host "GHDL for Windows - GHDL and tools compile script" -ForegroundColor Magenta +Write-Host "================================================================================" -ForegroundColor Magenta + +# if command is help or no command was given => display help page(s) +if ($Help) +{ Write-Host "Usage:" + Write-Host " compile.ps1 (-Help|-Clean|-All|-Compile|-Tools|-GHDL|-Test|-Filter)" -ForegroundColor Gray + Write-Host + Write-Host "Options:" + Write-Host " -Release build in release mode" + # Write-Host " -Debug enable debug messages" + # Write-Host + Write-Host "Commands:" + Write-Host " -Help display this help" + Write-Host " -All compile all targets" + Write-Host " -Compile compile all main targets" + Write-Host " -Tools compile all tool targets" + Write-Host " -GHDL compile ghdl.exe" + Write-Host " -Filter compile filter.exe" + Write-Host " -Clean clean up all files and directories" + Write-Host + + exit 0 +} # Help + +# load modules +Import-Module $PSScriptRoot\shared.psm1 +Import-Module $PSScriptRoot\targets.psm1 + +# grep GHDL version string from Ada source file +$GHDLVersion = Get-GHDLVersion $GHDLRootDir + +# gather git information +$Git_IsGitRepo = Test-GitRepository +if ($Git_IsGitRepo) +{ $Git_Branch_Name = & git rev-parse --abbrev-ref HEAD + $Git_Commit_DataString = & git log -1 --format=%cd --date=short + $Git_Commit_ShortHash = & git rev-parse --short HEAD +} + +Write-Host " Version: $GHDLVersion" +Write-Host " Release: $BuildRelease" +if ($Git_IsGitRepo) +{ Write-Host " Git branch: $Git_Branch_Name" + Write-Host " Git commit: $Git_Commit_DataString ($Git_Commit_ShortHash)" +} +Write-Host + +function Write-TargetResult($error) +{ if ($error) + { Write-Host " [FAILED]" -ForegroundColor Red } + # else + # { Write-Host " [DONE]" -ForegroundColor Green } +} + +if ($BuildRelease -eq "Release") +{ $BuildDir = $GHDLRootDir + "\dist\mcode\build" } +elseif ($BuildRelease -eq "Development") +{ $BuildDir = $GHDLRootDir + "\dist\mcode\build" } +else +{ Write-Host "[ERROR]: Unknown build setting '$BuildRelease'." -ForegroundColor Red + exit 1 +} + +# ============================================================================== +# Main Target: Clean +# ============================================================================== +if ($Clean) +{ $error = Invoke-Clean $BuildDir + Write-TargetResult $error +} # Clean + + +# ============================================================================== +# Main Target: GHDL +# ============================================================================== +if ($GHDL) +{ # create a build directory + $error = Invoke-CreateBuildDirectory $BuildDir + Write-TargetResult $error + + # patch the version file if it's no release build + if ((-not $error) -and ($BuildRelease -eq "Development") -and $Git_IsGitRepo) + { $error = Invoke-PatchVersionFile $GHDLRootDir $Git_Branch_Name $Git_Commit_DataString $Git_Commit_ShortHash + Write-TargetResult $error + } + + # build C source files + if (-not $error) + { $error = Invoke-CompileCFiles $GHDLRootDir $BuildDir + Write-TargetResult $error + } + + # build Ada source files + if (-not $error) + { $error = Invoke-CompileGHDLAdaFiles $GHDLRootDir $BuildDir + Write-TargetResult $error + } + + # strip result + if (-not $error) + { $error = Invoke-StripGHDLExecutable $BuildDir + Write-TargetResult $error + } + + # restore the version file if it was patched + if ((-not $error) -and ($BuildRelease -eq "Development") -and $Git_IsGitRepo) + { $error = Restore-PatchedVersionFile $GHDLRootDir + Write-TargetResult $error + } +} # Compile + +if ($Test) +{ # running ghdl + $error = Test-GHDLVersion $BuildDir + Write-TargetResult $error +} # Test + +# ============================================================================== +# Tool Target: Filter +# ============================================================================== +if ($Filter) +{ # create a build directory + $error = Invoke-CreateBuildDirectory $BuildDir + Write-TargetResult $error + + # build Ada source files + if (-not $error) + { $error = Invoke-CompileFilterAdaFiles $GHDLRootDir $BuildDir + Write-TargetResult $error + } +} # Tools + + +# unload PowerShell modules +Remove-Module shared +Remove-Module targets + +# restore working directory if changed +Set-Location $Script_WorkingDir + +# return exit status +exit $Script_ExitCode diff --git a/dist/mcode/windows/compile-libraries.ps1 b/dist/mcode/windows/compile-libraries.ps1 new file mode 100644 index 000000000..dc7cbb57e --- /dev/null +++ b/dist/mcode/windows/compile-libraries.ps1 @@ -0,0 +1,800 @@ +# 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-2016 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 'complib.ps1 -Help' to see the integrated help page +# +# .EXAMPLE +# C:\PS> .\complib.ps1 -Verbose -Compile +# .EXAMPLE +# C:\PS> .\complib.ps1 -Verbose -Clean +# +[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 = "" +) + +# configure script here +$Script_RelPathToRoot = "..\..\.." + +# --------------------------------------------- +# save parameters and working directory +$Script_Parameters = $args +$Script_ScriptDir = $PSScriptRoot +$Script_WorkingDir = Get-Location +$GHDLRootDir = Convert-Path (Resolve-Path ($PSScriptRoot + "\" + $Script_RelPathToRoot)) + +# set default values +$EnableVerbose = $PSCmdlet.MyInvocation.BoundParameters["Verbose"].IsPresent +$EnableDebug = $PSCmdlet.MyInvocation.BoundParameters["Debug"].IsPresent + +# load modules from GHDL's 'libraries' directory +Import-Module $PSScriptRoot\shared.psm1 -ArgumentList "$Script_WorkingDir" + +# 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" + +# 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 +} + + +# 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" + ) +} + +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..." + Write-Host " rmdir $VHDLDestinationLibraryDirectory" + + Remove-Item $VHDLDestinationLibraryDirectory -Force -Recurse -ErrorAction SilentlyContinue + + Exit-CompileScript +} + + +$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) + { Write-Host " Directory '$VHDLDestinationLibraryDirectory' already exists." + + # change working directory to VHDLDestinationLibraryDirectory + Write-Host " cd $VHDLDestinationLibraryDirectory" + Set-Location $VHDLDestinationLibraryDirectory + + Write-Host " Cleaning up directory..." + Remove-Item ./* -Force -Recurse -ErrorAction SilentlyContinue + } + else + { Write-Host " Creating directory '$VHDLDestinationLibraryDirectory'." + New-Item -ItemType Directory -Path $VHDLDestinationLibraryDirectory -ErrorAction SilentlyContinue | Out-Null + if ($LastExitCode -ne 0) + { Write-Host "[ERROR]: Cannot create destination directory '$VHDLDestinationLibraryDirectory'." -ForegroundColor Red + Exit-CompileScript -1 + } + + # change working directory to VHDLDestinationLibraryDirectory + Write-Host " Change working directory to $VHDLDestinationLibraryDirectory" + Set-Location $VHDLDestinationLibraryDirectory + } + + Write-Host + Write-Host "Start compilation..." +} + + + + +# ============================================================================ +# v87 +# ============================================================================ +if ($VHDL87) +{ $VHDLVersion = "87" + $VersionedDirectory = "$VHDLDestinationLibraryDirectory\v$VHDLVersion" + Write-Host "VHDL-$VHDLVersion" -ForegroundColor Cyan + + # ---------------------------------------------------------------------- + # v87\std + # ---------------------------------------------------------------------- + $VHDLLibrary = "std" + Write-Host " Compiling library '$VHDLLibrary'..." -ForegroundColor DarkCyan + + $LibraryDirectory = "$VersionedDirectory\$VHDLLibrary" + 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 $VHDLVersion" ) | 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" ) | Out-Null + $ErrorRecordFound = Invoke-Expression $InvokeExpr | Restore-NativeCommandStream | Write-ColoredGHDLLine $SuppressWarnings " " + if ($LastExitCode -ne 0) + { $ErrorCount += 1 + if ($HaltOnError) + { Exit-CompileScript -1 } + } + } + + # ---------------------------------------------------------------------- + # v87\ieee + # ---------------------------------------------------------------------- + $VHDLLibrary = "ieee" + $VHDLFlavor = "ieee" + Write-Host " Compiling library '$VHDLLibrary'..." -ForegroundColor DarkCyan + + $LibraryDirectory = "$VersionedDirectory\$VHDLFlavor" + 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 $VHDLVersion" ) | 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" ) | Out-Null + $ErrorRecordFound = Invoke-Expression $InvokeExpr | Restore-NativeCommandStream | Write-ColoredGHDLLine $SuppressWarnings " " + if ($LastExitCode -ne 0) + { $ErrorCount += 1 + if ($HaltOnError) + { Exit-CompileScript -1 } + } + } + + # ---------------------------------------------------------------------- + # v87\synopsys + # ---------------------------------------------------------------------- + $VHDLLibrary = "ieee" + $VHDLFlavor = "synopsys" + Write-Host " Compiling library '$VHDLLibrary' ($VHDLFlavor)..." -ForegroundColor DarkCyan + + $LibraryDirectory = "$VersionedDirectory\$VHDLFlavor" + 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 $VHDLVersion" ) | 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" ) | Out-Null + $ErrorRecordFound = Invoke-Expression $InvokeExpr | Restore-NativeCommandStream | Write-ColoredGHDLLine $SuppressWarnings " " + if ($LastExitCode -ne 0) + { $ErrorCount += 1 + if ($HaltOnError) + { Exit-CompileScript -1 } + } + } + + foreach ($SourceFile in $SourceFiles["synopsys"] + $SourceFiles["synopsys8793"]) + { Write-Host " file: v$VHDLVersion\$SourceFile.v$VHDLVersion" + $EnableVerbose -and (Write-Host " Patching file for $VHDLVersion" ) | 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" ) | Out-Null + $ErrorRecordFound = Invoke-Expression $InvokeExpr | Restore-NativeCommandStream | Write-ColoredGHDLLine $SuppressWarnings " " + if ($LastExitCode -ne 0) + { $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 $VHDLVersion" ) | 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" ) | Out-Null + $ErrorRecordFound = Invoke-Expression $InvokeExpr | Restore-NativeCommandStream | Write-ColoredGHDLLine $SuppressWarnings " " + if ($LastExitCode -ne 0) + { $ErrorCount += 1 + if ($HaltOnError) + { Exit-CompileScript -1 } + } + } +} +# ============================================================================ +# v93 +# ============================================================================ +if ($VHDL93) +{ $VHDLVersion = "93" + $VersionedDirectory = "$VHDLDestinationLibraryDirectory\v$VHDLVersion" + Write-Host "VHDL-$VHDLVersion" -ForegroundColor Cyan + + # ---------------------------------------------------------------------- + # v93\std + # ---------------------------------------------------------------------- + $VHDLLibrary = "std" + Write-Host " Compiling library '$VHDLLibrary'..." -ForegroundColor DarkCyan + + $LibraryDirectory = "$VersionedDirectory\$VHDLLibrary" + 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 $VHDLVersion" ) | 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" ) | Out-Null + $ErrorRecordFound = Invoke-Expression $InvokeExpr | Restore-NativeCommandStream | Write-ColoredGHDLLine $SuppressWarnings " " + if ($LastExitCode -ne 0) + { $ErrorCount += 1 + if ($HaltOnError) + { Exit-CompileScript -1 } + } + } + + # ---------------------------------------------------------------------- + # v93\ieee + # ---------------------------------------------------------------------- + $VHDLLibrary = "ieee" + $VHDLFlavor = "ieee" + Write-Host " Compiling library '$VHDLLibrary'..." -ForegroundColor DarkCyan + + $LibraryDirectory = "$VersionedDirectory\$VHDLFlavor" + 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 $VHDLVersion" ) | 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" ) | Out-Null + $ErrorRecordFound = Invoke-Expression $InvokeExpr | Restore-NativeCommandStream | Write-ColoredGHDLLine $SuppressWarnings " " + if ($LastExitCode -ne 0) + { $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 $VHDLVersion" ) | 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" ) | Out-Null + $ErrorRecordFound = Invoke-Expression $InvokeExpr | Restore-NativeCommandStream | Write-ColoredGHDLLine $SuppressWarnings " " + if ($LastExitCode -ne 0) + { $ErrorCount += 1 + if ($HaltOnError) + { Exit-CompileScript -1 } + } + } + + # ---------------------------------------------------------------------- + # v93\synopsys + # ---------------------------------------------------------------------- + $VHDLLibrary = "ieee" + $VHDLFlavor = "synopsys" + Write-Host " Compiling library '$VHDLLibrary' ($VHDLFlavor)..." -ForegroundColor DarkCyan + + $LibraryDirectory = "$VersionedDirectory\$VHDLFlavor" + 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 $VHDLVersion" ) | 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" ) | Out-Null + $ErrorRecordFound = Invoke-Expression $InvokeExpr | Restore-NativeCommandStream | Write-ColoredGHDLLine $SuppressWarnings " " + if ($LastExitCode -ne 0) + { $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 $VHDLVersion" ) | 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" ) | Out-Null + $ErrorRecordFound = Invoke-Expression $InvokeExpr | Restore-NativeCommandStream | Write-ColoredGHDLLine $SuppressWarnings " " + if ($LastExitCode -ne 0) + { $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 $VHDLVersion" ) | 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" ) | Out-Null + $ErrorRecordFound = Invoke-Expression $InvokeExpr | Restore-NativeCommandStream | Write-ColoredGHDLLine $SuppressWarnings " " + if ($LastExitCode -ne 0) + { $ErrorCount += 1 + if ($HaltOnError) + { Exit-CompileScript -1 } + } + } + + # ---------------------------------------------------------------------- + # v93\mentor + # ---------------------------------------------------------------------- + $VHDLLibrary = "ieee" + $VHDLFlavor = "mentor" + Write-Host " Compiling library '$VHDLLibrary' ($VHDLFlavor)..." -ForegroundColor DarkCyan + + $LibraryDirectory = "$VersionedDirectory\$VHDLFlavor" + 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 $VHDLVersion" ) | 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" ) | Out-Null + $ErrorRecordFound = Invoke-Expression $InvokeExpr | Restore-NativeCommandStream | Write-ColoredGHDLLine $SuppressWarnings " " + if ($LastExitCode -ne 0) + { $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 $VHDLVersion" ) | 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" ) | Out-Null + $ErrorRecordFound = Invoke-Expression $InvokeExpr | Restore-NativeCommandStream | Write-ColoredGHDLLine $SuppressWarnings " " + if ($LastExitCode -ne 0) + { $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 $VHDLVersion" ) | 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" ) | Out-Null + $ErrorRecordFound = Invoke-Expression $InvokeExpr | Restore-NativeCommandStream | Write-ColoredGHDLLine $SuppressWarnings " " + if ($LastExitCode -ne 0) + { $ErrorCount += 1 + if ($HaltOnError) + { Exit-CompileScript -1 } + } + } +} +# ============================================================================== +# v08 +# ============================================================================== +if ($VHDL2008) +{ $VHDLVersion = "08" + $VersionedDirectory = "$VHDLDestinationLibraryDirectory\v$VHDLVersion" + Write-Host "VHDL-$VHDLVersion" -ForegroundColor Cyan + + # ---------------------------------------------------------------------- + # v08\std + # ---------------------------------------------------------------------- + $VHDLLibrary = "std" + Write-Host " Compiling library '$VHDLLibrary'..." -ForegroundColor DarkCyan + + $LibraryDirectory = "$VersionedDirectory\$VHDLLibrary" + 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 $VHDLVersion" ) | 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" ) | Out-Null + $ErrorRecordFound = Invoke-Expression $InvokeExpr | Restore-NativeCommandStream | Write-ColoredGHDLLine $SuppressWarnings " " + if ($LastExitCode -ne 0) + { $ErrorCount += 1 + if ($HaltOnError) + { Exit-CompileScript -1 } + } + } + + # ---------------------------------------------------------------------- + # v08\ieee + # ---------------------------------------------------------------------- + $VHDLLibrary = "ieee" + $VHDLFlavor = "ieee" + Write-Host " Compiling library '$VHDLLibrary'..." -ForegroundColor DarkCyan + + $LibraryDirectory = "$VersionedDirectory\$VHDLFlavor" + 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 $VHDLVersion" ) | 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" ) | Out-Null + $ErrorRecordFound = Invoke-Expression $InvokeExpr | Restore-NativeCommandStream | Write-ColoredGHDLLine $SuppressWarnings " " + if ($LastExitCode -ne 0) + { $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 $VHDLVersion" ) | 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" ) | Out-Null + $ErrorRecordFound = Invoke-Expression $InvokeExpr | Restore-NativeCommandStream | Write-ColoredGHDLLine $SuppressWarnings " " + if ($LastExitCode -ne 0) + { $ErrorCount += 1 + if ($HaltOnError) + { Exit-CompileScript -1 } + } + } + + # ---------------------------------------------------------------------- + # v08\synopsys + # ---------------------------------------------------------------------- + $VHDLLibrary = "ieee" + $VHDLFlavor = "synopsys" + Write-Host " Compiling library '$VHDLLibrary' ($VHDLFlavor)..." -ForegroundColor DarkCyan + + $LibraryDirectory = "$VersionedDirectory\$VHDLFlavor" + 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 $VHDLVersion" ) | 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" ) | Out-Null + $ErrorRecordFound = Invoke-Expression $InvokeExpr | Restore-NativeCommandStream | Write-ColoredGHDLLine $SuppressWarnings " " + if ($LastExitCode -ne 0) + { $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 $VHDLVersion" ) | 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" ) | Out-Null + $ErrorRecordFound = Invoke-Expression $InvokeExpr | Restore-NativeCommandStream | Write-ColoredGHDLLine $SuppressWarnings " " + if ($LastExitCode -ne 0) + { $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 $VHDLVersion" ) | 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" ) | Out-Null + $ErrorRecordFound = Invoke-Expression $InvokeExpr | Restore-NativeCommandStream | Write-ColoredGHDLLine $SuppressWarnings " " + if ($LastExitCode -ne 0) + { $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 diff --git a/dist/mcode/windows/complib.ps1 b/dist/mcode/windows/complib.ps1 deleted file mode 100644 index 7bdcd00c3..000000000 --- a/dist/mcode/windows/complib.ps1 +++ /dev/null @@ -1,741 +0,0 @@ -# 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;
-#
-# ==============================================================================
-# PowerShell Script: Script to compile VHDL libraries for GHDL
-#
-# Authors: Patrick Lehmann (ported batch file to PowerShell)
-# Brian Davis (contributions to the batch file)
-# Tristan Gingold (initial batch file for compilations on Windows)
-#
-# 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
-#
-# 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 'complib.ps1 -Help' to see the integrated help page
-
- .EXAMPLE
- C:\PS> .\complib.ps1 -Verbose -Compile
- .EXAMPLE
- C:\PS> .\complib.ps1 -Verbose -Clean
-#>
-
-# define script parameters
-[CmdletBinding()]
-Param(
- # compile all library files
- [switch]$Compile,
-
- # clean up all files and directories
- [switch]$Clean,
-
- # display this help"
- [switch]$Help
-)
-
-# configure script here
-$Script_RelPathToRoot = "..\..\.."
-
-# set default values
-$Script_ExitCode = 0
-if ($PSCmdlet.MyInvocation.BoundParameters["Debug"].IsPresent) { $Script_EnableDebug = $true }
-if ($PSCmdlet.MyInvocation.BoundParameters["Verbose"].IsPresent) { $Script_EnableVerbose = $true }
-
-# save parameters and current working directory
-$Script_Parameters = $args
-$Script_ScriptDir = $PSScriptRoot
-$Script_WorkingDir = Get-Location
-$GHDLRootDir_AbsPath = Convert-Path (Resolve-Path ($PSScriptRoot + "\" + $Script_RelPathToRoot))
-
-# configure some variables: paths, executables, directory names, ...
-#$VHDLSourceLibraryDirName = "libraries"
-#$VHDLDestLibraryDirName = "lib"
-
-$GHDLExecutable = $GHDLRootDir_AbsPath + "\dist\mcode\build\ghdl.exe"
-$GHDLFilterExecutable = $GHDLRootDir_AbsPath + "\dist\mcode\build\filter.exe"
-
-# construct directories
-$VHDLSourceLibraryDir = $GHDLRootDir_AbsPath + "\libraries" # + $VHDLSourceLibraryDirName
-$VHDLDestLibraryDir = $GHDLRootDir_AbsPath + "\dist\mcode\lib" # + $VHDLDestLibraryDirName
-
-
-Write-Host "GHDL for Windows - Library compile script" -ForegroundColor Yellow
-Write-Host
-
-if ($Help)
- { Write-Host "Usage:"
- Write-Host " complib.ps1 [-Verbose] [-Debug] (-Help|-Compile|-Clean)" -ForegroundColor Gray
- Write-Host
- Write-Host "Options:"
- Write-Host " -Verbose enable detailed messages"
- Write-Host " -Debug enable debug messages"
- Write-Host
- Write-Host "Commands:"
- Write-Host " -Help display this help"
- Write-Host " -Compile compile all library files"
- Write-Host " -Clean clean up all files and directories"
- }
-elseif ($Clean)
- { Write-Host "Removing all created files and directories..."
- Write-Host " rmdir $VHDLDestLibraryDir"
-
- Remove-Item $VHDLDestLibraryDir -Force -Recurse -ErrorAction SilentlyContinue
- }
-elseif ($Compile)
- { Write-Host "Compiling VHDL Libraries..."
- Write-Host "Preparing..."
-
- # create lib directory if it does not exist
- if (Test-Path -Path $VHDLDestLibraryDir)
- { Write-Host " Directory '$VHDLDestLibraryDir' already exists."
-
- # change working directory to VHDLDestLibraryDir
- Write-Host " cd $VHDLDestLibraryDir"
- Set-Location $VHDLDestLibraryDir
-
- Write-Host " cleaning up directory..."
- Remove-Item ./* -Force -Recurse -ErrorAction SilentlyContinue
- }
- else
- { Write-Host " Creating directory '$VHDLDestLibraryDir'."
- [void](New-Item -ItemType directory -Path $VHDLDestLibraryDir -ErrorAction SilentlyContinue)
-
- # change working directory to VHDLDestLibraryDir
- Write-Host " cd $VHDLDestLibraryDir"
- Set-Location $VHDLDestLibraryDir
- }
-
-
- # 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_textio",
- "std_logic_unsigned",
- "std_logic_signed",
- "std_logic_misc",
- "std_logic_misc-body"
- );
- "mentor" = @(
- "std_logic_arith",
- "std_logic_arith_body"
- )
- }
-
- Write-Host
- Write-Host "Start compilation..."
-
-# ==============================================================================
-# v87
-# ==============================================================================
- # create 'v87' directory if it does not exist
- $LocalDirName = "v87"
- $LocalDir = $VHDLDestLibraryDir + "\" + $LocalDirName
- if (Test-Path -Path $LocalDir)
- { if ($Script_EnableVerbose) { Write-Host " Directory '$LocalDirName' already exists." } }
- else
- { Write-Host " Creating directory '$LocalDirName'."
- [void](New-Item -ItemType directory -Path $LocalDir -ErrorAction SilentlyContinue)
- }
-
- Write-Host " compiling into $LocalDirName"
-
- # ----------------------------------------------------------------------
- # v87\std
- # ----------------------------------------------------------------------
- if ($Script_ExitCode -eq 0)
- { $VHDLDestLibrary = "std"
-
- # create 'std' directory if it does not exist
- $LocalDir2Name = $VHDLDestLibrary
- $LocalDir2 = $LocalDir + "\" + $LocalDir2Name
-
- Write-Host " compiling library $VHDLDestLibrary" -ForegroundColor DarkCyan
- if (Test-Path -Path $LocalDir2)
- { if ($Script_EnableVerbose) { Write-Host " Directory '$LocalDir2Name' already exists." } }
- else
- { Write-Host " Creating directory '$LocalDir2Name'."
- [void](New-Item -ItemType Directory -Path $LocalDir2 -ErrorAction SilentlyContinue)
- }
-
- # change working directory to LocalDir2
- Write-Host " cd $LocalDir2"
- Set-Location $LocalDir2
-
- $VHDLSrcLibrary = "std"
- foreach ($SourceFile in $SourceFiles[$VHDLSrcLibrary])
- { Write-Host " file: v87\$SourceFile.v87"
- if ($Script_EnableVerbose) { Write-Host " ghdlfilter (-v87)" }
- Get-Content "$VHDLSourceLibraryDir\$VHDLSrcLibrary\$SourceFile.vhdl" -Encoding Ascii -Raw `
- | & $GHDLFilterExecutable @('-v87') `
- | Out-File "$SourceFile.v87" -Encoding Ascii
-
- #Write-Host "Press any key to continue..."
- #[void]($Host.UI.RawUI.ReadKey("NoEcho,IncludeKeyDown"))
- #$Host.UI.RawUI.FlushInputBuffer()
-
- $GHDLParameters = @("-a", "-C", "--std=87", "--bootstrap", "--work=$VHDLDestLibrary", "$SourceFile.v87")
- if ($Script_EnableVerbose) { Write-Host (" ghdl analyse (" + ($GHDLParameters -join " ") + ")") }
- & $GHDLExecutable $GHDLParameters
- }
- }
-
- #$Script_ExitCode = 1
-
- # ----------------------------------------------------------------------
- # v87\ieee
- # ----------------------------------------------------------------------
- if ($Script_ExitCode -eq 0)
- { $VHDLDestLibrary = "ieee"
-
- # create 'ieee' directory if it does not exist
- $LocalDir2Name = $VHDLDestLibrary
- $LocalDir2 = $LocalDir + "\" + $LocalDir2Name
-
- Write-Host " compiling library $VHDLDestLibrary" -ForegroundColor DarkCyan
- if (Test-Path -Path $LocalDir2)
- { if ($Script_EnableVerbose) { Write-Host " Directory '$LocalDir2Name' already exists." } }
- else
- { Write-Host " Creating directory '$LocalDir2Name'."
- [void](New-Item -ItemType directory -Path $LocalDir2 -ErrorAction SilentlyContinue)
- }
-
- # change working directory to LocalDir2
- Write-Host " cd $LocalDir2"
- Set-Location $LocalDir2
-
- $VHDLSrcLibrary = "ieee"
- foreach ($SourceFile in $SourceFiles[$VHDLSrcLibrary])
- { Write-Host " file: v87\$SourceFile.v87"
- if ($Script_EnableVerbose) { Write-Host " ghdlfilter (-v87)" }
- Get-Content "$VHDLSourceLibraryDir\$VHDLSrcLibrary\$SourceFile.vhdl" -Encoding Ascii -Raw `
- | & $GHDLFilterExecutable @('-v87') `
- | Out-File "$SourceFile.v87" -Encoding Ascii
-
- $GHDLParameters = @("-a", "-C", "--std=87", "-P..\std", "--work=$VHDLDestLibrary", "$SourceFile.v87")
- if ($Script_EnableVerbose) { Write-Host (" ghdl analyse (" + ($GHDLParameters -join " ") + ")") }
- & $GHDLExecutable $GHDLParameters
- }
-
- $VHDLSrcLibrary = "vital95"
- foreach ($SourceFile in $SourceFiles[$VHDLSrcLibrary])
- { Write-Host " file: v87\$SourceFile.v87"
- if ($Script_EnableVerbose) { Write-Host " copy: $SourceFile" }
- Copy-Item "$VHDLSourceLibraryDir\$VHDLSrcLibrary\$SourceFile.vhdl" "$SourceFile.vhd"
-
- $GHDLParameters = @("-a", "-C", "--std=87", "-P..\std", "--work=$VHDLDestLibrary", "$SourceFile.vhd")
- if ($Script_EnableVerbose) { Write-Host (" ghdl analyse (" + ($GHDLParameters -join " ") + ")") }
- & $GHDLExecutable $GHDLParameters
- }
- }
-
- # ----------------------------------------------------------------------
- # v87\synopsys
- # ----------------------------------------------------------------------
- if ($Script_ExitCode -eq 0)
- { $VHDLDestLibrary = "ieee"
-
- # create 'synopsys' directory if it does not exist
- $LocalDir2Name = "synopsys"
- $LocalDir2 = $LocalDir + "\" + $LocalDir2Name
-
- Write-Host " compiling library $VHDLDestLibrary" -ForegroundColor DarkCyan
- if (Test-Path -Path $LocalDir2)
- { if ($Script_EnableVerbose) { Write-Host " Directory '$LocalDir2Name' already exists." } }
- else
- { Write-Host " Creating directory '$LocalDir2Name'."
- [void](New-Item -ItemType directory -Path $LocalDir2 -ErrorAction SilentlyContinue)
- }
-
- # change working directory to LocalDir2
- Write-Host " cd $LocalDir2"
- Set-Location $LocalDir2
-
- $VHDLSrcLibrary = "ieee"
- foreach ($SourceFile in $SourceFiles[$VHDLSrcLibrary])
- { Write-Host " file: v87\$SourceFile.v87"
- if ($Script_EnableVerbose) { Write-Host " ghdlfilter (-v87)" }
- Get-Content "$VHDLSourceLibraryDir\$VHDLSrcLibrary\$SourceFile.vhdl" -Encoding Ascii -Raw `
- | & $GHDLFilterExecutable @('-v87') `
- | Out-File "$SourceFile.v87" -Encoding Ascii
-
- $GHDLParameters = @("-a", "-C", "--std=87", "-P..\std", "--work=$VHDLDestLibrary", "$SourceFile.v87")
- if ($Script_EnableVerbose) { Write-Host (" ghdl analyse (" + ($GHDLParameters -join " ") + ")") }
- & $GHDLExecutable $GHDLParameters
- }
-
- $VHDLSrcLibrary = "vital95"
- foreach ($SourceFile in $SourceFiles[$VHDLSrcLibrary])
- { Write-Host " file: v87\$SourceFile.v87"
- if ($Script_EnableVerbose) { Write-Host " copy: $SourceFile" }
- Copy-Item "$VHDLSourceLibraryDir\$VHDLSrcLibrary\$SourceFile.vhdl" "$SourceFile.vhd"
-
- $GHDLParameters = @("-a", "-C", "--std=87", "-P..\std", "--work=$VHDLDestLibrary", "$SourceFile.vhd")
- if ($Script_EnableVerbose) { Write-Host (" ghdl analyse (" + ($GHDLParameters -join " ") + ")") }
- & $GHDLExecutable $GHDLParameters
- }
-
- $VHDLSrcLibrary = "synopsys"
- foreach ($SourceFile in $SourceFiles[$VHDLSrcLibrary])
- { Write-Host " file: v87\$SourceFile.v87"
- if ($Script_EnableVerbose) { Write-Host " copy: $SourceFile" }
- Copy-Item "$VHDLSourceLibraryDir\$VHDLSrcLibrary\$SourceFile.vhdl" "$SourceFile.vhd"
-
- $GHDLParameters = @("-a", "-C", "--std=87", "-P..\std", "--work=$VHDLDestLibrary", "$SourceFile.vhd")
- if ($Script_EnableVerbose) { Write-Host (" ghdl analyse (" + ($GHDLParameters -join " ") + ")") }
- & $GHDLExecutable $GHDLParameters
- }
- }
-
-# ==============================================================================
-# v93
-# ==============================================================================
- # create 'v93' directory if it does not exist
- $LocalDirName = "v93"
- $LocalDir = $VHDLDestLibraryDir + "\" + $LocalDirName
- if (Test-Path -Path $LocalDir)
- { Write-Host " Directory '$LocalDirName' already exists."}
- else
- { Write-Host " Creating directory '$LocalDirName'."
- [void](New-Item -ItemType directory -Path $LocalDir -ErrorAction SilentlyContinue)
- }
-
- Write-Host " compiling into $LocalDirName"
-
- # ----------------------------------------------------------------------
- # v93\std
- # ----------------------------------------------------------------------
- if ($Script_ExitCode -eq 0)
- { $VHDLDestLibrary = "std"
-
- # create 'std' directory if it does not exist
- $LocalDir2Name = $VHDLDestLibrary
- $LocalDir2 = $LocalDir + "\" + $LocalDir2Name
-
- Write-Host " compiling library $VHDLDestLibrary" -ForegroundColor DarkCyan
- if (Test-Path -Path $LocalDir2)
- { if ($Script_EnableVerbose) { Write-Host " Directory '$LocalDir2Name' already exists." } }
- else
- { Write-Host " Creating directory '$LocalDir2Name'."
- [void](New-Item -ItemType directory -Path $LocalDir2 -ErrorAction SilentlyContinue)
- }
-
- # change working directory to LocalDir2
- Write-Host " cd $LocalDir2"
- Set-Location $LocalDir2
-
- $VHDLSrcLibrary = "std"
- foreach ($SourceFile in $SourceFiles[$VHDLSrcLibrary])
- { Write-Host " file: v93\$SourceFile.v93"
- if ($Script_EnableVerbose) { Write-Host " ghdlfilter (-v93)" }
- Get-Content "$VHDLSourceLibraryDir\$VHDLSrcLibrary\$SourceFile.vhdl" -Encoding Ascii -Raw `
- | & $GHDLFilterExecutable @('-v93') `
- | Out-File "$SourceFile.v93" -Encoding Ascii
-
- $GHDLParameters = @("-a", "-C", "--std=93", "--bootstrap", "--work=$VHDLDestLibrary", "$SourceFile.v93")
- if ($Script_EnableVerbose) { Write-Host (" ghdl analyse (" + ($GHDLParameters -join " ") + ")") }
- & $GHDLExecutable $GHDLParameters
- }
- }
-
- # ----------------------------------------------------------------------
- # v93\ieee
- # ----------------------------------------------------------------------
- if ($Script_ExitCode -eq 0)
- { $VHDLDestLibrary = "ieee"
-
- # create 'ieee' directory if it does not exist
- $LocalDir2Name = $VHDLDestLibrary
- $LocalDir2 = $LocalDir + "\" + $LocalDir2Name
-
- Write-Host " compiling library $VHDLDestLibrary" -ForegroundColor DarkCyan
- if (Test-Path -Path $LocalDir2)
- { if ($Script_EnableVerbose) { Write-Host " Directory '$LocalDir2Name' already exists." } }
- else
- { Write-Host " Creating directory '$LocalDir2Name'."
- [void](New-Item -ItemType directory -Path $LocalDir2 -ErrorAction SilentlyContinue)
- }
-
- # change working directory to LocalDir2
- Write-Host " cd $LocalDir2"
- Set-Location $LocalDir2
-
- $VHDLSrcLibrary = "ieee"
- foreach ($SourceFile in $SourceFiles[$VHDLSrcLibrary])
- { Write-Host " file: v93\$SourceFile.v93"
- if ($Script_EnableVerbose) { Write-Host " ghdlfilter (-v93)" }
- Get-Content "$VHDLSourceLibraryDir\$VHDLSrcLibrary\$SourceFile.vhdl" -Encoding Ascii -Raw `
- | & $GHDLFilterExecutable @('-v93') `
- | Out-File "$SourceFile.v93" -Encoding Ascii
-
- $GHDLParameters = @("-a", "-C", "--std=93", "-P..\std", "--work=$VHDLDestLibrary", "$SourceFile.v93")
- if ($Script_EnableVerbose) { Write-Host (" ghdl analyse (" + ($GHDLParameters -join " ") + ")") }
- & $GHDLExecutable $GHDLParameters
- }
-
- $VHDLSrcLibrary = "ieee"
- foreach ($SourceFile in $SourceFiles['math'])
- { Write-Host " file: v93\$SourceFile.v93"
- if ($Script_EnableVerbose) { Write-Host " copy: $SourceFile" }
- Copy-Item "$VHDLSourceLibraryDir\$VHDLSrcLibrary\$SourceFile.vhdl" "$SourceFile.vhd"
-
- $GHDLParameters = @("-a", "-C", "--std=93", "-P..\std", "--work=$VHDLDestLibrary", "$SourceFile.vhd")
- if ($Script_EnableVerbose) { Write-Host (" ghdl analyse (" + ($GHDLParameters -join " ") + ")") }
- & $GHDLExecutable $GHDLParameters
- }
-
- $VHDLSrcLibrary = "vital2000"
- foreach ($SourceFile in $SourceFiles[$VHDLSrcLibrary])
- { Write-Host " file: v93\$SourceFile.v93"
- if ($Script_EnableVerbose) { Write-Host " copy: $SourceFile" }
- Copy-Item "$VHDLSourceLibraryDir\$VHDLSrcLibrary\$SourceFile.vhdl" "$SourceFile.vhd"
-
- $GHDLParameters = @("-a", "-C", "--std=93", "-P..\std", "--work=$VHDLDestLibrary", "$SourceFile.vhd")
- if ($Script_EnableVerbose) { Write-Host (" ghdl analyse (" + ($GHDLParameters -join " ") + ")") }
- & $GHDLExecutable $GHDLParameters
- }
- }
-
- # ----------------------------------------------------------------------
- # v93\synopsys
- # ----------------------------------------------------------------------
- if ($Script_ExitCode -eq 0)
- { $VHDLDestLibrary = "ieee"
-
- # create 'synopsys' directory if it does not exist
- $LocalDir2Name = "synopsys"
- $LocalDir2 = $LocalDir + "\" + $LocalDir2Name
-
- Write-Host " compiling library $VHDLDestLibrary" -ForegroundColor DarkCyan
- if (Test-Path -Path $LocalDir2)
- { if ($Script_EnableVerbose) { Write-Host " Directory '$LocalDir2Name' already exists." } }
- else
- { Write-Host " Creating directory '$LocalDir2Name'."
- [void](New-Item -ItemType directory -Path $LocalDir2 -ErrorAction SilentlyContinue)
- }
-
- # change working directory to LocalDir2
- Write-Host " cd $LocalDir2"
- Set-Location $LocalDir2
-
- $VHDLSrcLibrary = "ieee"
- foreach ($SourceFile in $SourceFiles[$VHDLSrcLibrary])
- { Write-Host " file: v93\$SourceFile.v93"
- if ($Script_EnableVerbose) { Write-Host " ghdlfilter (-v93)" }
- Get-Content "$VHDLSourceLibraryDir\$VHDLSrcLibrary\$SourceFile.vhdl" -Encoding Ascii -Raw `
- | & $GHDLFilterExecutable @('-v93') `
- | Out-File "$SourceFile.v93" -Encoding Ascii
-
- $GHDLParameters = @("-a", "-C", "--std=93", "-P..\std", "--work=$VHDLDestLibrary", "$SourceFile.v93")
- if ($Script_EnableVerbose) { Write-Host (" ghdl analyse (" + ($GHDLParameters -join " ") + ")") }
- & $GHDLExecutable $GHDLParameters
- }
-
- $VHDLSrcLibrary = "ieee"
- foreach ($SourceFile in $SourceFiles['math'])
- { Write-Host " file: v93\$SourceFile.v93"
- if ($Script_EnableVerbose) { Write-Host " copy: $SourceFile" }
- Copy-Item "$VHDLSourceLibraryDir\$VHDLSrcLibrary\$SourceFile.vhdl" "$SourceFile.vhd"
-
- $GHDLParameters = @("-a", "-C", "--std=93", "-P..\std", "--work=$VHDLDestLibrary", "$SourceFile.vhd")
- if ($Script_EnableVerbose) { Write-Host (" ghdl analyse (" + ($GHDLParameters -join " ") + ")") }
- & $GHDLExecutable $GHDLParameters
- }
-
- $VHDLSrcLibrary = "vital2000"
- foreach ($SourceFile in $SourceFiles[$VHDLSrcLibrary])
- { Write-Host " file: v93\$SourceFile.v93"
- if ($Script_EnableVerbose) { Write-Host " copy: $SourceFile" }
- Copy-Item "$VHDLSourceLibraryDir\$VHDLSrcLibrary\$SourceFile.vhdl" "$SourceFile.vhd"
-
- $GHDLParameters = @("-a", "-C", "--std=93", "-P..\std", "--work=$VHDLDestLibrary", "$SourceFile.vhd")
- if ($Script_EnableVerbose) { Write-Host (" ghdl analyse (" + ($GHDLParameters -join " ") + ")") }
- & $GHDLExecutable $GHDLParameters
- }
-
- $VHDLSrcLibrary = "synopsys"
- foreach ($SourceFile in $SourceFiles[$VHDLSrcLibrary])
- { Write-Host " file: v93\$SourceFile.v93"
- if ($Script_EnableVerbose) { Write-Host " copy: $SourceFile" }
- Copy-Item "$VHDLSourceLibraryDir\$VHDLSrcLibrary\$SourceFile.vhdl" "$SourceFile.vhd"
-
- $GHDLParameters = @("-a", "-C", "--std=93", "-P..\std", "--work=$VHDLDestLibrary", "$SourceFile.vhd")
- if ($Script_EnableVerbose) { Write-Host (" ghdl analyse (" + ($GHDLParameters -join " ") + ")") }
- & $GHDLExecutable $GHDLParameters
- }
- }
-
- # ----------------------------------------------------------------------
- # v93\mentor
- # ----------------------------------------------------------------------
- if ($Script_ExitCode -eq 0)
- { $VHDLDestLibrary = "ieee"
-
- # create 'mentor' directory if it does not exist
- $LocalDir2Name = "mentor"
- $LocalDir2 = $LocalDir + "\" + $LocalDir2Name
-
- Write-Host " compiling library $VHDLDestLibrary" -ForegroundColor DarkCyan
- if (Test-Path -Path $LocalDir2)
- { if ($Script_EnableVerbose) { Write-Host " Directory '$LocalDir2Name' already exists." } }
- else
- { Write-Host " Creating directory '$LocalDir2Name'."
- [void](New-Item -ItemType directory -Path $LocalDir2 -ErrorAction SilentlyContinue)
- }
-
- # change working directory to LocalDir2
- Write-Host " cd $LocalDir2"
- Set-Location $LocalDir2
-
- $VHDLSrcLibrary = "ieee"
- foreach ($SourceFile in $SourceFiles[$VHDLSrcLibrary])
- { Write-Host " file: v93\$SourceFile.v93"
- if ($Script_EnableVerbose) { Write-Host " ghdlfilter (-v93)" }
- Get-Content "$VHDLSourceLibraryDir\$VHDLSrcLibrary\$SourceFile.vhdl" -Encoding Ascii -Raw `
- | & $GHDLFilterExecutable @('-v93') `
- | Out-File "$SourceFile.v93" -Encoding Ascii
-
- $GHDLParameters = @("-a", "-C", "--std=93", "-P..\std", "--work=$VHDLDestLibrary", "$SourceFile.v93")
- if ($Script_EnableVerbose) { Write-Host (" ghdl analyse (" + ($GHDLParameters -join " ") + ")") }
- & $GHDLExecutable $GHDLParameters
- }
-
- $VHDLSrcLibrary = "ieee"
- foreach ($SourceFile in $SourceFiles['math'])
- { Write-Host " file: v93\$SourceFile.v93"
- if ($Script_EnableVerbose) { Write-Host " copy: $SourceFile" }
- Copy-Item "$VHDLSourceLibraryDir\$VHDLSrcLibrary\$SourceFile.vhdl" "$SourceFile.vhd"
-
- $GHDLParameters = @("-a", "-C", "--std=93", "-P..\std", "--work=$VHDLDestLibrary", "$SourceFile.vhd")
- if ($Script_EnableVerbose) { Write-Host (" ghdl analyse (" + ($GHDLParameters -join " ") + ")") }
- & $GHDLExecutable $GHDLParameters
- }
-
- $VHDLSrcLibrary = "vital2000"
- foreach ($SourceFile in $SourceFiles[$VHDLSrcLibrary])
- { Write-Host " file: v93\$SourceFile.vhd"
- if ($Script_EnableVerbose) { Write-Host " copy: $SourceFile" }
- Copy-Item "$VHDLSourceLibraryDir\$VHDLSrcLibrary\$SourceFile.vhdl" "$SourceFile.vhd"
-
- $GHDLParameters = @("-a", "-C", "--std=93", "-P..\std", "--work=$VHDLDestLibrary", "$SourceFile.vhd")
- if ($Script_EnableVerbose) { Write-Host (" ghdl analyse (" + ($GHDLParameters -join " ") + ")") }
- & $GHDLExecutable $GHDLParameters
- }
-
- $VHDLSrcLibrary = "mentor"
- foreach ($SourceFile in $SourceFiles[$VHDLSrcLibrary])
- { Write-Host " file: v93\$SourceFile.v93"
- if ($Script_EnableVerbose) { Write-Host " copy: $SourceFile" }
- Copy-Item "$VHDLSourceLibraryDir\$VHDLSrcLibrary\$SourceFile.vhdl" "$SourceFile.vhd"
-
- $GHDLParameters = @("-a", "-C", "--std=93", "-P..\std", "--work=$VHDLDestLibrary", "$SourceFile.vhd")
- if ($Script_EnableVerbose) { Write-Host (" ghdl analyse (" + ($GHDLParameters -join " ") + ")") }
- & $GHDLExecutable $GHDLParameters
- }
- }
-
-# ==============================================================================
-# v08
-# ==============================================================================
- # create 'v08' directory if it does not exist
- $LocalDirName = "v08"
- $LocalDir = $VHDLDestLibraryDir + "\" + $LocalDirName
- if (Test-Path -Path $LocalDir)
- { Write-Host " Directory '$LocalDirName' already exists."}
- else
- { Write-Host " Creating directory '$LocalDirName'."
- [void](New-Item -ItemType directory -Path $LocalDir -ErrorAction SilentlyContinue)
- }
-
- Write-Host " compiling into $LocalDirName"
-
- # ----------------------------------------------------------------------
- # v08\std
- # ----------------------------------------------------------------------
- if ($Script_ExitCode -eq 0)
- { $VHDLDestLibrary = "std"
-
- # create 'std' directory if it does not exist
- $LocalDir2Name = $VHDLDestLibrary
- $LocalDir2 = $LocalDir + "\" + $LocalDir2Name
-
- Write-Host " compiling library $VHDLDestLibrary" -ForegroundColor DarkCyan
- if (Test-Path -Path $LocalDir2)
- { if ($Script_EnableVerbose) { Write-Host " Directory '$LocalDir2Name' already exists." } }
- else
- { Write-Host " Creating directory '$LocalDir2Name'."
- [void](New-Item -ItemType directory -Path $LocalDir2 -ErrorAction SilentlyContinue)
- }
-
- # change working directory to LocalDir2
- Write-Host " cd $LocalDir2"
- Set-Location $LocalDir2
-
- $VHDLSrcLibrary = "std"
- $VHDLSrcLibraryFiles = "std08"
- foreach ($SourceFile in $SourceFiles[$VHDLSrcLibraryFiles])
- { Write-Host " file: v08\$SourceFile.v08"
- if ($Script_EnableVerbose) { Write-Host " ghdlfilter (-v08)" }
- Get-Content "$VHDLSourceLibraryDir\$VHDLSrcLibrary\$SourceFile.vhdl" -Encoding Ascii -Raw `
- | & $GHDLFilterExecutable @('-v08') `
- | Out-File "$SourceFile.v08" -Encoding Ascii
-
- $GHDLParameters = @("-a", "-C", "--std=08", "--bootstrap", "--work=$VHDLDestLibrary", "$SourceFile.v08")
- if ($Script_EnableVerbose) { Write-Host (" ghdl analyse (" + ($GHDLParameters -join " ") + ")") }
- & $GHDLExecutable $GHDLParameters
- }
- }
-
- # ----------------------------------------------------------------------
- # v08\ieee
- # ----------------------------------------------------------------------
- if ($Script_ExitCode -eq 0)
- { $VHDLDestLibrary = "ieee"
-
- # create 'ieee' directory if it does not exist
- $LocalDir2Name = $VHDLDestLibrary
- $LocalDir2 = $LocalDir + "\" + $LocalDir2Name
-
- Write-Host " compiling library $VHDLDestLibrary" -ForegroundColor DarkCyan
- if (Test-Path -Path $LocalDir2)
- { if ($Script_EnableVerbose) { Write-Host " Directory '$LocalDir2Name' already exists." } }
- else
- { Write-Host " Creating directory '$LocalDir2Name'."
- [void](New-Item -ItemType directory -Path $LocalDir2 -ErrorAction SilentlyContinue)
- }
-
- # change working directory to LocalDir2
- Write-Host " cd $LocalDir2"
- Set-Location $LocalDir2
-
- $VHDLSrcLibrary = "ieee2008"
- foreach ($SourceFile in $SourceFiles[$VHDLSrcLibrary])
- { Write-Host " file: v08\$SourceFile.v08"
- if ($Script_EnableVerbose) { Write-Host " ghdlfilter (-v08)" }
- Get-Content "$VHDLSourceLibraryDir\$VHDLSrcLibrary\$SourceFile.vhdl" -Encoding Ascii -Raw `
- | & $GHDLFilterExecutable @('-v08') `
- | Out-File "$SourceFile.v08" -Encoding Ascii
-
- $GHDLParameters = @("-a", "-C", "--std=08", "-P..\std", "--work=$VHDLDestLibrary", "$SourceFile.v08")
- if ($Script_EnableVerbose) { Write-Host (" ghdl analyse (" + ($GHDLParameters -join " ") + ")") }
- & $GHDLExecutable $GHDLParameters
- }
-
- $VHDLSrcLibrary = "vital2000"
- foreach ($SourceFile in $SourceFiles[$VHDLSrcLibrary])
- { Write-Host " file: v08\$SourceFile.vhd"
- if ($Script_EnableVerbose) { Write-Host " copy: $SourceFile" }
- Copy-Item "$VHDLSourceLibraryDir\$VHDLSrcLibrary\$SourceFile.vhdl" "$SourceFile.vhd"
-
- $GHDLParameters = @("-a", "-C", "-frelaxed-rules", "--std=08", "-P..\std", "--work=$VHDLDestLibrary", "$SourceFile.vhd")
- if ($Script_EnableVerbose) { Write-Host (" ghdl analyse (" + ($GHDLParameters -join " ") + ")") }
- & $GHDLExecutable $GHDLParameters
- }
- }
-# ==============================================================================
-# vXX
-# ==============================================================================
- } # Compile
-else
- { Write-Host "ERROR: missing argument(s)" -ForegroundColor Red
- Write-Host
- Write-Host "Usage:"
- Write-Host " complib.ps1 [-Verbose] [-Debug] (-Help|-Compile|-Clean)" -ForegroundColor Gray
- Write-Host
- } # Unknown
-
-# restore working directory if changed
-Set-Location $Script_WorkingDir
-
-# return exit status
-exit $Script_ExitCode
\ No newline at end of file diff --git a/dist/mcode/windows/shared.psm1 b/dist/mcode/windows/shared.psm1 index 13ec46ada..5e00b74cf 100644 --- a/dist/mcode/windows/shared.psm1 +++ b/dist/mcode/windows/shared.psm1 @@ -3,10 +3,10 @@ # kate: tab-width 2; replace-tabs off; indent-width 2; # # ============================================================================== -# PowerShell Module: The module provides common CmdLets for ... -# # Authors: Patrick Lehmann # +# PowerShell Module: The module provides common CmdLets for ... +# # Description: # ------------------------------------ # This PowerShell module provides CommandLets (CmdLets) to ... @@ -29,6 +29,129 @@ # Software Foundation, 59 Temple Place - Suite 330, Boston, MA # 02111-1307, USA. # ============================================================================== + +[CmdletBinding()] +param( + [Parameter(Mandatory=$true)][string]$WorkingDir +) + +$Module_WorkingDir = $WorkingDir + +function Exit-CompileScript +{ <# + .SYNOPSIS + Undocumented + + .DESCRIPTION + Undocumented + + .PARAMETER ExitCode + ExitCode of this script run + #> + [CmdletBinding()] + param( + [int]$ExitCode = 0 + ) + + cd $Module_WorkingDir + + # unload modules + Remove-Module shared + + exit $ExitCode +} + +function New-LibraryDirectory +{ <# + .SYNOPSIS + Undocumented + + .DESCRIPTION + Undocumented + + .PARAMETER Directory + Undocumented + #> + [CmdletBinding()] + param( + [Parameter(Mandatory=$true)][string]$Directory #, + # [Parameter(Mandatory=$true)][bool]$EnableVerbose + ) + $EnableVerbose = $false + if (Test-Path -Path $Directory) + { $EnableVerbose -and (Write-Host " Directory '$Directory' already exists." ) | Out-Null } + else + { Write-Host " Creating directory '$Directory'." + New-Item -ItemType directory -Path $Directory -ErrorAction SilentlyContinue | Out-Null + } +} + +function Format-VHDLSourceFile +{ <# + .SYNOPSIS + Undocumented + + .DESCRIPTION + Undocumented + + .PARAMETER Version + Undocumented + .PARAMETER InputObject + A object stream is required as an input. + #> + [CmdletBinding()] + param( + [Parameter(Mandatory=$true)][string]$Version, + [Parameter(ValueFromPipeline=$true)]$InputObject + ) + + begin + { $State = 1 + $Version = switch ($Version) + { "87" { 87 } + "93" { 93 } + "02" { 2 } + "08" { 8 } + } + } + + process + { if ($InputObject -is [String]) + { $Line = $InputObject.ToString() + if ($Line.StartsWith("--START-V")) + { $State = switch ($Line.Substring(9, 2)) + { "87" { 87 } + "93" { 93 } + "02" { 2 } + "08" { 8 } + } + } + elseif ($Line.StartsWith("--START-!V")) + { if ($Line.Substring(10, 2) -eq $Version) + { $State = 2 } + } + elseif ($Line.StartsWith("--END-V") -or $Line.StartsWith("--END-!V")) + { $State = 1 } + else + { if ($State -eq 1) + { if ($Line.EndsWith("--V$Version")) + { Write-Output $Line } + elseif (-not (($Line -like "*--V??") -or ($Line.EndsWith("--!V$Version")))) + { Write-Output $Line } + } + elseif ($State -eq $Version) + { Write-Output $Line } + } + } + else + { Write-Host "Unknown pipeline object type." -ForegroundColor Red } + } + + end + { + } +} + function Restore-NativeCommandStream { <# .SYNOPSIS @@ -38,9 +161,10 @@ function Restore-NativeCommandStream .DESCRIPTION This CmdLet collects multiple ErrorRecord objects and emits one String object per line. - .PARAMETER InputObject A object stream is required as an input. + .PARAMETER Indent + Indentation string. #> [CmdletBinding()] param( @@ -52,9 +176,7 @@ function Restore-NativeCommandStream { $LineRemainer = "" } process - { if (-not $InputObject) - { Write-Host "Empty pipeline!" } - elseif ($InputObject -is [System.Management.Automation.ErrorRecord]) + { if ($InputObject -is [System.Management.Automation.ErrorRecord]) { if ($InputObject.FullyQualifiedErrorId -eq "NativeCommandError") { Write-Output $InputObject.ToString() } elseif ($InputObject.FullyQualifiedErrorId -eq "NativeCommandErrorMessage") @@ -78,6 +200,60 @@ function Restore-NativeCommandStream } } +function Write-ColoredGCCLine +{ <# + .SYNOPSIS + This CmdLet colors GHDL output lines. + + .DESCRIPTION + This CmdLet colors GHDL output lines. Warnings are prefixed with 'WARNING: ' + in yellow and errors are prefixed with 'ERROR: ' in red. + + .PARAMETER InputObject + A object stream is required as an input. + .PARAMETER SuppressWarnings + Skip warning messages. (Show errors only.) + .PARAMETER Indent + Indentation string. + #> + [CmdletBinding()] + param( + [Parameter(ValueFromPipeline=$true)] + $InputObject, + + [Parameter(Position=1)] + [switch]$SuppressWarnings = $false, + [Parameter(Position=2)] + [string]$Indent = "" + ) + + begin + { $ErrorRecordFound = $false } + + process + { if ($InputObject -is [String]) + { if ($InputObject -match ":\d+:\d+:\swarning:\s") + { if (-not $SuppressWarnings) + { Write-Host "${Indent}WARNING: " -NoNewline -ForegroundColor Yellow + Write-Host $InputObject + } + } + elseif ($InputObject -match ":\d+:\d+:\s") + { $ErrorRecordFound = $true + Write-Host "${Indent}ERROR: " -NoNewline -ForegroundColor Red + Write-Host $InputObject + } + else + { Write-Host "${Indent}$InputObject" } + } + else + { Write-Host "Unsupported object in pipeline stream" } + } + + end + { $ErrorRecordFound } +} + function Write-ColoredGHDLLine { <# .SYNOPSIS @@ -99,29 +275,29 @@ function Write-ColoredGHDLLine $InputObject, [Parameter(Position=1)] - [switch]$SuppressWarnings = $false + [switch]$SuppressWarnings = $false, + [Parameter(Position=2)] + [string]$Indent = "" ) begin { $ErrorRecordFound = $false } process - { if (-not $InputObject) - { Write-Host "Empty pipeline!" } - elseif ($InputObject -is [String]) - { if ($InputObject -match ":\d+:\d+:\swarning:") + { if ($InputObject -is [String]) + { if ($InputObject -match ":\d+:\d+:warning:\s") { if (-not $SuppressWarnings) - { Write-Host "WARNING: " -NoNewline -ForegroundColor Yellow + { Write-Host "${Indent}WARNING: " -NoNewline -ForegroundColor Yellow Write-Host $InputObject } } elseif ($InputObject -match ":\d+:\d+:\s") { $ErrorRecordFound = $true - Write-Host "ERROR: " -NoNewline -ForegroundColor Red + Write-Host "${Indent}ERROR: " -NoNewline -ForegroundColor Red Write-Host $InputObject } else - { Write-Host $InputObject } + { Write-Host "${Indent}$InputObject" } } else { Write-Host "Unsupported object in pipeline stream" } @@ -131,6 +307,43 @@ function Write-ColoredGHDLLine { $ErrorRecordFound } } +function Write-HostExtended +{ <# + .SYNOPSIS + This CmdLet colors GHDL output lines. + + .DESCRIPTION + This CmdLet colors GHDL output lines. Warnings are prefixed with 'WARNING: ' + in yellow and errors are prefixed with 'ERROR: ' in red. + + .PARAMETER InputObject + A object stream is required as an input. + .PARAMETER Indent + Indentation string. + #> + [CmdletBinding()] + param( + [Parameter(ValueFromPipeline=$true)] + $InputObject, + + [Parameter(Position=1)] + [string]$Indent = "" + ) + + begin + { } + + process + { if ($InputObject -is [String]) + { Write-Host "${Indent}$InputObject" } + else + { Write-Host "Unsupported object in pipeline stream" } + } + + end + { } +} + function Test-GitRepository { <# .SYNOPSIS @@ -142,6 +355,14 @@ function Test-GitRepository } # export functions +Export-ModuleMember -Function 'Exit-CompileScript' + +Export-ModuleMember -Function 'New-LibraryDirectory' +Export-ModuleMember -Function 'Format-VHDLSourceFile' + Export-ModuleMember -Function 'Restore-NativeCommandStream' +Export-ModuleMember -Function 'Write-ColoredGCCLine' Export-ModuleMember -Function 'Write-ColoredGHDLLine' +Export-ModuleMember -Function 'Write-HostExtended' + Export-ModuleMember -Function 'Test-GitRepository' diff --git a/dist/mcode/windows/targets.psm1 b/dist/mcode/windows/targets.psm1 index db6f970a8..502305a90 100644 --- a/dist/mcode/windows/targets.psm1 +++ b/dist/mcode/windows/targets.psm1 @@ -3,10 +3,10 @@ # kate: tab-width 2; replace-tabs off; indent-width 2; # # ============================================================================== -# PowerShell Module: The module provides build targets for GHDL. -# # Authors: Patrick Lehmann # +# PowerShell Module: The module provides build targets for GHDL. +# # Description: # ------------------------------------ # This PowerShell module provides build targets for GHDL. @@ -271,7 +271,7 @@ function Invoke-CompileCFiles Write-Host (" compiling: " + $SourceFile.File) Write-Debug " call: $InvokeExpr" - $ErrorRecordFound = Invoke-Expression $InvokeExpr | Restore-NativeCommandStream | Write-ColoredGHDLLine + $ErrorRecordFound = Invoke-Expression $InvokeExpr | Restore-NativeCommandStream | Write-ColoredGCCLine -Indent " " if ($LastExitCode -ne 0) { return $true } } @@ -342,7 +342,7 @@ function Invoke-CompileGHDLAdaFiles Write-Host " compiling with GNAT" Write-Debug " call: $InvokeExpr" - $ErrorRecordFound = Invoke-Expression $InvokeExpr | Restore-NativeCommandStream | Write-ColoredGHDLLine + $ErrorRecordFound = Invoke-Expression $InvokeExpr | Restore-NativeCommandStream | Write-ColoredGCCLine -Indent " " return ($LastExitCode -ne 0) } # Invoke-CompileGHDLAdaFiles @@ -388,7 +388,7 @@ function Invoke-CompileFilterAdaFiles Write-Host " compiling with GNAT" Write-Debug " call: $InvokeExpr" - $ErrorRecordFound = Invoke-Expression $InvokeExpr | Restore-NativeCommandStream | Write-ColoredGHDLLine + $ErrorRecordFound = Invoke-Expression $InvokeExpr | Restore-NativeCommandStream | Write-ColoredGCCLine -Indent " " return ($LastExitCode -ne 0) } # Invoke-CompileFilterAdaFiles @@ -445,9 +445,9 @@ function Test-GHDLVersion Write-Host " executing '$GHDLExecutableName'" Write-Host " call: $InvokeExpr" - Write-Host "----------------------------------------" - Invoke-Expression $InvokeExpr | Restore-NativeCommandStream - Write-Host "----------------------------------------" + Write-Host " ----------------------------------------" + Invoke-Expression $InvokeExpr | Restore-NativeCommandStream | Write-HostExtended " " + Write-Host " ----------------------------------------" return ($LastExitCode -ne 0) } # Test-GHDLVersion |