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 :
2013-06-11 17:45:26 +02:00
$( GO) tool vet .
2013-03-26 12:33:48 +01:00
binary : build
2012-11-24 12:33:34 +01:00
2013-06-13 15:17:03 +02:00
build : config dependencies model preparation tools web
2013-06-13 16:24:21 +02:00
$( GO) build -o prometheus $( BUILDFLAGS) .
2013-06-25 14:02:27 +02:00
cp prometheus $( BUILD_PATH) /package/prometheus
rsync -av --delete $( BUILD_PATH) /root/lib/ $( BUILD_PATH) /package/lib/
2013-06-13 15:17:03 +02:00
2013-08-05 14:40:24 +02:00
docker : build
docker build -t prometheus:$( REV) .
2013-06-25 14:02:27 +02:00
$(BUILD_PATH)/cache/$(GOPKG) :
2013-06-13 15:17:03 +02:00
curl -o $@ http://go.googlecode.com/files/$( GOPKG)
2013-04-14 06:59:55 +02:00
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)
2013-08-14 19:23:28 +02:00
-rm prometheus-$( REV) .tar.gz
2012-11-24 12:33:34 +01:00
-find . -type f -iname '*~' -exec rm '{}' ';'
-find . -type f -iname '*#' -exec rm '{}' ';'
2012-11-28 20:22:49 +01:00
-find . -type f -iname '.#*' -exec rm '{}' ';'
2012-11-24 12:33:34 +01:00
2013-06-13 15:17:03 +02:00
config : dependencies preparation
2013-04-30 20:20:14 +02:00
$( MAKE) -C config
2013-06-13 15:17:03 +02:00
dependencies : preparation
$( 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-13 15:17:03 +02:00
model : dependencies preparation
2013-04-14 06:59:55 +02:00
$( MAKE) -C model
2013-08-05 09:25:47 +02:00
preparation : $( GOCC ) $( FULL_GOPATH )
2013-06-25 14:02:27 +02:00
$( MAKE) -C $( BUILD_PATH)
2013-04-14 06:59:55 +02:00
2013-06-05 14:05:42 +02:00
race_condition_binary : build
2013-06-25 14:02:27 +02:00
CGO_CFLAGS = " -I $( BUILD_PATH) /root/include " CGO_LDFLAGS = " -L $( BUILD_PATH) /root/lib " $( 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'
2013-06-13 15:17:03 +02:00
server : config dependencies model preparation
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) " ]
test : build
2013-08-03 18:46:02 +02:00
$( GO) test $( GO_TEST_FLAGS) ./...
2013-04-14 06:59:55 +02:00
2013-06-13 15:17:03 +02:00
tools : dependencies preparation
2013-05-10 16:41:02 +02:00
$( MAKE) -C tools
2013-06-25 14:02:27 +02:00
update :
$( GO) get -d
2013-06-13 15:17:03 +02:00
web : config dependencies model preparation
2013-04-14 06:59:55 +02:00
$( MAKE) -C web
2012-11-25 16:04:58 +01:00
2013-08-14 19:23:28 +02:00
.PHONY : advice binary build clean config dependencies documentation format model package preparation race_condition_binary race_condition_run run search_index tarball test tools update