mirror of
https://github.com/bolkedebruin/rdpgw.git
synced 2026-03-27 22:46:37 +00:00
Add Makefile build
This prepares for multiple binaries and distribution builds
This commit is contained in:
68
Makefile
Normal file
68
Makefile
Normal file
@@ -0,0 +1,68 @@
|
||||
BINDIR := $(CURDIR)/bin
|
||||
INSTALL_PATH ?= /usr/local/bin
|
||||
DIST_DIRS := find * -type d -exec
|
||||
TARGETS := darwin/amd64 darwin/arm64 linux/amd64 linux/386 linux/arm linux/arm64 linux/ppc64le linux/s390x windows/amd64
|
||||
TARGET_OBJS ?= darwin-amd64.tar.gz darwin-amd64.tar.gz.sha256 darwin-amd64.tar.gz.sha256sum darwin-arm64.tar.gz darwin-arm64.tar.gz.sha256 darwin-arm64.tar.gz.sha256sum linux-amd64.tar.gz linux-amd64.tar.gz.sha256 linux-amd64.tar.gz.sha256sum linux-386.tar.gz linux-386.tar.gz.sha256 linux-386.tar.gz.sha256sum linux-arm.tar.gz linux-arm.tar.gz.sha256 linux-arm.tar.gz.sha256sum linux-arm64.tar.gz linux-arm64.tar.gz.sha256 linux-arm64.tar.gz.sha256sum linux-ppc64le.tar.gz linux-ppc64le.tar.gz.sha256 linux-ppc64le.tar.gz.sha256sum linux-s390x.tar.gz linux-s390x.tar.gz.sha256 linux-s390x.tar.gz.sha256sum windows-amd64.zip windows-amd64.zip.sha256 windows-amd64.zip.sha256sum
|
||||
BINNAME ?= rdpgw
|
||||
|
||||
# Rebuild the binary if any of these files change
|
||||
SRC := $(shell find . -type f -name '*.go' -print) go.mod go.sum
|
||||
|
||||
# Required for globs to work correctly
|
||||
SHELL = /usr/bin/env bash
|
||||
|
||||
GIT_COMMIT = $(shell git rev-parse HEAD)
|
||||
GIT_SHA = $(shell git rev-parse --short HEAD)
|
||||
GIT_TAG = $(shell git describe --tags --abbrev=0 --exact-match 2>/dev/null)
|
||||
GIT_DIRTY = $(shell test -n "`git status --porcelain`" && echo "dirty" || echo "clean")
|
||||
|
||||
ifdef VERSION
|
||||
BINARY_VERSION = $(VERSION)
|
||||
endif
|
||||
BINARY_VERSION ?= ${GIT_TAG}
|
||||
|
||||
VERSION_METADATA = unreleased
|
||||
# Clear the "unreleased" string in BuildMetadata
|
||||
ifneq ($(GIT_TAG),)
|
||||
VERSION_METADATA =
|
||||
endif
|
||||
|
||||
.PHONY: all
|
||||
all: mod build
|
||||
|
||||
# ------------------------------------------------------------------------------
|
||||
# build
|
||||
|
||||
.PHONY: build
|
||||
build: $(BINDIR)/$(BINNAME)
|
||||
|
||||
$(BINDIR)/$(BINNAME): $(SRC)
|
||||
GOMODULE=on go build $(GOFLAGS) -trimpath -tags '$(TAGS)' -ldflags '$(LDFLAGS)' -o '$(BINDIR)'/$(BINNAME) ./cmd/rdpgw
|
||||
|
||||
# ------------------------------------------------------------------------------
|
||||
# install
|
||||
|
||||
.PHONY: install
|
||||
install: build
|
||||
@install "$(BINDIR)/$(BINNAME)" "$(INSTALL_PATH)/$(BINNAME)"
|
||||
|
||||
# ------------------------------------------------------------------------------
|
||||
# mod
|
||||
|
||||
.PHONY: mod
|
||||
mod:
|
||||
go mod tidy
|
||||
|
||||
# ------------------------------------------------------------------------------
|
||||
# clean
|
||||
|
||||
.PHONY: clean
|
||||
clean:
|
||||
@rm -rf '$(BINDIR)' ./_dist
|
||||
|
||||
.PHONY: info
|
||||
info:
|
||||
@echo "Version: ${VERSION}"
|
||||
@echo "Git Tag: ${GIT_TAG}"
|
||||
@echo "Git Commit: ${GIT_COMMIT}"
|
||||
@echo "Git Tree State: ${GIT_DIRTY}"
|
||||
Reference in New Issue
Block a user