From 1413a5838803e65af377df9138e65d761e6e18dd Mon Sep 17 00:00:00 2001 From: Jeremy Rand Date: Mon, 25 Jun 2018 23:04:48 -0400 Subject: [PATCH] Update the build engine to support capturing build errors in Xcode itself. --- apple2048.xcodeproj/project.pbxproj | 2 + .../UserInterfaceState.xcuserstate | Bin 18122 -> 30011 bytes apple2048/make/errorFilter.sh | 59 ++++++++++++++++++ apple2048/make/tail.mk | 6 +- 4 files changed, 64 insertions(+), 3 deletions(-) create mode 100755 apple2048/make/errorFilter.sh diff --git a/apple2048.xcodeproj/project.pbxproj b/apple2048.xcodeproj/project.pbxproj index 82ba620..93d6a89 100644 --- a/apple2048.xcodeproj/project.pbxproj +++ b/apple2048.xcodeproj/project.pbxproj @@ -45,6 +45,7 @@ /* End PBXCopyFilesBuildPhase section */ /* Begin PBXFileReference section */ + 9D45ABB420E1E477008C3F16 /* errorFilter.sh */ = {isa = PBXFileReference; lastKnownFileType = text.script.sh; name = errorFilter.sh; path = make/errorFilter.sh; sourceTree = ""; }; 9DD54F6220DA0A230088D191 /* doNotBuild */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = doNotBuild; sourceTree = BUILT_PRODUCTS_DIR; }; 9DD54F6720DA0A230088D191 /* Makefile */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.make; path = Makefile; sourceTree = ""; }; 9DD54F6A20DA0A230088D191 /* AppleCommander.jar */ = {isa = PBXFileReference; lastKnownFileType = archive.jar; name = AppleCommander.jar; path = make/AppleCommander.jar; sourceTree = ""; }; @@ -125,6 +126,7 @@ 9DD54F6C20DA0A230088D191 /* createDiskImage */, 9DD54F6E20DA0A230088D191 /* DevApple.vii */, 9DD54F7020DA0A230088D191 /* dos33_template.dsk */, + 9D45ABB420E1E477008C3F16 /* errorFilter.sh */, 9DD54F7220DA0A230088D191 /* head.mk */, 9DD54F7420DA0A230088D191 /* prodos_template.dsk */, 9DD54F7620DA0A230088D191 /* tail.mk */, diff --git a/apple2048.xcodeproj/project.xcworkspace/xcuserdata/jrand.xcuserdatad/UserInterfaceState.xcuserstate b/apple2048.xcodeproj/project.xcworkspace/xcuserdata/jrand.xcuserdatad/UserInterfaceState.xcuserstate index 0860730d6fddc5fbfd81673fe8362a2dbf657ec5..d6bb5c0565e923f1067e7ad58276268261488957 100644 GIT binary patch delta 16066 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 delta 7553 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 diff --git a/apple2048/make/errorFilter.sh b/apple2048/make/errorFilter.sh new file mode 100755 index 0000000..30259c1 --- /dev/null +++ b/apple2048/make/errorFilter.sh @@ -0,0 +1,59 @@ +#!/bin/sh + +PWD=`pwd` + +$* 2> /tmp/errors.$$ +RESULT=$? + +if [ $RESULT -ne 0 ] +then + exec /usr/bin/perl -x $0 $RESULT /tmp/errors.$$ "$PWD" +fi +exit 0 + +#!/usr/bin/perl + +use strict; + +my $result = $ARGV[0]; +my $filename = $ARGV[1]; +my $pwd = $ARGV[2]; + +open(FILE, "<$filename") || die "$0: Unable to open file, $!"; + +my $unresolvedRefError = undef; + +while () { + chomp; + + if (defined $unresolvedRefError) { + if (m/^ ([^(]+)\(([0-9]+)\)/) { + my $file = $1; + my $lineno = $2; + + if (! -f "$pwd/$file") { + $file =~ s/\.s$/.c/; + } + + $_ = "$pwd/$file:$lineno:0: Error: $unresolvedRefError"; + } else { + $unresolvedRefError = undef; + } + } + + if (m/^(Unresolved external .* referenced) in:/) { + $unresolvedRefError = $1; + $_ = ""; + } elsif (m/^([^(]+)\(([0-9]+)\):(.*)$/) { + my $file = $1; + my $lineno = $2; + my $error = $3; + + $_ = "$pwd/$file:$lineno:0:$error"; + } + print STDERR "$_\n"; +} + +unlink($filename); + +exit($result); diff --git a/apple2048/make/tail.mk b/apple2048/make/tail.mk index 6463582..4d72c06 100644 --- a/apple2048/make/tail.mk +++ b/apple2048/make/tail.mk @@ -95,7 +95,7 @@ cleanMacCruft: rm -rf pkg $(PGM): $(OBJS) - $(CL65) $(MACHCONFIG) --mapfile $(MAPFILE) $(LDFLAGS) -o "$(PGM)" $(OBJS) + make/errorFilter.sh $(CL65) $(MACHCONFIG) --mapfile $(MAPFILE) $(LDFLAGS) -o "$(PGM)" $(OBJS) $(DISKIMAGE): $(PGM) make/createDiskImage $(AC) $(MACHINE) "$(DISKIMAGE)" "$(PGM)" "$(START_ADDR)" $(COPYDIRS) @@ -104,12 +104,12 @@ execute: $(DISKIMAGE) osascript make/V2Make.scpt "$(CWD)" "$(PGM)" "$(CWD)/make/DevApple.vii" "$(EXECCMD)" %.o: %.c - $(CL65) $(MACHCONFIG) $(CFLAGS) --create-dep -c -o $@ $< + make/errorFilter.sh $(CL65) $(MACHCONFIG) $(CFLAGS) --create-dep -c -o $@ $< sed -i .bak 's/\.s:/.o:/' $(@:.o=.u) rm -f $(@:.o=.u).bak %.o: %.s - $(CL65) $(MACHCONFIG) --cpu $(CPU) $(ASMFLAGS) -l -c -o $@ $< + make/errorFilter.sh $(CL65) $(MACHCONFIG) --cpu $(CPU) $(ASMFLAGS) -l -c -o $@ $< $(OBJS): Makefile