MODULE := github.com/metatube-community/metatube-sdk-go SERVER_NAME := metatube-server SERVER_CODE := cmd/server/main.go BUILD_DIR := build BUILD_TAGS := BUILD_FLAGS := -v BUILD_COMMIT := $(shell git rev-parse --short HEAD) BUILD_VERSION := $(shell git describe --abbrev=0 --tags HEAD | cut -d'v' -f 2) CGO_ENABLED := 0 GO111MODULE := on LDFLAGS += -w -s -buildid= LDFLAGS += -X "$(MODULE)/internal/version.Version=$(BUILD_VERSION)" LDFLAGS += -X "$(MODULE)/internal/version.GitCommit=$(BUILD_COMMIT)" GO_BUILD = GO111MODULE=$(GO111MODULE) CGO_ENABLED=$(CGO_ENABLED) \ go build $(BUILD_FLAGS) -ldflags '$(LDFLAGS)' -tags '$(BUILD_TAGS)' -trimpath UNIX_ARCH_LIST = \ darwin-amd64 \ darwin-amd64-v3 \ darwin-arm64 \ freebsd-amd64 \ freebsd-amd64-v3 \ freebsd-arm64 \ linux-386 \ linux-amd64 \ linux-amd64-v3 \ linux-arm64 \ linux-armv5 \ linux-armv6 \ linux-armv7 \ linux-ppc64le \ linux-s390x \ openbsd-amd64 \ openbsd-amd64-v3 WINDOWS_ARCH_LIST = \ windows-amd64 \ windows-amd64-v3 \ windows-arm64 all: development development: BUILD_TAGS += experimental development: $(GO_BUILD) -o $(BUILD_DIR)/$(SERVER_NAME) $(SERVER_CODE) server: $(GO_BUILD) -o $(BUILD_DIR)/$(SERVER_NAME) $(SERVER_CODE) darwin-amd64: GOARCH=amd64 GOOS=darwin $(GO_BUILD) -o $(BUILD_DIR)/$(SERVER_NAME)-$@ $(SERVER_CODE) darwin-amd64-v3: GOARCH=amd64 GOOS=darwin GOAMD64=v3 $(GO_BUILD) -o $(BUILD_DIR)/$(SERVER_NAME)-$@ $(SERVER_CODE) darwin-arm64: GOARCH=arm64 GOOS=darwin $(GO_BUILD) -o $(BUILD_DIR)/$(SERVER_NAME)-$@ $(SERVER_CODE) freebsd-amd64: GOARCH=amd64 GOOS=freebsd $(GO_BUILD) -o $(BUILD_DIR)/$(SERVER_NAME)-$@ $(SERVER_CODE) freebsd-amd64-v3: GOARCH=amd64 GOOS=freebsd GOAMD64=v3 $(GO_BUILD) -o $(BUILD_DIR)/$(SERVER_NAME)-$@ $(SERVER_CODE) freebsd-arm64: GOARCH=arm64 GOOS=freebsd $(GO_BUILD) -o $(BUILD_DIR)/$(SERVER_NAME)-$@ $(SERVER_CODE) linux-386: GOARCH=386 GOOS=linux $(GO_BUILD) -o $(BUILD_DIR)/$(SERVER_NAME)-$@ $(SERVER_CODE) linux-amd64: GOARCH=amd64 GOOS=linux $(GO_BUILD) -o $(BUILD_DIR)/$(SERVER_NAME)-$@ $(SERVER_CODE) linux-amd64-v3: GOARCH=amd64 GOOS=linux GOAMD64=v3 $(GO_BUILD) -o $(BUILD_DIR)/$(SERVER_NAME)-$@ $(SERVER_CODE) linux-arm64: GOARCH=arm64 GOOS=linux $(GO_BUILD) -o $(BUILD_DIR)/$(SERVER_NAME)-$@ $(SERVER_CODE) linux-armv5: GOARCH=arm GOARM=5 GOOS=linux $(GO_BUILD) -o $(BUILD_DIR)/$(SERVER_NAME)-$@ $(SERVER_CODE) linux-armv6: GOARCH=arm GOARM=6 GOOS=linux $(GO_BUILD) -o $(BUILD_DIR)/$(SERVER_NAME)-$@ $(SERVER_CODE) linux-armv7: GOARCH=arm GOARM=7 GOOS=linux $(GO_BUILD) -o $(BUILD_DIR)/$(SERVER_NAME)-$@ $(SERVER_CODE) linux-ppc64le: GOARCH=ppc64le GOOS=linux $(GO_BUILD) -o $(BUILD_DIR)/$(SERVER_NAME)-$@ $(SERVER_CODE) linux-s390x: GOARCH=s390x GOOS=linux $(GO_BUILD) -o $(BUILD_DIR)/$(SERVER_NAME)-$@ $(SERVER_CODE) openbsd-amd64: GOARCH=amd64 GOOS=openbsd $(GO_BUILD) -o $(BUILD_DIR)/$(SERVER_NAME)-$@ $(SERVER_CODE) openbsd-amd64-v3: GOARCH=amd64 GOOS=openbsd GOAMD64=v3 $(GO_BUILD) -o $(BUILD_DIR)/$(SERVER_NAME)-$@ $(SERVER_CODE) windows-amd64: GOARCH=amd64 GOOS=windows $(GO_BUILD) -o $(BUILD_DIR)/$(SERVER_NAME)-$@.exe $(SERVER_CODE) windows-amd64-v3: GOARCH=amd64 GOOS=windows GOAMD64=v3 $(GO_BUILD) -o $(BUILD_DIR)/$(SERVER_NAME)-$@.exe $(SERVER_CODE) windows-arm64: GOARCH=arm64 GOOS=windows $(GO_BUILD) -o $(BUILD_DIR)/$(SERVER_NAME)-$@.exe $(SERVER_CODE) unix_releases := $(addsuffix .zip, $(UNIX_ARCH_LIST)) windows_releases := $(addsuffix .zip, $(WINDOWS_ARCH_LIST)) $(unix_releases): %.zip: % @zip -qmj $(BUILD_DIR)/$(SERVER_NAME)-$(basename $@).zip $(BUILD_DIR)/$(SERVER_NAME)-$(basename $@) $(windows_releases): %.zip: % @zip -qmj $(BUILD_DIR)/$(SERVER_NAME)-$(basename $@).zip $(BUILD_DIR)/$(SERVER_NAME)-$(basename $@).exe all-arch: $(UNIX_ARCH_LIST) $(WINDOWS_ARCH_LIST) releases: $(unix_releases) $(windows_releases) lint: golangci-lint run ./... clean: rm -rf $(BUILD_DIR)