aboutsummaryrefslogtreecommitdiffstats
path: root/dist
diff options
context:
space:
mode:
authorPatrick Lehmann <Patrick.Lehmann@tu-dresden.de>2016-08-08 01:46:20 +0200
committerPatrick Lehmann <Patrick.Lehmann@tu-dresden.de>2016-08-08 01:46:20 +0200
commit275123c3bca2e1058c31ec6d2dbb175d6b3aae40 (patch)
tree1865bba789d4b2b46983e03959bad82462282216 /dist
parent3c83e47c98bc9e58ca2c231a5b24c3639018c9cc (diff)
downloadghdl-275123c3bca2e1058c31ec6d2dbb175d6b3aae40.tar.gz
ghdl-275123c3bca2e1058c31ec6d2dbb175d6b3aae40.tar.bz2
ghdl-275123c3bca2e1058c31ec6d2dbb175d6b3aae40.zip
Reworked compile scripts for Windows.
Diffstat (limited to 'dist')
-rw-r--r--dist/mcode/winbuild.ps1705
-rw-r--r--dist/mcode/windows/compile-ghdl.ps1297
-rw-r--r--dist/mcode/windows/compile-libraries.ps1253
-rw-r--r--dist/mcode/windows/shared.psm13
-rw-r--r--dist/mcode/windows/targets.psm1190
5 files changed, 742 insertions, 706 deletions
diff --git a/dist/mcode/winbuild.ps1 b/dist/mcode/winbuild.ps1
index 5d154c28f..6f6a49375 100644
--- a/dist/mcode/winbuild.ps1
+++ b/dist/mcode/winbuild.ps1
@@ -35,33 +35,35 @@
# Software Foundation, 59 Temple Place - Suite 330, Boston, MA
# 02111-1307, USA.
# ==============================================================================
-<#
- .SYNOPSIS
- GHDL for Windows - GHDL compile script
- Use 'winbuild.ps1 -Help' to see the integrated help page
-
- .EXAMPLE
- #
- # Normal flow
- PS> .\winbuild.ps1 -Clean
- PS> .\winbuild.ps1 -Compile
- PS> .\winbuild.ps1 -Install -InstallPath "C:\Tools\GHDL"
-
- # Create a zip-file
- PS>.\winbuild.ps1 -CreatePackage -Zip
-
- # combine all commands in a single call
- PS>.\winbuild.ps1 -Clean -Compile -Install -InstallPath "C:\Tools\GHDL"
-#>
-# define script parameters
+# .SYNOPSIS
+# GHDL for Windows - GHDL compile script
+# Use 'winbuild.ps1 -Help' to see the integrated help page
+#
+# .EXAMPLE
+# #
+# # Normal flow
+# PS> .\winbuild.ps1 -Clean
+# PS> .\winbuild.ps1 -Compile
+# PS> .\winbuild.ps1 -Install "C:\Tools\GHDL"
+#
+# # Create a Zip-file
+# PS>.\winbuild.ps1 -CreatePackage -Zip
+#
+# # combine all commands in a single call
+# PS>.\winbuild.ps1 -Clean -Compile -Install "C:\Tools\GHDL"
+#
[CmdletBinding()]
Param(
- # compile GHDL
- [switch]$Compile,
-
# clean up all files and directories
[switch]$Clean,
+ [switch]$Clean_GHDL,
+ [switch]$Clean_Libraries,
+
+ # compile GHDL
+ [switch]$Compile,
+ [switch]$Compile_GHDL,
+ [switch]$Compile_Libraries,
# create an installer package
[switch]$CreatePackage,
@@ -69,12 +71,9 @@ Param(
[switch]$Zip,
# install all files into a directory (xcopy deployment)
- [switch]$Install,
- # Installation directory
- [string]$InstallPath,
- # update files
- [switch]$Update,
-
+ [string]$Install = "",
+ # update files
+ [switch]$Update,
# uninstall all files from a directory
[switch]$Uninstall,
@@ -83,34 +82,85 @@ Param(
)
# configure script here
-$Script_RelPathToRoot = "..\.."
+$RelPathToRoot = "..\.."
# 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))
+$Script_ScriptDir = $PSScriptRoot
+$Script_WorkingDir = Get-Location
+$GHDLRootDir = Convert-Path (Resolve-Path ($PSScriptRoot + "\" + $RelPathToRoot))
+
+# set default values
+$EnableVerbose = $PSCmdlet.MyInvocation.BoundParameters["Verbose"].IsPresent
+$EnableDebug = $PSCmdlet.MyInvocation.BoundParameters["Debug"].IsPresent
+
+# Write-Host ("--> " + $Verbose + " value: " +$PSCmdlet.MyInvocation.BoundParameters["Verbose"] + " IsPresent: " + $PSCmdlet.MyInvocation.BoundParameters["Verbose"].IsPresent)
+# Write-Host ("--> " + $PSCommandPath + " " + $PSBoundParameters + " " + $PSCmdlet + " " + $PSDefaultParameterValues)
+
+# load modules from GHDL's 'libraries' directory
+Import-Module $PSScriptRoot\windows\shared.psm1 -Verbose:$false -ArgumentList "$Script_WorkingDir"
+Import-Module $PSScriptRoot\windows\targets.psm1 -Verbose:$false
+
+# Display help if no command was selected
+$Help = $Help -or (-not (
+ $All -or
+ $Clean -or $Clean_GHDL -or $Clean_Libraries -or $Clean_Package_Zip -or
+ $Compile -or $Compile_GHDL -or $Compile_Libraries -or
+ $CreatePackage -or
+ $Install -or $Update -or $Uninstall
+ ))
+
+Write-Host "================================================================================" -ForegroundColor Magenta
+Write-Host "GHDL for Windows - GHDL compile and bundle script" -ForegroundColor Magenta
+Write-Host "================================================================================" -ForegroundColor Magenta
+
+if ($Help)
+{ Get-Help $MYINVOCATION.InvocationName -Detailed
+ Exit-CompileScript
+}
+
+if ($All)
+{ $Clean = $true
+ $Compile = $true
+ $CreatePackage = $true
+}
+if ($Clean)
+{ $Clean_GHDL = $true
+ $Clean_Libraries = $true
+ $Clean_Package_Zip = $true
+}
+if ($Compile)
+{ $Compile_GHDL = $true
+ $Compile_Libraries = $true
+}
# configure some variables: paths, executables, directory names, ...
-$WindowsDirName = "dist\mcode\windows"
-$BuildDirName = "dist\mcode\build"
-$CompiledLibraryDirName = "dist\mcode\lib"
-$ZipPackageDirName = "dist\mcode\zip"
-$ZipPackageFileName = "dist\mcode\ghdl-install.zip"
-$VendorLibraryDirName = "libraries\vendors"
+$GHDLVersion = Get-GHDLVersion $GHDLRootDir
+$Backend = "mcode"
+$WindowsDirName = "dist\$Backend\windows"
+$BuildDirectoryName = "build\$Backend"
+$VHDLLibrariesDirectoryName = "lib"
+$PackageDirectoryName = "build\zip\$Backend"
+$ZipPackageFileName = "ghdl-$Backend-$GHDLVersion.zip"
# construct directories
-$GHDLWindowsDir = $GHDLRootDir_AbsPath + "\" + $WindowsDirName
-$GHDLBuildDir = $GHDLRootDir_AbsPath + "\" + $BuildDirName
-$GHDLCompiledLibraryDir = $GHDLRootDir_AbsPath + "\" + $CompiledLibraryDirName
-$GHDLZipPackageDir = $GHDLRootDir_AbsPath + "\" + $ZipPackageDirName
-$GHDLZipPackageFile = $GHDLRootDir_AbsPath + "\" + $ZipPackageFileName
-$GHDLVendorLibraryDirName = $GHDLRootDir_AbsPath + "\" + $VendorLibraryDirName
+$GHDLWindowsDir = "$GHDLRootDir\$WindowsDirName"
+$GHDLBuildDir = "$GHDLRootDir\$BuildDirectoryName"
+$GHDLVendorLibraryDir = "$GHDLRootDir\libraries\vendors"
+$GHDLCompiledLibraryDir = "$GHDLRootDir\$BuildDirectoryName\$VHDLLibrariesDirectoryName"
+$GHDLZipPackageDir = "$GHDLRootDir\$PackageDirectoryName"
+$GHDLZipPackageFile = "$GHDLZipPackageDir\$ZipPackageFileName"
-# set default values
-$Script_ExitCode = 0
-if ($PSCmdlet.MyInvocation.BoundParameters["Debug"].IsPresent) { $Script_EnableDebug = $true }
-if ($PSCmdlet.MyInvocation.BoundParameters["Verbose"].IsPresent) { $Script_EnableVerbose = $true }
+function Exit-Script
+{ [CmdletBinding()]
+ param(
+ [int]$ExitCode = 0
+ )
+ cd $Script_WorkingDir
+ # unload modules
+ Remove-Module shared
+ Remove-Module targets
+ exit $ExitCode
+}
# Author: Ed Wilson
# Source: https://blogs.technet.com/b/heyscriptingguy/archive/2011/07/23/use-powershell-to-modify-your-environmental-path.aspx
@@ -158,303 +208,286 @@ function Remove-Path
}
-if ($Help)
- { Write-Host "Usage:"
- Write-Host " compile.ps1 [-Verbose] [-Debug] (-Help|-Compile|-Clean|-CreatePackage|-Install|-Uninstall)" -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"
- Write-Host " -CreatePackage create an installer package"
- Write-Host " -Install install all files into a directory (xcopy deployment)"
- Write-Host " -Uninstall uninstall all files from a directory"
- Write-Host
- Write-Host "Options for -CreatePackage:"
- Write-Host " -Zip creates a zip-file for xcopy deployment"
- Write-Host
- Write-Host "Options for -Install:"
- Write-Host " -InstallPath <dir> directory into which GHDL will be installed"
- Write-Host
- Write-Host "Examples:"
- Write-Host " # Normal flow"
- Write-Host " PS>.\winbuild.ps1 -Clean" -ForegroundColor Gray
- Write-Host " PS>.\winbuild.ps1 -Compile" -ForegroundColor Gray
- Write-Host " PS>.\winbuild.ps1 -Install -InstallPath `"C:\Tools\GHDL`"" -ForegroundColor Gray
- Write-Host
- Write-Host " # Create a zip-file"
- Write-Host " PS>.\winbuild.ps1 -CreatePackage -Zip" -ForegroundColor Gray
- Write-Host
- Write-Host " # combine all commands in a single call"
- Write-Host " PS>.\winbuild.ps1 -Clean -Compile -Install -InstallPath `"C:\Tools\GHDL`"" -ForegroundColor Gray
- Write-Host
- }
+if ($Update)
+{ Write-Host "Updating GHDL $GHDLVersion for Windows..."
+
+ Write-Host "[ERROR]: This command is not implemented." -ForegroundColor Red
+ Exit-Script -1
+} # Update
elseif ($Uninstall)
- { Write-Host "Uninstalling GHDL $GHDLVersion for Windows"
+{ Write-Host "Uninstalling GHDL $GHDLVersion for Windows..."
- Write-Host "This command is not implemented" -ForegroundColor Red
- $Script_ExitCode = 1
+ Write-Host "[ERROR]: This command is not implemented." -ForegroundColor Red
+ Exit-Script -1
+} # Uninstall
+else
+{ # ============================================================================
+ # Clean tasks
+ # ============================================================================
+ if ($Clean)
+ { Write-Host "Removing all created files and directories..." }
- if ($Script_ExitCode -eq 0)
- { Write-Host
- Write-Host "Uninstall " -NoNewline
- Write-Host "[SUCCESSFUL]" -ForegroundColor Green
- Write-Host
+ if ($Clean_GHDL)
+ { $Script_Path = $GHDLWindowsDir + "\compile-ghdl.ps1"
+ $Script_Parameters = @(
+ '-Clean',
+ '-Hosted',
+ '-Verbose:$EnableVerbose',
+ '-Debug:$EnableDebug'
+ )
+
+ Write-Host "Running compile-ghdl.ps1 -Clean ..." -ForegroundColor DarkCyan
+ Write-Host "--------------------------------------------------------------------------------" -ForegroundColor DarkCyan
+ $InvokeExpr = "$Script_Path " + ($Script_Parameters -join " ")
+ Invoke-Expression $InvokeExpr
+ if ($LastExitCode -ne 0)
+ { Write-Host "--------------------------------------------------------------------------------" -ForegroundColor DarkCyan
+ Write-Host "[ERROR]: While executing '$InvokeExpr'." -ForegroundColor Red
+ Exit-Script -1
+ }
+ else
+ { Write-Host "--------------------------------------------------------------------------------" -ForegroundColor DarkCyan
+ Write-Host "Completed compile-ghdl.ps1 " -NoNewline
+ Write-Host "[SUCCESSFUL]" -ForegroundColor Green
+ Write-Host
+ }
+ } # Clean_GHDL
+ if ($Clean_Libraries)
+ { $Script_Path = $GHDLWindowsDir + "\compile-libraries.ps1"
+ $Script_Parameters = @(
+ '-Clean',
+ '-Hosted',
+ '-Verbose:$EnableVerbose',
+ '-Debug:$EnableDebug'
+ )
+
+ Write-Host "Running compile-libraries.ps1 -Clean ..." -ForegroundColor DarkCyan
+ Write-Host "--------------------------------------------------------------------------------" -ForegroundColor DarkCyan
+ $InvokeExpr = "$Script_Path " + ($Script_Parameters -join " ")
+ Invoke-Expression $InvokeExpr
+ if ($LastExitCode -ne 0)
+ { Write-Host "--------------------------------------------------------------------------------" -ForegroundColor DarkCyan
+ Write-Host "[ERROR]: While executing '$InvokeExpr'." -ForegroundColor Red
+ Exit-Script -1
+ }
+ else
+ { Write-Host "--------------------------------------------------------------------------------" -ForegroundColor DarkCyan
+ Write-Host "Completed compile-libraries.ps1 " -NoNewline
+ Write-Host "[SUCCESSFUL]" -ForegroundColor Green
+ Write-Host
+ }
+ } # Clean_Libraries
+ if ($Clean_Package_Zip)
+ { Write-Host "Removing installer packages and temporary directories..."
+ if (Test-Path -Path $GHDLZipPackageDir)
+ { Write-Host " rmdir $GHDLZipPackageDir"
+ Remove-Item $GHDLZipPackageDir -Force -Recurse -ErrorAction SilentlyContinue
+ if ($? -eq $false)
+ { Write-Host "[ERROR]: While deleting '$GHDLZipPackageDir'." -ForegroundColor Red
+ Exit-Script -1
}
- } # Uninstall
-else
- { $Script_ExitCode = -1
+ }
- if ($Clean)
- { $Script_ExitCode = 0
- Write-Host "Removing all created files and directories..."
+ if (Test-Path -Path $GHDLZipPackageFile)
+ { Write-Host " rm $GHDLZipPackageFile"
+ Remove-Item $GHDLZipPackageFile -Force -Recurse -ErrorAction SilentlyContinue
+ if ($? -eq $false)
+ { Write-Host "[ERROR]: While deleting '$GHDLZipPackageFile'." -ForegroundColor Red
+ Exit-Script -1
+ }
+ }
- if ($Script_ExitCode -eq 0)
- { $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-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-ghdl.ps1 $($Script_Paramters -join " ")'" -ForegroundColor Red
- }
- else
- { Write-Host "--------------------------------------------------------------------------------"
- Write-Host "Completed " -NoNewline
- Write-Host "[SUCCESSFUL]" -ForegroundColor Green
- Write-Host
- }
- }
-
- if ($Script_ExitCode -eq 0)
- { $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 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 'compile-libraries.ps1 $($Script_Paramters -join " ")'" -ForegroundColor Red
- }
- else
- { Write-Host "--------------------------------------------------------------------------------"
- Write-Host "Completed " -NoNewline
- Write-Host "[SUCCESSFUL]" -ForegroundColor Green
- Write-Host
- }
- }
-
- if ($Script_ExitCode -eq 0)
- { Write-Host "Removing installer packages and temporary directories..."
- Write-Host " $GHDLZipPackageDir"
- Remove-Item $GHDLZipPackageDir -Force -Recurse -ErrorAction SilentlyContinue
-
- Write-Host " $GHDLZipPackageFile"
- Remove-Item $GHDLZipPackageFile -Force -Recurse -ErrorAction SilentlyContinue
- }
+ Write-Host
+ Write-Host "Clean " -NoNewline
+ Write-Host "[SUCCESSFUL]" -ForegroundColor Green
+ Write-Host
+ } # Clean_Package_Zip
+
+ # ============================================================================
+ # Compile tasks
+ # ============================================================================
+ if ($Compile_GHDL)
+ { Write-Host "Compiling GHDL $GHDLVersion for Windows..."
+
+ $Script_Path = $GHDLWindowsDir + "\compile-ghdl.ps1"
+ $Script_Parameters = @()
+ $Script_Parameters = @(
+ '-All',
+ '-Verbose:$EnableVerbose',
+ '-Debug:$EnableDebug'
+ )
- if ($Script_ExitCode -eq 0)
- { Write-Host
- Write-Host "Clean " -NoNewline
- Write-Host "[SUCCESSFUL]" -ForegroundColor Green
- Write-Host
- }
- } # Clean
+ Write-Host "Running compile-ghdl.ps1 -All ..." -ForegroundColor DarkCyan
+ Write-Host "--------------------------------------------------------------------------------" -ForegroundColor DarkCyan
+ $InvokeExpr = "$Script_Path " + ($Script_Parameters -join " ")
+ Invoke-Expression $InvokeExpr
+ if ($LastExitCode -ne 0)
+ { Write-Host "--------------------------------------------------------------------------------" -ForegroundColor DarkCyan
+ Write-Host "[ERROR]: While executing '$InvokeExpr'." -ForegroundColor Red
+ Exit-Script -1
+ }
+ else
+ { Write-Host "--------------------------------------------------------------------------------" -ForegroundColor DarkCyan
+ Write-Host "Completed compile-ghdl.ps1 " -NoNewline
+ Write-Host "[SUCCESSFUL]" -ForegroundColor Green
+ Write-Host
+ }
+ } # Compile_GHDL
+ if ($Compile_Libraries)
+ { Write-Host "Compiling GHDL's libraries ..."
+
+ $Script_Path = $GHDLWindowsDir + "\compile-libraries.ps1"
+ $Script_Parameters = @()
+ $Script_Parameters = @(
+ '-Compile',
+ '-Verbose:$EnableVerbose',
+ '-Debug:$EnableDebug'
+ )
- if ($Compile)
- { $Script_ExitCode = 0
- Write-Host "Compiling GHDL $GHDLVersion for Windows"
-
- if ($Script_ExitCode -eq 0)
- { $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-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-ghdl.ps1 $($Script_Paramters -join " ")'" -ForegroundColor Red
- }
- else
- { Write-Host "--------------------------------------------------------------------------------"
- Write-Host "Completed " -NoNewline
- Write-Host "[SUCCESSFUL]" -ForegroundColor Green
- Write-Host
- }
- }
-
- if ($Script_ExitCode -eq 0)
- { $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' }
-
- $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 'compile-libraries.ps1 $($Script_Paramters -join " ")'" -ForegroundColor Red
- }
- else
- { Write-Host "--------------------------------------------------------------------------------"
- Write-Host "Completed " -NoNewline
- Write-Host "[SUCCESSFUL]" -ForegroundColor Green
- Write-Host
- }
- }
-
- if ($Script_ExitCode -eq 0)
- { Write-Host
- Write-Host "Compile " -NoNewline
- Write-Host "[SUCCESSFUL]" -ForegroundColor Green
- Write-Host
- }
- } # Compile
+ $env:GHDL = "$GHDLBuildDir\ghdl.exe"
+ Write-Host "env:GHDL --" + $env:GHDL + "--"
+
+ Write-Host "Running compile-libraries.ps1 -Compile ..." -ForegroundColor DarkCyan
+ Write-Host "--------------------------------------------------------------------------------" -ForegroundColor DarkCyan
+ $InvokeExpr = "$Script_Path " + ($Script_Parameters -join " ")
+ Invoke-Expression $InvokeExpr
+ if ($LastExitCode -ne 0)
+ { Write-Host "--------------------------------------------------------------------------------" -ForegroundColor DarkCyan
+ Write-Host "[ERROR]: While executing '$InvokeExpr'." -ForegroundColor Red
+ Exit-Script -1
+ }
+ else
+ { Write-Host "--------------------------------------------------------------------------------" -ForegroundColor DarkCyan
+ Write-Host "Completed compile-libraries.ps1 " -NoNewline
+ Write-Host "[SUCCESSFUL]" -ForegroundColor Green
+ Write-Host
+ }
+ } # Compile_GHDL
+
+ # ============================================================================
+ # Package tasks
+ # ============================================================================
+ if ($CreatePackage)
+ { Write-Host "Creating an installation package for GHDL $GHDLVersion for Windows"
+
+ if ($Zip)
+ { Write-Host "Loading PowerShell Community Extensions (PSCX) " -NoNewline
+ if ((Get-Module -ListAvailable | Where {$_.Name -like "PSCX"}).Version -ge "3.1.0.0")
+ { Import-Module Pscx -Verbose:$false
+ Write-Host "[Done]" -ForegroundColor Green
+ }
+ else
+ { Write-Host "[FAILED]" -ForegroundColor RED
+ Exit-Script -1
+ }
- if ($CreatePackage)
- { $Script_ExitCode = 0
- Write-Host "Creating an installation package for GHDL $GHDLVersion for Windows"
-
- if ($Zip)
- { if ((Get-Module -ListAvailable | Where {$_.Name -like "PSCX"}).Version -ge "3.1.0.0")
- { Write-Host "Loading PowerShell Community Extensions (PSCX) " -NoNewline
- Import-Module Pscx
- Write-Host "[Done]" -ForegroundColor Green
- }
- else
- { $Script_ExitCode = 1
- Write-Host "[FAILED]" -ForegroundColor RED
- }
- }
-
- # create zip-file
- if (($Script_ExitCode -eq 0) -and $Zip)
- { Write-Host "Output format: zip-file"
-
- Write-Host " Removing old directory '$GHDLZipPackageDir'."
- Remove-Item $GHDLZipPackageDir -Force -Recurse -ErrorAction SilentlyContinue
-
- Write-Host " Creating directory '$GHDLZipPackageDir'."
- [void](New-Item -ItemType directory -Path "$GHDLZipPackageDir" -ErrorAction SilentlyContinue)
- [void](New-Item -ItemType directory -Path "$GHDLZipPackageDir\bin" -ErrorAction SilentlyContinue)
- [void](New-Item -ItemType directory -Path "$GHDLZipPackageDir\scripts" -ErrorAction SilentlyContinue)
-
- Copy-Item "$GHDLBuildDir\ghdl.exe" "$GHDLZipPackageDir\bin\ghdl.exe" -ErrorAction SilentlyContinue
- Copy-Item "$GHDLBuildDir\ghdlfilter.exe" "$GHDLZipPackageDir\bin\ghdlfilter.exe" -ErrorAction SilentlyContinue
-
- Copy-Item $GHDLCompiledLibraryDir -Recurse "$GHDLZipPackageDir" -ErrorAction SilentlyContinue
- Copy-Item $GHDLVendorLibraryDirName -Recurse "$GHDLZipPackageDir\scripts" -ErrorAction SilentlyContinue
-
- Write-Host " Compressing files into '$GHDLZipPackageFile'"
- $file = Get-ChildItem $GHDLZipPackageDir -Recurse | Write-Zip -IncludeEmptyDirectories -EntryPathRoot $GHDLZipPackageDir -OutputPath $GHDLZipPackageFile
- Write-Host " $([math]::round(($file.Length / 1MB), 3)) MiB written to disk"
- }
- else
- { $Script_ExitCode = 1
- Write-Host "No package format selected." -ForegroundColor Red
- Write-Host "Possible formats:"
- Write-Host " - zip-file (-Zip)"
- Write-Host
- }
-
- if ($Script_ExitCode -eq 0)
- { Write-Host
- Write-Host "Create Package " -NoNewline
- Write-Host "[SUCCESSFUL]" -ForegroundColor Green
- Write-Host
- }
- } # CreatePackage
+ Write-Host "Output format: zip-file"
+ Write-Host " Removing old directory '$GHDLZipPackageDir'."
+ if (Test-Path -Path $GHDLZipPackageDir)
+ { Remove-Item $GHDLZipPackageDir -Force -Recurse -ErrorAction SilentlyContinue
+ if ($? -eq $false)
+ { Write-Host "[ERROR]: While deleting '$GHDLZipPackageDir'." -ForegroundColor Red
+ Exit-Script -1
+ }
+ }
+ if (Test-Path -Path $GHDLZipPackageFile)
+ { Remove-Item $GHDLZipPackageFile -Force -Recurse -ErrorAction SilentlyContinue
+ if ($? -eq $false)
+ { Write-Host "[ERROR]: While deleting '$GHDLZipPackageFile'." -ForegroundColor Red
+ Exit-Script -1
+ }
+ }
+
+ Write-Host " Creating directory '$GHDLZipPackageDir' and sub-directories..."
+ New-Item -ItemType directory -Path "$GHDLZipPackageDir" -ErrorAction SilentlyContinue | Out-Null
+ New-Item -ItemType directory -Path "$GHDLZipPackageDir\bin" -ErrorAction SilentlyContinue | Out-Null
+ New-Item -ItemType directory -Path "$GHDLZipPackageDir\include" -ErrorAction SilentlyContinue | Out-Null
+ New-Item -ItemType directory -Path "$GHDLZipPackageDir\lib" -ErrorAction SilentlyContinue | Out-Null
- if ($Install)
- { $Script_ExitCode = 0
- Write-Host "Installing GHDL $GHDLVersion for Windows"
-
- if ($InstallPath -eq "")
- { $Script_ExitCode = 1
- Write-Host "Missing argument -InstallPath" -ForegroundColor Red
- }
- else
- { if (Test-Path -Path $InstallPath)
- { if ($Update)
- { Remove-Item -Path "$InstallPath\*" -Recurse -Force }
- else
- { Write-Host " Directory '$InstallPath' already exists." -ForegroundColor Red
- Write-Host
- $Script_ExitCode = 1
- }
- }
- elseif ($Update)
- { Write-Host " Directory '$InstallPath' does not exists." -ForegroundColor Red
- Write-Host
- $Script_ExitCode = 1
- }
- }
-
- if ($Script_ExitCode -eq 0)
- { Write-Host " Install directory: $InstallPath"
-
- Write-Host " Creating directory '$InstallPath'."
- [void](New-Item -ItemType directory -Path "$InstallPath" -ErrorAction SilentlyContinue)
- [void](New-Item -ItemType directory -Path "$InstallPath\bin" -ErrorAction SilentlyContinue)
- [void](New-Item -ItemType directory -Path "$InstallPath\scripts" -ErrorAction SilentlyContinue)
-
- Copy-Item "$GHDLBuildDir\ghdl.exe" "$InstallPath\bin\ghdl.exe" -ErrorAction SilentlyContinue
- Copy-Item "$GHDLBuildDir\ghdlfilter.exe" "$InstallPath\bin\ghdlfilter.exe" -ErrorAction SilentlyContinue
-
- Copy-Item $GHDLCompiledLibraryDir -Recurse "$InstallPath" -ErrorAction SilentlyContinue
- Copy-Item "$GHDLVendorLibraryDirName\*.*" -Recurse "$InstallPath\scripts" -ErrorAction SilentlyContinue
- }
-
- if ($Script_ExitCode -eq 0)
- { Write-Host " Registering installation directory in system PATH" -NoNewline
- Write-Host " [DISABLED]" -ForegroundColor Red
- #Add-Path "$InstallPath\bin"
- }
-
- if ($Script_ExitCode -eq 0)
- { Write-Host
- Write-Host "Install " -NoNewline
- Write-Host "[SUCCESSFUL]" -ForegroundColor Green
- Write-Host
- }
- } # Install
+ Write-Host " Gathering files..."
+ # executables
+ Copy-Item "$GHDLBuildDir\ghdl.exe" "$GHDLZipPackageDir\bin\ghdl.exe" -ErrorAction SilentlyContinue
+ # include files
+ Copy-Item "$GHDLRootDir\src\grt\vpi_user.h" "$GHDLZipPackageDir\include" -ErrorAction SilentlyContinue
+ # pre-compile scripts
+ Copy-Item $GHDLVendorLibraryDir -Recurse "$GHDLZipPackageDir\lib\vendors" -ErrorAction SilentlyContinue
+ # pre-compiled libraries
+ Copy-Item $GHDLCompiledLibraryDir -Recurse "$GHDLZipPackageDir" -ErrorAction SilentlyContinue
- if ($Script_ExitCode -eq -1)
- { Write-Host "ERROR: missing argument(s)" -ForegroundColor Red
- Write-Host
- Write-Host "Usage:"
- Write-Host " winbuild.ps1 [-Verbose] [-Debug] (-Help|-Compile|-Clean|-CreatePackage|-Install|-Uninstall)" -ForegroundColor Gray
- Write-Host
- } # Unknown
+ Write-Host " Compressing all files into '$GHDLZipPackageFile'..."
+ $file = Get-ChildItem $GHDLZipPackageDir -Recurse | Write-Zip -IncludeEmptyDirectories -EntryPathRoot $GHDLZipPackageDir -OutputPath $GHDLZipPackageFile
+ Write-Host " $([math]::round(($file.Length / 1MB), 3)) MiB written to disk"
+
+ Write-Host
+ Write-Host "Creating package " -NoNewline
+ Write-Host "[SUCCESSFUL]" -ForegroundColor Green
+ Write-Host
+ }
+ else
+ { Write-Host "[ERROR]: No package format selected." -ForegroundColor Red
+ Write-Host "Possible formats:"
+ Write-Host " - Zip-file (-Zip)"
+ Write-Host
+ }
}
+ # ============================================================================
+ # Compile tasks
+ # ============================================================================
+ if ($Install)
+ { Write-Host "Installing GHDL $GHDLVersion for Windows..."
+ if ($Install -eq $true)
+ { $InstallPath = "C:\Program Files (x86)\GHDL" }
+ elseif ($Install -eq "")
+ { $InstallPath = "C:\Program Files (x86)\GHDL" }
+ else
+ { $InstallPath = $Install }
+
+ if ($Zip)
+ { Write-Host "Loading PowerShell Community Extensions (PSCX) " -NoNewline
+ if ((Get-Module -ListAvailable | Where {$_.Name -like "PSCX"}).Version -ge "3.1.0.0")
+ { Import-Module Pscx -Verbose:$false
+ Write-Host "[Done]" -ForegroundColor Green
+ }
+ else
+ { Write-Host "[FAILED]" -ForegroundColor RED
+ Exit-Script -1
+ }
+
+ Write-Host " Installing from Zip-file..."
+
+ Write-Host "[ERROR]: This command is not implemented." -ForegroundColor Red
+ }
+ else
+ { if (Test-Path -Path $InstallPath)
+ { Write-Host "[ERROR]: Directory '$InstallPath' already exists." -ForegroundColor Red
+ Exit-Script -1
+ }
+ Write-Host " Install directory: $InstallPath"
+ Write-Host " Creating directory '$InstallPath' and sub-directories..."
+ New-Item -ItemType directory -Path "$InstallPath" -ErrorAction SilentlyContinue | Out-Null
+ New-Item -ItemType directory -Path "$InstallPath\bin" -ErrorAction SilentlyContinue | Out-Null
+ New-Item -ItemType directory -Path "$InstallPath\include" -ErrorAction SilentlyContinue | Out-Null
+ New-Item -ItemType directory -Path "$InstallPath\lib" -ErrorAction SilentlyContinue | Out-Null
+
+ Write-Host " Copying files..."
+ # executables
+ Copy-Item "$GHDLBuildDir\ghdl.exe" "$InstallPath\bin\ghdl.exe" -ErrorAction SilentlyContinue
+ # include files
+ Copy-Item "$GHDLRootDir\src\grt\vpi_user.h" "$InstallPath\include" -ErrorAction SilentlyContinue
+ # pre-compile scripts
+ Copy-Item $GHDLVendorLibraryDir -Recurse "$InstallPath\lib\vendors" -ErrorAction SilentlyContinue
+ # pre-compiled libraries
+ Copy-Item $GHDLCompiledLibraryDir -Recurse "$InstallPath" -ErrorAction SilentlyContinue
-# restore working directory if changed
-Set-Location $Script_WorkingDir
-
-# return exit status
-exit $Script_ExitCode
+ Write-Host
+ Write-Host "Installing files " -NoNewline
+ Write-Host "[SUCCESSFUL]" -ForegroundColor Green
+ Write-Host
+
+ Exit-Script
+ } # Zip
+ } # Install
+
+} # Clean
+
+Exit-Script
diff --git a/dist/mcode/windows/compile-ghdl.ps1 b/dist/mcode/windows/compile-ghdl.ps1
index 7bfa62fbb..5017b1fee 100644
--- a/dist/mcode/windows/compile-ghdl.ps1
+++ b/dist/mcode/windows/compile-ghdl.ps1
@@ -35,216 +35,221 @@
# 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
+# .SYNOPSIS
+# GHDL for Windows - GHDL compile script
+# Use 'compile.ps1 -Help' to see the integrated help page
+#
+# .EXAMPLE
+# C:\PS> .\compile.ps1 -Clean -Compile
+#
[CmdletBinding()]
-Param(
- # compile ALL
- [switch]$All = $false,
+param(
+ # Display this help"
+ [switch]$Help = $false,
- # compile main targets
- [switch]$Compile = $false,
- # compile GHDL (simulator)
- [switch]$GHDL = $false,
- [switch]$Test = $false,
+ # Slean up all files and directories
+ [switch]$Clean = $false,
+ [switch]$Clean_GHDL = $false,
- # compile TOOLS
- [switch]$Tools = $false,
- # compile Filter (helper)
- [switch]$Filter = $false,
+ # Compile all targets
+ [switch]$All = $false,
- # build options
- [switch]$Release = $false,
+ # Compile main targets
+ [switch]$Compile = $false,
+ # Compile GHDL (simulator)
+ [switch]$Compile_GHDL = $false,
+ # Undocumented
+ [switch]$Test = $false,
+ # Undocumented
+ [switch]$Test_GHDL = $false,
- # clean up all files and directories
- [switch]$Clean = $false,
+ # Build options
+ # Build a release version
+ [switch]$Release = $false,
+ # Set the back-end
+ [string]$Backend = "mcode",
- # display this help"
- [switch]$Help = $false
+ # Reduced messages
+ [switch]$Quiet = $false,
+ # Skip warning messages. (Show errors only.)
+ [switch]$SuppressWarnings = $false,
+ # Halt on errors
+ [switch]$HaltOnError = $false,
+ # Undocumented
+ [switch]$Hosted = $false
)
# configure script here
-$Script_RelPathToRoot = "..\..\.."
+$RelPathToRoot = "..\..\.."
-# save parameters and current working directory
-$Script_Parameters = $args
+# ---------------------------------------------
+# save parameters and working directory
+$Script_ScriptDir = $PSScriptRoot
$Script_WorkingDir = Get-Location
-$GHDLRootDir = Convert-Path (Resolve-Path ($PSScriptRoot + "\" + $Script_RelPathToRoot))
+$GHDLRootDir = Convert-Path (Resolve-Path ($PSScriptRoot + "\" + $RelPathToRoot))
# set default values
-$Script_ExitCode = 0
-$BuildRelease = "Development" # "Release"
+$EnableVerbose = $PSCmdlet.MyInvocation.BoundParameters["Verbose"].IsPresent
+$EnableDebug = $PSCmdlet.MyInvocation.BoundParameters["Debug"].IsPresent
+
+# Write-Host ("--> " + $Verbose + " value: " +$PSCmdlet.MyInvocation.BoundParameters["Verbose"] + " IsPresent: " + $PSCmdlet.MyInvocation.BoundParameters["Verbose"].IsPresent)
+# Write-Host ("--> " + $PSCommandPath + " " + $PSBoundParameters + " " + $PSCmdlet + " " + $PSDefaultParameterValues)
+
+# load modules from GHDL's 'libraries' directory
+Import-Module $PSScriptRoot\shared.psm1 -Verbose:$false -ArgumentList "$Script_WorkingDir"
+Import-Module $PSScriptRoot\targets.psm1 -Verbose:$false
+
+# Display help if no command was selected
+$Help = $Help -or (-not (
+ $All -or
+ $Clean -or $Clean_GHDL -or
+ $Compile -or $Compile_GHDL -or
+ $Test -or $Test_GHDL
+ ))
+
+if (-not $Hosted)
+{ Write-Host "================================================================================" -ForegroundColor Magenta
+ Write-Host "GHDL for Windows - GHDL compile script" -ForegroundColor Magenta
+ Write-Host "================================================================================" -ForegroundColor Magenta
+}
+if ($Help)
+{ Get-Help $MYINVOCATION.InvocationName -Detailed
+ Exit-CompileScript
+}
+
+if ($Clean)
+{ $Clean_GHDL = $true
+}
if ($All)
-{ $Compile = $true
- $Tools = $true
+{ $Compile = $true
}
if ($Compile)
-{ $GHDL = $true
- $Test = $true
+{ $Compile_GHDL = $true
}
-if ($Tools)
-{ $Filter = $true
+if ($Test)
+{ $Test_GHDL = $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 }
+# configure some variables: paths, executables, directory names, ...
+$BuildDirectoryName = "build"
-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
+# Parameter checks
+if ($Backend -ne "mcode")
+{ Write-Host "[ERROR]: Back-end '$Backend' is not supported on Windows." -ForegroundColor Red
+ Exit-CompileScript -1
+}
-# load modules
-Import-Module $PSScriptRoot\shared.psm1
-Import-Module $PSScriptRoot\targets.psm1
+# construct directories
+$BinaryDestinationDirectory = "$GHDLRootDir\$BuildDirectoryName\$Backend"
+# construct executables
+$GHDLNewExecutable = "$GHDLRootDir\$BuildDirectoryName\$Backend\bin\ghdl.exe"
# grep GHDL version string from Ada source file
-$GHDLVersion = Get-GHDLVersion $GHDLRootDir
+$GHDLVersion = Get-GHDLVersion $GHDLRootDir
+# compute some variables
+$BuildRelease = if ($Release) { "Release" } else { "Development" }
+if (-not $Hosted)
+{ Write-Host " Version: $GHDLVersion"
+ Write-Host " Release: $BuildRelease"
+}
-# gather git information
$Git_IsGitRepo = Test-GitRepository
+# gather git information
if ($Git_IsGitRepo)
{ $Git_Branch_Name = & git rev-parse --abbrev-ref HEAD
- $Git_Commit_DataString = & git log -1 --format=%cd --date=short
+ $Git_Commit_DateString = & 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 (-not $Hosted)
+ { Write-Host " Git branch: $Git_Branch_Name"
+ Write-Host " Git commit: $Git_Commit_DataString ($Git_Commit_ShortHash)"
+ }
}
+if (-not $Hosted)
+{ Write-Host "" }
-if ($BuildRelease -eq "Release")
-{ $BuildDir = $GHDLRootDir + "\dist\mcode\build" }
-elseif ($BuildRelease -eq "Development")
-{ $BuildDir = $GHDLRootDir + "\dist\mcode\build" }
+if ($Release)
+{ $BuildDirectory = $BinaryDestinationDirectory }
else
-{ Write-Host "[ERROR]: Unknown build setting '$BuildRelease'." -ForegroundColor Red
- exit 1
-}
+{ $BuildDirectory = $BinaryDestinationDirectory }
+
# ==============================================================================
# Main Target: Clean
# ==============================================================================
-if ($Clean)
-{ $error = Invoke-Clean $BuildDir
- Write-TargetResult $error
+if ($Clean_GHDL)
+{ $error = Invoke-Clean $BuildDirectory -Quiet:$Quiet -Verbose:$EnableVerbose -Debug:$EnableDebug
+ if ($error -eq $true)
+ { Write-Host " [FAILED]" -ForegroundColor Red
+ Exit-CompileScript -1
+ }
} # Clean
# ==============================================================================
# Main Target: GHDL
# ==============================================================================
-if ($GHDL)
+if ($Compile_GHDL)
{ # create a build directory
- $error = Invoke-CreateBuildDirectory $BuildDir
- Write-TargetResult $error
+ $error = New-BuildDirectory $BuildDirectory
+ if ($error -eq $true)
+ { Write-Host " [FAILED]" -ForegroundColor Red
+ Exit-CompileScript -1
+ }
# 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
+ if (-not $Release -and $Git_IsGitRepo)
+ { $error = Invoke-PatchVersionFile $GHDLRootDir $Git_Branch_Name $Git_Commit_DateString $Git_Commit_ShortHash
+ if ($error -eq $true)
+ { Write-Host " [FAILED]" -ForegroundColor Red
+ Exit-CompileScript -1
+ }
}
# build C source files
- if (-not $error)
- { $error = Invoke-CompileCFiles $GHDLRootDir $BuildDir
- Write-TargetResult $error
+ $error = Invoke-CompileCFiles $GHDLRootDir $BinaryDestinationDirectory
+ if ($error -eq $true)
+ { Write-Host " [FAILED]" -ForegroundColor Red
+ Exit-CompileScript -1
}
# build Ada source files
- if (-not $error)
- { $error = Invoke-CompileGHDLAdaFiles $GHDLRootDir $BuildDir
- Write-TargetResult $error
+ $error = Invoke-CompileGHDLAdaFiles $GHDLRootDir $BinaryDestinationDirectory
+ if ($error -eq $true)
+ { Write-Host " [FAILED]" -ForegroundColor Red
+ Exit-CompileScript -1
}
# strip result
- if (-not $error)
- { $error = Invoke-StripGHDLExecutable $BuildDir
- Write-TargetResult $error
+ $error = Invoke-StripGHDLExecutable $BinaryDestinationDirectory
+ if ($error -eq $true)
+ { Write-Host " [FAILED]" -ForegroundColor Red
+ Exit-CompileScript -1
}
# restore the version file if it was patched
- if ((-not $error) -and ($BuildRelease -eq "Development") -and $Git_IsGitRepo)
+ if (-not $Release -and $Git_IsGitRepo)
{ $error = Restore-PatchedVersionFile $GHDLRootDir
- Write-TargetResult $error
+ if ($error -eq $true)
+ { Write-Host " [FAILED]" -ForegroundColor Red
+ Exit-CompileScript -1
+ }
}
-} # Compile
+}
-if ($Test)
-{ # running ghdl
- $error = Test-GHDLVersion $BuildDir
- Write-TargetResult $error
-} # Test
# ==============================================================================
-# Tool Target: Filter
+# Main Target: GHDL
# ==============================================================================
-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
+if ($Test_GHDL)
+{ # running ghdl
+ $error = Test-GHDLVersion $BuildDir
+ if ($error -eq $true)
+ { Write-Host " [FAILED]" -ForegroundColor Red
+ Exit-CompileScript -1
}
-} # Tools
-
-
-# unload PowerShell modules
-Remove-Module shared
-Remove-Module targets
-
-# restore working directory if changed
-Set-Location $Script_WorkingDir
+} # Test
-# return exit status
-exit $Script_ExitCode
+Exit-CompileScript 0
diff --git a/dist/mcode/windows/compile-libraries.ps1 b/dist/mcode/windows/compile-libraries.ps1
index dc7cbb57e..01ab7712b 100644
--- a/dist/mcode/windows/compile-libraries.ps1
+++ b/dist/mcode/windows/compile-libraries.ps1
@@ -39,12 +39,14 @@
# .SYNOPSIS
# GHDL for Windows - Library compile script
-# Use 'complib.ps1 -Help' to see the integrated help page
+# Use 'compile-libraries.ps1 -Help' to see the integrated help page
#
# .EXAMPLE
-# C:\PS> .\complib.ps1 -Verbose -Compile
+# C:\PS> .\complib.ps1 -Clean
# .EXAMPLE
-# C:\PS> .\complib.ps1 -Verbose -Clean
+# C:\PS> .\complib.ps1 -Compile -Verbose
+# .EXAMPLE
+# C:\PS> .\complib.ps1 -VHDL2008 -SuppressWarnings
#
[CmdletBinding()]
param(
@@ -70,29 +72,41 @@ param(
[switch]$HaltOnError = $false,
# Set GHDL executable
- [string]$GHDL = ""
+ [string]$GHDL = "",
+ # Undocumented
+ [switch]$Hosted = $false
)
# configure script here
-$Script_RelPathToRoot = "..\..\.."
+$RelPathToRoot = "..\..\.."
# ---------------------------------------------
# save parameters and working directory
-$Script_Parameters = $args
$Script_ScriptDir = $PSScriptRoot
$Script_WorkingDir = Get-Location
-$GHDLRootDir = Convert-Path (Resolve-Path ($PSScriptRoot + "\" + $Script_RelPathToRoot))
+$GHDLRootDir = Convert-Path (Resolve-Path ($PSScriptRoot + "\" + $RelPathToRoot))
# set default values
-$EnableVerbose = $PSCmdlet.MyInvocation.BoundParameters["Verbose"].IsPresent
-$EnableDebug = $PSCmdlet.MyInvocation.BoundParameters["Debug"].IsPresent
+$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"
+Import-Module $PSScriptRoot\shared.psm1 -Verbose:$false -ArgumentList "$Script_WorkingDir"
# Display help if no command was selected
$Help = $Help -or (-not ($Compile -or $VHDL87 -or $VHDL93 -or $VHDL2008 -or $Clean))
+function Exit-CompileScript
+{ [CmdletBinding()]
+ param(
+ [int]$ExitCode = 0
+ )
+ cd $Script_WorkingDir
+ # unload modules
+ Remove-Module shared -Verbose:$false
+ exit $ExitCode
+}
+
if ($Help)
{ Get-Help $MYINVOCATION.InvocationName -Detailed
Exit-CompileScript
@@ -115,22 +129,6 @@ $VHDLDestinationLibraryDirectory = "$GHDLRootDir\$BuildDirectoryName\$Backend\$V
# 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 = @{
@@ -190,17 +188,40 @@ $SourceFiles = @{
)
}
-Write-Host "================================================================================" -ForegroundColor Yellow
-Write-Host "GHDL ($Backend) for Windows - Library compile script" -ForegroundColor Yellow
-Write-Host "================================================================================" -ForegroundColor Yellow
+if (-not $Hosted)
+{ Write-Host "================================================================================" -ForegroundColor Yellow
+ Write-Host "GHDL ($Backend) for Windows - Library compile script" -ForegroundColor Yellow
+ Write-Host "================================================================================" -ForegroundColor Yellow
+}
if ($Clean)
{ Write-Host "Removing all created files and directories..."
- Write-Host " rmdir $VHDLDestinationLibraryDirectory"
-
- Remove-Item $VHDLDestinationLibraryDirectory -Force -Recurse -ErrorAction SilentlyContinue
+ if (Test-Path -Path $VHDLDestinationLibraryDirectory)
+ { Write-Host " rmdir $VHDLDestinationLibraryDirectory"
+ Remove-Item $VHDLDestinationLibraryDirectory -Force -Recurse -ErrorAction SilentlyContinue
+ if ($? -eq $false)
+ { Write-Host "[ERROR]: Cannot remove '$VHDLDestinationLibraryDirectory'." -ForegroundColor Red
+ Exit-CompileScript -1
+ }
+ }
+ if (-not ($VHDL87 -or $VHDL93 -or $VHDL2008))
+ { Exit-CompileScript }
+}
+
+# get GHDL executable
+if ($GHDL -ne "")
+{ $GHDLExecutable = $GHDL }
+elseif (Test-Path env:GHDL)
+{ $GHDLExecutable = $env:GHDL }
+elseif (Test-Path $GHDLNewExecutable -PathType Leaf)
+{ $GHDLExecutable = $GHDLNewExecutable }
+else
+{ $GHDLExecutable = "ghdl.exe" }
- Exit-CompileScript
+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
}
@@ -223,7 +244,7 @@ if ($VHDL87 -or $VHDL93 -or $VHDL2008)
else
{ Write-Host " Creating directory '$VHDLDestinationLibraryDirectory'."
New-Item -ItemType Directory -Path $VHDLDestinationLibraryDirectory -ErrorAction SilentlyContinue | Out-Null
- if ($LastExitCode -ne 0)
+ if (-not $?)
{ Write-Host "[ERROR]: Cannot create destination directory '$VHDLDestinationLibraryDirectory'." -ForegroundColor Red
Exit-CompileScript -1
}
@@ -236,10 +257,6 @@ if ($VHDL87 -or $VHDL93 -or $VHDL2008)
Write-Host
Write-Host "Start compilation..."
}
-
-
-
-
# ============================================================================
# v87
# ============================================================================
@@ -261,7 +278,7 @@ if ($VHDL87)
$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
+ $EnableVerbose -and (Write-Host " Patching file for $VHDLVersion" ) | Out-Null
# Patch file
Get-Content "$VHDLSourceLibraryDirectory\$VHDLSourcesIndex\$SourceFile.vhdl" -Encoding Ascii `
| Format-VHDLSourceFile -Version "$VHDLVersion" `
@@ -269,10 +286,10 @@ if ($VHDL87)
# 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
+ $EnableVerbose -and (Write-Host " Analyzing file '$SourceFile.v$VHDLVersion'" ) | Out-Null
+ $EnableDebug -and (Write-Host " $InvokeExpr" -ForegroundColor DarkGray ) | Out-Null
$ErrorRecordFound = Invoke-Expression $InvokeExpr | Restore-NativeCommandStream | Write-ColoredGHDLLine $SuppressWarnings " "
- if ($LastExitCode -ne 0)
+ if (($LastExitCode -ne 0) -or -not $?)
{ $ErrorCount += 1
if ($HaltOnError)
{ Exit-CompileScript -1 }
@@ -293,7 +310,7 @@ if ($VHDL87)
$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
+ $EnableVerbose -and (Write-Host " Patching file for $VHDLVersion" ) | Out-Null
# Patch file
Get-Content "$VHDLSourceLibraryDirectory\$VHDLSourcesIndex\$SourceFile.vhdl" -Encoding Ascii `
| Format-VHDLSourceFile -Version "$VHDLVersion" `
@@ -301,10 +318,10 @@ if ($VHDL87)
# 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
+ $EnableVerbose -and (Write-Host " Analyzing file '$SourceFile.v$VHDLVersion'" ) | Out-Null
+ $EnableDebug -and (Write-Host " $InvokeExpr" -ForegroundColor DarkGray ) | Out-Null
$ErrorRecordFound = Invoke-Expression $InvokeExpr | Restore-NativeCommandStream | Write-ColoredGHDLLine $SuppressWarnings " "
- if ($LastExitCode -ne 0)
+ if (($LastExitCode -ne 0) -or -not $?)
{ $ErrorCount += 1
if ($HaltOnError)
{ Exit-CompileScript -1 }
@@ -325,7 +342,7 @@ if ($VHDL87)
$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
+ $EnableVerbose -and (Write-Host " Patching file for $VHDLVersion" ) | Out-Null
# Patch file
Get-Content "$VHDLSourceLibraryDirectory\$VHDLSourcesIndex\$SourceFile.vhdl" -Encoding Ascii `
| Format-VHDLSourceFile -Version "$VHDLVersion" `
@@ -333,10 +350,10 @@ if ($VHDL87)
# 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
+ $EnableVerbose -and (Write-Host " Analyzing file '$SourceFile.v$VHDLVersion'" ) | Out-Null
+ $EnableDebug -and (Write-Host " $InvokeExpr" -ForegroundColor DarkGray ) | Out-Null
$ErrorRecordFound = Invoke-Expression $InvokeExpr | Restore-NativeCommandStream | Write-ColoredGHDLLine $SuppressWarnings " "
- if ($LastExitCode -ne 0)
+ if (($LastExitCode -ne 0) -or -not $?)
{ $ErrorCount += 1
if ($HaltOnError)
{ Exit-CompileScript -1 }
@@ -345,7 +362,7 @@ if ($VHDL87)
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
+ $EnableVerbose -and (Write-Host " Patching file for $VHDLVersion" ) | Out-Null
# Patch file
Get-Content "$VHDLSourceLibraryDirectory\$VHDLFlavor\$SourceFile.vhdl" -Encoding Ascii `
| Format-VHDLSourceFile -Version "$VHDLVersion" `
@@ -353,10 +370,10 @@ if ($VHDL87)
# 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
+ $EnableVerbose -and (Write-Host " Analyzing file '$SourceFile.v$VHDLVersion'" ) | Out-Null
+ $EnableDebug -and (Write-Host " $InvokeExpr" -ForegroundColor DarkGray ) | Out-Null
$ErrorRecordFound = Invoke-Expression $InvokeExpr | Restore-NativeCommandStream | Write-ColoredGHDLLine $SuppressWarnings " "
- if ($LastExitCode -ne 0)
+ if (($LastExitCode -ne 0) -or -not $?)
{ $ErrorCount += 1
if ($HaltOnError)
{ Exit-CompileScript -1 }
@@ -366,7 +383,7 @@ if ($VHDL87)
$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
+ $EnableVerbose -and (Write-Host " Patching file for $VHDLVersion" ) | Out-Null
# Patch file
Get-Content "$VHDLSourceLibraryDirectory\$VHDLSourcesIndex\$SourceFile.vhdl" -Encoding Ascii `
| Format-VHDLSourceFile -Version "$VHDLVersion" `
@@ -374,10 +391,10 @@ if ($VHDL87)
# 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
+ $EnableVerbose -and (Write-Host " Analyzing file '$SourceFile.v$VHDLVersion'" ) | Out-Null
+ $EnableDebug -and (Write-Host " $InvokeExpr" -ForegroundColor DarkGray ) | Out-Null
$ErrorRecordFound = Invoke-Expression $InvokeExpr | Restore-NativeCommandStream | Write-ColoredGHDLLine $SuppressWarnings " "
- if ($LastExitCode -ne 0)
+ if (($LastExitCode -ne 0) -or -not $?)
{ $ErrorCount += 1
if ($HaltOnError)
{ Exit-CompileScript -1 }
@@ -405,7 +422,7 @@ if ($VHDL93)
$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
+ $EnableVerbose -and (Write-Host " Patching file for $VHDLVersion" ) | Out-Null
# Patch file
Get-Content "$VHDLSourceLibraryDirectory\$VHDLSourcesIndex\$SourceFile.vhdl" -Encoding Ascii `
| Format-VHDLSourceFile -Version "$VHDLVersion" `
@@ -413,10 +430,10 @@ if ($VHDL93)
# 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
+ $EnableVerbose -and (Write-Host " Analyzing file '$SourceFile.v$VHDLVersion'" ) | Out-Null
+ $EnableDebug -and (Write-Host " $InvokeExpr" -ForegroundColor DarkGray ) | Out-Null
$ErrorRecordFound = Invoke-Expression $InvokeExpr | Restore-NativeCommandStream | Write-ColoredGHDLLine $SuppressWarnings " "
- if ($LastExitCode -ne 0)
+ if (($LastExitCode -ne 0) -or -not $?)
{ $ErrorCount += 1
if ($HaltOnError)
{ Exit-CompileScript -1 }
@@ -437,7 +454,7 @@ if ($VHDL93)
$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
+ $EnableVerbose -and (Write-Host " Patching file for $VHDLVersion" ) | Out-Null
# Patch file
Get-Content "$VHDLSourceLibraryDirectory\$VHDLSourcesIndex\$SourceFile.vhdl" -Encoding Ascii `
| Format-VHDLSourceFile -Version "$VHDLVersion" `
@@ -445,10 +462,10 @@ if ($VHDL93)
# 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
+ $EnableVerbose -and (Write-Host " Analyzing file '$SourceFile.v$VHDLVersion'" ) | Out-Null
+ $EnableDebug -and (Write-Host " $InvokeExpr" -ForegroundColor DarkGray ) | Out-Null
$ErrorRecordFound = Invoke-Expression $InvokeExpr | Restore-NativeCommandStream | Write-ColoredGHDLLine $SuppressWarnings " "
- if ($LastExitCode -ne 0)
+ if (($LastExitCode -ne 0) -or -not $?)
{ $ErrorCount += 1
if ($HaltOnError)
{ Exit-CompileScript -1 }
@@ -458,7 +475,7 @@ if ($VHDL93)
$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
+ $EnableVerbose -and (Write-Host " Patching file for $VHDLVersion" ) | Out-Null
# Patch file
Get-Content "$VHDLSourceLibraryDirectory\$VHDLSourcesIndex\$SourceFile.vhdl" -Encoding Ascii `
| Format-VHDLSourceFile -Version "$VHDLVersion" `
@@ -466,10 +483,10 @@ if ($VHDL93)
# 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
+ $EnableVerbose -and (Write-Host " Analyzing file '$SourceFile.v$VHDLVersion'" ) | Out-Null
+ $EnableDebug -and (Write-Host " $InvokeExpr" -ForegroundColor DarkGray ) | Out-Null
$ErrorRecordFound = Invoke-Expression $InvokeExpr | Restore-NativeCommandStream | Write-ColoredGHDLLine $SuppressWarnings " "
- if ($LastExitCode -ne 0)
+ if (($LastExitCode -ne 0) -or -not $?)
{ $ErrorCount += 1
if ($HaltOnError)
{ Exit-CompileScript -1 }
@@ -490,7 +507,7 @@ if ($VHDL93)
$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
+ $EnableVerbose -and (Write-Host " Patching file for $VHDLVersion" ) | Out-Null
# Patch file
Get-Content "$VHDLSourceLibraryDirectory\$VHDLSourcesIndex\$SourceFile.vhdl" -Encoding Ascii `
| Format-VHDLSourceFile -Version "$VHDLVersion" `
@@ -498,10 +515,10 @@ if ($VHDL93)
# 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
+ $EnableVerbose -and (Write-Host " Analyzing file '$SourceFile.v$VHDLVersion'" ) | Out-Null
+ $EnableDebug -and (Write-Host " $InvokeExpr" -ForegroundColor DarkGray ) | Out-Null
$ErrorRecordFound = Invoke-Expression $InvokeExpr | Restore-NativeCommandStream | Write-ColoredGHDLLine $SuppressWarnings " "
- if ($LastExitCode -ne 0)
+ if (($LastExitCode -ne 0) -or -not $?)
{ $ErrorCount += 1
if ($HaltOnError)
{ Exit-CompileScript -1 }
@@ -510,7 +527,7 @@ if ($VHDL93)
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
+ $EnableVerbose -and (Write-Host " Patching file for $VHDLVersion" ) | Out-Null
# Patch file
Get-Content "$VHDLSourceLibraryDirectory\$VHDLFlavor\$SourceFile.vhdl" -Encoding Ascii `
| Format-VHDLSourceFile -Version "$VHDLVersion" `
@@ -518,10 +535,10 @@ if ($VHDL93)
# 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
+ $EnableVerbose -and (Write-Host " Analyzing file '$SourceFile.v$VHDLVersion'" ) | Out-Null
+ $EnableDebug -and (Write-Host " $InvokeExpr" -ForegroundColor DarkGray ) | Out-Null
$ErrorRecordFound = Invoke-Expression $InvokeExpr | Restore-NativeCommandStream | Write-ColoredGHDLLine $SuppressWarnings " "
- if ($LastExitCode -ne 0)
+ if (($LastExitCode -ne 0) -or -not $?)
{ $ErrorCount += 1
if ($HaltOnError)
{ Exit-CompileScript -1 }
@@ -531,7 +548,7 @@ if ($VHDL93)
$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
+ $EnableVerbose -and (Write-Host " Patching file for $VHDLVersion" ) | Out-Null
# Patch file
Get-Content "$VHDLSourceLibraryDirectory\$VHDLSourcesIndex\$SourceFile.vhdl" -Encoding Ascii `
| Format-VHDLSourceFile -Version "$VHDLVersion" `
@@ -539,10 +556,10 @@ if ($VHDL93)
# 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
+ $EnableVerbose -and (Write-Host " Analyzing file '$SourceFile.v$VHDLVersion'" ) | Out-Null
+ $EnableDebug -and (Write-Host " $InvokeExpr" -ForegroundColor DarkGray ) | Out-Null
$ErrorRecordFound = Invoke-Expression $InvokeExpr | Restore-NativeCommandStream | Write-ColoredGHDLLine $SuppressWarnings " "
- if ($LastExitCode -ne 0)
+ if (($LastExitCode -ne 0) -or -not $?)
{ $ErrorCount += 1
if ($HaltOnError)
{ Exit-CompileScript -1 }
@@ -563,7 +580,7 @@ if ($VHDL93)
$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
+ $EnableVerbose -and (Write-Host " Patching file for $VHDLVersion" ) | Out-Null
# Patch file
Get-Content "$VHDLSourceLibraryDirectory\$VHDLSourcesIndex\$SourceFile.vhdl" -Encoding Ascii `
| Format-VHDLSourceFile -Version "$VHDLVersion" `
@@ -571,10 +588,10 @@ if ($VHDL93)
# 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
+ $EnableVerbose -and (Write-Host " Analyzing file '$SourceFile.v$VHDLVersion'" ) | Out-Null
+ $EnableDebug -and (Write-Host " $InvokeExpr" -ForegroundColor DarkGray ) | Out-Null
$ErrorRecordFound = Invoke-Expression $InvokeExpr | Restore-NativeCommandStream | Write-ColoredGHDLLine $SuppressWarnings " "
- if ($LastExitCode -ne 0)
+ if (($LastExitCode -ne 0) -or -not $?)
{ $ErrorCount += 1
if ($HaltOnError)
{ Exit-CompileScript -1 }
@@ -583,7 +600,7 @@ if ($VHDL93)
foreach ($SourceFile in $SourceFiles[$VHDLFlavor])
{ Write-Host " file: v$VHDLVersion\$SourceFile.v$VHDLVersion"
- $EnableVerbose -and (Write-Host " Patching file for $VHDLVersion" ) | Out-Null
+ $EnableVerbose -and (Write-Host " Patching file for $VHDLVersion" ) | Out-Null
# Patch file
Get-Content "$VHDLSourceLibraryDirectory\$VHDLFlavor\$SourceFile.vhdl" -Encoding Ascii `
| Format-VHDLSourceFile -Version "$VHDLVersion" `
@@ -591,10 +608,10 @@ if ($VHDL93)
# 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
+ $EnableVerbose -and (Write-Host " Analyzing file '$SourceFile.v$VHDLVersion'" ) | Out-Null
+ $EnableDebug -and (Write-Host " $InvokeExpr" -ForegroundColor DarkGray ) | Out-Null
$ErrorRecordFound = Invoke-Expression $InvokeExpr | Restore-NativeCommandStream | Write-ColoredGHDLLine $SuppressWarnings " "
- if ($LastExitCode -ne 0)
+ if (($LastExitCode -ne 0) -or -not $?)
{ $ErrorCount += 1
if ($HaltOnError)
{ Exit-CompileScript -1 }
@@ -604,7 +621,7 @@ if ($VHDL93)
$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
+ $EnableVerbose -and (Write-Host " Patching file for $VHDLVersion" ) | Out-Null
# Patch file
Get-Content "$VHDLSourceLibraryDirectory\$VHDLSourcesIndex\$SourceFile.vhdl" -Encoding Ascii `
| Format-VHDLSourceFile -Version "$VHDLVersion" `
@@ -612,10 +629,10 @@ if ($VHDL93)
# 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
+ $EnableVerbose -and (Write-Host " Analyzing file '$SourceFile.v$VHDLVersion'" ) | Out-Null
+ $EnableDebug -and (Write-Host " $InvokeExpr" -ForegroundColor DarkGray ) | Out-Null
$ErrorRecordFound = Invoke-Expression $InvokeExpr | Restore-NativeCommandStream | Write-ColoredGHDLLine $SuppressWarnings " "
- if ($LastExitCode -ne 0)
+ if (($LastExitCode -ne 0) -or -not $?)
{ $ErrorCount += 1
if ($HaltOnError)
{ Exit-CompileScript -1 }
@@ -643,7 +660,7 @@ if ($VHDL2008)
$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
+ $EnableVerbose -and (Write-Host " Patching file for $VHDLVersion" ) | Out-Null
# Patch file
Get-Content "$VHDLSourceLibraryDirectory\$VHDLLibrary\$SourceFile.vhdl" -Encoding Ascii `
| Format-VHDLSourceFile -Version "$VHDLVersion" `
@@ -651,10 +668,10 @@ if ($VHDL2008)
# 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
+ $EnableVerbose -and (Write-Host " Analyzing file '$SourceFile.v$VHDLVersion'" ) | Out-Null
+ $EnableDebug -and (Write-Host " $InvokeExpr" -ForegroundColor DarkGray ) | Out-Null
$ErrorRecordFound = Invoke-Expression $InvokeExpr | Restore-NativeCommandStream | Write-ColoredGHDLLine $SuppressWarnings " "
- if ($LastExitCode -ne 0)
+ if (($LastExitCode -ne 0) -or -not $?)
{ $ErrorCount += 1
if ($HaltOnError)
{ Exit-CompileScript -1 }
@@ -675,7 +692,7 @@ if ($VHDL2008)
$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
+ $EnableVerbose -and (Write-Host " Patching file for $VHDLVersion" ) | Out-Null
# Patch file
Get-Content "$VHDLSourceLibraryDirectory\$VHDLSourcesIndex\$SourceFile.vhdl" -Encoding Ascii `
| Format-VHDLSourceFile -Version "$VHDLVersion" `
@@ -683,10 +700,10 @@ if ($VHDL2008)
# 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
+ $EnableVerbose -and (Write-Host " Analyzing file '$SourceFile.v$VHDLVersion'" ) | Out-Null
+ $EnableDebug -and (Write-Host " $InvokeExpr" -ForegroundColor DarkGray ) | Out-Null
$ErrorRecordFound = Invoke-Expression $InvokeExpr | Restore-NativeCommandStream | Write-ColoredGHDLLine $SuppressWarnings " "
- if ($LastExitCode -ne 0)
+ if (($LastExitCode -ne 0) -or -not $?)
{ $ErrorCount += 1
if ($HaltOnError)
{ Exit-CompileScript -1 }
@@ -696,7 +713,7 @@ if ($VHDL2008)
$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
+ $EnableVerbose -and (Write-Host " Patching file for $VHDLVersion" ) | Out-Null
# Patch file
Get-Content "$VHDLSourceLibraryDirectory\$VHDLSourcesIndex\$SourceFile.vhdl" -Encoding Ascii `
| Format-VHDLSourceFile -Version "$VHDLVersion" `
@@ -704,10 +721,10 @@ if ($VHDL2008)
# 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
+ $EnableVerbose -and (Write-Host " Analyzing file '$SourceFile.v$VHDLVersion'" ) | Out-Null
+ $EnableDebug -and (Write-Host " $InvokeExpr" -ForegroundColor DarkGray ) | Out-Null
$ErrorRecordFound = Invoke-Expression $InvokeExpr | Restore-NativeCommandStream | Write-ColoredGHDLLine $SuppressWarnings " "
- if ($LastExitCode -ne 0)
+ if (($LastExitCode -ne 0) -or -not $?)
{ $ErrorCount += 1
if ($HaltOnError)
{ Exit-CompileScript -1 }
@@ -728,7 +745,7 @@ if ($VHDL2008)
$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
+ $EnableVerbose -and (Write-Host " Patching file for $VHDLVersion" ) | Out-Null
# Patch file
Get-Content "$VHDLSourceLibraryDirectory\$VHDLSourcesIndex\$SourceFile.vhdl" -Encoding Ascii `
| Format-VHDLSourceFile -Version "$VHDLVersion" `
@@ -736,10 +753,10 @@ if ($VHDL2008)
# 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
+ $EnableVerbose -and (Write-Host " Analyzing file '$SourceFile.v$VHDLVersion'" ) | Out-Null
+ $EnableDebug -and (Write-Host " $InvokeExpr" -ForegroundColor DarkGray ) | Out-Null
$ErrorRecordFound = Invoke-Expression $InvokeExpr | Restore-NativeCommandStream | Write-ColoredGHDLLine $SuppressWarnings " "
- if ($LastExitCode -ne 0)
+ if (($LastExitCode -ne 0) -or -not $?)
{ $ErrorCount += 1
if ($HaltOnError)
{ Exit-CompileScript -1 }
@@ -748,7 +765,7 @@ if ($VHDL2008)
foreach ($SourceFile in $SourceFiles[$VHDLFlavor])
{ Write-Host " file: v$VHDLVersion\$SourceFile.v$VHDLVersion"
- $EnableVerbose -and (Write-Host " Patching file for $VHDLVersion" ) | Out-Null
+ $EnableVerbose -and (Write-Host " Patching file for $VHDLVersion" ) | Out-Null
# Patch file
Get-Content "$VHDLSourceLibraryDirectory\$VHDLFlavor\$SourceFile.vhdl" -Encoding Ascii `
| Format-VHDLSourceFile -Version "$VHDLVersion" `
@@ -756,10 +773,10 @@ if ($VHDL2008)
# 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
+ $EnableVerbose -and (Write-Host " Analyzing file '$SourceFile.v$VHDLVersion'" ) | Out-Null
+ $EnableDebug -and (Write-Host " $InvokeExpr" -ForegroundColor DarkGray ) | Out-Null
$ErrorRecordFound = Invoke-Expression $InvokeExpr | Restore-NativeCommandStream | Write-ColoredGHDLLine $SuppressWarnings " "
- if ($LastExitCode -ne 0)
+ if (($LastExitCode -ne 0) -or -not $?)
{ $ErrorCount += 1
if ($HaltOnError)
{ Exit-CompileScript -1 }
@@ -769,7 +786,7 @@ if ($VHDL2008)
$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
+ $EnableVerbose -and (Write-Host " Patching file for $VHDLVersion" ) | Out-Null
# Patch file
Get-Content "$VHDLSourceLibraryDirectory\$VHDLSourcesIndex\$SourceFile.vhdl" -Encoding Ascii `
| Format-VHDLSourceFile -Version "$VHDLVersion" `
@@ -777,10 +794,10 @@ if ($VHDL2008)
# 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
+ $EnableVerbose -and (Write-Host " Analyzing file '$SourceFile.v$VHDLVersion'" ) | Out-Null
+ $EnableDebug -and (Write-Host " $InvokeExpr" -ForegroundColor DarkGray ) | Out-Null
$ErrorRecordFound = Invoke-Expression $InvokeExpr | Restore-NativeCommandStream | Write-ColoredGHDLLine $SuppressWarnings " "
- if ($LastExitCode -ne 0)
+ if (($LastExitCode -ne 0) -or -not $?)
{ $ErrorCount += 1
if ($HaltOnError)
{ Exit-CompileScript -1 }
diff --git a/dist/mcode/windows/shared.psm1 b/dist/mcode/windows/shared.psm1
index 5e00b74cf..e39ce67ce 100644
--- a/dist/mcode/windows/shared.psm1
+++ b/dist/mcode/windows/shared.psm1
@@ -56,7 +56,8 @@ function Exit-CompileScript
cd $Module_WorkingDir
# unload modules
- Remove-Module shared
+ Remove-Module shared -Verbose:$false
+ Remove-Module targets -Verbose:$false
exit $ExitCode
}
diff --git a/dist/mcode/windows/targets.psm1 b/dist/mcode/windows/targets.psm1
index 502305a90..5dfd12b0b 100644
--- a/dist/mcode/windows/targets.psm1
+++ b/dist/mcode/windows/targets.psm1
@@ -36,20 +36,17 @@
# - program version
# configure compiler tools
-$GCCExecutable = "gcc.exe"
-$GNATMakeExecutable = "gnatmake.exe"
-$StripExecutable = "strip.exe"
+$Prog_GCC = "gcc.exe"
+$Prog_GNATMake = "gnatmake.exe"
+$Prog_Strip = "strip.exe"
# configure output file
-$GHDLExecutableName = "ghdl.exe"
-$FilterExecutable = "filter.exe"
+$GHDL_Mcode_Name = "ghdl.exe"
# configure directory structure
$CommonSourceDirName = "src"
$WinMcodeSourceDirName = "dist\mcode\windows"
# $WinLLVMSourceDirName = "dist\llvm\windows"
-$WinMcodeBuildDirName = "dist\mcode\build"
-# $WinLLVMBuildDirName = "dist\llvm\build"
# construct file paths
$VersionFileName = "version.ads"
@@ -70,17 +67,23 @@ function Invoke-Clean
[switch] $Quiet = $false
)
- Write-Host "Executing build target 'Clean' ..." -ForegroundColor Yellow
- if ($Quiet -eq $false)
- { Write-Host " Removing all created files and directories..."
- Write-Host " rmdir $BuildDirectory"
- }
- Remove-Item $BuildDirectory -Force -Recurse -ErrorAction SilentlyContinue
+ $EnableDebug = -not $Quiet -and ( $PSCmdlet.MyInvocation.BoundParameters["Debug"])
+ $EnableVerbose = -not $Quiet -and ($EnableDebug -or $PSCmdlet.MyInvocation.BoundParameters["Verbose"])
+ -not $Quiet -and (Write-Host "Executing build target 'Clean' ..." -ForegroundColor Yellow) | Out-Null
+ $EnableVerbose -and (Write-Host " Removing all created files and directories..." ) | Out-Null
+ if (Test-Path -Path $BuildDirectory)
+ { $EnableDebug -and (Write-Host " rmdir $BuildDirectory" ) | Out-Null
+ Remove-Item $BuildDirectory -Force -Recurse -ErrorAction SilentlyContinue
+ if ($? -eq $false)
+ { Write-Host "[ERROR]: Cannot remove '$BuildDirectory'." -ForegroundColor Red
+ return $true
+ }
+ }
return $false
} # Invoke-Clean
-function Invoke-CreateBuildDirectory
+function New-BuildDirectory
{ <#
.SYNOPSIS
This CommandLet creates a build directory if not existent, yet.
@@ -95,20 +98,20 @@ function Invoke-CreateBuildDirectory
[switch] $Quiet = $false
)
- Write-Host "Executing build target 'CreateBuildDirectory' ..." -ForegroundColor Yellow
- if (Test-Path -Path $BuildDirectory)
- { if ($Quiet -eq $false)
- { Write-Host " Directory '$BuildDirectory' already exists." }
- }
+ Write-Host "Executing build target 'BuildDirectory' ..." -ForegroundColor Yellow
+ if (Test-Path -Path $BuildDirectory -PathType Container)
+ { -not $Quiet -and (Write-Host " Directory '$BuildDirectory' already exists." ) | Out-Null }
else
- { if ($Quiet -eq $false)
- { Write-Host " Creating new directory '$BuildDirectory'." }
-
- [void](New-Item -ItemType directory -Path $BuildDirectory -ErrorAction SilentlyContinue)
+ { -not $Quiet -and (Write-Host " Creating new directory '$BuildDirectory'." ) | Out-Null
+ New-Item -ItemType Directory -Path $BuildDirectory -ErrorAction SilentlyContinue | Out-Null
+ if ($? -eq $false)
+ { Write-Host "[ERROR]: Cannot create '$BuildDirectory'." -ForegroundColor Red
+ return $true
+ }
}
return $false
-} # Invoke-CreateBuildDirectory
+} # New-BuildDirectory
function Get-GHDLVersion
{ <#
@@ -123,20 +126,20 @@ function Get-GHDLVersion
)
# construct DirectoryPaths
$SourceDirectory = $GHDLRootDir + "\" + $CommonSourceDirName
- # construct FilePaths
$VersionFilePath = $SourceDirectory + "\" + $VersionFileName
- if (-not (Test-Path -Path $VersionFilePath))
- { Write-Host " Version file '$VersionFilePath' does not exists." -ForegroundColor Red
- return ""
+ if (-not (Test-Path -Path $VersionFilePath -PathType Leaf))
+ { Write-Host "[ERROR]: Version file '$VersionFilePath' does not exists." -ForegroundColor Red
+ return $true
}
$FileContent = Get-Content -Path $VersionFilePath
foreach ($Line in $FileContent)
{ if ($Line -match 'Ghdl_Ver(.+?)\"(.+?)\";')
{ return $Matches[2] }
}
- return ""
-}
+ Write-Host "[ERROR]: RegExp didn't match in '$VersionFilePath'." -ForegroundColor Red
+ return $true
+} # Get-GHDLVersion
function Invoke-PatchVersionFile
{ <#
@@ -156,30 +159,36 @@ function Invoke-PatchVersionFile
[CmdletBinding()]
param(
[string] $GHDLRootDir,
- [string] $GitBranchName = "unknown",
- [string] $GitCommitDataString = "unknown",
- [string] $GitCommitHash = "........",
- [switch] $Quiet = $false
+ [string] $GitBranchName = "unknown",
+ [string] $GitCommitDataString = "unknown",
+ [string] $GitCommitHash = "........",
+ [switch] $Quiet = $false
)
# construct DirectoryPaths
$SourceDirectory = $GHDLRootDir + "\" + $CommonSourceDirName
- # construct FilePaths
$CurrentVersionFilePath = $SourceDirectory + "\" + $VersionFileName
$OriginalVersionFilePath = $SourceDirectory + "\" + $VersionFileName + ".bak"
Write-Host "Executing build target 'PatchVersionFile' ..." -ForegroundColor Yellow
- if (-not (Test-Path -Path $CurrentVersionFilePath))
- { Write-Host " Version file '$CurrentVersionFilePath' does not exists." -ForegroundColor Red
+ if (-not (Test-Path -Path $CurrentVersionFilePath -PathType Leaf))
+ { Write-Host "[ERROR]: Version file '$CurrentVersionFilePath' does not exists." -ForegroundColor Red
return $true
}
- if ($Quiet -eq $false)
- { Write-Host " Patching '$CurrentVersionFilePath'." }
+ -not $Quiet -and (Write-Host " Patching '$CurrentVersionFilePath'.") | Out-Null
$FileContent = Get-Content -Path $CurrentVersionFilePath -Encoding Ascii
+ if ($? -eq $false)
+ { Write-Host "[ERROR]: While opening '$CurrentVersionFilePath'." -ForegroundColor Red
+ return $true
+ }
$FileContent = $FileContent -Replace "\s\(\d+\)\s", " (commit: $GitCommitDataString; git branch: $GitBranchName'; hash: $GitCommitHash) "
Move-Item $CurrentVersionFilePath $OriginalVersionFilePath -Force
$FileContent | Out-File $CurrentVersionFilePath -Encoding Ascii
+ if ($? -eq $false)
+ { Write-Host "[ERROR]: While writing to '$CurrentVersionFilePath'." -ForegroundColor Red
+ return $true
+ }
return $false
} # Invoke-PatchVersionFile
@@ -200,19 +209,22 @@ function Restore-PatchedVersionFile
)
# construct DirectoryPaths
$SourceDirectory = $GHDLRootDir + "\" + $CommonSourceDirName
- # construct FilePaths
$CurrentVersionFilePath = $SourceDirectory + "\" + $VersionFileName
$OriginalVersionFilePath = $SourceDirectory + "\" + $VersionFileName + ".bak"
Write-Host "Executing build target 'PatchedVersionFile' ..." -ForegroundColor Yellow
- if (-not (Test-Path -Path "$CurrentVersionFilePath"))
- { Write-Host " Version file '$CurrentVersionFilePath' does not exists." -ForegroundColor Red
+ if (-not (Test-Path -Path "$OriginalVersionFilePath" -PathType Leaf))
+ { Write-Host "[ERROR]: Original version file '$OriginalVersionFilePath' does not exists." -ForegroundColor Red
return $true
}
- if ($Quiet -eq $false)
- { Write-Host " Restoring '$CurrentVersionFilePath'." }
+ -not $Quiet -and (Write-Host " Restoring '$CurrentVersionFilePath'.") | Out-Null
Move-Item $OriginalVersionFilePath $CurrentVersionFilePath -Force
+ if ($? -eq $false)
+ { Write-Host "[ERROR]: While moving '$OriginalVersionFilePath' to '$CurrentVersionFilePath'." -ForegroundColor Red
+ return $true
+ }
+
return $false
} # Restore-PatchedVersionFile
@@ -267,13 +279,15 @@ function Invoke-CompileCFiles
$Parameters += $SourceDirectory + "\" + $SourceFile.File
# call C compiler
- $InvokeExpr = "$GCCExecutable " + ($Parameters -join " ") + " 2>&1"
+ $InvokeExpr = "$Prog_GCC " + ($Parameters -join " ") + " 2>&1"
Write-Host (" compiling: " + $SourceFile.File)
Write-Debug " call: $InvokeExpr"
$ErrorRecordFound = Invoke-Expression $InvokeExpr | Restore-NativeCommandStream | Write-ColoredGCCLine -Indent " "
if ($LastExitCode -ne 0)
- { return $true }
+ { Write-Host ("[ERROR]: While compiling '{0}'." -f $SourceFile.File) -ForegroundColor Red
+ return $true
+ }
}
return $false
@@ -324,7 +338,7 @@ function Invoke-CompileGHDLAdaFiles
# add output filename
$Parameters += '-o'
- $Parameters += $GHDLExecutableName
+ $Parameters += $GHDL_Mcode_Name
# append linker parameters
$Parameters += '-largs'
@@ -338,59 +352,18 @@ function Invoke-CompileGHDLAdaFiles
# $Parameters += '-Wl,--stack,8404992'
# call Ada compiler (GNAT)
- $InvokeExpr = "$GNATMakeExecutable " + ($Parameters -join " ") + " 2>&1"
+ $InvokeExpr = "$Prog_GNATMake " + ($Parameters -join " ") + " 2>&1"
Write-Host " compiling with GNAT"
Write-Debug " call: $InvokeExpr"
$ErrorRecordFound = Invoke-Expression $InvokeExpr | Restore-NativeCommandStream | Write-ColoredGCCLine -Indent " "
- return ($LastExitCode -ne 0)
+ if ($LastExitCode -ne 0)
+ { Write-Host "[ERROR]: While compiling '$GHDL_Mcode_Name'." -ForegroundColor Red
+ return $true
+ }
+ return $false
} # Invoke-CompileGHDLAdaFiles
-function Invoke-CompileFilterAdaFiles
-{ <#
- .SYNOPSIS
- This CommandLet compiles all Ada files with GNAT.
- .PARAMETER SourceDirectory
- The directory where all source files are located.
- .PARAMETER BuildDirectory
- The directory where all generated files are stored.
- .PARAMETER Quiet
- Disable outputs to the host console
- #>
- [CmdletBinding()]
- param(
- [string] $GHDLRootDir,
- [string] $BuildDirectory,
- [switch] $Quiet = $false
- )
- # construct DirectoryPaths
- $SourceDirectory = $GHDLRootDir + "\" + $CommonSourceDirName
-
- Set-Location $BuildDirectory
- Write-Host "Executing build target 'CompileFilterAdaFiles' ..." -ForegroundColor Yellow
-
- $Parameters = @()
- $Parameters += Get-CFlags # append common CFlags
- $Parameters += '-gnatn'
-
- # append all source paths
- $Parameters += '-aI' + $SourceDirectory + '\..\dist\mcode\windows'
-
- # top level
- $Parameters += 'ghdlfilter'
-
- # add output filename
- $Parameters += '-o'
- $Parameters += $FilterExecutable
-
- # call Ada compiler (GNAT)
- $InvokeExpr = "$GNATMakeExecutable " + ($Parameters -join " ") + " 2>&1"
-
- Write-Host " compiling with GNAT"
- Write-Debug " call: $InvokeExpr"
- $ErrorRecordFound = Invoke-Expression $InvokeExpr | Restore-NativeCommandStream | Write-ColoredGCCLine -Indent " "
- return ($LastExitCode -ne 0)
-} # Invoke-CompileFilterAdaFiles
function Invoke-StripGHDLExecutable
{ <#
@@ -411,10 +384,14 @@ function Invoke-StripGHDLExecutable
Write-Host "Executing build target 'StripGHDLExecutable' ..." -ForegroundColor Yellow
# call striping tool (strip)
- Write-Host " stripping '$GHDLExecutableName'"
- Write-Debug " call: $StripExecutable $GHDLExecutableName"
- & $StripExecutable $GHDLExecutableName
- return ($LastExitCode -ne 0)
+ Write-Host " stripping '$GHDL_Mcode_Name'"
+ Write-Debug " call: $Prog_Strip $GHDL_Mcode_Name"
+ & $Prog_Strip $GHDL_Mcode_Name
+ if ($LastExitCode -ne 0)
+ { Write-Host "[ERROR]: While stripping '$GHDL_Mcode_Name'." -ForegroundColor Red
+ return $true
+ }
+ return $false
} # Invoke-StripGHDLExecutable
function Test-GHDLVersion
@@ -435,31 +412,34 @@ function Test-GHDLVersion
Set-Location $BuildDirectory
Write-Host "Executing build target 'GHDLVersion' ..." -ForegroundColor Yellow
- if (-not (Test-Path -Path $GHDLExecutableName))
- { Write-Host " GHDL executable '$GHDLExecutableName' does not exists." -ForegroundColor Red
+ if (-not (Test-Path -Path $GHDL_Mcode_Name -PathType Leaf))
+ { Write-Host " GHDL executable '$GHDL_Mcode_Name' does not exists." -ForegroundColor Red
return $true
}
# call ghdl
- $InvokeExpr = "$GHDLExecutableName --version 2>&1"
+ $InvokeExpr = "$GHDL_Mcode_Name --version 2>&1"
- Write-Host " executing '$GHDLExecutableName'"
+ Write-Host " executing '$GHDL_Mcode_Name'"
Write-Host " call: $InvokeExpr"
Write-Host " ----------------------------------------"
Invoke-Expression $InvokeExpr | Restore-NativeCommandStream | Write-HostExtended " "
Write-Host " ----------------------------------------"
- return ($LastExitCode -ne 0)
+ if ($LastExitCode -ne 0)
+ { Write-Host "[ERROR]: While executing '$GHDL_Mcode_Name'." -ForegroundColor Red
+ return $true
+ }
+ return $false
} # Test-GHDLVersion
# export functions
Export-ModuleMember -Function 'Get-GHDLVersion'
Export-ModuleMember -Function 'Invoke-Clean'
-Export-ModuleMember -Function 'Invoke-CreateBuildDirectory'
+Export-ModuleMember -Function 'New-BuildDirectory'
Export-ModuleMember -Function 'Invoke-PatchVersionFile'
Export-ModuleMember -Function 'Restore-PatchedVersionFile'
Export-ModuleMember -Function 'Invoke-CompileCFiles'
Export-ModuleMember -Function 'Invoke-CompileGHDLAdaFiles'
-Export-ModuleMember -Function 'Invoke-CompileFilterAdaFiles'
Export-ModuleMember -Function 'Invoke-StripGHDLExecutable'
Export-ModuleMember -Function 'Test-GHDLVersion'