CHECKER_VERSION ?= custom-build
GO_LDFLAGS := -X main.Version=$(CHECKER_VERSION)

BINARIES := checker-caldav checker-carddav
PLUGINS := $(addsuffix .so,$(BINARIES))

.PHONY: all test clean plugin docker docker-caldav docker-carddav $(BINARIES)

all: $(BINARIES)

checker-caldav:
	go build -ldflags "$(GO_LDFLAGS)" -o $@ ./cmd/checker-caldav

checker-carddav:
	go build -ldflags "$(GO_LDFLAGS)" -o $@ ./cmd/checker-carddav

plugin: $(PLUGINS)

checker-caldav.so:
	go build -buildmode=plugin -ldflags "$(GO_LDFLAGS)" -o $@ ./plugin/caldav

checker-carddav.so:
	go build -buildmode=plugin -ldflags "$(GO_LDFLAGS)" -o $@ ./plugin/carddav

test:
	go test ./...

docker: docker-caldav docker-carddav

docker-caldav:
	docker build --build-arg TARGET=checker-caldav --build-arg CHECKER_VERSION=$(CHECKER_VERSION) -t happydomain/checker-caldav .

docker-carddav:
	docker build --build-arg TARGET=checker-carddav --build-arg CHECKER_VERSION=$(CHECKER_VERSION) -t happydomain/checker-carddav .

clean:
	rm -f $(BINARIES) $(PLUGINS)
