VERSION = $(shell git describe --tags)
BUILDTIME = $(shell date +%Y.%m.%d_%H%M)

all: clean simpleMutexProtoc goimports build
	./example

modproto: clean withMutex goimports vet build
	./example

rawproto: clean withoutMutex goimports vet build
	./example

deleteproto: clean
	../autogenpb --proto fruit.proto --package main --delete
	make build

vet:
	@GO111MODULE=off go vet

rawbuild:
	GO111MODULE=off go build -v

build: goimports vet
	GO111MODULE=off go build -v

simpleMutexProtoc: clean
	../autogenpb --proto fruit.proto --package main

# why does this fail to compile? I'm not sure. maybe someone smart can figure it out
# basically, it just trys to return the deleted record but says something
# about the RWmutex lock being copied and GO fails to compile
# I'm don't grok what is going on. This autogenerated code should 
# provide as simple as one could hope for automated way to try to debug it though!
simpleMutexProtocWithDeleteCopy: clean
	../autogenpb --proto fruit.proto --package main --delete

simpleMutexGlobal: clean
	../autogenpb --proto fruit.proto --package main --mutex=false

withMutex: clean
	../autogenpb --proto fruit.proto --package main
	../autogenpb --proto file.proto --package main
	../autogenpb --proto patchset.proto --package main

withoutMutex: clean
	../autogenpb --proto fruit.proto --package main --mutex=false
	../autogenpb --proto file.proto --package main --mutex=false
	../autogenpb --proto patchset.proto --package main --mutex=false

goimports:
	goimports -w *.go

clean:
	-rm -f go.*
	-rm -f *.pb.go
	-rm -f example