blob: 3357de7b62b0d8062b5401bfa3cdc7a8db732c48 [file] [log] [blame]
Zack Williams86f87202018-10-05 10:36:32 -07001# Copyright 2018-present Open Networking Foundation
2#
3# Licensed under the Apache License, Version 2.0 (the "License");
4# you may not use this file except in compliance with the License.
5# You may obtain a copy of the License at
6#
7# http://www.apache.org/licenses/LICENSE-2.0
8#
9# Unless required by applicable law or agreed to in writing, software
10# distributed under the License is distributed on an "AS IS" BASIS,
11# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12# See the License for the specific language governing permissions and
13# limitations under the License.
14
Zack Williams2abf3932019-08-05 14:07:05 -070015VERSION ?= $(shell cat ./VERSION)
16BBSIM_DEPS = $(wildcard ./*.go)
Zack Williams86f87202018-10-05 10:36:32 -070017
Kailashd88258b2019-07-01 21:27:48 -070018## Docker related
Zack Williams2abf3932019-08-05 14:07:05 -070019DOCKER_REGISTRY ?= ""
20DOCKER_REPOSITORY ?= voltha/
Kailashd88258b2019-07-01 21:27:48 -070021DOCKER_BUILD_ARGS ?=
22DOCKER_TAG ?= ${VERSION}
Zack Williams2abf3932019-08-05 14:07:05 -070023BBSIM_IMAGENAME := ${DOCKER_REGISTRY}${DOCKER_REPOSITORY}voltha-bbsim:${DOCKER_TAG}
Kailashd88258b2019-07-01 21:27:48 -070024
25## Docker labels. Only set ref and commit date if committed
26DOCKER_LABEL_VCS_URL ?= $(shell git remote get-url $(shell git remote))
27DOCKER_LABEL_VCS_REF ?= $(shell git diff-index --quiet HEAD -- && git rev-parse HEAD || echo "unknown")
28DOCKER_LABEL_COMMIT_DATE ?= $(shell git diff-index --quiet HEAD -- && git show -s --format=%cd --date=iso-strict HEAD || echo "unknown" )
29DOCKER_LABEL_BUILD_DATE ?= $(shell date -u "+%Y-%m-%dT%H:%M:%SZ")
30
Matt Jeanneret7c9c5f22019-08-09 14:40:12 -040031bbsim: dep bbsimapi
Matteo Scandolof7b260d2019-07-31 13:43:02 -070032 GO111MODULE=on go build -i -v -o $@
Zack Williams86f87202018-10-05 10:36:32 -070033
Matteo Scandolof7b260d2019-07-31 13:43:02 -070034dep:
35 GO111MODULE=off go get -u github.com/grpc-ecosystem/grpc-gateway/protoc-gen-grpc-gateway
36 GO111MODULE=off go get -v github.com/golang/protobuf/protoc-gen-go
37 GO111MODULE=off go get -v github.com/google/gopacket
38 GO111MODULE=on go mod download all
Zack Williams86f87202018-10-05 10:36:32 -070039
Zdravko Bozakov7401ff22019-05-28 22:45:12 +020040bbsimapi: api/bbsim.proto
41 @protoc -I ./api \
42 -I${GOPATH}/src \
43 -I${GOPATH}/src/github.com/grpc-ecosystem/grpc-gateway/third_party/googleapis \
44 -I${GOPATH}/src/github.com/grpc-ecosystem/grpc-gateway \
45 --go_out=plugins=grpc:api/ \
46 --grpc-gateway_out=logtostderr=true,allow_delete_body=true:api/ \
Shad Ansari3f525132019-06-23 06:16:28 +000047 api/bbsim.proto
Zdravko Bozakov7401ff22019-05-28 22:45:12 +020048
49swagger: ## Generate swagger documentation for BBsim API
50 @protoc -I ./api \
51 -I${GOPATH}/src \
52 -I${GOPATH}/src/github.com/grpc-ecosystem/grpc-gateway/third_party/googleapis \
53 -I${GOPATH}/src/github.com/grpc-ecosystem/grpc-gateway \
54 --swagger_out=logtostderr=true,allow_delete_body=true:api/swagger/ \
55 bbsim.proto
56
Matt Jeanneret7c9c5f22019-08-09 14:40:12 -040057test: dep bbsimapi
Matteo Scandolof7b260d2019-07-31 13:43:02 -070058 GO111MODULE=on go test -v ./...
59 GO111MODULE=on go test -v ./... -cover
Keita NISHIMOTOca4da5f2018-10-15 22:48:52 +090060
61fmt:
62 go fmt ./...
63
64vet:
65 go vet ./...
66
67lint:
68 gometalinter --vendor --exclude ../../golang.org --skip protos --sort path --sort line ./...
Zack Williams86f87202018-10-05 10:36:32 -070069
70clean:
Zdravko Bozakov7401ff22019-05-28 22:45:12 +020071 @rm -vf bbsim \
72 protos/openolt.pb.go \
73 api/bbsim.pb.go \
74 api/bbsim.pb.gw.go \
75 api/swagger/*.json
Zack Williams86f87202018-10-05 10:36:32 -070076
Kailashd88258b2019-07-01 21:27:48 -070077docker-build:
Zack Williams2abf3932019-08-05 14:07:05 -070078 docker build ${DOCKER_BUILD_ARGS} -t ${BBSIM_IMAGENAME} .
Matteo Scandolof7b260d2019-07-31 13:43:02 -070079
80docker-save:
Zack Williams2abf3932019-08-05 14:07:05 -070081 docker save ${BBSIM_IMAGENAME} -o voltha-bbsim_${DOCKER_TAG}.tgz
Kailashd88258b2019-07-01 21:27:48 -070082
83docker-push:
Zack Williams2abf3932019-08-05 14:07:05 -070084 docker push ${BBSIM_IMAGENAME}