|
- # E07-S05: build the on-machine compiler driver and publish it as
- # build/n128c.prg - the exact file prepare-disk.ps1 injects as n128c and
- # launch-compiler.ps1 autostarts.
- [CmdletBinding()]
- param()
-
- $ErrorActionPreference = "Stop"
- $project = Split-Path $PSScriptRoot -Parent
- Import-Module (Join-Path $PSScriptRoot "lib\Nova128Test.psm1") -Force
- $out = Join-Path $project "build\driver"
-
- $link = Invoke-Nova128Link -Name "n128c" -BuildDir $out `
- -Config (Join-Path $project "cfg\compiler.cfg") -Sources @(
- (Join-Path $project "src\compiler\mmu.s"),
- (Join-Path $project "src\compiler\diskio.s"),
- (Join-Path $project "src\compiler\source.s"),
- (Join-Path $project "src\compiler\lexer.s"),
- (Join-Path $project "src\compiler\names.s"),
- (Join-Path $project "src\compiler\diagnostics.s"),
- (Join-Path $project "src\compiler\parser.s"),
- (Join-Path $project "src\compiler\codegen.s"),
- (Join-Path $project "src\compiler\flow.s"),
- (Join-Path $project "src\compiler\members.s"),
- (Join-Path $project "src\compiler\sizing.s"),
- (Join-Path $project "src\compiler\emit.s"),
- (Join-Path $project "src\compiler\interfaces.s"),
- (Join-Path $project "src\compiler\iftables.s"),
- (Join-Path $project "src\compiler\types.s"),
- (Join-Path $project "src\compiler\output.s"),
- (Join-Path $project "src\runtime\startup.s"),
- (Join-Path $project "src\compiler\main.s"))
-
- if ((Get-Nova128Label $link.Labels "driver_entry") -ne 0x1C0D) {
- throw "driver_entry is not at `$1C0D"
- }
- $published = Join-Path $project "build\n128c.prg"
- Copy-Item -LiteralPath $link.Program -Destination $published -Force
- Write-Host ("built {0} ({1} bytes) -> {2}" -f $link.Program,
- (Get-Item -LiteralPath $published).Length, $published)
|