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-06-13 15:17:03 +02:00
$(GOCC) : build /cache /$( GOPKG )
tar -C build/root -xzf $<
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) .
cp prometheus build/package/prometheus
rsync -av build/root/lib/ build/package/lib/
2013-06-13 15:17:03 +02:00
build/cache/$(GOPKG) :
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-04-14 06:59:55 +02:00
$( MAKE) -C build 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)
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-18 19:18:39 +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-06-11 17:45:26 +02:00
preparation : $( GOCC ) source_path
2013-04-14 06:59:55 +02:00
$( MAKE) -C build
2013-06-05 14:05:42 +02:00
race_condition_binary : build
2013-06-13 15:17:03 +02:00
CGO_CFLAGS = " -I $( PWD) /build/root/include " CGO_LDFLAGS = " -L $( PWD) /build/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-05-05 19:32:04 +02:00
./prometheus $( 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-04-14 06:59:55 +02:00
# source_path is responsible for ensuring that the builder has not done anything
# stupid like working on Prometheus outside of ${GOPATH}.
source_path :
-[ -d " $( FULL_GOPATH) " ] || { mkdir -vp $( FULL_GOPATH_BASE) ; ln -s " $( PWD) " " $( FULL_GOPATH) " ; }
[ -d " $( FULL_GOPATH) " ]
test : build
2013-06-11 17:45:26 +02:00
$( GOENV) find . -maxdepth 1 -mindepth 1 -type d -and -not -path ./build -exec $( GOCC) test { } /... $( GO_TEST_FLAGS) \;
$( 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-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-06-13 15:17:03 +02:00
.PHONY : advice binary build clean config dependencies documentation format model package preparation race_condition_binary race_condition_run run search_index source_path test tools