blob: 48f408bb1f3cb9b99d222f459608050b72ce642f [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
Matteo Scandolof7b260d2019-07-31 13:43:02 -070031bbsim: dep protos/openolt.pb.go bbsimapi
32 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
Keita NISHIMOTO3b8b9c02018-10-09 09:40:01 +090040protos/openolt.pb.go: openolt.proto
Zack Williams86f87202018-10-05 10:36:32 -070041 @protoc -I . \
42 -I${GOPATH}/src \
43 -I${GOPATH}/src/github.com/grpc-ecosystem/grpc-gateway/third_party/googleapis \
Keita NISHIMOTO3b8b9c02018-10-09 09:40:01 +090044 --go_out=plugins=grpc:protos/ \
Keita NISHIMOTOca4da5f2018-10-15 22:48:52 +090045 $<
Zack Williams86f87202018-10-05 10:36:32 -070046
Zdravko Bozakov7401ff22019-05-28 22:45:12 +020047bbsimapi: api/bbsim.proto
48 @protoc -I ./api \
49 -I${GOPATH}/src \
50 -I${GOPATH}/src/github.com/grpc-ecosystem/grpc-gateway/third_party/googleapis \
51 -I${GOPATH}/src/github.com/grpc-ecosystem/grpc-gateway \
52 --go_out=plugins=grpc:api/ \
53 --grpc-gateway_out=logtostderr=true,allow_delete_body=true:api/ \
Shad Ansari3f525132019-06-23 06:16:28 +000054 api/bbsim.proto
Zdravko Bozakov7401ff22019-05-28 22:45:12 +020055
56swagger: ## Generate swagger documentation for BBsim API
57 @protoc -I ./api \
58 -I${GOPATH}/src \
59 -I${GOPATH}/src/github.com/grpc-ecosystem/grpc-gateway/third_party/googleapis \
60 -I${GOPATH}/src/github.com/grpc-ecosystem/grpc-gateway \
61 --swagger_out=logtostderr=true,allow_delete_body=true:api/swagger/ \
62 bbsim.proto
63
Matteo Scandolof7b260d2019-07-31 13:43:02 -070064test: dep protos/openolt.pb.go bbsimapi
65 GO111MODULE=on go test -v ./...
66 GO111MODULE=on go test -v ./... -cover
Keita NISHIMOTOca4da5f2018-10-15 22:48:52 +090067
68fmt:
69 go fmt ./...
70
71vet:
72 go vet ./...
73
74lint:
75 gometalinter --vendor --exclude ../../golang.org --skip protos --sort path --sort line ./...
Zack Williams86f87202018-10-05 10:36:32 -070076
77clean:
Zdravko Bozakov7401ff22019-05-28 22:45:12 +020078 @rm -vf bbsim \
79 protos/openolt.pb.go \
80 api/bbsim.pb.go \
81 api/bbsim.pb.gw.go \
82 api/swagger/*.json
Zack Williams86f87202018-10-05 10:36:32 -070083
Kailashd88258b2019-07-01 21:27:48 -070084docker-build:
Zack Williams2abf3932019-08-05 14:07:05 -070085 docker build ${DOCKER_BUILD_ARGS} -t ${BBSIM_IMAGENAME} .
Matteo Scandolof7b260d2019-07-31 13:43:02 -070086
87docker-save:
Zack Williams2abf3932019-08-05 14:07:05 -070088 docker save ${BBSIM_IMAGENAME} -o voltha-bbsim_${DOCKER_TAG}.tgz
Kailashd88258b2019-07-01 21:27:48 -070089
90docker-push:
Zack Williams2abf3932019-08-05 14:07:05 -070091 docker push ${BBSIM_IMAGENAME}