GOCMD=go
GOBUILD=$(GOCMD) build
GOCLEAN=$(GOCMD) clean

VERSION ?= $(shell git describe --tags --always --dirty 2> /dev/null )
LDFLAGS=-ldflags "-X=main.version=$(VERSION)"

spis=$(patsubst %.go, %, $(wildcard example/spi/*/*.go))
examples=$(patsubst %.go, %, $(wildcard example/*/*.go))
bins= $(spis) $(examples)

cmds=$(patsubst %.go, %, $(wildcard cmd/gpio*/gpio*.go))

all: tools $(bins)

$(cmds) : % : %.go
	cd $(@D); \
	$(GOBUILD) $(LDFLAGS)

$(bins) : % : %.go
	cd $(@D); \
	$(GOBUILD)

clean: 
	$(GOCLEAN) ./...

tools: $(cmds)