mirror of
https://github.com/bgp/stayrtr.git
synced 2024-05-06 15:54:54 +00:00
* Reduce all Dockerfiles to a single multi-staged one * Updates GitHub Actions and also push the current git shortened SHA
92 lines
2.6 KiB
Makefile
92 lines
2.6 KiB
Makefile
EXTENSION ?=
|
|
DIST_DIR ?= dist/
|
|
GOOS ?= linux
|
|
ARCH ?= $(shell uname -m)
|
|
BUILDINFOSDET ?=
|
|
|
|
DOCKER_REPO := rpki/
|
|
STAYRTR_NAME := stayrtr
|
|
STAYRTR_VERSION := $(shell git describe --tags $(git rev-list --tags --max-count=1))
|
|
VERSION_PKG := $(shell echo $(STAYRTR_VERSION) | sed 's/^v//g')
|
|
ARCH := x86_64
|
|
LICENSE := BSD-3
|
|
URL := https://github.com/bgp/stayrtr
|
|
DESCRIPTION := StayRTR: a RPKI-to-Router server
|
|
BUILDINFOS := ($(shell date +%FT%T%z)$(BUILDINFOSDET))
|
|
LDFLAGS ?= '-X main.version=$(STAYRTR_VERSION) -X main.buildinfos=$(BUILDINFOS)'
|
|
|
|
RTRDUMP_NAME := rtrdump
|
|
RTRMON_NAME := rtrmon
|
|
|
|
SUFFIX ?= -$(STAYRTR_VERSION)-$(GOOS)-$(ARCH)$(EXTENSION)
|
|
|
|
OUTPUT_STAYRTR := $(DIST_DIR)stayrtr$(SUFFIX)
|
|
OUTPUT_RTRDUMP := $(DIST_DIR)rtrdump$(SUFFIX)
|
|
OUTPUT_RTRMON := $(DIST_DIR)rtrmon$(SUFFIX)
|
|
|
|
.PHONY: vet
|
|
vet:
|
|
go vet cmd/stayrtr/stayrtr.go
|
|
|
|
.PHONY: test
|
|
test:
|
|
go test -v github.com/bgp/stayrtr/lib
|
|
go test -v github.com/bgp/stayrtr/prefixfile
|
|
|
|
.PHONY: prepare
|
|
prepare:
|
|
mkdir -p $(DIST_DIR)
|
|
|
|
.PHONY: clean
|
|
clean:
|
|
rm -rf $(DIST_DIR)
|
|
|
|
.PHONY: build-all
|
|
build-all: build-stayrtr build-rtrdump build-rtrmon
|
|
|
|
.PHONY: build-stayrtr
|
|
build-stayrtr: prepare
|
|
go build -ldflags $(LDFLAGS) -o $(OUTPUT_STAYRTR) cmd/stayrtr/stayrtr.go
|
|
|
|
.PHONY: build-rtrdump
|
|
build-rtrdump:
|
|
go build -ldflags $(LDFLAGS) -o $(OUTPUT_RTRDUMP) cmd/rtrdump/rtrdump.go
|
|
|
|
.PHONY: build-rtrmon
|
|
build-rtrmon:
|
|
go build -ldflags $(LDFLAGS) -o $(OUTPUT_RTRMON) cmd/rtrmon/rtrmon.go
|
|
|
|
.PHONY: docker
|
|
docker:
|
|
docker build -t $(DOCKER_REPO)$(STAYRTR_NAME) --target stayrtr .
|
|
docker build -t $(DOCKER_REPO)$(RTRDUMP_NAME) --target rtrdump .
|
|
docker build -t $(DOCKER_REPO)$(RTRMON_NAME) --target rtrmon .
|
|
|
|
.PHONY: package-deb-stayrtr
|
|
package-deb-stayrtr: prepare
|
|
fpm -s dir -t deb -n $(STAYRTR_NAME) -v $(VERSION_PKG) \
|
|
--description "$(DESCRIPTION)" \
|
|
--url "$(URL)" \
|
|
--architecture $(ARCH) \
|
|
--license "$(LICENSE)" \
|
|
--package $(DIST_DIR) \
|
|
$(OUTPUT_STAYRTR)=/usr/bin/stayrtr \
|
|
package/stayrtr.service=/lib/systemd/system/stayrtr.service \
|
|
package/stayrtr.env=/etc/default/stayrtr \
|
|
$(OUTPUT_RTRDUMP)=/usr/bin/rtrdump \
|
|
$(OUTPUT_RTRMON)=/usr/bin/rtrmon
|
|
|
|
.PHONY: package-rpm-stayrtr
|
|
package-rpm-stayrtr: prepare
|
|
fpm -s dir -t rpm -n $(STAYRTR_NAME) -v $(VERSION_PKG) \
|
|
--description "$(DESCRIPTION)" \
|
|
--url "$(URL)" \
|
|
--architecture $(ARCH) \
|
|
--license "$(LICENSE) "\
|
|
--package $(DIST_DIR) \
|
|
$(OUTPUT_STAYRTR)=/usr/bin/stayrtr \
|
|
package/stayrtr.service=/lib/systemd/system/stayrtr.service \
|
|
package/stayrtr.env=/etc/default/stayrtr \
|
|
$(OUTPUT_RTRDUMP)=/usr/bin/rtrdump \
|
|
$(OUTPUT_RTRMON)=/usr/bin/rtrmon
|