Makefile
 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  
14  KEY_ID ?= _DEFINE_ME_
15  
16  all: cpp go java python ruby
17  
18  SUFFIXES:
19  
20  cpp: cpp/metrics.pb.cc cpp/metrics.pb.h
21  
22  cpp/metrics.pb.cc: metrics.proto
23  	protoc $< --cpp_out=cpp/
24  
25  cpp/metrics.pb.h: metrics.proto
26  	protoc $< --cpp_out=cpp/
27  
28  go: go/metrics.pb.go
29  
30  go/metrics.pb.go: metrics.proto
31  	protoc $< --go_out=go/
32  
33  java: src/main/java/io/prometheus/client/Metrics.java pom.xml
34  	mvn clean compile package
35  
36  src/main/java/io/prometheus/client/Metrics.java: metrics.proto
37  	protoc $< --java_out=src/main/java
38  
39  python: python/prometheus/client/model/metrics_pb2.py
40  
41  python/prometheus/client/model/metrics_pb2.py: metrics.proto
42  	mkdir -p python/prometheus/client/model
43  	protoc $< --python_out=python/prometheus/client/model
44  
45  ruby:
46  	$(MAKE) -C ruby build
47  
48  clean:
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  
56  maven-deploy-snapshot: java
57  	mvn clean deploy -Dgpg.keyname=$(KEY_ID) -DperformRelease=true
58  
59  maven-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