Skip to content
Snippets Groups Projects
Makefile 1.77 KiB
Newer Older
  • Learn to ignore specific revisions
  • Bolke de Bruin's avatar
    Bolke de Bruin committed
    BINDIR      := $(CURDIR)/bin
    INSTALL_PATH ?= /usr/local/bin
    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)
    
    	go build $(GOFLAGS) -trimpath -tags '$(TAGS)' -ldflags '$(LDFLAGS)' -o '$(BINDIR)'/$(BINNAME) ./cmd/rdpgw
    
    Bolke de Bruin's avatar
    Bolke de Bruin committed
    
    # ------------------------------------------------------------------------------
    #  install
    
    .PHONY: install
    install: build
    	@install "$(BINDIR)/$(BINNAME)" "$(INSTALL_PATH)/$(BINNAME)"
    
    # ------------------------------------------------------------------------------
    #  mod
    
    .PHONY: mod
    mod:
    
    	go mod tidy -compat=1.17
    
    Bolke de Bruin's avatar
    Bolke de Bruin committed
    
    # ------------------------------------------------------------------------------
    
    Bolke de Bruin's avatar
    Bolke de Bruin committed
    #  test
    
    .PHONY: test
    test:
    	go test -cover -v ./...
    # ------------------------------------------------------------------------------
    
    Bolke de Bruin's avatar
    Bolke de Bruin committed
    #  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}"