Skip to content

Commit

Permalink
Rename output dirs
Browse files Browse the repository at this point in the history
  • Loading branch information
DQNEO committed Jul 5, 2023
1 parent 3df3742 commit 16811c0
Show file tree
Hide file tree
Showing 2 changed files with 33 additions and 29 deletions.
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -8,3 +8,4 @@
*.objdump
*.txt
*.diff
a.out
61 changes: 32 additions & 29 deletions Makefile
Original file line number Diff line number Diff line change
@@ -1,71 +1,74 @@
GOSOURCES = $(wildcard *.go)
SOURCES = $(wildcard t1/*.s)
GNU_OBJS = $(SOURCES:t1/%.s=t1/%.gnu.o)
MY_OBJS = $(SOURCES:t1/%.s=t1/%.my.o)
GNU_OBJS = $(SOURCES:t1/%.s=out1/%.gnu.o)
MY_OBJS = $(SOURCES:t1/%.s=out1/%.my.o)

goas: $(GOSOURCES)
go build -o goas .

.PHONY: test
test: test-single test-multi

out1:
mkdir -p $@

# Test single-source program
.PHONY: test-single
test-single: objs
diff t1/00.gnu.o t1/00.my.o
diff t1/01.gnu.o t1/01.my.o
diff t1/02.gnu.o t1/02.my.o
diff t1/03.gnu.o t1/03.my.o
diff t1/04.gnu.o t1/04.my.o
diff t1/05.gnu.o t1/05.my.o
diff t1/06.gnu.o t1/06.my.o
diff t1/07.gnu.o t1/07.my.o
diff t1/08.gnu.o t1/08.my.o
diff t1/09.gnu.o t1/09.my.o
diff t1/10.gnu.o t1/10.my.o
test-single: $(GNU_OBJS) $(MY_OBJS)
diff out1/00.gnu.o out1/00.my.o
diff out1/01.gnu.o out1/01.my.o
diff out1/02.gnu.o out1/02.my.o
diff out1/03.gnu.o out1/03.my.o
diff out1/04.gnu.o out1/04.my.o
diff out1/05.gnu.o out1/05.my.o
diff out1/06.gnu.o out1/06.my.o
diff out1/07.gnu.o out1/07.my.o
diff out1/08.gnu.o out1/08.my.o
diff out1/09.gnu.o out1/09.my.o
diff out1/10.gnu.o out1/10.my.o
@echo ok

.PHONY: objs
objs: $(GNU_OBJS) $(MY_OBJS)

t1/%.gnu.o: t1/%.s
out1/%.gnu.o: t1/%.s out1
as -o $@ $<

t1/%.my.o: t1/%.s goas
out1/%.my.o: t1/%.s goas out1
./goas -o $@ $<

# Test multi-source program
.PHONY: test-multi test-babygo-test test-babygo-self
test-multi: test-babygo-test test-babygo-self

test-babygo-test: t2/t.my.o t2/t.gnu.o
out2:
mkdir -p $@

test-babygo-test: out2/t.my.o out2/t.gnu.o
diff $^

t2/t.gnu.o: t2/babygo-runtime.s t2/babygo-test.s
out2/t.gnu.o: t2/babygo-runtime.s t2/babygo-test.s
as -o $@ $^

t2/t.my.o: goas t2/babygo-runtime.s t2/babygo-test.s
out2/t.my.o: goas t2/babygo-runtime.s t2/babygo-test.s out2
./goas -o $@ t2/babygo-runtime.s t2/babygo-test.s

test-babygo-self: t2/b.my.o t2/b.gnu.o
test-babygo-self: out2/b.my.o out2/b.gnu.o
diff $^

t2/b.my.o: goas t2/babygo-runtime.s t2/babygo-main.s
out2/b.my.o: goas t2/babygo-runtime.s t2/babygo-main.s
./goas -o $@ t2/babygo-runtime.s t2/babygo-main.s

t2/b.gnu.o: t2/babygo-runtime.s t2/babygo-main.s
out2/b.gnu.o: t2/babygo-runtime.s t2/babygo-main.s
as -o $@ $^

# Make binary executables (These are not essential)
t2/t.gnu.bin: t2/t.gnu.o
out2/t.gnu.bin: t2/t.gnu.o
ld -o $@ $<

t2/t.my.bin: t2/t.my.o
out2/t.my.bin: t2/t.my.o
ld -o $@ $<

babygo: t2/b.my.o
babygo: out2/b.my.o
ld -o $@ $<
./$@ version

clean:
rm -f goas *.{o,bin,out} t{1,2}/*.{o,bin,out}
rm -f goas *.{o,bin,out} out{1,2}/*.{o,bin}

0 comments on commit 16811c0

Please sign in to comment.