#!/usr/bin/make -f include /usr/share/dpkg/pkg-info.mk # Uncomment this to enable verbose mode. #export DH_VERBOSE := 1 # Acceptance tests need to be run separately. export DH_GOPKG := github.com/prometheus/alertmanager export DH_GOLANG_EXCLUDES := asset examples test/.*/acceptance ui/react-app export DH_GOLANG_EXCLUDES_ALL := 0 export DH_GOLANG_INSTALL_EXTRA := template/default.tmpl template/email.tmpl ui/app METAPKG := github.com/prometheus/common BRANCH := debian/sid USER := team+pkg-go@tracker.debian.org BUILD_DATE := $(shell date --utc --date='@$(SOURCE_DATE_EPOCH)' \ +%Y%m%d-%H:%M:%S) GO_VERSION := $(shell go version | sed 's/go version \(\S*\).*/\1/') BUILDFLAGS = -ldflags \ " -X $(METAPKG)/version.Version=$(DEB_VERSION_UPSTREAM)\ -X $(METAPKG)/version.Revision=$(DEB_VERSION)\ -X $(METAPKG)/version.Branch=$(BRANCH)\ -X $(METAPKG)/version.BuildUser=$(USER)\ -X $(METAPKG)/version.BuildDate=$(BUILD_DATE)\ -X $(METAPKG)/version.GoVersion=$(GO_VERSION)" %: dh $@ --builddir=_build --buildsystem=golang MANAGER_BINNAME := $(DEB_SOURCE) TOOL_BINNAME := amtool override_dh_auto_build: dh_auto_build -- $(BUILDFLAGS) # Rename the binary to match the debian package. mv -v _build/bin/alertmanager _build/bin/$(MANAGER_BINNAME) # Build bash completion scripts. mkdir -vp _build/bash_completion.d _build/bin/$(TOOL_BINNAME) --completion-script-bash > _build/bash_completion.d/$(TOOL_BINNAME) MAN_WHATIS_MANAGER := $(MANAGER_BINNAME) \\- the Prometheus alert manager MAN_WHATIS_TOOL := $(TOOL_BINNAME) \\- Tooling for the Prometheus alert manager MAN_PROG_MANAGER := $(shell echo $(MANAGER_BINNAME) | tr [:lower:] [:upper:]) MAN_PROG_TOOL := $(shell echo $(TOOL_BINNAME) | tr [:lower:] [:upper:]) MAN_DATE := $(shell date --utc --date='@$(SOURCE_DATE_EPOCH)' '+%B %Y') execute_before_dh_installman: _build/bin/$(MANAGER_BINNAME) --help-man > _build/$(MANAGER_BINNAME).1 _build/bin/$(TOOL_BINNAME) --help-man > _build/$(TOOL_BINNAME).1 # Fix title header and footers. sed -i '/^.TH .*/c.TH $(MAN_PROG_MANAGER) "1" "$(MAN_DATE)" "$(DEB_SOURCE) $(DEB_VERSION_UPSTREAM)" "Prometheus"/' \ _build/$(MANAGER_BINNAME).1 sed -i '/^.TH .*/c.TH $(MAN_PROG_TOOL) "1" "$(MAN_DATE)" "$(DEB_SOURCE) $(DEB_VERSION_UPSTREAM)" "Prometheus"/' \ _build/$(TOOL_BINNAME).1 # Remove build user/build date/go version headers, which is ugly. sed -i '/^ /d' _build/*.1 # Fix whatis entries. sed -i '/^.SH "NAME"/,+1c.SH "NAME"\n$(MAN_WHATIS_MANAGER)' _build/$(MANAGER_BINNAME).1 sed -i '/^.SH "NAME"/,+1c.SH "NAME"\n$(MAN_WHATIS_TOOL)' _build/$(TOOL_BINNAME).1 # Remove default values, as they create unwieldy long lines. sed -i 's/\\fB--\(.*\)=".*"\\fR/\\fB--\1\\fR/' _build/*.1 # Fix executable path in amtool examples sed -i 's/\.\/amtool/amtool/' _build/$(TOOL_BINNAME).1 execute_after_dh_auto_test: # Don't abort if acceptance tests fail, as they are too sensitive to # timing issues. ( for pkg in cli/acceptance with_api_v1/acceptance \ with_api_v2/acceptance; do \ DH_GOLANG_EXCLUDES= DH_GOPKG=$(DH_GOPKG)/test/$$pkg \ dh_auto_test || { \ echo "*** Acceptance tests failed ***"; \ exit 1; \ }; \ done; ) || true override_dh_auto_install-indep: dh_auto_install -- --no-binaries dh_install usr/share/gocode override_dh_auto_install-arch: dh_auto_install -- --no-source