From 628963f505cd33633e375ec56b38f51b956b10c6 Mon Sep 17 00:00:00 2001 From: Jeremy Rand Date: Mon, 25 Jun 2018 23:08:05 -0400 Subject: [PATCH] Update the build engine to support capturing build errors in Xcode itself. --- CurtaSim.xcodeproj/project.pbxproj | 2 + .../UserInterfaceState.xcuserstate | Bin 28201 -> 29779 bytes CurtaSim/make/errorFilter.sh | 59 ++++++++++++++++++ CurtaSim/make/tail.mk | 6 +- 4 files changed, 64 insertions(+), 3 deletions(-) create mode 100755 CurtaSim/make/errorFilter.sh diff --git a/CurtaSim.xcodeproj/project.pbxproj b/CurtaSim.xcodeproj/project.pbxproj index 58edd5c..ea3012a 100644 --- a/CurtaSim.xcodeproj/project.pbxproj +++ b/CurtaSim.xcodeproj/project.pbxproj @@ -64,6 +64,7 @@ 9D24618F20D8B30C00227E1D /* curta.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = curta.c; sourceTree = ""; }; 9D24619020D8B30C00227E1D /* joystick.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = joystick.h; sourceTree = ""; }; 9D24619120D8B30C00227E1D /* curtaUI.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = curtaUI.c; sourceTree = ""; }; + 9D45ABB620E1E564008C3F16 /* errorFilter.sh */ = {isa = PBXFileReference; lastKnownFileType = text.script.sh; name = errorFilter.sh; path = make/errorFilter.sh; sourceTree = ""; }; 9D65A1BF20DCA472004268B7 /* LICENSE */ = {isa = PBXFileReference; lastKnownFileType = text; path = LICENSE; sourceTree = ""; }; /* End PBXFileReference section */ @@ -122,6 +123,7 @@ 9D24617020D8B2AE00227E1D /* createDiskImage */, 9D24617220D8B2AE00227E1D /* DevApple.vii */, 9D24617420D8B2AE00227E1D /* dos33_template.dsk */, + 9D45ABB620E1E564008C3F16 /* errorFilter.sh */, 9D24617620D8B2AE00227E1D /* head.mk */, 9D24617820D8B2AE00227E1D /* prodos_template.dsk */, 9D24617A20D8B2AE00227E1D /* tail.mk */, diff --git a/CurtaSim.xcodeproj/project.xcworkspace/xcuserdata/jrand.xcuserdatad/UserInterfaceState.xcuserstate b/CurtaSim.xcodeproj/project.xcworkspace/xcuserdata/jrand.xcuserdatad/UserInterfaceState.xcuserstate index acc0024029c5fd2fea4a20bbd546838208778b42..8f66c77c4341566de6808683488fc657872bb185 100644 GIT binary patch delta 13986 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 Q5PGkI?%u2K+qvfd0p)ZGp8x;= delta 12854 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 diff --git a/CurtaSim/make/errorFilter.sh b/CurtaSim/make/errorFilter.sh new file mode 100755 index 0000000..30259c1 --- /dev/null +++ b/CurtaSim/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/CurtaSim/make/tail.mk b/CurtaSim/make/tail.mk index 6463582..4d72c06 100644 --- a/CurtaSim/make/tail.mk +++ b/CurtaSim/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