1 VERSION ?= $(shell git describe --always --tags --dirty)
3 BINAPI_DIR ?= $(shell cd examples/bin_api && pwd)
4 VPP_VERSION := $(shell apt-cache show vpp | grep Version: | cut -d' ' -f2-)
6 all: test build examples
9 @echo "=> installing ${VERSION}"
10 go install ./cmd/binapi-generator
13 @echo "=> building ${VERSION}"
14 cd cmd/binapi-generator && go build -v
17 @echo "=> building examples"
18 cd examples/cmd/simple-client && go build -v
19 cd examples/cmd/stats-client && go build -v
20 cd examples/cmd/perf-bench && go build -v
24 go test -cover ./cmd/...
25 go test -cover ./core ./api ./codec
28 @echo "=> building extras"
29 cd extras/libmemif/examples/gopacket && go build -v
30 cd extras/libmemif/examples/icmp-responder && go build -v
31 cd extras/libmemif/examples/jumbo-frames && go build -v
32 cd extras/libmemif/examples/raw-data && go build -v
36 rm -f cmd/binapi-generator/binapi-generator
37 rm -f examples/cmd/perf-bench/perf-bench
38 rm -f examples/cmd/simple-client/simple-client
39 rm -f examples/cmd/stats-client/stats-client
40 rm -f extras/libmemif/examples/gopacket/gopacket
41 rm -f extras/libmemif/examples/icmp-responder/icmp-responder
42 rm -f extras/libmemif/examples/jumbo-frames/jumbo-frames
43 rm -f extras/libmemif/examples/raw-data/raw-data
46 @echo "=> generating binapi"
47 @go generate "${BINAPI_DIR}"
50 @echo "=> generating code"
51 cd examples && go generate ./...
54 @echo "=> updating API JSON files using installed VPP (${VPP_VERSION})"
55 @cd ${BINAPI_DIR} && find . -type f -name '*.api.json' -exec cp /usr/share/vpp/api/'{}' '{}' \;
56 @echo ${VPP_VERSION} > ${BINAPI_DIR}/VPP_VERSION
59 @echo "=> running linter"
60 @golint ./... | grep -v vendor | grep -v bin_api || true
63 install build examples test \
64 extras clean generate lint