From 9be5aa871815199836cf267b9c65ddbacfce2fc7 Mon Sep 17 00:00:00 2001 From: Mael GRAMAIN Date: Sun, 13 Dec 2020 20:21:07 -0400 Subject: [PATCH] Updated makefile --- Makefile | 61 +++++++++++++++++++++++++++++++++++++++++++++----------- 1 file changed, 49 insertions(+), 12 deletions(-) diff --git a/Makefile b/Makefile index 1fae4df..291f715 100644 --- a/Makefile +++ b/Makefile @@ -1,16 +1,53 @@ -hello: - echo "Sacrebleu-DNS" +EXTENSION ?= +DIST_DIR ?= dist/ +GOOS ?= linux +ARCH ?= $(shell uname -m) +BUILDINFOSDET ?= -build: - go build -o bin/sacrebleu-dns +SOFT_NAME := sacrebleu +SOFT_VERSION := $(shell git describe --tags $(git rev-list --tags --max-count=1)) +VERSION_PKG := $(shell echo $(SOFT_VERSION) | sed 's/^v//g') +ARCH := x86_64 +LICENSE := AGPL-3 +URL := https://github.com/outout14/sacrebleu-dns/ +DESCRIPTION := Sacrebleu is a DNS authoritative nameserver made in Go +BUILDINFOS := ($(shell date +%FT%T%z)$(BUILDINFOSDET)) +LDFLAGS := '-X main.version=$(SOFT_VERSION) -X main.buildinfos=$(BUILDINFOS)' -run: - go run main.go +OUTPUT_SOFT := $(DIST_DIR)sacrebleu-$(SOFT_VERSION)-$(GOOS)-$(ARCH)$(EXTENSION) -compile: - echo "Compiling for every OS and Platform" - GOOS=linux GOARCH=arm go build -o bin/sacrebleu-dns-linux-arm main.go - GOOS=linux GOARCH=arm64 go build -o bin/sacrebleu-dns-linux-arm64 main.go - GOOS=linux GOARCH=amd64 go build -o bin/sacrebleu-dns-linux-amd64 main.go +.PHONY: vet +vet: + go vet main.go -all: hello build +.PHONY: prepare +prepare: + mkdir -p $(DIST_DIR) + +.PHONY: clean +clean: + rm -rf $(DIST_DIR) + +.PHONY: build +build: prepare + go build -ldflags $(LDFLAGS) -o $(OUTPUT_SOFT) + +.PHONY: package-deb +package-deb: prepare + fpm -s dir -t deb -n $(SOFT_NAME) -v $(VERSION_PKG) \ + --description "$(DESCRIPTION)" \ + --url "$(URL)" \ + --architecture $(ARCH) \ + --license "$(LICENSE)" \ + --package $(DIST_DIR) \ + $(OUTPUT_SOFT)=/usr/bin/sacrebleu-dns + +.PHONY: package-rpm +package-rpm: prepare + fpm -s dir -t rpm -n $(SOFT_NAME) -v $(VERSION_PKG) \ + --description "$(DESCRIPTION)" \ + --url "$(URL)" \ + --architecture $(ARCH) \ + --license "$(LICENSE) "\ + --package $(DIST_DIR) \ + $(OUTPUT_SOFT)=/usr/bin/sacrebleu-dns