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