-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathMakefile
70 lines (56 loc) · 2.14 KB
/
Makefile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
GO ?= go
PKG := github.com/db47h/ngaro
SRC := vm/*.go cmd/retro/*.go asm/*.go
.PHONY: all install clean test bench qbench get-deps cover-asm cover-vm report
all: test
retro: $(SRC)
$(GO) build $(PKG)/cmd/retro
install:
$(GO) install $(PKG)/cmd/retro
clean:
$(GO) clean -i $(PKG)/cmd/retro
$(RM) retro
distclean:
$(GO) clean -i -r $(PKG)/cmd/retro
$(RM) retro
test:
ifeq ($(REPORT_COVERAGE),true)
$(GO) test $(PKG)/vm -covermode=count -coverprofile=coverage0.cov
$(GO) test $(PKG)/lang/retro -covermode=count -coverprofile=coverage1.cov
$(GO) test $(PKG)/asm -covermode=count -coverprofile=coverage2.cov
@echo "mode: count" > coverage.cov
@grep -v ^mode coverage0.cov >> coverage.cov
@grep -v ^mode coverage1.cov >> coverage.cov
@grep -v ^mode coverage2.cov >> coverage.cov
$$(go env GOPATH | awk 'BEGIN{FS=":"} {print $1}')/bin/goveralls -coverprofile=coverage.cov -service=travis-ci
@$(RM) coverage0.cov coverage1.cov coverage2.cov coverage.cov
else
$(GO) test -v $(PKG)/...
endif
bench:
$(GO) test -v $(PKG)/vm -run DONOTRUNTESTS -bench .
cover:
$(GO) test $(PKG)/vm -covermode=count -coverprofile=coverage0.cov
$(GO) test $(PKG)/lang/retro -covermode=count -coverprofile=coverage1.cov
$(GO) test $(PKG)/asm -covermode=count -coverprofile=coverage2.cov
@echo "mode: count" > coverage.cov
@grep -v ^mode coverage0.cov >> coverage.cov
@grep -v ^mode coverage1.cov >> coverage.cov
@grep -v ^mode coverage2.cov >> coverage.cov
$(GO) tool cover -html coverage.cov
@$(RM) coverage0.cov coverage1.cov coverage2.cov coverage.cov
qbench: retroImage
/usr/bin/time -f '%Uu %Ss %er %MkB %C' ./retro -stats <vm/testdata/core.rx >/dev/null
retroImage: retro _misc/kernel.rx _misc/meta.rx _misc/stage2.rx
./retro -image vm/testdata/retroImage -ibits 32 -with _misc/meta.rx -with _misc/kernel.rx -o retroImage >/dev/null
./retro -with _misc/stage2.rx >/dev/null
if [ -e _misc/stage3.rx ]; then ./retro -with _misc/stage3.rx >/dev/null; fi
report: $(SRC)
@echo "=== gocyclo ===\n"
@gocyclo . | head
@echo "\n\n=== misspell ===\n"
@misspell -source go $^
@misspell -source text README.md
get-deps:
$(GO) get github.com/pkg/errors
$(GO) get github.com/pkg/term