.PHONY: test_all test test_clients generate

PATH := ${PWD}/bin:${PWD}/ENV/bin:${PATH}

# Phony commands:
generate:
	GOBIN="${PWD}/bin" go install -v ./protoc-gen-...
	retool do go generate ./...

test_all: test test_clients

test: generate
	retool do errcheck -blank ./internal/twirptest
	go test -race $(shell go list ./... | grep -v /vendor/ | grep -v /_tools/)

test_clients: generate build/clientcompat build/gocompat build/pycompat
	./build/clientcompat -client ./build/gocompat
	./build/clientcompat -client ./build/pycompat


# Actual files for testing clients:
./build:
	mkdir build

./build/gocompat: ./build
	go build -o build/gocompat ./clientcompat/gocompat

./build/clientcompat: ./build
	go build -o build/clientcompat ./clientcompat

./build/venv: ./build
	virtualenv ./build/venv

./build/venv/bin/pycompat.py: ./build/venv
	./build/venv/bin/pip install --upgrade ./clientcompat/pycompat

./build/pycompat: ./build/venv/bin/pycompat.py
	cp ./clientcompat/pycompat/pycompat.sh ./build/pycompat
	chmod +x ./build/pycompat
