SHELL := /bin/bash

EXAMPLES := hello chain route parallel reflect coding registry research

.PHONY: all
all: vet build test

.PHONY: vet
vet:
	go vet ./...

.PHONY: build
build:
	go build ./...

.PHONY: test
test:
	go test ./...

.PHONY: bin
bin:
	@mkdir -p bin
	@for ex in $(EXAMPLES); do \
		echo "  build  bin/$$ex"; \
		go build -o bin/$$ex ./cmd/$$ex || exit $$? ; \
	done

.PHONY: run-all
run-all:
	@for ex in $(EXAMPLES); do \
		echo "" ; echo "═══════════ $$ex ═══════════" ; \
		go run ./cmd/$$ex || exit $$? ; \
	done

.PHONY: clean
clean:
	rm -rf bin
	go clean -testcache
