123456789101112131415161718192021222324252627282930313233343536373839 |
- SHELL := /bin/bash
- build: machine.go
- images: docs/urn.png
- machine.go: machine.go.rl
- ragel -Z -G2 -e -o $@ $<
- @sed -i '/^\/\/line/d' $@
- @$(MAKE) -s file=$@ snake2camel
- @gofmt -w -s $@
- docs/urn.dot: machine.go.rl
- @mkdir -p docs
- ragel -Z -e -Vp $< -o $@
- docs/urn.png: docs/urn.dot
- dot $< -Tpng -o $@
- .PHONY: bench
- bench: *_test.go machine.go
- go test -bench=. -benchmem -benchtime=5s ./...
- .PHONY: tests
- tests: *_test.go machine.go
- go test -race -timeout 10s -coverprofile=coverage.out -covermode=atomic -v ./...
- .PHONY: clean
- clean:
- @rm -rf docs
- @rm -f machine.go
- .PHONY: snake2camel
- snake2camel:
- @awk -i inplace '{ \
- while ( match($$0, /(.*)([a-z]+[0-9]*)_([a-zA-Z0-9])(.*)/, cap) ) \
- $$0 = cap[1] cap[2] toupper(cap[3]) cap[4]; \
- print \
- }' $(file)
|