mirror of https://github.com/prometheus/prometheus
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
192 lines
5.2 KiB
192 lines
5.2 KiB
# Copyright 2013 Prometheus Team |
|
# 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. |
|
|
|
GO_VERSION := 1.0.3 |
|
LEVELDB_VERSION := 1.7.0 |
|
PROTOCOL_BUFFERS_VERSION := 2.4.1 |
|
SNAPPY_VERSION := 1.0.5 |
|
|
|
OVERLAY_ROOT := ${HOME}/overlay_root |
|
|
|
export PATH := $(PATH):$(OVERLAY_ROOT)/bin |
|
export LD_LIBRARY_PATH := $(LD_LIBRARY_PATH):$(OVERLAY_ROOT)/lib |
|
|
|
export CFLAGS := $(CFLAGS) -I$(OVERLAY_ROOT)/include |
|
export CXXFLAGS := $(CXXFLAGS) -I$(OVERLAY_ROOT)/include |
|
export CPPFLAGS := $(CPPFLAGS) -I$(OVERLAY_ROOT)/include |
|
export LDFLAGS := $(LDFLAGS) -L$(OVERLAY_ROOT)/lib |
|
export CGO_CFLAGS := $(CFLAGS) -lsnappy |
|
export CGO_LDFLAGS := $(LDFLAGS) |
|
|
|
GO_GET := go get -u -v -x |
|
APT_GET_INSTALL := sudo apt-get install -y |
|
WGET := wget -c |
|
|
|
all: test |
|
|
|
preparation: preparation-stamp |
|
|
|
preparation-stamp: build-dependencies |
|
touch $@ |
|
|
|
build-dependencies: build-dependencies-stamp |
|
|
|
build-dependencies-stamp: bison cc mercurial protoc goprotobuf gorest goskiplist go instrumentation leveldb levigo |
|
touch $@ |
|
|
|
overlay: overlay-stamp |
|
|
|
overlay-stamp: |
|
[ -d "$(OVERLAY_ROOT)" ] || mkdir -vp $(OVERLAY_ROOT) |
|
touch $@ |
|
|
|
bison: bison-stamp |
|
|
|
bison-stamp: |
|
[ -x "$$(which bison)" ] || $(APT_GET_INSTALL) bison |
|
|
|
cc: cc-stamp |
|
|
|
cc-stamp: |
|
[ -x "$$(which cc)" ] || $(APT_GET_INSTALL) build-essential |
|
touch $@ |
|
|
|
go: go-stamp |
|
|
|
go-stamp: bison |
|
gvm install go$(GO_VERSION) || true |
|
gvm use go$(GO_VERSION) || true |
|
[ -x "$$(which go)" ] |
|
touch $@ |
|
|
|
mercurial: mercurial-stamp |
|
|
|
mercurial-stamp: |
|
[ -x "$$(which hg)" ] || $(APT_GET_INSTALL) mercurial |
|
touch $@ |
|
|
|
wget: wget-stamp |
|
|
|
wget-stamp: |
|
[ -x "$$(which wget)" ] || $(APT_GET_INSTALL) wget |
|
touch $@ |
|
|
|
protobuf-$(PROTOCOL_BUFFERS_VERSION).tar.bz2: wget |
|
$(WGET) http://protobuf.googlecode.com/files/$@ |
|
|
|
protoc: protoc-stamp |
|
|
|
protoc-stamp: cc protobuf-$(PROTOCOL_BUFFERS_VERSION).tar.bz2 overlay |
|
([ ! -x "$$(which protoc)" ] && tar xjvf protobuf-$(PROTOCOL_BUFFERS_VERSION).tar.bz2) || true |
|
([ ! -x "$$(which protoc)" ] && cd protobuf-$(PROTOCOL_BUFFERS_VERSION) && ./configure --prefix="$(OVERLAY_ROOT)") || true |
|
([ ! -x "$$(which protoc)" ] && $(MAKE) -C protobuf-$(PROTOCOL_BUFFERS_VERSION)) || true |
|
([ ! -x "$$(which protoc)" ] && $(MAKE) -C protobuf-$(PROTOCOL_BUFFERS_VERSION) install) || true |
|
[ -x "$$(which protoc)" ] |
|
touch $@ |
|
|
|
gorest: gorest-stamp |
|
|
|
gorest-stamp: go source |
|
$(GO_GET) code.google.com/p/gorest |
|
touch $@ |
|
|
|
goprotobuf: goprotobuf-stamp |
|
|
|
goprotobuf-stamp: go protoc source |
|
$(GO_GET) code.google.com/p/goprotobuf/proto |
|
$(GO_GET) code.google.com/p/goprotobuf/protoc-gen-go |
|
touch $@ |
|
|
|
instrumentation: instrumentation-stamp |
|
|
|
instrumentation-stamp: go source |
|
$(GO_GET) github.com/prometheus/client_golang |
|
touch $@ |
|
|
|
leveldb: leveldb-stamp |
|
|
|
leveldb-stamp: cc rsync leveldb-$(LEVELDB_VERSION).tar.gz snappy overlay |
|
tar xzvf leveldb-$(LEVELDB_VERSION).tar.gz |
|
$(MAKE) -C leveldb-$(LEVELDB_VERSION) |
|
rsync -av "leveldb-$(LEVELDB_VERSION)/include/" "$(OVERLAY_ROOT)/include/" |
|
-rsync -av "leveldb-$(LEVELDB_VERSION)/"*.*so* "$(OVERLAY_ROOT)/lib/" |
|
-rsync -av "leveldb-$(LEVELDB_VERSION)/"*.*dylib* "$(OVERLAY_ROOT)/lib/" |
|
rsync -av "leveldb-$(LEVELDB_VERSION)/"*.a "$(OVERLAY_ROOT)/lib/" |
|
touch $@ |
|
|
|
leveldb-$(LEVELDB_VERSION).tar.gz: wget |
|
$(WGET) http://leveldb.googlecode.com/files/leveldb-$(LEVELDB_VERSION).tar.gz |
|
|
|
levigo: levigo-stamp |
|
|
|
levigo-stamp: leveldb go snappy source |
|
$(GO_GET) github.com/jmhodges/levigo |
|
touch $@ |
|
|
|
skiplist: skiplist-stamp |
|
|
|
skiplist-stamp: go source |
|
$(GO_GET) github.com/ryszard/goskiplist/skiplist |
|
touch $@ |
|
|
|
rsync: rsync-stamp |
|
|
|
rsync-stamp: |
|
[ -x "$$(which rsync)" ] || $(APT_GET_INSTALL) rsync |
|
|
|
vim-common: vim-common-stamp |
|
|
|
vim-common-stamp: |
|
$(APT_GET_INSTALL) vim-common |
|
touch $@ |
|
|
|
test: test-stamp |
|
|
|
test-stamp: preparation source |
|
cd ${GOPATH}/src/github.com/prometheus |
|
$(MAKE) build |
|
$(MAKE) test |
|
touch $@ |
|
|
|
snappy-$(SNAPPY_VERSION).tar.gz: wget |
|
$(WGET) http://snappy.googlecode.com/files/snappy-$(SNAPPY_VERSION).tar.gz |
|
tar xzvf snappy-$(SNAPPY_VERSION).tar.gz |
|
cd snappy-$(SNAPPY_VERSION) && ./configure --prefix="$(OVERLAY_ROOT)" |
|
$(MAKE) -C snappy-$(SNAPPY_VERSION) |
|
$(MAKE) -C snappy-$(SNAPPY_VERSION) install |
|
|
|
snappy: snappy-stamp |
|
tar xzvf snappy-$(SNAPPY_VERSION).tar.gz |
|
|
|
snappy-stamp: cc overlay rsync snappy-$(SNAPPY_VERSION).tar.gz |
|
touch $@ |
|
|
|
source: source-stamp |
|
|
|
source-stamp: |
|
-mkdir -vp ${GOPATH}/src/github.com/prometheus |
|
ln -sf $${PWD} ${GOPATH}/src/github.com/prometheus/prometheus |
|
touch $@ |
|
|
|
clean: |
|
-rm *-stamp |
|
-rm -rf "$(OVERLAY_ROOT)" |
|
-rm -rf leveldb-$(LEVELDB_VERSION) |
|
-rm -rf protobuf-$(PROTOCOL_BUFFERS_VERSION) |
|
-rm -rf snappy-$(SNAPPY_VERSION) |
|
-rm leveldb-$(LEVELDB_VERSION).tar.gz |
|
-rm protobuf-$(PROTOCOL_BUFFERS_VERSION).tar.bz2 |
|
-rm snappy-$(SNAPPY_VERSION).tar.gz |
|
|
|
|
|
.PHONY: all bison build-dependencies cc clean go goprotobuf gorest instrumentation leveldb levigo mercurial overlay preparation protoc rsync snappy source test wget vim-common
|
|
|