SHELL := /bin/zsh # PLATFORM := $(shell go env GOOS) PLATFORM=linux # ARCH := $(shell go env GOARCH) ARCH := amd64 TARGET := websocket-proxy VERSION := 0.0.1 ifeq (run,$(firstword $(MAKECMDGOALS))) # use the rest as arguments for "run" RUN_ARGS := $(wordlist 2,$(words $(MAKECMDGOALS)),$(MAKECMDGOALS)) # Allow the remaining goals to be passed through as bootstrap servers. %: @: endif .PHONY: all build docker run vendor update-deps all: build docker build: @echo ".:: building binary for $(PLATFORM) ::." @rm -f $(TARGET) @GOOS=$(PLATFORM) GOARCH=$(ARCH) go build -o $(TARGET) . docker: @echo ".:: building docker image ::." @docker build -t kafka-websocket-go:$(VERSION) . run: @echo ".:: starting server ::." @echo " bootstrap servers : $(RUN_ARGS)" @go run serv.go -addr :9000 --bootstrap-servers $(RUN_ARGS) vendor: @echo ".:: synchronizing vendored Go modules ::." @go mod vendor update-deps: @echo ".:: updating Go dependencies ::." @go get -u ./... @go mod tidy @go mod vendor