2013-02-07 11:38:01 +01:00
# Copyright 2013 Prometheus Team
2012-11-26 20:11:34 +01:00
# 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
2013-02-07 11:38:01 +01:00
#
2012-11-26 20:11:34 +01:00
# http://www.apache.org/licenses/LICENSE-2.0
2013-02-07 11:38:01 +01:00
#
2012-11-26 20:11:34 +01:00
# 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.
2013-06-05 14:05:42 +02:00
TEST_ARTIFACTS = prometheus prometheus.race search_index
2012-11-24 12:33:34 +01:00
2013-04-14 06:59:55 +02:00
i n c l u d e M a k e f i l e . I N C L U D E
2012-11-24 12:33:34 +01:00
2013-05-07 15:48:33 +02:00
all : binary test
2012-11-24 12:33:34 +01:00
2013-08-05 09:25:47 +02:00
$(GOCC) : $( BUILD_PATH ) /cache /$( GOPKG ) $( FULL_GOPATH )
2013-06-25 14:02:27 +02:00
tar -C $( BUILD_PATH) /root -xzf $<
2013-06-13 15:17:03 +02:00
touch $@
2013-04-14 06:59:55 +02:00
advice :
2014-11-17 19:20:39 +01:00
$( GO) vet ./...
2013-03-26 12:33:48 +01:00
binary : build
2012-11-24 12:33:34 +01:00
2014-11-17 19:20:39 +01:00
build : config dependencies tools web
2013-06-13 16:24:21 +02:00
$( GO) build -o prometheus $( BUILDFLAGS) .
2013-06-13 15:17:03 +02:00
2013-08-05 14:40:24 +02:00
docker : build
docker build -t prometheus:$( REV) .
2014-03-11 15:21:10 +01:00
tarball : $( ARCHIVE )
$(ARCHIVE) : build
2014-11-17 19:20:39 +01:00
tar -czf $( ARCHIVE) prometheus
2014-03-11 15:21:10 +01:00
release : REMOTE ?= $( error "can 't upload , REMOTE not set ")
release : REMOTE_DIR ?= $( error "can 't upload , REMOTE_DIR not set ")
release : $( ARCHIVE )
scp $< $( REMOTE) :$( REMOTE_DIR) /
tag :
git tag $( VERSION)
git push --tags
2013-08-19 16:33:19 +02:00
2013-06-25 14:02:27 +02:00
$(BUILD_PATH)/cache/$(GOPKG) :
2014-11-17 19:20:39 +01:00
$( CURL) -o $@ -L $( GOURL) /$( GOPKG)
2013-04-14 06:59:55 +02:00
2014-04-15 20:49:09 +02:00
benchmark : test
$( GO) test $( GO_TEST_FLAGS) -test.bench= 'Benchmark' ./...
2012-11-24 12:33:34 +01:00
clean :
2013-06-25 14:02:27 +02:00
$( MAKE) -C $( BUILD_PATH) clean
2013-05-10 16:41:02 +02:00
$( MAKE) -C tools clean
2013-03-21 18:29:33 +01:00
$( MAKE) -C web clean
rm -rf $( TEST_ARTIFACTS)
2014-11-17 19:20:39 +01:00
-rm $( ARCHIVE)
-find . -type f -name '*~' -exec rm '{}' ';'
-find . -type f -name '*#' -exec rm '{}' ';'
-find . -type f -name '.#*' -exec rm '{}' ';'
2012-11-24 12:33:34 +01:00
2014-11-17 19:20:39 +01:00
config : dependencies
2013-04-30 20:20:14 +02:00
$( MAKE) -C config
2014-11-17 19:20:39 +01:00
dependencies : $( GOCC ) $( FULL_GOPATH )
2013-06-13 15:17:03 +02:00
$( GO) get -d
2013-04-14 06:59:55 +02:00
documentation : search_index
godoc -http= :6060 -index -index_files= 'search_index'
2012-11-24 12:33:34 +01:00
format :
2013-06-25 14:02:27 +02:00
find . -iname '*.go' | egrep -v "^\./\.build|./generated|\.(l|y)\.go" | xargs -n1 $( GOFMT) -w -s= true
2013-06-11 17:45:26 +02:00
2013-06-05 14:05:42 +02:00
race_condition_binary : build
2014-11-17 19:20:39 +01:00
$( GO) build -race -o prometheus.race $( BUILDFLAGS) .
2013-06-05 14:05:42 +02:00
race_condition_run : race_condition_binary
./prometheus.race $( ARGUMENTS)
2013-04-14 06:59:55 +02:00
run : binary
2013-08-12 18:21:38 +02:00
./prometheus -alsologtostderr -stderrthreshold= 0 $( ARGUMENTS)
2013-01-27 17:53:20 +01:00
2012-11-25 16:04:58 +01:00
search_index :
godoc -index -write_index -index_files= 'search_index'
2014-11-17 19:20:39 +01:00
server : config dependencies
2013-05-05 19:32:04 +02:00
$( MAKE) -C server
2013-08-05 09:25:47 +02:00
# $(FULL_GOPATH) is responsible for ensuring that the builder has not done anything
2013-04-14 06:59:55 +02:00
# stupid like working on Prometheus outside of ${GOPATH}.
2013-08-05 09:25:47 +02:00
$(FULL_GOPATH) :
2013-04-14 06:59:55 +02:00
-[ -d " $( FULL_GOPATH) " ] || { mkdir -vp $( FULL_GOPATH_BASE) ; ln -s " $( PWD) " " $( FULL_GOPATH) " ; }
[ -d " $( FULL_GOPATH) " ]
2014-11-17 19:20:39 +01:00
test : config dependencies tools web
2013-08-03 18:46:02 +02:00
$( GO) test $( GO_TEST_FLAGS) ./...
2013-04-14 06:59:55 +02:00
2014-11-17 19:20:39 +01:00
tools : dependencies
2013-05-10 16:41:02 +02:00
$( MAKE) -C tools
2014-11-17 19:20:39 +01:00
web : config dependencies
2013-04-14 06:59:55 +02:00
$( MAKE) -C web
2012-11-25 16:04:58 +01:00
2014-11-17 19:20:39 +01:00
.PHONY : advice binary build clean config dependencies documentation format race_condition_binary race_condition_run release run search_index tag tarball test tools