# -*- Mode: makefile -*- # Copyright 2013 The Prometheus Authors # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. .SUFFIXES: current_dir := $(patsubst %/,%, $(dir $(abspath $(lastword $(MAKEFILE_LIST))))) VERSION=$(shell cat $(current_dir)/version/VERSION) OS=$(shell uname) ARCH=$(shell uname -m) # The release engineers apparently need to key their binary artifacts to the # Mac OS X release family. MAC_OS_X_VERSION ?= 10.8 MAKEFILE_DIR ?= $(realpath $(dir $(lastword $(MAKEFILE_LIST)))) BUILD_PATH = $(MAKEFILE_DIR)/.build GO_VERSION := 1.4.2 GOOS = $(subst Darwin,darwin,$(subst Linux,linux,$(subst FreeBSD,freebsd,$(OS)))) ifeq ($(GOOS),darwin) RELEASE_SUFFIX ?= -osx$(MAC_OS_X_VERSION) else RELEASE_SUFFIX ?= endif # Never honor GOBIN, should it be set at all. unexport GOBIN GOARCH = $(subst x86_64,amd64,$(patsubst i%86,386,$(ARCH))) GOPKG ?= go$(GO_VERSION).$(GOOS)-$(GOARCH)$(RELEASE_SUFFIX).tar.gz GOURL ?= https://golang.org/dl GOROOT = $(BUILD_PATH)/root/go GOPATH = $(BUILD_PATH)/root/gopath GOCC = $(GOROOT)/bin/go TMPDIR = /tmp GOENV = TMPDIR=$(TMPDIR) GOROOT=$(GOROOT) GOPATH=$(GOPATH) GO = $(GOENV) $(GOCC) GOFMT = $(GOROOT)/bin/gofmt UNAME := $(shell uname) REPO_PATH = github.com/prometheus/prometheus SELFLINK = $(GOPATH)/src/$(REPO_PATH) export PREFIX=$(BUILD_PATH)/root export PATH := $(GOPATH)/bin:$(GOROOT)/bin:$(PATH) export GO_TEST_FLAGS ?= -short GO_GET := $(GO) get -u -v -x REV := $(shell git rev-parse --short HEAD 2> /dev/null || echo 'unknown') BRANCH := $(shell git rev-parse --abbrev-ref HEAD 2> /dev/null || echo 'unknown') HOSTNAME := $(shell hostname -f) BUILD_DATE := $(shell date +%Y%m%d-%H:%M:%S) BUILDFLAGS := -ldflags \ " -X $(REPO_PATH)/version.Version $(VERSION)\ -X $(REPO_PATH)/version.Revision $(REV)\ -X $(REPO_PATH)/version.Branch $(BRANCH)\ -X $(REPO_PATH)/version.BuildUser $(USER)@$(HOSTNAME)\ -X $(REPO_PATH)/version.BuildDate $(BUILD_DATE)\ -X $(REPO_PATH)/version.GoVersion $(GO_VERSION)" PROTOC := protoc CURL := curl ARCHIVE := prometheus-$(VERSION).$(GOOS)-$(GOARCH).tar.gz