1# Copyright 2013 Prometheus Team
2# Licensed under the Apache License, Version 2.0 (the "License");
3# you may not use this file except in compliance with the License.
4# You may obtain a copy of the License at
5
6# http://www.apache.org/licenses/LICENSE-2.0
7
8# Unless required by applicable law or agreed to in writing, software
9# distributed under the License is distributed on an "AS IS" BASIS,
10# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11# See the License for the specific language governing permissions and
12# limitations under the License.
13
14KEY_ID ?= _DEFINE_ME_
15
16all: cpp go java python ruby
17
18SUFFIXES:
19
20cpp: cpp/metrics.pb.cc cpp/metrics.pb.h
21
22cpp/metrics.pb.cc: metrics.proto
23	protoc $< --cpp_out=cpp/
24
25cpp/metrics.pb.h: metrics.proto
26	protoc $< --cpp_out=cpp/
27
28go: go/metrics.pb.go
29
30go/metrics.pb.go: metrics.proto
31	protoc $< --go_out=import_path=github.com/prometheus/client_model/,paths=source_relative:go/
32
33java: src/main/java/io/prometheus/client/Metrics.java pom.xml
34	mvn clean compile package
35
36src/main/java/io/prometheus/client/Metrics.java: metrics.proto
37	protoc $< --java_out=src/main/java
38
39python: python/prometheus/client/model/metrics_pb2.py
40
41python/prometheus/client/model/metrics_pb2.py: metrics.proto
42	mkdir -p python/prometheus/client/model
43	protoc $< --python_out=python/prometheus/client/model
44
45ruby:
46	$(MAKE) -C ruby build
47
48clean:
49	-rm -rf cpp/*
50	-rm -rf go/*
51	-rm -rf java/*
52	-rm -rf python/*
53	-$(MAKE) -C ruby clean
54	-mvn clean
55
56maven-deploy-snapshot: java
57	mvn clean deploy -Dgpg.keyname=$(KEY_ID) -DperformRelease=true
58
59maven-deploy-release: java
60	mvn clean release:clean release:prepare release:perform -Dgpg.keyname=$(KEY_ID) -DperformRelease=true
61
62.PHONY: all clean cpp go java maven-deploy-snapshot maven-deploy-release python ruby
63