Skip to content

Instantly share code, notes, and snippets.

@xlab
Created July 24, 2015 22:30
Show Gist options
  • Select an option

  • Save xlab/e3a264d65032da7ff32b to your computer and use it in GitHub Desktop.

Select an option

Save xlab/e3a264d65032da7ff32b to your computer and use it in GitHub Desktop.
A Makefile for Golang projects (via @cznic)
.PHONY: all clean cover cpu editor internalError later mem nuke todo
grep=--include=*.go --include=*.l --include=*.y
all: editor
go vet
golint
make todo
clean:
go clean
rm -f *~ cpu.test mem.test
cover:
t=$(shell tempfile) ; go test -coverprofile $$t && go tool cover -html $$t && unlink $$t
cpu:
go test -c -o cpu.test
./cpu.test -noerr -test.cpuprofile cpu.out
go tool pprof --lines cpu.test cpu.out
editor:
gofmt -l -s -w *.go
go test
go install
internalError:
egrep -ho '"internal error.*"' *.go | sort | cat -n
later:
@grep -n $(grep) LATER * || true
@grep -n $(grep) MAYBE * || true
mem:
go test -c -o mem.test
./mem.test -test.bench . -test.memprofile mem.out
go tool pprof --lines --web --alloc_space mem.test mem.out
nuke: clean
go clean -i
todo:
@grep -nr $(grep) ^[[:space:]]*_[[:space:]]*=[[:space:]][[:alpha:]][[:alnum:]]* * || true
@grep -nr $(grep) TODO * || true
@grep -nr $(grep) BUG * || true
@grep -nr $(grep) [^[:alpha:]]println * || true
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment