From 1930afd72377594b2fda8102bc924cd8263a1ffb Mon Sep 17 00:00:00 2001 From: Jeremy Rand Date: Fri, 9 Aug 2019 22:47:10 -0400 Subject: [PATCH] Update to the latest build engine. --- LICENSE | 21 + colourgo.xcodeproj/project.pbxproj | 368 +++++++++++------- .../UserInterfaceState.xcuserstate | Bin 25920 -> 14373 bytes .../xcshareddata/xcschemes/colourgo.xcscheme | 12 + .../xcschemes/xcschememanagement.plist | 14 +- colourgo/Makefile | 6 +- colourgo/make/V2Make.scpt | Bin 4906 -> 4744 bytes colourgo/make/createDiskImage | 8 +- colourgo/make/errorFilter.sh | 4 +- colourgo/make/head.mk | 33 +- colourgo/make/tail.mk | 110 +++--- 11 files changed, 381 insertions(+), 195 deletions(-) create mode 100644 LICENSE diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..37bcdf1 --- /dev/null +++ b/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2019 Jeremy Rand + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/colourgo.xcodeproj/project.pbxproj b/colourgo.xcodeproj/project.pbxproj index 87f4f95..1553906 100644 --- a/colourgo.xcodeproj/project.pbxproj +++ b/colourgo.xcodeproj/project.pbxproj @@ -7,142 +7,152 @@ objects = { /* Begin PBXBuildFile section */ - 9D3A3EC121783A9B00BE74C7 /* bastokenizer-tools-bt-0.2.0.jar in Frameworks */ = {isa = PBXBuildFile; fileRef = 9D3A3EBF21783A9B00BE74C7 /* bastokenizer-tools-bt-0.2.0.jar */; }; - 9D55076520DA0B6800B71EFD /* Makefile in Sources */ = {isa = PBXBuildFile; fileRef = 9D55076420DA0B6800B71EFD /* Makefile */; }; - 9D55076820DA0B6800B71EFD /* AppleCommander.jar in Frameworks */ = {isa = PBXBuildFile; fileRef = 9D55076720DA0B6800B71EFD /* AppleCommander.jar */; }; - 9D55076A20DA0B6800B71EFD /* createDiskImage in CopyFiles */ = {isa = PBXBuildFile; fileRef = 9D55076920DA0B6800B71EFD /* createDiskImage */; }; - 9D55076C20DA0B6900B71EFD /* DevApple.vii in CopyFiles */ = {isa = PBXBuildFile; fileRef = 9D55076B20DA0B6900B71EFD /* DevApple.vii */; }; - 9D55076E20DA0B6900B71EFD /* dos33_template.dsk in CopyFiles */ = {isa = PBXBuildFile; fileRef = 9D55076D20DA0B6900B71EFD /* dos33_template.dsk */; }; - 9D55077020DA0B6900B71EFD /* head.mk in CopyFiles */ = {isa = PBXBuildFile; fileRef = 9D55076F20DA0B6900B71EFD /* head.mk */; }; - 9D55077220DA0B6900B71EFD /* prodos_template.dsk in CopyFiles */ = {isa = PBXBuildFile; fileRef = 9D55077120DA0B6900B71EFD /* prodos_template.dsk */; }; - 9D55077420DA0B6900B71EFD /* tail.mk in CopyFiles */ = {isa = PBXBuildFile; fileRef = 9D55077320DA0B6900B71EFD /* tail.mk */; }; - 9D55077620DA0B6900B71EFD /* V2Make.scpt in CopyFiles */ = {isa = PBXBuildFile; fileRef = 9D55077520DA0B6900B71EFD /* V2Make.scpt */; }; - 9D55077920DA0B6900B71EFD /* colourgo.xcscheme in CopyFiles */ = {isa = PBXBuildFile; fileRef = 9D55077820DA0B6900B71EFD /* colourgo.xcscheme */; }; - 9D55078C20DA0BDC00B71EFD /* vbl.s in Sources */ = {isa = PBXBuildFile; fileRef = 9D55078520DA0BDB00B71EFD /* vbl.s */; }; - 9D55078D20DA0BDC00B71EFD /* game.s in Sources */ = {isa = PBXBuildFile; fileRef = 9D55078720DA0BDC00B71EFD /* game.s */; }; - 9D55078E20DA0BDC00B71EFD /* mouseWrapper.c in Sources */ = {isa = PBXBuildFile; fileRef = 9D55078920DA0BDC00B71EFD /* mouseWrapper.c */; }; - 9D55078F20DA0BDC00B71EFD /* machine.c in Sources */ = {isa = PBXBuildFile; fileRef = 9D55078A20DA0BDC00B71EFD /* machine.c */; }; - 9D55079020DA0BDC00B71EFD /* main.c in Sources */ = {isa = PBXBuildFile; fileRef = 9D55078B20DA0BDC00B71EFD /* main.c */; }; + 9DD31AFB22FE661A00F65886 /* Makefile in Sources */ = {isa = PBXBuildFile; fileRef = 9DD31AFA22FE661A00F65886 /* Makefile */; }; + 9DD31AFE22FE661A00F65886 /* AppleCommander.jar in Frameworks */ = {isa = PBXBuildFile; fileRef = 9DD31AFD22FE661A00F65886 /* AppleCommander.jar */; }; + 9DD31B0022FE661A00F65886 /* bastokenizer-tools-bt-0.2.0.jar in Frameworks */ = {isa = PBXBuildFile; fileRef = 9DD31AFF22FE661A00F65886 /* bastokenizer-tools-bt-0.2.0.jar */; }; + 9DD31B0222FE661A00F65886 /* createDiskImage in CopyFiles */ = {isa = PBXBuildFile; fileRef = 9DD31B0122FE661A00F65886 /* createDiskImage */; }; + 9DD31B0422FE661A00F65886 /* bt in CopyFiles */ = {isa = PBXBuildFile; fileRef = 9DD31B0322FE661A00F65886 /* bt */; }; + 9DD31B0622FE661A00F65886 /* DevApple.vii in CopyFiles */ = {isa = PBXBuildFile; fileRef = 9DD31B0522FE661A00F65886 /* DevApple.vii */; }; + 9DD31B0822FE661A00F65886 /* dos33_template.dsk in CopyFiles */ = {isa = PBXBuildFile; fileRef = 9DD31B0722FE661A00F65886 /* dos33_template.dsk */; }; + 9DD31B0A22FE661A00F65886 /* errorFilter.sh in CopyFiles */ = {isa = PBXBuildFile; fileRef = 9DD31B0922FE661A00F65886 /* errorFilter.sh */; }; + 9DD31B0C22FE661A00F65886 /* head.mk in CopyFiles */ = {isa = PBXBuildFile; fileRef = 9DD31B0B22FE661A00F65886 /* head.mk */; }; + 9DD31B0E22FE661A00F65886 /* prodos_template.dsk in CopyFiles */ = {isa = PBXBuildFile; fileRef = 9DD31B0D22FE661A00F65886 /* prodos_template.dsk */; }; + 9DD31B1022FE661A00F65886 /* tail.mk in CopyFiles */ = {isa = PBXBuildFile; fileRef = 9DD31B0F22FE661A00F65886 /* tail.mk */; }; + 9DD31B1222FE661A00F65886 /* V2Make.scpt in CopyFiles */ = {isa = PBXBuildFile; fileRef = 9DD31B1122FE661A00F65886 /* V2Make.scpt */; }; + 9DD31B1522FE661A00F65886 /* colourgo.xcscheme in CopyFiles */ = {isa = PBXBuildFile; fileRef = 9DD31B1422FE661A00F65886 /* colourgo.xcscheme */; }; + 9DD31B2F22FE667000F65886 /* main.c in Sources */ = {isa = PBXBuildFile; fileRef = 9DD31B2622FE666F00F65886 /* main.c */; }; + 9DD31B3022FE667000F65886 /* game.s in Sources */ = {isa = PBXBuildFile; fileRef = 9DD31B2822FE666F00F65886 /* game.s */; }; + 9DD31B3122FE667000F65886 /* mouseWrapper.c in Sources */ = {isa = PBXBuildFile; fileRef = 9DD31B2A22FE666F00F65886 /* mouseWrapper.c */; }; + 9DD31B3222FE667000F65886 /* machine.c in Sources */ = {isa = PBXBuildFile; fileRef = 9DD31B2B22FE666F00F65886 /* machine.c */; }; + 9DD31B3322FE667000F65886 /* vbl.s in Sources */ = {isa = PBXBuildFile; fileRef = 9DD31B2D22FE666F00F65886 /* vbl.s */; }; /* End PBXBuildFile section */ /* Begin PBXCopyFilesBuildPhase section */ - 9D55075D20DA0B6800B71EFD /* CopyFiles */ = { + 9DD31AF422FE661A00F65886 /* CopyFiles */ = { isa = PBXCopyFilesBuildPhase; buildActionMask = 2147483647; dstPath = /usr/share/man/man1/; dstSubfolderSpec = 0; files = ( - 9D55076A20DA0B6800B71EFD /* createDiskImage in CopyFiles */, - 9D55077920DA0B6900B71EFD /* colourgo.xcscheme in CopyFiles */, - 9D55076C20DA0B6900B71EFD /* DevApple.vii in CopyFiles */, - 9D55076E20DA0B6900B71EFD /* dos33_template.dsk in CopyFiles */, - 9D55077420DA0B6900B71EFD /* tail.mk in CopyFiles */, - 9D55077620DA0B6900B71EFD /* V2Make.scpt in CopyFiles */, - 9D55077220DA0B6900B71EFD /* prodos_template.dsk in CopyFiles */, - 9D55077020DA0B6900B71EFD /* head.mk in CopyFiles */, + 9DD31B0E22FE661A00F65886 /* prodos_template.dsk in CopyFiles */, + 9DD31B0422FE661A00F65886 /* bt in CopyFiles */, + 9DD31B0822FE661A00F65886 /* dos33_template.dsk in CopyFiles */, + 9DD31B0222FE661A00F65886 /* createDiskImage in CopyFiles */, + 9DD31B1222FE661A00F65886 /* V2Make.scpt in CopyFiles */, + 9DD31B0C22FE661A00F65886 /* head.mk in CopyFiles */, + 9DD31B0622FE661A00F65886 /* DevApple.vii in CopyFiles */, + 9DD31B1522FE661A00F65886 /* colourgo.xcscheme in CopyFiles */, + 9DD31B0A22FE661A00F65886 /* errorFilter.sh in CopyFiles */, + 9DD31B1022FE661A00F65886 /* tail.mk in CopyFiles */, ); runOnlyForDeploymentPostprocessing = 1; }; /* End PBXCopyFilesBuildPhase section */ /* Begin PBXFileReference section */ - 9D3A3EBF21783A9B00BE74C7 /* bastokenizer-tools-bt-0.2.0.jar */ = {isa = PBXFileReference; lastKnownFileType = archive.jar; name = "bastokenizer-tools-bt-0.2.0.jar"; path = "make/bastokenizer-tools-bt-0.2.0.jar"; sourceTree = ""; }; - 9D3A3EC021783A9B00BE74C7 /* bt */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.sh; name = bt; path = make/bt; sourceTree = ""; }; - 9D45ABB520E1E50D008C3F16 /* errorFilter.sh */ = {isa = PBXFileReference; lastKnownFileType = text.script.sh; name = errorFilter.sh; path = make/errorFilter.sh; sourceTree = ""; }; - 9D55075F20DA0B6800B71EFD /* doNotBuild */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = doNotBuild; sourceTree = BUILT_PRODUCTS_DIR; }; - 9D55076420DA0B6800B71EFD /* Makefile */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.make; path = Makefile; sourceTree = ""; }; - 9D55076720DA0B6800B71EFD /* AppleCommander.jar */ = {isa = PBXFileReference; lastKnownFileType = archive.jar; name = AppleCommander.jar; path = make/AppleCommander.jar; sourceTree = ""; }; - 9D55076920DA0B6800B71EFD /* createDiskImage */ = {isa = PBXFileReference; lastKnownFileType = text.script.sh; name = createDiskImage; path = make/createDiskImage; sourceTree = ""; }; - 9D55076B20DA0B6900B71EFD /* DevApple.vii */ = {isa = PBXFileReference; lastKnownFileType = file.bplist; name = DevApple.vii; path = make/DevApple.vii; sourceTree = ""; }; - 9D55076D20DA0B6900B71EFD /* dos33_template.dsk */ = {isa = PBXFileReference; lastKnownFileType = file; name = dos33_template.dsk; path = make/dos33_template.dsk; sourceTree = ""; }; - 9D55076F20DA0B6900B71EFD /* head.mk */ = {isa = PBXFileReference; lastKnownFileType = text; name = head.mk; path = make/head.mk; sourceTree = ""; }; - 9D55077120DA0B6900B71EFD /* prodos_template.dsk */ = {isa = PBXFileReference; lastKnownFileType = file; name = prodos_template.dsk; path = make/prodos_template.dsk; sourceTree = ""; }; - 9D55077320DA0B6900B71EFD /* tail.mk */ = {isa = PBXFileReference; lastKnownFileType = text; name = tail.mk; path = make/tail.mk; sourceTree = ""; }; - 9D55077520DA0B6900B71EFD /* V2Make.scpt */ = {isa = PBXFileReference; lastKnownFileType = file; name = V2Make.scpt; path = make/V2Make.scpt; sourceTree = ""; }; - 9D55077820DA0B6900B71EFD /* colourgo.xcscheme */ = {isa = PBXFileReference; lastKnownFileType = text.xml; name = colourgo.xcscheme; path = colourgo.xcodeproj/xcshareddata/xcschemes/colourgo.xcscheme; sourceTree = SOURCE_ROOT; }; - 9D55078220DA0B9300B71EFD /* README.md */ = {isa = PBXFileReference; lastKnownFileType = net.daringfireball.markdown; path = README.md; sourceTree = ""; }; - 9D55078320DA0BDB00B71EFD /* machine.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = machine.h; sourceTree = ""; }; - 9D55078420DA0BDB00B71EFD /* mouseWrapper.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = mouseWrapper.h; sourceTree = ""; }; - 9D55078520DA0BDB00B71EFD /* vbl.s */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.asm; path = vbl.s; sourceTree = ""; }; - 9D55078620DA0BDB00B71EFD /* game.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = game.h; sourceTree = ""; }; - 9D55078720DA0BDC00B71EFD /* game.s */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.asm; path = game.s; sourceTree = ""; }; - 9D55078820DA0BDC00B71EFD /* vbl.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = vbl.h; sourceTree = ""; }; - 9D55078920DA0BDC00B71EFD /* mouseWrapper.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = mouseWrapper.c; sourceTree = ""; }; - 9D55078A20DA0BDC00B71EFD /* machine.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = machine.c; sourceTree = ""; }; - 9D55078B20DA0BDC00B71EFD /* main.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = main.c; sourceTree = ""; }; + 9DD31AEE22FE661A00F65886 /* colourgo */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = colourgo; sourceTree = BUILT_PRODUCTS_DIR; }; + 9DD31AF122FE661A00F65886 /* colourgo.dsk */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = colourgo.dsk; sourceTree = BUILT_PRODUCTS_DIR; }; + 9DD31AF622FE661A00F65886 /* doNotBuild */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = doNotBuild; sourceTree = BUILT_PRODUCTS_DIR; }; + 9DD31AFA22FE661A00F65886 /* Makefile */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.make; path = Makefile; sourceTree = ""; }; + 9DD31AFD22FE661A00F65886 /* AppleCommander.jar */ = {isa = PBXFileReference; lastKnownFileType = archive.jar; name = AppleCommander.jar; path = make/AppleCommander.jar; sourceTree = ""; }; + 9DD31AFF22FE661A00F65886 /* bastokenizer-tools-bt-0.2.0.jar */ = {isa = PBXFileReference; lastKnownFileType = archive.jar; name = "bastokenizer-tools-bt-0.2.0.jar"; path = "make/bastokenizer-tools-bt-0.2.0.jar"; sourceTree = ""; }; + 9DD31B0122FE661A00F65886 /* createDiskImage */ = {isa = PBXFileReference; lastKnownFileType = text.script.sh; name = createDiskImage; path = make/createDiskImage; sourceTree = ""; }; + 9DD31B0322FE661A00F65886 /* bt */ = {isa = PBXFileReference; lastKnownFileType = text.script.sh; name = bt; path = make/bt; sourceTree = ""; }; + 9DD31B0522FE661A00F65886 /* DevApple.vii */ = {isa = PBXFileReference; lastKnownFileType = file.bplist; name = DevApple.vii; path = make/DevApple.vii; sourceTree = ""; }; + 9DD31B0722FE661A00F65886 /* dos33_template.dsk */ = {isa = PBXFileReference; lastKnownFileType = file; name = dos33_template.dsk; path = make/dos33_template.dsk; sourceTree = ""; }; + 9DD31B0922FE661A00F65886 /* errorFilter.sh */ = {isa = PBXFileReference; lastKnownFileType = text.script.sh; name = errorFilter.sh; path = make/errorFilter.sh; sourceTree = ""; }; + 9DD31B0B22FE661A00F65886 /* head.mk */ = {isa = PBXFileReference; lastKnownFileType = text; name = head.mk; path = make/head.mk; sourceTree = ""; }; + 9DD31B0D22FE661A00F65886 /* prodos_template.dsk */ = {isa = PBXFileReference; lastKnownFileType = file; name = prodos_template.dsk; path = make/prodos_template.dsk; sourceTree = ""; }; + 9DD31B0F22FE661A00F65886 /* tail.mk */ = {isa = PBXFileReference; lastKnownFileType = text; name = tail.mk; path = make/tail.mk; sourceTree = ""; }; + 9DD31B1122FE661A00F65886 /* V2Make.scpt */ = {isa = PBXFileReference; lastKnownFileType = file; name = V2Make.scpt; path = make/V2Make.scpt; sourceTree = ""; }; + 9DD31B1422FE661A00F65886 /* colourgo.xcscheme */ = {isa = PBXFileReference; lastKnownFileType = text.xml; name = colourgo.xcscheme; path = colourgo.xcodeproj/xcshareddata/xcschemes/colourgo.xcscheme; sourceTree = SOURCE_ROOT; }; + 9DD31B2422FE664100F65886 /* README.md */ = {isa = PBXFileReference; lastKnownFileType = net.daringfireball.markdown; path = README.md; sourceTree = ""; }; + 9DD31B2522FE664D00F65886 /* LICENSE */ = {isa = PBXFileReference; lastKnownFileType = text; path = LICENSE; sourceTree = ""; }; + 9DD31B2622FE666F00F65886 /* main.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = main.c; sourceTree = ""; }; + 9DD31B2722FE666F00F65886 /* mouseWrapper.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = mouseWrapper.h; sourceTree = ""; }; + 9DD31B2822FE666F00F65886 /* game.s */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.asm; path = game.s; sourceTree = ""; }; + 9DD31B2922FE666F00F65886 /* game.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = game.h; sourceTree = ""; }; + 9DD31B2A22FE666F00F65886 /* mouseWrapper.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = mouseWrapper.c; sourceTree = ""; }; + 9DD31B2B22FE666F00F65886 /* machine.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = machine.c; sourceTree = ""; }; + 9DD31B2C22FE666F00F65886 /* vbl.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = vbl.h; sourceTree = ""; }; + 9DD31B2D22FE666F00F65886 /* vbl.s */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.asm; path = vbl.s; sourceTree = ""; }; + 9DD31B2E22FE667000F65886 /* machine.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = machine.h; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ - 9D55075C20DA0B6800B71EFD /* Frameworks */ = { + 9DD31AF322FE661A00F65886 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 9D55076820DA0B6800B71EFD /* AppleCommander.jar in Frameworks */, - 9D3A3EC121783A9B00BE74C7 /* bastokenizer-tools-bt-0.2.0.jar in Frameworks */, + 9DD31AFE22FE661A00F65886 /* AppleCommander.jar in Frameworks */, + 9DD31B0022FE661A00F65886 /* bastokenizer-tools-bt-0.2.0.jar in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ - 9D55075520DA0B6800B71EFD = { + 9DD31AE722FE661A00F65886 = { isa = PBXGroup; children = ( - 9D55078220DA0B9300B71EFD /* README.md */, - 9D55076120DA0B6800B71EFD /* colourgo */, - 9D55076020DA0B6800B71EFD /* Products */, + 9DD31B2422FE664100F65886 /* README.md */, + 9DD31B2522FE664D00F65886 /* LICENSE */, + 9DD31AF722FE661A00F65886 /* colourgo */, + 9DD31AEF22FE661A00F65886 /* Products */, ); sourceTree = ""; }; - 9D55076020DA0B6800B71EFD /* Products */ = { + 9DD31AEF22FE661A00F65886 /* Products */ = { isa = PBXGroup; children = ( - 9D55075F20DA0B6800B71EFD /* doNotBuild */, + 9DD31AEE22FE661A00F65886 /* colourgo */, + 9DD31AF122FE661A00F65886 /* colourgo.dsk */, + 9DD31AF622FE661A00F65886 /* doNotBuild */, ); name = Products; sourceTree = ""; }; - 9D55076120DA0B6800B71EFD /* colourgo */ = { + 9DD31AF722FE661A00F65886 /* colourgo */ = { isa = PBXGroup; children = ( - 9D55076420DA0B6800B71EFD /* Makefile */, - 9D55078620DA0BDB00B71EFD /* game.h */, - 9D55078720DA0BDC00B71EFD /* game.s */, - 9D55078A20DA0BDC00B71EFD /* machine.c */, - 9D55078320DA0BDB00B71EFD /* machine.h */, - 9D55078B20DA0BDC00B71EFD /* main.c */, - 9D55078920DA0BDC00B71EFD /* mouseWrapper.c */, - 9D55078420DA0BDB00B71EFD /* mouseWrapper.h */, - 9D55078820DA0BDC00B71EFD /* vbl.h */, - 9D55078520DA0BDB00B71EFD /* vbl.s */, - 9D55076620DA0B6800B71EFD /* make */, - 9D55077720DA0B6900B71EFD /* Supporting Files */, + 9DD31B2922FE666F00F65886 /* game.h */, + 9DD31B2822FE666F00F65886 /* game.s */, + 9DD31B2B22FE666F00F65886 /* machine.c */, + 9DD31B2E22FE667000F65886 /* machine.h */, + 9DD31B2622FE666F00F65886 /* main.c */, + 9DD31B2A22FE666F00F65886 /* mouseWrapper.c */, + 9DD31B2722FE666F00F65886 /* mouseWrapper.h */, + 9DD31B2C22FE666F00F65886 /* vbl.h */, + 9DD31B2D22FE666F00F65886 /* vbl.s */, + 9DD31AFA22FE661A00F65886 /* Makefile */, + 9DD31AFC22FE661A00F65886 /* make */, + 9DD31B1322FE661A00F65886 /* Supporting Files */, ); path = colourgo; sourceTree = ""; }; - 9D55076620DA0B6800B71EFD /* make */ = { + 9DD31AFC22FE661A00F65886 /* make */ = { isa = PBXGroup; children = ( - 9D55076720DA0B6800B71EFD /* AppleCommander.jar */, - 9D3A3EBF21783A9B00BE74C7 /* bastokenizer-tools-bt-0.2.0.jar */, - 9D3A3EC021783A9B00BE74C7 /* bt */, - 9D55076920DA0B6800B71EFD /* createDiskImage */, - 9D55076B20DA0B6900B71EFD /* DevApple.vii */, - 9D55076D20DA0B6900B71EFD /* dos33_template.dsk */, - 9D45ABB520E1E50D008C3F16 /* errorFilter.sh */, - 9D55076F20DA0B6900B71EFD /* head.mk */, - 9D55077120DA0B6900B71EFD /* prodos_template.dsk */, - 9D55077320DA0B6900B71EFD /* tail.mk */, - 9D55077520DA0B6900B71EFD /* V2Make.scpt */, + 9DD31AFD22FE661A00F65886 /* AppleCommander.jar */, + 9DD31AFF22FE661A00F65886 /* bastokenizer-tools-bt-0.2.0.jar */, + 9DD31B0122FE661A00F65886 /* createDiskImage */, + 9DD31B0322FE661A00F65886 /* bt */, + 9DD31B0522FE661A00F65886 /* DevApple.vii */, + 9DD31B0722FE661A00F65886 /* dos33_template.dsk */, + 9DD31B0922FE661A00F65886 /* errorFilter.sh */, + 9DD31B0B22FE661A00F65886 /* head.mk */, + 9DD31B0D22FE661A00F65886 /* prodos_template.dsk */, + 9DD31B0F22FE661A00F65886 /* tail.mk */, + 9DD31B1122FE661A00F65886 /* V2Make.scpt */, ); name = make; sourceTree = ""; }; - 9D55077720DA0B6900B71EFD /* Supporting Files */ = { + 9DD31B1322FE661A00F65886 /* Supporting Files */ = { isa = PBXGroup; children = ( - 9D55077820DA0B6900B71EFD /* colourgo.xcscheme */, + 9DD31B1422FE661A00F65886 /* colourgo.xcscheme */, ); name = "Supporting Files"; sourceTree = ""; @@ -150,10 +160,10 @@ /* End PBXGroup section */ /* Begin PBXLegacyTarget section */ - 9D55075A20DA0B6800B71EFD /* colourgo */ = { + 9DD31AEC22FE661A00F65886 /* colourgo */ = { isa = PBXLegacyTarget; buildArgumentsString = "-C colourgo $(ACTION)"; - buildConfigurationList = 9D55077C20DA0B6900B71EFD /* Build configuration list for PBXLegacyTarget "colourgo" */; + buildConfigurationList = 9DD31B1822FE661A00F65886 /* Build configuration list for PBXLegacyTarget "colourgo" */; buildPhases = ( ); buildToolPath = /usr/bin/make; @@ -166,13 +176,41 @@ /* End PBXLegacyTarget section */ /* Begin PBXNativeTarget section */ - 9D55075E20DA0B6800B71EFD /* doNotBuild */ = { + 9DD31AED22FE661A00F65886 /* Binary */ = { isa = PBXNativeTarget; - buildConfigurationList = 9D55077F20DA0B6900B71EFD /* Build configuration list for PBXNativeTarget "doNotBuild" */; + buildConfigurationList = 9DD31B1B22FE661A00F65886 /* Build configuration list for PBXNativeTarget "Binary" */; buildPhases = ( - 9D55075B20DA0B6800B71EFD /* Sources */, - 9D55075C20DA0B6800B71EFD /* Frameworks */, - 9D55075D20DA0B6800B71EFD /* CopyFiles */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = Binary; + productName = Binary; + productReference = 9DD31AEE22FE661A00F65886 /* colourgo */; + productType = "com.apple.product-type.tool"; + }; + 9DD31AF022FE661A00F65886 /* DiskImage */ = { + isa = PBXNativeTarget; + buildConfigurationList = 9DD31B1E22FE661A00F65886 /* Build configuration list for PBXNativeTarget "DiskImage" */; + buildPhases = ( + ); + buildRules = ( + ); + dependencies = ( + ); + name = DiskImage; + productName = DiskImage; + productReference = 9DD31AF122FE661A00F65886 /* colourgo.dsk */; + productType = "com.apple.product-type.tool"; + }; + 9DD31AF522FE661A00F65886 /* doNotBuild */ = { + isa = PBXNativeTarget; + buildConfigurationList = 9DD31B2122FE661A00F65886 /* Build configuration list for PBXNativeTarget "doNotBuild" */; + buildPhases = ( + 9DD31AF222FE661A00F65886 /* Sources */, + 9DD31AF322FE661A00F65886 /* Frameworks */, + 9DD31AF422FE661A00F65886 /* CopyFiles */, ); buildRules = ( ); @@ -180,62 +218,70 @@ ); name = doNotBuild; productName = doNotBuild; - productReference = 9D55075F20DA0B6800B71EFD /* doNotBuild */; + productReference = 9DD31AF622FE661A00F65886 /* doNotBuild */; productType = "com.apple.product-type.tool"; }; /* End PBXNativeTarget section */ /* Begin PBXProject section */ - 9D55075620DA0B6800B71EFD /* Project object */ = { + 9DD31AE822FE661A00F65886 /* Project object */ = { isa = PBXProject; attributes = { - LastUpgradeCheck = 0940; + LastUpgradeCheck = 1030; ORGANIZATIONNAME = "Jeremy Rand"; TargetAttributes = { - 9D55075A20DA0B6800B71EFD = { - CreatedOnToolsVersion = 9.4.1; + 9DD31AEC22FE661A00F65886 = { + CreatedOnToolsVersion = 10.3; }; - 9D55075E20DA0B6800B71EFD = { - CreatedOnToolsVersion = 9.4.1; + 9DD31AED22FE661A00F65886 = { + CreatedOnToolsVersion = 10.3; + }; + 9DD31AF022FE661A00F65886 = { + CreatedOnToolsVersion = 10.3; + }; + 9DD31AF522FE661A00F65886 = { + CreatedOnToolsVersion = 10.3; }; }; }; - buildConfigurationList = 9D55075920DA0B6800B71EFD /* Build configuration list for PBXProject "colourgo" */; + buildConfigurationList = 9DD31AEB22FE661A00F65886 /* Build configuration list for PBXProject "colourgo" */; compatibilityVersion = "Xcode 9.3"; developmentRegion = en; hasScannedForEncodings = 0; knownRegions = ( en, ); - mainGroup = 9D55075520DA0B6800B71EFD; - productRefGroup = 9D55076020DA0B6800B71EFD /* Products */; + mainGroup = 9DD31AE722FE661A00F65886; + productRefGroup = 9DD31AEF22FE661A00F65886 /* Products */; projectDirPath = ""; projectRoot = ""; targets = ( - 9D55075A20DA0B6800B71EFD /* colourgo */, - 9D55075E20DA0B6800B71EFD /* doNotBuild */, + 9DD31AEC22FE661A00F65886 /* colourgo */, + 9DD31AED22FE661A00F65886 /* Binary */, + 9DD31AF022FE661A00F65886 /* DiskImage */, + 9DD31AF522FE661A00F65886 /* doNotBuild */, ); }; /* End PBXProject section */ /* Begin PBXSourcesBuildPhase section */ - 9D55075B20DA0B6800B71EFD /* Sources */ = { + 9DD31AF222FE661A00F65886 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - 9D55078C20DA0BDC00B71EFD /* vbl.s in Sources */, - 9D55078E20DA0BDC00B71EFD /* mouseWrapper.c in Sources */, - 9D55079020DA0BDC00B71EFD /* main.c in Sources */, - 9D55078F20DA0BDC00B71EFD /* machine.c in Sources */, - 9D55076520DA0B6800B71EFD /* Makefile in Sources */, - 9D55078D20DA0BDC00B71EFD /* game.s in Sources */, + 9DD31B3322FE667000F65886 /* vbl.s in Sources */, + 9DD31B2F22FE667000F65886 /* main.c in Sources */, + 9DD31B3122FE667000F65886 /* mouseWrapper.c in Sources */, + 9DD31B3222FE667000F65886 /* machine.c in Sources */, + 9DD31AFB22FE661A00F65886 /* Makefile in Sources */, + 9DD31B3022FE667000F65886 /* game.s in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXSourcesBuildPhase section */ /* Begin XCBuildConfiguration section */ - 9D55077A20DA0B6900B71EFD /* Debug */ = { + 9DD31B1622FE661A00F65886 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; @@ -285,12 +331,13 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - MTL_ENABLE_DEBUG_INFO = YES; + MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; + MTL_FAST_MATH = YES; ONLY_ACTIVE_ARCH = YES; }; name = Debug; }; - 9D55077B20DA0B6900B71EFD /* Release */ = { + 9DD31B1722FE661A00F65886 /* Release */ = { isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; @@ -335,10 +382,11 @@ GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; MTL_ENABLE_DEBUG_INFO = NO; + MTL_FAST_MATH = YES; }; name = Release; }; - 9D55077D20DA0B6900B71EFD /* Debug */ = { + 9DD31B1922FE661A00F65886 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { CODE_SIGN_STYLE = Automatic; @@ -353,7 +401,7 @@ }; name = Debug; }; - 9D55077E20DA0B6900B71EFD /* Release */ = { + 9DD31B1A22FE661A00F65886 /* Release */ = { isa = XCBuildConfiguration; buildSettings = { CODE_SIGN_STYLE = Automatic; @@ -365,24 +413,66 @@ }; name = Release; }; - 9D55078020DA0B6900B71EFD /* Debug */ = { + 9DD31B1C22FE661A00F65886 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_STYLE = Automatic; + DEVELOPMENT_TEAM = VD9FGCW36C; + PRODUCT_NAME = colourgo; + }; + name = Debug; + }; + 9DD31B1D22FE661A00F65886 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_STYLE = Automatic; + DEVELOPMENT_TEAM = VD9FGCW36C; + PRODUCT_NAME = colourgo; + }; + name = Release; + }; + 9DD31B1F22FE661A00F65886 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_STYLE = Automatic; + DEVELOPMENT_TEAM = VD9FGCW36C; + PRODUCT_NAME = colourgo.dsk; + }; + name = Debug; + }; + 9DD31B2022FE661A00F65886 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_STYLE = Automatic; + DEVELOPMENT_TEAM = VD9FGCW36C; + PRODUCT_NAME = colourgo.dsk; + }; + name = Release; + }; + 9DD31B2222FE661A00F65886 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { CODE_SIGN_STYLE = Automatic; DEVELOPMENT_TEAM = VD9FGCW36C; GCC_PREPROCESSOR_DEFINITIONS = "__fastcall__=\"\""; - HEADER_SEARCH_PATHS = /usr/local/lib/cc65/include; + HEADER_SEARCH_PATHS = ( + $TEMP_ROOT/colourgo.build/$CONFIGURATION/colourgo.build/DerivedSources, + /usr/local/share/cc65/include, + ); PRODUCT_NAME = doNotBuild; }; name = Debug; }; - 9D55078120DA0B6900B71EFD /* Release */ = { + 9DD31B2322FE661A00F65886 /* Release */ = { isa = XCBuildConfiguration; buildSettings = { CODE_SIGN_STYLE = Automatic; DEVELOPMENT_TEAM = VD9FGCW36C; GCC_PREPROCESSOR_DEFINITIONS = "__fastcall__=\"\""; - HEADER_SEARCH_PATHS = /usr/local/lib/cc65/include; + HEADER_SEARCH_PATHS = ( + $TEMP_ROOT/colourgo.build/$CONFIGURATION/colourgo.build/DerivedSources, + /usr/local/share/cc65/include, + ); PRODUCT_NAME = doNotBuild; }; name = Release; @@ -390,34 +480,52 @@ /* End XCBuildConfiguration section */ /* Begin XCConfigurationList section */ - 9D55075920DA0B6800B71EFD /* Build configuration list for PBXProject "colourgo" */ = { + 9DD31AEB22FE661A00F65886 /* Build configuration list for PBXProject "colourgo" */ = { isa = XCConfigurationList; buildConfigurations = ( - 9D55077A20DA0B6900B71EFD /* Debug */, - 9D55077B20DA0B6900B71EFD /* Release */, + 9DD31B1622FE661A00F65886 /* Debug */, + 9DD31B1722FE661A00F65886 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - 9D55077C20DA0B6900B71EFD /* Build configuration list for PBXLegacyTarget "colourgo" */ = { + 9DD31B1822FE661A00F65886 /* Build configuration list for PBXLegacyTarget "colourgo" */ = { isa = XCConfigurationList; buildConfigurations = ( - 9D55077D20DA0B6900B71EFD /* Debug */, - 9D55077E20DA0B6900B71EFD /* Release */, + 9DD31B1922FE661A00F65886 /* Debug */, + 9DD31B1A22FE661A00F65886 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - 9D55077F20DA0B6900B71EFD /* Build configuration list for PBXNativeTarget "doNotBuild" */ = { + 9DD31B1B22FE661A00F65886 /* Build configuration list for PBXNativeTarget "Binary" */ = { isa = XCConfigurationList; buildConfigurations = ( - 9D55078020DA0B6900B71EFD /* Debug */, - 9D55078120DA0B6900B71EFD /* Release */, + 9DD31B1C22FE661A00F65886 /* Debug */, + 9DD31B1D22FE661A00F65886 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 9DD31B1E22FE661A00F65886 /* Build configuration list for PBXNativeTarget "DiskImage" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 9DD31B1F22FE661A00F65886 /* Debug */, + 9DD31B2022FE661A00F65886 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 9DD31B2122FE661A00F65886 /* Build configuration list for PBXNativeTarget "doNotBuild" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 9DD31B2222FE661A00F65886 /* Debug */, + 9DD31B2322FE661A00F65886 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; /* End XCConfigurationList section */ }; - rootObject = 9D55075620DA0B6800B71EFD /* Project object */; + rootObject = 9DD31AE822FE661A00F65886 /* Project object */; } diff --git a/colourgo.xcodeproj/project.xcworkspace/xcuserdata/jrand.xcuserdatad/UserInterfaceState.xcuserstate b/colourgo.xcodeproj/project.xcworkspace/xcuserdata/jrand.xcuserdatad/UserInterfaceState.xcuserstate index 8655fb8f6ab80e729e8a7d02e075c1a53d14c777..8ee34f06b6e15f1ef03f991fdc7b9d72282a9ce7 100644 GIT binary patch literal 14373 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 S$qXZYlEWRzL&ryY%l`nfzRceM literal 25920 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 diff --git a/colourgo.xcodeproj/xcshareddata/xcschemes/colourgo.xcscheme b/colourgo.xcodeproj/xcshareddata/xcschemes/colourgo.xcscheme index cc134dd..29b74d1 100644 --- a/colourgo.xcodeproj/xcshareddata/xcschemes/colourgo.xcscheme +++ b/colourgo.xcodeproj/xcshareddata/xcschemes/colourgo.xcscheme @@ -64,6 +64,18 @@ argument = "$PROJECT_DIR/colourgo" isEnabled = "YES"> + + + + + + diff --git a/colourgo.xcodeproj/xcuserdata/jrand.xcuserdatad/xcschemes/xcschememanagement.plist b/colourgo.xcodeproj/xcuserdata/jrand.xcuserdatad/xcschemes/xcschememanagement.plist index d7c8c05..66fdf21 100644 --- a/colourgo.xcodeproj/xcuserdata/jrand.xcuserdatad/xcschemes/xcschememanagement.plist +++ b/colourgo.xcodeproj/xcuserdata/jrand.xcuserdatad/xcschemes/xcschememanagement.plist @@ -4,15 +4,25 @@ SchemeUserState + Binary.xcscheme_^#shared#^_ + + orderHint + 1 + + DiskImage.xcscheme_^#shared#^_ + + orderHint + 2 + colourgo.xcscheme_^#shared#^_ orderHint 0 - doNotBuild.xcscheme + doNotBuild.xcscheme_^#shared#^_ orderHint - 1 + 3 diff --git a/colourgo/Makefile b/colourgo/Makefile index 1909d3b..18a1b6c 100644 --- a/colourgo/Makefile +++ b/colourgo/Makefile @@ -52,7 +52,8 @@ START_ADDR = 6000 # will only produce 8-bit code. # Add any other directories where you are putting C or assembly source -# files to this list: +# files to this list. Note that if you are generating source files into +# $(GENDIR), you should add $(GENDIR) to SRCDIRS here: SRCDIRS+= # If you have a non-standard cc65 install, you may need to change @@ -236,6 +237,9 @@ COPYDIRS= # files for example. You can generate data files. Whatever you # might need. # +# You should generate these files in the $(GENDIR) directory or +# within a subdirectory under $(GENDIR) which you create yourself. +# # All of your commands associated with a rule _must_ start with a tab # character. Xcode makes it a bit tough to type a tab character by # default. Press option-tab within Xcode to insert a tab character. diff --git a/colourgo/make/V2Make.scpt b/colourgo/make/V2Make.scpt index c502e392eee765263f8b7d039d73e77b656c3f6c..35fa69b5afe27d9a1273e486a392cb5e4dd3caef 100644 GIT binary patch delta 468 zcmYjLJxjw-6g{y^v582#IYq>Rh`vpvlS-7L7Idf-MC3I|+tiqZmqe>eSNHq{K@bGN z|I)GGKX7*Pydty-$-Vb{+;iXSFPoo}O38RF7vGiB;-^wBw$0U=ae^fnW=pz3l*Q@5 zZaU;^g*0#XZ8yi_vwRh(ESI5ub4}BhXdEU<7`QSE;wWv*$)aiPovpz{3lc5@M92^$ z#Q-*%a8N~k(JJQFg?3ja32HC|zAjhZO5+Ix+Fas8@h>oBm0azyKW9jHHY+@FcBp#b z7cw@PIRrX9C8pZ{=M_C#<54Ynpd_vp+LLovpLK_*$KJ!R!xHj+CON=8<24ntPtfD6 znGumY&LbiMM^pyH^??_3>+qZr+3b9MVwZEj7+2Rfj;&sReArI!}d>VXBBx(WuY-|6(@4_m-=F#rGn delta 628 zcmaKp&ui2`6vw~2y;L>@w>=7?R=r62lG!!c9YNep8cNU0UP`GklZ`3qB<9D0B9vZ= z_xurpAPD|19t-{l-V{&1))hpsZ+P(Dcixwo&&<0AA0B@C(p&4kU2nhk_SgZ_s=A~X#uLgExaU@#KeaW!Op%ALu*ccq)Gd#t*!IRysTWhG#3 z6Ma%NPs_Rqvpa_eJ7G}(ThO#ZBSxbY8YO~+HM@?DX7n!`UCXvY`}}(2{aSPm!W=m= zG&n(wiu);2B-mq0!ZAvO&`@0aJQuCzH0rC_2?|~rJ3Zc2?9}WfexE ' + echo USAGE: $0 ' ' exit 1 fi @@ -318,7 +318,7 @@ do # to copy to the disk image. if [ -f "$ITEM" ] && echo "$ITEM" | grep '\.tok$' > /dev/null then - DESTFILE=`echo "$ITEM" | sed 's/\.tok$//'` + DESTFILE=`basename "$ITEM" | sed 's/\.tok$//'` "$JAVA" -jar "$APPLECOMMANDER" -p "$DISKIMAGE" "$DESTFILE" "$BASICFILETYPE" 0x801 < "$ITEM" continue fi @@ -363,9 +363,9 @@ do # If the file type is text, convert the line feeds to carriage return if [ $FILETYPE = txt ] || [ $FILETYPE = T ] then - tr '\n' '\r' < $FILE | "$JAVA" -jar "$OLDPWD/$APPLECOMMANDER" $TRANSFERARG "$OLDPWD/$DISKIMAGE" "$DESTFILE" $FILETYPE + tr '\n' '\r' < $FILE | "$JAVA" -jar "$OLDPWD/$APPLECOMMANDER" $TRANSFERARG "$DISKIMAGE" "$DESTFILE" $FILETYPE else - "$JAVA" -jar "$OLDPWD/$APPLECOMMANDER" $TRANSFERARG "$OLDPWD/$DISKIMAGE" "$DESTFILE" $FILETYPE < $FILE + "$JAVA" -jar "$OLDPWD/$APPLECOMMANDER" $TRANSFERARG "$DISKIMAGE" "$DESTFILE" $FILETYPE < $FILE fi done diff --git a/colourgo/make/errorFilter.sh b/colourgo/make/errorFilter.sh index 30259c1..b041ac2 100755 --- a/colourgo/make/errorFilter.sh +++ b/colourgo/make/errorFilter.sh @@ -35,7 +35,7 @@ while () { $file =~ s/\.s$/.c/; } - $_ = "$pwd/$file:$lineno:0: Error: $unresolvedRefError"; + $_ = "$pwd/$file:$lineno:0: error: $unresolvedRefError"; } else { $unresolvedRefError = undef; } @@ -49,7 +49,7 @@ while () { my $lineno = $2; my $error = $3; - $_ = "$pwd/$file:$lineno:0:$error"; + $_ = "$pwd/$file:$lineno:0: error: $error"; } print STDERR "$_\n"; } diff --git a/colourgo/make/head.mk b/colourgo/make/head.mk index 28ebc58..4fcc688 100644 --- a/colourgo/make/head.mk +++ b/colourgo/make/head.mk @@ -24,20 +24,47 @@ CC65=$(CC65_BIN)/cc65 CO65=$(CC65_BIN)/co65 MERLIN_DIR=/usr/local -MERLIN_BIN=$(MERLIN_DIR)/bin/Merlin32 -MERLIN_LIB=$(MERLIN_DIR)/lib/Merlin +export MERLIN_BIN=$(MERLIN_DIR)/bin/Merlin32 +export MERLIN_LIB=$(MERLIN_DIR)/lib/Merlin +MERLIN_ASM=make/merlin-asm AC=make/AppleCommander.jar SRCDIRS=. +# Check for Xcode build variables for the locations of build outputs and fall back +# to the current directory if not set. +ifeq ($(OBJECT_FILE_DIR),) + OBJDIR=. +else + export OBJECT_FILE_DIR + OBJDIR=$(OBJECT_FILE_DIR) +endif + +ifeq ($(DERIVED_SOURCES_DIR),) + GENDIR=. +else + export DERIVED_SOURCES_DIR + GENDIR=$(DERIVED_SOURCES_DIR) +endif + +ifeq ($(TARGET_BUILD_DIR),) + TARGETDIR=. +else + export TARGET_BUILD_DIR + TARGETDIR=$(TARGET_BUILD_DIR) +endif + + MACHINE=apple2 CPU=6502 CFLAGS= ASMFLAGS= LDFLAGS= DRIVERS= -DRVDIR=drivers +DRVDIR=$(GENDIR)/drivers + +MKDIR=mkdir -p XCODE_PATH=/Applications/Xcode.app XCODE_INFO=$(XCODE_PATH)/Contents/Info.plist diff --git a/colourgo/make/tail.mk b/colourgo/make/tail.mk index fd961e5..3d6256c 100644 --- a/colourgo/make/tail.mk +++ b/colourgo/make/tail.mk @@ -14,12 +14,14 @@ BUILD_TYPE := $(shell if echo $(MACHINE) | grep -q -- -basic; then echo basic; e CWD=$(shell pwd) -DISKIMAGE=$(PGM).dsk +DISKIMAGE=$(TARGETDIR)/$(PGM).dsk EXECCMD= -BASIC_SRCS=$(patsubst ./%, %, $(wildcard $(addsuffix /*.bas, $(SRCDIRS)))) -BASIC_OBJS=$(BASIC_SRCS:.bas=.tok) +vpath $(GENDIR) + +BASIC_SRCS=$(patsubst $(GENDIR)/%, %, $(patsubst ./%, %, $(wildcard $(addsuffix /*.bas, $(SRCDIRS))))) +BASIC_OBJS=$(patsubst %.bas, $(TARGETDIR)/%.tok, $(BASIC_SRCS)) ifeq ($(BUILD_TYPE),cc65) export PATH := $(PATH):$(CC65_BIN) @@ -33,50 +35,37 @@ ifeq ($(BUILD_TYPE),cc65) BASE_MACHINE = apple2enh endif - CC65_VERSION := $(shell $(CC65) --version 2>&1 | grep '^cc65 V') + export CC65_SUPPORTS_APPLE_SINGLE=1 + CC65_CREATE_DEP_ARG=--create-dep $(@:.o=.u) + CC65_LIST_ARG=-l $(@:.o=.lst) + CC65_DRV_DIR=$(CC65_HOME)/target/$(BASE_MACHINE)/drv - ifeq ($(CC65_VERSION),cc65 V2.13.3) - export CC65_SUPPORTS_APPLE_SINGLE=0 - CC65_CREATE_DEP_ARG=--create-dep - CC65_LIST_ARG=-l - CC65_DRV_DIR=$(CC65_HOME) - - MACHCONFIG= -t $(BASE_MACHINE) - ifeq ($(filter $(MACHINE), apple2 apple2enh),) - MACHCONFIG += -C $(MACHINE).cfg - endif + MACHCONFIG= -t $(BASE_MACHINE) + ifneq ($(filter $(MACHINE), apple2-system apple2enh-system),) + MACHCONFIG += -C $(BASE_MACHINE)-system.cfg else - export CC65_SUPPORTS_APPLE_SINGLE=1 - CC65_CREATE_DEP_ARG=--create-dep $(@:.o=.u) - CC65_LIST_ARG=-l $(@:.o=.lst) - CC65_DRV_DIR=$(CC65_HOME)/target/$(BASE_MACHINE)/drv - - MACHCONFIG= -t $(BASE_MACHINE) - ifneq ($(filter $(MACHINE), apple2-system apple2enh-system),) - MACHCONFIG += -C $(BASE_MACHINE)-system.cfg + ifeq ($(PROJECT_TYPE),ca65) + MACHCONFIG += -C $(BASE_MACHINE)-asm.cfg + LDFLAGS += -u __EXEHDR__ else - ifeq ($(PROJECT_TYPE),ca65) - MACHCONFIG += -C $(BASE_MACHINE)-asm.cfg - LDFLAGS += -u __EXEHDR__ - else - MACHCONFIG += -C $(BASE_MACHINE).cfg - endif - endif + MACHCONFIG += -C $(BASE_MACHINE).cfg + endif endif + CFLAGS+=-I $(GENDIR) ifneq ($(DRIVERS),) SRCDIRS+=$(DRVDIR) endif - C_SRCS=$(patsubst ./%, %, $(wildcard $(addsuffix /*.c, $(SRCDIRS)))) - C_OBJS=$(C_SRCS:.c=.o) - C_DEPS=$(C_SRCS:.c=.u) + C_SRCS=$(patsubst $(GENDIR)/%, %, $(patsubst ./%, %, $(wildcard $(addsuffix /*.c, $(SRCDIRS))))) + C_OBJS=$(patsubst %.c, $(OBJDIR)/%.o, $(C_SRCS)) + C_DEPS=$(patsubst %.c, $(OBJDIR)/%.u, $(C_SRCS)) - ASM_SRCS=$(patsubst ./%, %, $(wildcard $(addsuffix /*.s, $(SRCDIRS)))) - ASM_OBJS=$(ASM_SRCS:.s=.o) - ASM_LSTS=$(ASM_SRCS:.s=.lst) + ASM_SRCS=$(patsubst $(GENDIR)/%, %, $(patsubst ./%, %, $(wildcard $(addsuffix /*.s, $(SRCDIRS))))) + ASM_OBJS=$(patsubst %.s, $(OBJDIR)/%.o, $(ASM_SRCS)) + ASM_LSTS=$(patsubst %.s, $(OBJDIR)/%.lst, $(ASM_SRCS)) - MAPFILE=$(PGM).map + MAPFILE=$(TARGETDIR)/$(PGM).map ifneq ($(START_ADDR),) # If the MACHINE is set to an option which does not support a variable @@ -113,7 +102,7 @@ endif ifeq ($(BUILD_TYPE),merlin) ASM_SRCS=$(patsubst ./%, %, $(wildcard $(addsuffix /*.s, $(SRCDIRS)))) - MAPFILE=_Output.txt + MAPFILE=$(TARGETDIR)/_Output.txt EXECCMD=$(shell echo brun $(PGM) | tr '[a-z]' '[A-Z]') endif @@ -122,7 +111,7 @@ ifeq ($(BUILD_TYPE),basic) EXECCMD=$(shell echo run $(PGM) | tr '[a-z]' '[A-Z]') endif -OBJS=$(C_OBJS) $(ASM_OBJS) $(BASIC_OBJS) +OBJS=$(C_OBJS) $(ASM_OBJS) ALLTARGET=$(DISKIMAGE) @@ -131,13 +120,14 @@ ALLTARGET=$(DISKIMAGE) build: $(ALLTARGET) -$(DISKIMAGE): $(PGM) - make/createDiskImage $(AC) $(MACHINE) "$(DISKIMAGE)" "$(PGM)" "$(START_ADDR)" $(BASIC_OBJS) $(COPYDIRS) +$(DISKIMAGE): $(TARGETDIR)/$(PGM) $(BASIC_OBJS) + make/createDiskImage $(AC) $(MACHINE) "$(DISKIMAGE)" "$(TARGETDIR)/$(PGM)" "$(START_ADDR)" $(BASIC_OBJS) $(COPYDIRS) execute: $(DISKIMAGE) - osascript make/V2Make.scpt "$(CWD)" "$(PGM)" "$(CWD)/make/DevApple.vii" "$(EXECCMD)" + osascript make/V2Make.scpt "$(TARGETDIR)" "$(PGM)" "$(CWD)/make/DevApple.vii" "$(EXECCMD)" -%.tok: %.bas +$(TARGETDIR)/%.tok: %.bas + $(MKDIR) `dirname $@` make/bt $< $(BASICFLAGS) -o $@ ifneq ($(DRIVERS),) @@ -150,7 +140,7 @@ cleandrivers: endif clean: genclean cleandrivers - rm -f "$(PGM)" $(OBJS) $(C_DEPS) $(MAPFILE) $(ASM_LSTS) "$(DISKIMAGE)" + rm -f "$(TARGETDIR)/$(PGM)" $(OBJS) $(BASIC_OBJS) $(C_DEPS) $(MAPFILE) $(ASM_LSTS) "$(DISKIMAGE)" cleanMacCruft: rm -rf pkg @@ -165,10 +155,10 @@ xcodefix: ifeq ($(BUILD_TYPE),basic) # Build rules for BASIC projects -$(PGM): $(OBJS) - cp $(PGM).tok $(PGM) +$(TARGETDIR)/$(PGM): $(BASIC_OBJS) + cp $(TARGETDIR)/$(PGM).tok $(TARGETDIR)/$(PGM) -$(OBJS): Makefile +$(BASIC_OBJS): Makefile endif @@ -177,9 +167,10 @@ endif ifeq ($(BUILD_TYPE),merlin) # Build rules for Merlin projects -$(PGM): $(ASM_SRCS) Makefile - $(MERLIN_BIN) -V $(MERLIN_LIB) linkscript.s - rm -f _FileInformation.txt +$(TARGETDIR)/$(PGM): $(ASM_SRCS) Makefile + $(MKDIR) $(TARGETDIR) + rm -f $(TARGETDIR)/$(PGM) + $(MERLIN_ASM) linkscript.s $(PGM) $(TARGETDIR)/$(PGM) endif @@ -187,17 +178,30 @@ endif ifeq ($(BUILD_TYPE),cc65) # Build rules for cc65 projects -$(PGM): $(OBJS) - make/errorFilter.sh $(CL65) $(MACHCONFIG) --mapfile $(MAPFILE) $(LDFLAGS) -o "$(PGM)" $(OBJS) +$(TARGETDIR)/$(PGM): $(OBJS) + $(MKDIR) `dirname $@` + make/errorFilter.sh $(CL65) $(MACHCONFIG) --mapfile $(MAPFILE) $(LDFLAGS) -o "$(TARGETDIR)/$(PGM)" $(OBJS) $(OBJS): Makefile -%.o: %.c +$(OBJDIR)/%.o: %.c + $(MKDIR) `dirname $@` make/errorFilter.sh $(CL65) $(MACHCONFIG) $(CFLAGS) $(CC65_CREATE_DEP_ARG) -c -o $@ $< sed -i .bak 's/\.s:/.o:/' $(@:.o=.u) rm -f $(@:.o=.u).bak -%.o: %.s +$(OBJDIR)/%.o: $(GENDIR)/%.c + $(MKDIR) `dirname $@` + make/errorFilter.sh $(CL65) $(MACHCONFIG) $(CFLAGS) $(CC65_CREATE_DEP_ARG) -c -o $@ $< + sed -i .bak 's/\.s:/.o:/' $(@:.o=.u) + rm -f $(@:.o=.u).bak + +$(OBJDIR)/%.o: %.s + $(MKDIR) `dirname $@` + make/errorFilter.sh $(CL65) $(MACHCONFIG) --cpu $(CPU) $(ASMFLAGS) $(CC65_LIST_ARG) -c -o $@ $< + +$(OBJDIR)/%.o: $(GENDIR)/%.s + $(MKDIR) `dirname $@` make/errorFilter.sh $(CL65) $(MACHCONFIG) --cpu $(CPU) $(ASMFLAGS) $(CC65_LIST_ARG) -c -o $@ $<